{"version":3,"file":"index-Cf5N98bJ.js","sources":["../../src/environments.ts","../../src/features/core/error-handling/ApiError.tsx","../../src/features/eiendom/detaljert-eiendom/api/eiendom.ts","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/utils/bygningstypeUtil.ts","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/utils/vannforsyningUtil.ts","../../src/features/eiendom/eiendomsoversikt/api/eiendommer.ts","../../src/features/eiendom/kodelister/kodelister.ts","../../src/features/eiendom/kodelister/kodelisterBygning.ts","../../src/features/eiendom/registrering/api/egenregistrering.ts","../../src/features/interaktivtKart/api/interaktivtKart.ts","../../src/features/user/bruker.ts","../../src/features/shared-api/router.ts","../../src/features/cookies/consentReducer.ts","../../src/features/cookies/context/ConsentContext.ts","../../src/features/core/hooks/useScreenview.ts","../../src/features/core/text/fontStyles.ts","../../src/features/core/text/components/EksternLenke.tsx","../../src/features/core/components/layout/Section.tsx","../../src/features/core/components/footer/TilpassetFooter.tsx","../../src/features/core/components/navbar/Driftsmelding.tsx","../../src/features/auth/hooks/useHandleLogout.ts","../../src/features/user/hooks/useBruker.ts","../../src/features/core/hooks/useIsInnlogget.ts","../../src/features/core/text/components/Brødtekst.tsx","../../src/features/core/utils/navbarUtils.ts","../../src/features/core/components/navbar/Brukerinfo.tsx","../../src/features/core/components/navbar/NavBar.tsx","../../src/features/core/components/navbar/NavBreadcrumb.tsx","../../src/Root.tsx","../../src/features/core/components/layout/StackMedGap.tsx","../../src/features/core/text/components/Overskrift.tsx","../../src/features/infosider/components/InfoCard.tsx","../../src/features/cookies/components/CookiesTabell.tsx","../../src/features/cookies/index.tsx","../../src/features/cookies/components/InformasjonskapslerOversikt.tsx","../../src/features/cookies/components/CookieBanner.tsx","../../src/faro-config.ts","../../src/features/auth/authentication.ts","../../src/features/auth/hooks/useHandleLogin.ts","../../src/features/core/error-handling/ErrorDisplay.tsx","../../src/assets/questionmark_man.svg","../../src/features/infosider/hjelp-og-stotte/InfotekstHvorforDukkerIkkeEiendommenMinOpp.tsx","../../src/features/core/error-handling/FinnerIkkeEiendommerInfoboks.tsx","../../src/features/core/error-handling/FinnerIkkeEiendommer.tsx","../../src/features/core/error-handling/ErrorHandler.tsx","../../src/features/core/error-handling/types/finnerIngenPathSomPatcher.ts","../../src/assets/bygning.svg","../../src/assets/seksjon.svg","../../src/assets/teig.svg","../../src/features/datafelter/components/NøstetAccordion.tsx","../../src/features/datafelter/components/ForklaringAccordion.tsx","../../src/features/datafelter/components/ForklaringAccordionWrapper.tsx","../../src/features/datafelter/Datafelter.tsx","../../src/utils/konverterFraMinutterTilMillisekunder.ts","../../src/features/eiendom/eiendomsoversikt/api/useEiendommer.ts","../../src/features/eiendom/detaljert-eiendom/hooks/useDetaljerteEiendommer.ts","../../src/utils/formateringUtils.ts","../../src/features/eiendom/eiendomsoversikt/utils/adresseForEiendomUtils.ts","../../src/features/eiendom/eiendomsoversikt/utils/eiendomUtils.ts","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/utils/etasjeUtil.ts","../../src/features/eiendom/detaljert-eiendom/api/useEiendom.ts","../../src/features/eiendom/detaljert-eiendom/hooks/useCurrentBygning.ts","../../src/features/egenregistreringsoversikt/useEgenregistreringer.ts","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/utils/avløpsUtil.ts","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/utils/energikilderUtil.ts","../../src/features/eiendom/kodelister/utils.ts","../../src/features/eiendom/registrering/types/Enums.ts","../../src/features/eiendom/registrering/utils.ts","../../src/features/egenregistreringsoversikt/components/ProgresjonsbrøkForEgenregistrering.tsx","../../src/features/egenregistreringsoversikt/components/BruksenhetForEgenregistrering.tsx","../../src/features/egenregistreringsoversikt/components/EiendommerMedBruksenheterForEgenregistreringListe.tsx","../../src/features/egenregistreringsoversikt/components/InfoOmEgenregistrering.tsx","../../src/features/egenregistreringsoversikt/index.tsx","../../src/features/interaktivtKart/api/useTeigpolygoner.ts","../../src/features/kartutsnitt/components/utils.ts","../../src/features/kartutsnitt/components/NorgeskartKnapp.tsx","../../src/features/interaktivtKart/constants.ts","../../src/features/interaktivtKart/components/ResetZoomControl.ts","../../src/features/interaktivtKart/utils.ts","../../src/features/interaktivtKart/InteraktivtKart.tsx","../../src/assets/eiendom.svg","../../src/features/kartutsnitt/components/FantIkkeKartutstnittBox.tsx","../../src/features/kartutsnitt/components/KartutsnittForDetaljertEiendom.tsx","../../src/features/eiendom/detaljert-eiendom/components/AdresseOverskrift.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/utils/bygningerUtils.ts","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/AccordionItemBygningskort.tsx","../../src/features/eiendom/kodelister/useKodelister.ts","../../src/features/eiendom/detaljert-eiendom/components/OverskriftForEiendomsdetaljer.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/EgenskaperVedBygning.tsx","../../src/features/eiendom/components/PopoverInfo.tsx","../../src/features/eiendom/components/VerdiMedForklaring.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/BruksenhetFlexItem.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/BruksenhetBoks.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/UnummerertBruksenhetboks.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/BruksenhetBoksWrapper.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/NøkkelinfoOmAlleBruksenheterIBygning.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/utils/gyldigeBygningsstatuser.ts","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/utils/hentBygningsstatus.ts","../../src/features/core/components/PopoverikonMedTooltip.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/Bygningsstatus.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/FelterIBygningskort.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/OmBygningen.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/BygningskortAccordion.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/BygningstypeOgAdresseOverskrift.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/Bygningskort.tsx","../../src/assets/pin.svg","../../src/features/kartutsnitt/components/KartutsnittMedBygningsmarkør.tsx","../../src/features/kartutsnitt/components/BygningskortMedKartutsnitt.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/components/AlleBygningskortMedKartutsnittStack.tsx","../../src/features/eiendom/detaljert-eiendom/components/Bygningsdetaljer.tsx","../../src/features/eiendom/detaljert-eiendom/components/FeltverdiForEiendomsdetaljer.tsx","../../src/features/eiendom/detaljert-eiendom/components/BortfestetDetalj.tsx","../../src/features/eiendom/detaljert-eiendom/components/DinRettighet.tsx","../../src/features/eiendom/detaljert-eiendom/components/Eierandeldetalj.tsx","../../src/features/eiendom/detaljert-eiendom/components/ÅpneGrunnboksutskriftButton.tsx","../../src/features/eiendom/detaljert-eiendom/components/Eierforhold.tsx","../../src/features/eiendom/detaljert-eiendom/components/SeeiendomButton.tsx","../../src/features/eiendom/detaljert-eiendom/components/FestegrunnerPåEiendomAccordion.tsx","../../src/features/eiendom/detaljert-eiendom/components/FlereOpplysninger.tsx","../../src/features/eiendom/detaljert-eiendom/components/KommuneOverskrift.tsx","../../src/features/eiendom/detaljert-eiendom/bygningsdetaljer/utils/arealmerknadUtil.ts","../../src/features/eiendom/detaljert-eiendom/components/Arealmerknad.tsx","../../src/features/eiendom/detaljert-eiendom/components/TeigMedFlereMatrikkelenheterDetalj.tsx","../../src/features/eiendom/detaljert-eiendom/components/Merknader.tsx","../../src/features/eiendom/detaljert-eiendom/components/AntallTeigerDetalj.tsx","../../src/features/eiendom/detaljert-eiendom/components/Eiendomsarealdetalj.tsx","../../src/features/eiendom/detaljert-eiendom/components/Matrikkelenhetstypedetalj.tsx","../../src/features/eiendom/detaljert-eiendom/components/Matrikkelnummerdetalj.tsx","../../src/features/eiendom/detaljert-eiendom/components/NøkkelinfoOmEiendommen.tsx","../../src/features/eiendom/detaljert-eiendom/components/DetaljertEiendom.tsx","../../src/features/eiendom/registrering/api/useEgenregistreringIsEnabled.ts","../../src/features/eiendom/registrering/components/VarselOmEgenregistrering.tsx","../../src/features/kartutsnitt/components/KartutsnittForEiendomskort.tsx","../../src/features/eiendom/components/MatrikkelnummerInfoPopover.tsx","../../src/features/eiendom/components/MatrikkeltypePopover.tsx","../../src/features/eiendom/eiendomsoversikt/components/EiendomskortContainer.tsx","../../src/features/eiendom/eiendomsoversikt/components/Eiendomskort.tsx","../../src/features/eiendom/eiendomsoversikt/components/HvorforSerJegIkkeEiendomCard.tsx","../../src/features/eiendom/eiendomsoversikt/components/EiendomskortListe.tsx","../../src/features/eiendom/eiendomsoversikt/components/MineEiendommer.tsx","../../src/features/eiendom/registrering/api/useEgenregistreringBruksenhet.ts","../../src/features/eiendom/registrering/types/schema.ts","../../src/features/eiendom/registrering/api/useOpprettEgenregistering.ts","../../src/features/eiendom/registrering/components/EgenregistreringKnapp.tsx","../../src/features/eiendom/registrering/components/skjemakomponenter/CircularIcon.tsx","../../src/features/eiendom/registrering/components/IkonOgFeltLabel.tsx","../../src/features/eiendom/kodelister/useKodelisterBygning.ts","../../src/features/eiendom/registrering/components/modaler/EgenregistreringOppsummering.tsx","../../src/features/eiendom/registrering/components/skjemakomponenter/EgenregistreringFooter.tsx","../../src/features/eiendom/registrering/components/skjemakomponenter/HjelpetekstForFelt.tsx","../../src/features/eiendom/registrering/components/skjemakomponenter/InvalidInputAlert.tsx","../../src/features/eiendom/registrering/components/skjemakomponenter/Radioknapper.tsx","../../src/features/eiendom/registrering/components/RegistrerAvløp.tsx","../../src/features/eiendom/registrering/components/skjemakomponenter/InputfeltTall.tsx","../../src/features/eiendom/registrering/components/RegistrerByggeår.tsx","../../src/features/eiendom/registrering/components/skjemakomponenter/CheckboxForEgenregistrering.tsx","../../src/features/eiendom/registrering/components/skjemakomponenter/Flervalg.tsx","../../src/features/eiendom/registrering/components/RegistrerEnergikilder.tsx","../../src/features/eiendom/registrering/components/RegistrerOppvarming.tsx","../../src/features/eiendom/registrering/components/RegistrerVannforsyning.tsx","../../src/features/eiendom/registrering/components/skjemakomponenter/bruksareal/EtasjeRegistrering.tsx","../../src/features/eiendom/registrering/components/skjemakomponenter/bruksareal/BruksarealForm.tsx","../../src/features/eiendom/registrering/components/skjemakomponenter/bruksareal/RegistrerBruksareal.tsx","../../src/features/eiendom/registrering/components/modaler/EgenregistreringDialog.tsx","../../src/features/eiendom/registrering/hooks/useMetadata.tsx","../../src/features/eiendom/registrering/components/Registreringsinfo.tsx","../../src/features/eiendom/registrering/components/EgenregistrertVerdi.tsx","../../src/features/eiendom/registrering/hooks/UseBruksenhet.ts","../../src/features/eiendom/registrering/components/MatrikkelVerdi.tsx","../../src/features/eiendom/registrering/components/EgenregistreringRad.tsx","../../src/features/eiendom/registrering/components/EgenregistrerteOpplysninger.tsx","../../src/features/eiendom/registrering/Egenregistrering.tsx","../../src/assets/hus_forstorrelsesglass.svg","../../src/assets/questionmark_woman.svg","../../src/features/infosider/components/InfoCardEksternLenke.tsx","../../src/features/infosider/hjelp-og-stotte/HjelpOgStøtte.tsx","../../src/features/infosider/components/InfoteksterSamlefil.tsx","../../src/features/infosider/om-tjenesten/OmTjenesten.tsx","../../src/features/infosider/personvern/PersonvernOgSikkerhetInfoside.tsx","../../src/features/core/components/layout/Landingsside.tsx","../../src/features/routing/ProtectedRoute.tsx","../../src/features/routing/Routes.tsx","../../src/features/routing/browserRouter.ts","../../src/App.tsx","../../src/features/localization/cookiebanner.ts","../../src/features/localization/egenregistrering/egenregistrering.ts","../../src/features/localization/egenregistrering/hjelpetekster.ts","../../src/features/localization/egenregistrering/skjemafooter.ts","../../src/features/localization/egenregistrering/skjemaoverskrifter.ts","../../src/features/localization/errorMeldinger.ts","../../src/features/localization/footer.ts","../../src/features/localization/navbar.ts","../../src/features/localization/nøkkelbegreper.ts","../../src/features/localization/pages/bruksenhetskort.ts","../../src/features/localization/pages/bygningskort.ts","../../src/features/localization/pages/cookie-erklaering.ts","../../src/features/localization/pages/datafelter.ts","../../src/features/localization/pages/detaljertInnsyn.ts","../../src/features/localization/pages/egenskaperVedBygning.ts","../../src/features/localization/pages/eiendomskort.ts","../../src/features/localization/pages/hjelpOgStøtte.ts","../../src/features/localization/pages/landingsside.ts","../../src/features/localization/pages/ofteStilteSpørsmål.ts","../../src/features/localization/pages/omTjenesten.ts","../../src/features/localization/pages/personvernOgSikkerhet.ts","../../src/features/localization/translations.ts","../../src/i18next-config.ts","../../src/main.tsx"],"sourcesContent":["export const apiRoute = \"/api\"\n\nexport const apiRouteLogin = `${apiRoute}/auth/login`\n\nexport const apiRouteLogout = `${apiRoute}/auth/logout`\n\ntype Env = \"localhost\" | \"dev\" | \"test\" | \"prod\"\n\nexport function getEnv(): Env | undefined {\n const hostname = window.location.hostname\n if (hostname === \"localhost\") return \"localhost\"\n if (hostname.includes(\"egenreg-dev.kartverket-intern.cloud\")) return \"dev\"\n if (hostname.includes(\"egenreg-staging.kartverket-intern.cloud\")) return \"test\"\n if (hostname.includes(\"mineiendom.kartverket.no\")) return \"prod\"\n // eslint-disable-next-line no-console\n console.warn(`Unknown hostname: \"${hostname}\". Can't determine environment.`)\n return undefined\n}\n","import { ErrorResponse } from \"../../shared-api/types/ApiResponseTypes\"\nimport { ErrorType } from \"./types/ErrorType\"\n\nexport class ApiError extends Error {\n type: ErrorType\n userErrorMessage: string\n constructor({ type, systemErrorMessage, userErrorMessage }: ErrorResponse) {\n super(systemErrorMessage)\n this.type = type\n this.userErrorMessage = userErrorMessage\n }\n}\n","import { apiRoute } from \"../../../../environments\"\nimport { ApiError } from \"../../../core/error-handling/ApiError\"\nimport {\n BortfestetDetaljertEiendom,\n BruksenhetResponse,\n DetaljertEiendomResponse,\n EidDetaljertEiendom,\n NummerertBruksenhet,\n UnummerertBruksenhet,\n} from \"../types/DetaljertEiendom\"\n\nexport const eiendomRouter = {\n hentEiendom: async (matrikkelenhetId: string) => {\n const res = await fetch(`${apiRoute}/eiendommer/${matrikkelenhetId}`)\n\n if (!res.ok) {\n const body = await res.json()\n throw new ApiError(body)\n }\n\n const detaljertEiendom: DetaljertEiendomResponse = await res.json()\n return detaljertEiendom\n },\n}\n\nexport function isBortfestetEiendom(\n data: DetaljertEiendomResponse,\n): data is BortfestetDetaljertEiendom {\n return data.type === \"bortfestet\"\n}\n\nexport const isEidEiendom = (data: DetaljertEiendomResponse): data is EidDetaljertEiendom => {\n return data.type === \"eid\"\n}\n\nexport const isNummerertBruksenhet = (data: BruksenhetResponse): data is NummerertBruksenhet => {\n return data.type === \"nummerert\"\n}\n\nexport const isUnummerertBruksenhet = (data: BruksenhetResponse): data is UnummerertBruksenhet => {\n return data.type === \"unummerert\"\n}\n","export const hentBygningstype = {\n \"1\": \"Bolig\",\n \"2\": \"Industri og lagerbygning\",\n \"3\": \"Kontor- og forretningsbygning\",\n \"4\": \"Samferdsels- og kommunikasjonsbygning\",\n \"5\": \"Hotell- og restaurantbygning\",\n \"6\": \"Kultur- og forskningsbygning\",\n \"7\": \"Helsebygning\",\n \"8\": \"Fengsel, beredskapsbygning mv.\",\n \"11\": \"Enebolig\",\n \"12\": \"Tomannsbolig\",\n \"13\": \"Rekkehus, kjedehus, andre småhus\",\n \"14\": \"Stort boligbygg\",\n \"15\": \"Bygning for bofellesskap\",\n \"16\": \"Fritidsbolig\",\n \"17\": \"Koie, seterhus og lignende\",\n \"18\": \"Garasje/uthus til bolig\",\n \"19\": \"Annen boligbygning\",\n \"21\": \"Industribygning\",\n \"22\": \"Energiforsyningsbygning\",\n \"23\": \"Lagerbygning\",\n \"24\": \"Fiskeri- og landbruksbygning\",\n \"31\": \"Kontorbygning\",\n \"32\": \"Forretningsbygning\",\n \"41\": \"Ekspedisjonsbygning, terminal\",\n \"42\": \"Telekommunikasjonsbygning\",\n \"43\": \"Garasje- og hangarbygning\",\n \"44\": \"Veg- og trafikktilsynsbygning\",\n \"51\": \"Hotellbygning\",\n \"52\": \"Bygning for overnatting\",\n \"53\": \"Restaurantbygning\",\n \"61\": \"Skolebygning\",\n \"62\": \"Universitet- og høgskolebygning\",\n \"64\": \"Museums- og biblioteksbygning\",\n \"65\": \"Idrettsbygning\",\n \"66\": \"Kulturhus\",\n \"67\": \"Bygning for religiøse aktiviteter\",\n \"71\": \"Sykehus\",\n \"72\": \"Sykehjem\",\n \"73\": \"Primærhelsebygning\",\n \"81\": \"Fengselsbygning\",\n \"82\": \"Beredskapsbygning\",\n \"83\": \"Monument\",\n \"84\": \"Offentlig toalett\",\n \"111\": \"Enebolig\",\n \"112\": \"Enebolig med hybelleilighet, sokkelleilighet o.l.\",\n \"113\": \"Våningshus\",\n \"121\": \"Tomannsbolig, vertikaldelt\",\n \"122\": \"Tomannsbolig, horisontaldelt\",\n \"123\": \"Våningshus, tomannsbolig, vertikaldelt\",\n \"124\": \"Våningshus, tomannsbolig, horisontaldelt\",\n \"131\": \"Rekkehus\",\n \"133\": \"Kjedehus inkl. atriumhus\",\n \"135\": \"Terrassehus\",\n \"136\": \"Annet småhus med 3 boliger eller flere\",\n \"141\": \"Stort frittliggende boligbygg på 2 etasjer\",\n \"142\": \"Stort frittliggende boligbygg på 3 og 4 etasjer\",\n \"143\": \"Stort frittliggende boligbygg på 5 etasjer eller over\",\n \"144\": \"Stort sammenbygd boligbygg på 2 etasjer\",\n \"145\": \"Stort sammenbygd boligbygg på 3 og 4 etasjer\",\n \"146\": \"Stort sammenbygd boligbygg på 5 etasjer og over\",\n \"151\": \"Bo- og servicesenter\",\n \"152\": \"Studenthjem/studentboliger\",\n \"159\": \"Annen bygning for bofellesskap\",\n \"161\": \"Fritidsbygning (hytter, sommerhus o.l.)\",\n \"162\": \"Helårsbolig benyttet som fritidsbolig\",\n \"163\": \"Våningshus benyttet som fritidsbolig\",\n \"171\": \"Seterhus, sel, rorbu o.l.\",\n \"172\": \"Skogs- og utmarkskoie, gamme\",\n \"181\": \"Garasje, uthus, anneks knyttet til bolig\",\n \"182\": \"Garasje, uthus, anneks knyttet til fritidsbolig\",\n \"183\": \"Naust, båthus, sjøbu\",\n \"193\": \"Boligbrakker\",\n \"199\": \"Annen boligbygning (f.eks. sekundærbolig reindrift)\",\n \"211\": \"Fabrikkbygning\",\n \"212\": \"Verkstedbygning\",\n \"214\": \"Bygning for renseanlegg\",\n \"216\": \"Bygning for vannforsyning, bl.a. pumpestasjon\",\n \"219\": \"Annen industribygning\",\n \"221\": \"Kraftstasjon (>15 000 kVA)\",\n \"223\": \"Transformatorstasjon (>10 000 kVA)\",\n \"229\": \"Annen energiforsyningsbygning\",\n \"231\": \"Lagerhall\",\n \"232\": \"Kjøle- og fryselager\",\n \"233\": \"Silobygning\",\n \"239\": \"Annen lagerbygning\",\n \"241\":\n \"Hus for dyr, fôrlager, strølager, frukt- og grønnsakslager, landbrukssilo, høy-/korntørke\",\n \"243\": \"Veksthus\",\n \"244\": \"Driftsbygning for fiske og fangst, inkl. oppdrettsanlegg\",\n \"245\": \"Naust/redskapshus for fiske\",\n \"248\": \"Annen fiskeri- og fangstbygning\",\n \"249\": \"Annen landbruksbygning\",\n \"311\": \"Kontor- og administrasjonsbygning, rådhus\",\n \"312\": \"Bankbygning, posthus\",\n \"313\": \"Mediebygning\",\n \"319\": \"Annen kontorbygning\",\n \"321\": \"Kjøpesenter, varehus\",\n \"322\": \"Butikkbygning\",\n \"323\": \"Bensinstasjon\",\n \"329\": \"Annen forretningsbygning\",\n \"330\": \"Messe- og kongressbygning\",\n \"411\": \"Ekspedisjonsbygning, flyterminal, kontrolltårn\",\n \"412\": \"Jernbane- og T-banestasjon\",\n \"415\": \"Godsterminal\",\n \"416\": \"Postterminal\",\n \"419\": \"Annen ekspedisjons- og terminalbygning\",\n \"429\": \"Telekommunikasjonsbygning\",\n \"431\": \"Parkeringshus\",\n \"439\": \"Annen garasje- hangarbygning\",\n \"441\": \"Trafikktilsynsbygning\",\n \"449\": \"Annen veg- og trafikktilsynsbygning\",\n \"511\": \"Hotellbygning\",\n \"512\": \"Motellbygning\",\n \"519\": \"Annen hotellbygning\",\n \"521\": \"Hospits, pensjonat\",\n \"522\": \"Vandrerhjem, feriehjem/-koloni, turisthytte\",\n \"523\": \"Appartement\",\n \"524\": \"Campinghytte/utleiehytte\",\n \"529\": \"Annen bygning for overnatting\",\n \"531\": \"Restaurantbygning, kafébygning\",\n \"532\": \"Sentralkjøkken, kantinebygning\",\n \"533\": \"Gatekjøkken, kioskbygning\",\n \"539\": \"Annen restaurantbygning\",\n \"611\": \"Lekepark\",\n \"612\": \"Barnehage\",\n \"613\": \"Barneskole\",\n \"614\": \"Ungdomsskole\",\n \"615\": \"Kombinert barne- og ungdomsskole\",\n \"616\": \"Videregående skole\",\n \"619\": \"Annen skolebygning\",\n \"621\": \"Universitets- og høgskolebygning med integrerte funksjoner, auditorium, lesesal o.a.\",\n \"623\": \"Laboratoriebygning\",\n \"629\": \"Annen universitets-, høgskole- og forskningsbygning\",\n \"641\": \"Museum, kunstgalleri\",\n \"642\": \"Bibliotek, mediatek\",\n \"643\": \"Zoologisk og botanisk hage\",\n \"649\": \"Annen museums- og bibliotekbygning\",\n \"651\": \"Idrettshall\",\n \"652\": \"Ishall\",\n \"653\": \"Svømmehall\",\n \"654\": \"Tribune og idrettsgarderobe\",\n \"655\": \"Helsestudio\",\n \"659\": \"Annen idrettsbygning\",\n \"661\": \"Kinobygning, teaterbygning, opera/konserthus\",\n \"662\": \"Samfunnshus, grendehus\",\n \"663\": \"Diskotek\",\n \"669\": \"Annet kulturhus\",\n \"671\": \"Kirke, kapell\",\n \"672\": \"Bedehus, menighetshus\",\n \"673\": \"Krematorium, gravkapell, bårehus\",\n \"674\": \"Synagoge, moské\",\n \"675\": \"Kloster\",\n \"679\": \"Annen bygning for religiøse aktiviteter\",\n \"719\": \"Sykehus\",\n \"721\": \"Sykehjem\",\n \"722\": \"Bo- og behandlingssenter, aldershjem\",\n \"723\": \"Rehabiliteringsinstitusjon, kurbad\",\n \"729\": \"Annet sykehjem\",\n \"731\": \"Klinikk, legekontor/-senter/-vakt\",\n \"732\": \"Helse- og sosialsenter, helsestasjon\",\n \"739\": \"Annen primærhelsebygning\",\n \"819\": \"Fengselsbygning\",\n \"821\": \"Politistasjon\",\n \"822\": \"Brannstasjon, ambulansestasjon\",\n \"823\": \"Fyrstasjon, losstasjon\",\n \"824\": \"Stasjon for radarovervåkning av fly- og/eller skipstrafikk\",\n \"825\": \"Tilfluktsrom/bunker\",\n \"829\": \"Annen beredskapsbygning\",\n \"830\": \"Monument\",\n \"840\": \"Offentlig toalett\",\n} as const\n\nexport type Bygningstypekode = keyof typeof hentBygningstype\n","export const vannforsyningkodeMapping = {\n \" \": \"Ikke registrert\",\n \"1\": \"Tilknyttet offentlig vannverk\",\n \"2\": \"Tilknyttet privat vannverk\",\n \"3\": \"Annen privat, innlagt\",\n \"4\": \"Annen privat, ikke innlagt\",\n} as const\n\nexport type Vannforsyningskode = keyof typeof vannforsyningkodeMapping\n","import { apiRoute } from \"../../../../environments\"\nimport { ErrorResponse } from \"../../../shared-api/types/ApiResponseTypes\"\nimport { ApiError } from \"../../../core/error-handling/ApiError\"\nimport { Eiendom } from \"../types/Eiendom\"\n\nexport const eiendommerRouter = {\n hentEiendommer: async () => {\n const res = await fetch(`${apiRoute}/eiendommer`)\n\n if (!res.ok) {\n const body: ErrorResponse = await res.json()\n throw new ApiError(body)\n }\n\n const data: Eiendom[] = await res.json()\n return data.map((eiendom, index) => ({\n ...eiendom,\n eiendomsIndex: index + 1,\n }))\n },\n}\n","import { apiRoute } from \"../../../environments\"\nimport { ApiError } from \"../../core/error-handling/ApiError\"\nimport { ErrorResponse, Kodelister } from \"../../shared-api/types/ApiResponseTypes\"\n\nexport const kodelisterMatrikkelRouter = {\n hentKodelister: async () => {\n const kodelisterMatrikkel = await fetch(`${apiRoute}/kodelister`)\n\n if (!kodelisterMatrikkel.ok) {\n const body: ErrorResponse = await kodelisterMatrikkel.json()\n throw new ApiError(body)\n }\n\n const kodelister: Kodelister = await kodelisterMatrikkel.json()\n\n return kodelister\n },\n}\n","import { apiRoute } from \"../../../environments\"\nimport { ApiError } from \"../../core/error-handling/ApiError\"\nimport { ErrorResponse } from \"../../shared-api/types/ApiResponseTypes\"\nimport { Kildemateriale } from \"../registrering/types/Enums\"\n\nexport const kodelisterBygningRouter = {\n hentKodelisterBygning: async () => {\n const kodelisterBygning = await fetch(`${apiRoute}/kildematerialkode`)\n\n if (!kodelisterBygning.ok) {\n const body: ErrorResponse = await kodelisterBygning.json()\n throw new ApiError(body)\n }\n\n const kildematrialekodeliste: Array = await kodelisterBygning.json()\n\n return kildematrialekodeliste\n },\n}\n","import { apiRoute } from \"../../../../environments\"\nimport { ApiError } from \"../../../core/error-handling/ApiError\"\nimport {\n EgenregistreringBruksenhet,\n EgenregistreringBygning,\n} from \"../types/EgenregistreringBygning\"\nimport {\n AvløpSchema,\n BruksarealSchema,\n ByggeårSchema,\n EnergikilderSchema,\n Felt,\n OppvarmingSchema,\n VannforsyningSchema,\n} from \"../types/schema\"\nimport { OpprettEgenregistreringDTO } from \"./useOpprettEgenregistering\"\n\nexport const egenregistreringRouter = {\n kanEgenregistrere: () => {\n const url = `${apiRoute}/kanEgenregistrere`\n\n return new Promise((resolve, reject) => {\n fetch(url)\n .then(async response => {\n if (!response.ok) {\n resolve(null)\n return\n }\n const kanEgenregistrere: {\n isEnabled: boolean\n } = await response.json()\n resolve(kanEgenregistrere.isEnabled)\n })\n .catch(error => {\n reject(new Error(error))\n })\n })\n },\n\n sendEgenregistrering: async <\n T extends\n | ByggeårSchema\n | EnergikilderSchema\n | BruksarealSchema\n | OppvarmingSchema\n | AvløpSchema\n | VannforsyningSchema,\n >(\n dto: OpprettEgenregistreringDTO,\n ) => {\n const url = `${apiRoute}/egenregistrering/${dto.bygningId}`\n const { egenregistrering, key } = dto\n\n const buildRequestBody = (\n key: Felt,\n bruksenhetId: string,\n egenregistrering:\n | ByggeårSchema\n | EnergikilderSchema\n | BruksarealSchema\n | OppvarmingSchema\n | AvløpSchema\n | VannforsyningSchema,\n ) => {\n if (key === \"bruksareal\" && \"bruksareal\" in egenregistrering) {\n return {\n bruksenhetId,\n [key]: {\n ...(egenregistrering.bruksareal.etasjeRegistreringer\n ? { etasjeRegistreringer: egenregistrering.bruksareal.etasjeRegistreringer }\n : {}),\n ...(egenregistrering.bruksareal.totaltBruksareal\n ? { totaltBruksareal: egenregistrering.bruksareal.totaltBruksareal }\n : {}),\n kildemateriale: egenregistrering.kildemateriale,\n },\n }\n }\n\n return {\n bruksenhetId,\n [key]: egenregistrering,\n }\n }\n\n const body = buildRequestBody(key, dto.bruksenhetId, egenregistrering)\n\n const res = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(body),\n })\n\n if (!res.ok) {\n const errorBody = await res.json()\n throw new ApiError(errorBody)\n }\n\n return res.text()\n },\n\n hentEgenregistrering: async (bygningId: string) => {\n const url = `${apiRoute}/egenregistrering/${bygningId}`\n const res = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n })\n\n if (!res.ok) {\n const body = await res.json()\n throw new ApiError(body)\n }\n\n const egenregistrering: EgenregistreringBygning = await res.json()\n\n return egenregistrering\n },\n hentEgenregistreringBruksenhet: async (bygningId: string, bruksenhetId: string) => {\n const url = `${apiRoute}/egenregistrering/${bygningId}/${bruksenhetId}`\n const res = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n })\n\n if (!res.ok) {\n const body = await res.json()\n throw new ApiError(body)\n }\n\n const egenregistrering: EgenregistreringBruksenhet = await res.json()\n\n return egenregistrering\n },\n}\n","import { apiRoute } from \"../../../environments\"\nimport { ApiError } from \"../../core/error-handling/ApiError\"\nimport { Matrikkelnummer } from \"../../eiendom/eiendomsoversikt/types/Eiendom\"\nimport { ErrorResponse } from \"../../shared-api/types/ApiResponseTypes\"\nimport { Polygoner } from \"../types/InteraktivtKart\"\n\nexport const interaktivtKartRouter = {\n hentTeigpolygonerForEiendom: (matrikkelnummer: Matrikkelnummer) => {\n const url = `${apiRoute}/koordinater/teigpolygoner`\n\n return new Promise((resolve, reject) => {\n fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(matrikkelnummer),\n })\n .then(async response => {\n if (!response.ok) {\n if (response.status === 404) {\n resolve(null)\n return\n }\n const body: ErrorResponse = await response.json()\n reject(new ApiError(body))\n return\n }\n return response.json()\n })\n .then(bygningsmarkører => {\n resolve(bygningsmarkører)\n })\n .catch(error => {\n reject(new Error(error))\n })\n })\n },\n}\n","import { apiRoute } from \"../../environments\"\nimport { ApiError } from \"../core/error-handling/ApiError\"\nimport { ErrorResponse } from \"../shared-api/types/ApiResponseTypes\"\nimport { Bruker } from \"./types/Bruker\"\n\nexport const brukerRouter = {\n hentBruker: async (): Promise => {\n const res = await fetch(`${apiRoute}/bruker/navn`)\n\n if (!res.ok) {\n const body: ErrorResponse = await res.json()\n throw new ApiError(body)\n }\n\n const data: Bruker = await res.json()\n return data\n },\n}\n","import { eiendomRouter } from \"../eiendom/detaljert-eiendom/api/eiendom\"\nimport { eiendommerRouter } from \"../eiendom/eiendomsoversikt/api/eiendommer\"\nimport { kodelisterMatrikkelRouter } from \"../eiendom/kodelister/kodelister\"\nimport { kodelisterBygningRouter } from \"../eiendom/kodelister/kodelisterBygning\"\nimport { egenregistreringRouter } from \"../eiendom/registrering/api/egenregistrering\"\nimport { interaktivtKartRouter } from \"../interaktivtKart/api/interaktivtKart\"\nimport { brukerRouter } from \"../user/bruker\"\n\nexport const api = {\n egenregistrering: egenregistreringRouter,\n eiendom: eiendomRouter,\n eiendommer: eiendommerRouter,\n bruker: brukerRouter,\n kart: interaktivtKartRouter,\n kodelister: kodelisterMatrikkelRouter,\n kodelisterFraBygning: kodelisterBygningRouter,\n}\n","import posthog from \"posthog-js\"\nimport { ApiError } from \"../core/error-handling/ApiError\"\nimport { isEidEiendom } from \"../eiendom/detaljert-eiendom/api/eiendom\"\nimport { hentBygningstype } from \"../eiendom/detaljert-eiendom/bygningsdetaljer/utils/bygningstypeUtil\"\nimport { vannforsyningkodeMapping } from \"../eiendom/detaljert-eiendom/bygningsdetaljer/utils/vannforsyningUtil\"\nimport { api } from \"../shared-api/router\"\nimport { Bruker } from \"../user/types/Bruker\"\n\nexport interface Consent {\n isVisible: boolean\n consentGiven: boolean\n showDetailedConsentPage?: boolean\n}\n\ninterface Payload {\n bruker: Bruker\n}\n\nexport type Action =\n | { type: \"GIVE_CONSENT\"; payload: Payload }\n | { type: \"DECLINE_CONSENT\" }\n | { type: \"SHOW_BANNER\" }\n\nexport const initialConsent = (): Consent => {\n const consent = localStorage.getItem(\"cookieConsent\")\n return {\n isVisible: consent === null,\n consentGiven: consent === \"true\",\n }\n}\n\nconst hentDetaljerteEiendommer = async () => {\n const eiendommer = await api.eiendommer.hentEiendommer()\n const detaljerteEiendommer = eiendommer.map(eiendom =>\n api.eiendom.hentEiendom(eiendom.matrikkelenhetId),\n )\n const res = await Promise.all(detaljerteEiendommer)\n\n return { eiendommer: res }\n}\n\nexport const reducer = (state: Consent, action: Action): Consent => {\n switch (action.type) {\n case \"GIVE_CONSENT\": {\n posthog.opt_in_capturing()\n posthog.identify(action.payload.bruker.id.toString())\n\n hentDetaljerteEiendommer()\n .then(payload => {\n const eiendommer = payload.eiendommer.map(eiendom => ({\n type: eiendom.type,\n matrikkelenhetstype: eiendom.matrikkelenhetstype,\n eierforhold: eiendom.eierforhold,\n erFestetBortTilAndre: eiendom.erFestetBortTilAndre,\n teigMedFlereMatrikkelenheter: eiendom.teigMedFlereMatrikkelenheter,\n kommunenavn: eiendom.kommunenavn,\n areal: eiendom.areal,\n bygninger: isEidEiendom(eiendom)\n ? eiendom.bygningerPåEiendom.map(b => ({\n bygningstype: hentBygningstype[b.bygningstype],\n bygningsstatus: b.bygningsstatus,\n bruksareal: b.bruksarealTotalt,\n antallEtasjer: b.etasjer.length,\n etasjer: b.etasjer,\n energikilder: b.energikilder,\n avlop: b.avløp,\n vannforsyning: vannforsyningkodeMapping[b.vannforsyning],\n oppvarming: b.oppvarming,\n }))\n : null,\n antallTeiger: eiendom.antallTeiger,\n antallFestegrunner: isEidEiendom(eiendom) ? eiendom.festegrunner.length : null,\n antallBygninger: isEidEiendom(eiendom) ? eiendom.bygningerPåEiendom.length : null,\n antallBruksenheter: isEidEiendom(eiendom) ? eiendom.bruksenheterPåEiendom.length : null,\n }))\n\n posthog.setPersonProperties({\n antallEiendommer: eiendommer.length,\n eiendommer: eiendommer,\n finnesIMatrikkelen: true,\n })\n })\n .catch((err: ApiError) => {\n if (err.type === \"FANT_INGEN_EIENDOMMER\") {\n posthog.setPersonProperties({ antallEiendommer: 0, finnesIMatrikkelen: true })\n } else if (err.type === \"FANT_IKKE_PERSON\") {\n posthog.setPersonProperties({ antallEiendommer: 0, finnesIMatrikkelen: false })\n }\n })\n\n posthog.startSessionRecording()\n\n localStorage.setItem(\"cookieConsent\", \"true\")\n return { isVisible: false, consentGiven: true }\n }\n\n case \"DECLINE_CONSENT\":\n posthog.stopSessionRecording()\n posthog.opt_out_capturing()\n\n localStorage.setItem(\"cookieConsent\", \"false\")\n return { ...state, isVisible: false, consentGiven: false }\n\n case \"SHOW_BANNER\":\n return { ...state, isVisible: true, showDetailedConsentPage: true }\n\n default:\n return state\n }\n}\n","import { Dispatch, createContext } from \"react\"\nimport { Action, Consent, initialConsent } from \"../consentReducer\"\n\ninterface ConsentContext {\n consent: Consent\n dispatch: Dispatch\n}\n\nexport const ConsentContext = createContext({\n consent: initialConsent(),\n dispatch: () => {},\n})\n","import { getBreakpointCondition, useKvibContext, useMediaQuery } from \"@kvib/react\"\n\ntype DeviceTypes = \"isDesktop\" | \"isTablet\" | \"isMobile\"\n\ntype ScreenTypes = {\n [Device in DeviceTypes]: boolean\n}\n\nexport const useScreenView = (): ScreenTypes => {\n const system = useKvibContext()\n\n const isDesktop = useMediaQuery(getBreakpointCondition(system, \"lg\"))\n const isTablet = useMediaQuery(getBreakpointCondition(system, \"mdToLg\"))\n const isMobile = useMediaQuery(getBreakpointCondition(system, \"mdDown\"))\n\n return { isDesktop, isTablet, isMobile }\n}\n","import { useScreenView } from \"../hooks/useScreenview\"\n\ntype FontSizeMap = {\n [key in ScreenView]: string\n}\n\ntype FontSize = {\n h1: FontSizeMap\n h2: FontSizeMap\n h3: FontSizeMap\n h4: FontSizeMap\n Brødtekst: FontSizeMap\n Lenke: FontSizeMap\n LitenBrødtekst: FontSizeMap\n}\n\ntype FontWeightMap = {\n [key in ScreenView]: string\n}\n\ntype FontWeight = {\n h1: FontWeightMap\n h2: FontWeightMap\n h3: FontWeightMap\n h4: FontWeightMap\n Brødtekst: FontWeightMap\n LitenBrødtekst: FontWeightMap\n Lenke: FontWeightMap\n}\n\nconst FontSizeValues: FontSize = {\n h1: { Desktop: \"3xl\", Mobile: \"2xl\", Tablet: \"2xl\" },\n h2: { Desktop: \"2xl\", Mobile: \"xl\", Tablet: \"xl\" },\n h3: { Desktop: \"xl\", Mobile: \"lg\", Tablet: \"lg\" },\n h4: { Desktop: \"md\", Mobile: \"md\", Tablet: \"md\" },\n Brødtekst: { Desktop: \"md\", Mobile: \"md\", Tablet: \"md\" },\n LitenBrødtekst: { Desktop: \"sm\", Mobile: \"sm\", Tablet: \"sm\" },\n Lenke: { Desktop: \"md\", Mobile: \"md\", Tablet: \"md\" },\n}\n\nconst FontWeightValues: FontWeight = {\n h1: { Desktop: \"bold\", Mobile: \"bold\", Tablet: \"bold\" },\n h2: { Desktop: \"bold\", Mobile: \"bold\", Tablet: \"bold\" },\n h3: { Desktop: \"bold\", Mobile: \"bold\", Tablet: \"bold\" },\n h4: { Desktop: \"bold\", Mobile: \"bold\", Tablet: \"bold\" },\n Brødtekst: { Desktop: \"regular\", Mobile: \"regular\", Tablet: \"regular\" },\n LitenBrødtekst: { Desktop: \"regular\", Mobile: \"regular\", Tablet: \"regular\" },\n Lenke: { Desktop: \"regular\", Mobile: \"regular\", Tablet: \"regular\" },\n}\n\nexport const useFontStyles = () => {\n const screenView = useGetCurrentScreenview()\n\n const getFontSize = (fontSizeType: keyof FontSize): string => {\n return FontSizeValues[fontSizeType][screenView]\n }\n\n const getFontWeight = (fontWeightType: keyof FontWeight): string => {\n return FontWeightValues[fontWeightType][screenView]\n }\n\n return {\n getFontSize,\n getFontWeight,\n }\n}\n\ninterface ScreenTypes {\n Desktop: \"Desktop\"\n Tablet: \"Tablet\"\n Mobile: \"Mobile\"\n}\n\ntype ScreenView = keyof ScreenTypes\n\nconst useGetCurrentScreenview = (): ScreenView => {\n const { isDesktop, isMobile, isTablet } = useScreenView()\n\n if (isDesktop) {\n return \"Desktop\"\n } else if (isTablet) {\n return \"Tablet\"\n } else if (isMobile) {\n return \"Mobile\"\n } else {\n return \"Mobile\"\n }\n}\n","import { Link, LinkProps } from \"@kvib/react\"\nimport { usePostHog } from \"posthog-js/react\"\nimport { useFontStyles } from \"../fontStyles\"\n\ninterface LenkeProps extends LinkProps {\n children: string\n tilAdresse: string\n preventTracking?: boolean\n}\n\nexport const EksternLenke = ({\n children,\n tilAdresse,\n preventTracking = false,\n ...props\n}: LenkeProps) => {\n const { getFontSize, getFontWeight } = useFontStyles()\n const posthog = usePostHog()\n\n const fontSize = getFontSize(\"Lenke\")\n const fontWeight = getFontWeight(\"Lenke\")\n\n return (\n \n !preventTracking && posthog.capture(\"Ekstern lenke\", { link_name: children, tilAdresse })\n }\n fontSize={fontSize}\n fontWeight={fontWeight}\n {...props}\n >\n {children}\n \n )\n}\n","import { Box, Container, ContainerProps, Flex } from \"@kvib/react\"\n\nconst Section = (props: ContainerProps) => {\n const horizontalPadding = { base: \"16px\", md: \"40px\", lg: \"120px\", xl: \"160px\" }\n return (\n \n \n \n {props.children}\n \n \n \n )\n}\n\nexport default Section\n","import { Box, Flex, Logo } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Link, LinkProps } from \"react-router\"\nimport { EksternLenke } from \"../../text/components/EksternLenke\"\nimport Section from \"../layout/Section\"\n\nexport const TilpassetFooter = () => {\n const { t } = useTranslation(\"footer\")\n const linkStyle = {\n color: \"#166630\",\n fontWeight: 400,\n textDecoration: \"underline\",\n whiteSpace: \"nowrap\",\n }\n\n const ThinLink = (props: LinkProps) => (\n \n {props.children}\n \n )\n\n return (\n
\n \n \n \n \n \n \n \n \n {t(\"om_tjenesten_link\")}\n {t(\"cookieserklaering\")}\n {t(\"personvern_og_sikkerhet_link\")}\n \n {t(\"personvern_erklæring_link\")}\n \n \n {t(\"tilgjengelighetserklæring_link\")}\n \n \n \n \n
\n )\n}\n","import { Alert, AlertContent, AlertDescription, CloseButton } from \"@kvib/react\"\nimport { useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useScreenView } from \"../../hooks/useScreenview\"\n\nexport const Driftsmelding = () => {\n const { t } = useTranslation(\"errormeldinger\")\n const [isOpen, setIsOpen] = useState(visDriftsmelding())\n const { isMobile } = useScreenView()\n\n const handleClose = () => {\n setIsOpen(false)\n localStorage.setItem(\"driftsmelding\", new Date().toISOString().slice(0, 10))\n }\n\n return (\n isOpen && (\n \n \n {t(\"nedetid_beskrivelse\")}\n \n \n \n )\n )\n}\n\nconst nedetid = [\"2025-01-30\", \"2025-02-27\", \"2025-03-27\", \"2025-04-24\"]\n\nconst visDriftsmelding = () => {\n const today = new Date().toISOString().slice(0, 10)\n if (localStorage.getItem(\"driftsmelding\") === today) return false\n else return nedetid.includes(today)\n}\n","import { useMutation, useQueryClient } from \"@tanstack/react-query\"\nimport posthog from \"posthog-js\"\nimport { useTranslation } from \"react-i18next\"\nimport { apiRouteLogout } from \"../../../environments\"\n\nconst useHandleLogout = () => {\n const { t } = useTranslation(\"errormeldinger\")\n const queryClient = useQueryClient()\n const handleLogoutMutation = useMutation({\n mutationFn: async () => {\n return fetch(apiRouteLogout, {\n method: \"POST\",\n headers: { \"Content-type\": \"text/plain\" },\n })\n .then(res => {\n if (!res.ok) {\n throw new Error(t(\"klarte_ikke_å_logge_ut_bruker\"))\n }\n return res.text()\n })\n .then(resText => {\n try {\n const url = new URL(resText)\n return url.href\n } catch {\n throw new Error(t(\"klarte_ikke_å_logge_ut_bruker\"))\n }\n })\n .catch(error => {\n throw new Error(error.message)\n })\n },\n onSuccess: res => {\n window.location.assign(res)\n posthog.reset()\n },\n onMutate: () => {\n posthog.stopSessionRecording()\n localStorage.removeItem(\"driftsmelding\")\n queryClient.invalidateQueries({ queryKey: [\"bruker\"] })\n },\n })\n\n return handleLogoutMutation\n}\n\nexport default useHandleLogout\n","import { useQuery } from \"@tanstack/react-query\"\nimport { usePostHog } from \"posthog-js/react\"\nimport { ApiError } from \"../../core/error-handling/ApiError\"\nimport { api } from \"../../shared-api/router\"\nimport { Bruker } from \"../types/Bruker\"\n\nexport const useBruker = () => {\n const posthog = usePostHog()\n const brukerQuery = useQuery({\n queryKey: [\"bruker\"],\n queryFn: api.bruker.hentBruker,\n })\n\n if (brukerQuery.isSuccess && posthog.has_opted_in_capturing()) {\n posthog.identify(brukerQuery.data.id.toString())\n }\n\n return brukerQuery\n}\n","import { useBruker } from \"../../user/hooks/useBruker\"\n\nconst useIsInnlogget = () => {\n return useBruker()\n}\n\nexport default useIsInnlogget\n","import { Text, TextProps } from \"@kvib/react\"\nimport { useFontStyles } from \"../fontStyles\"\n\ninterface BrødtekstProps extends TextProps {\n children: React.ReactNode\n litenVariant?: boolean\n}\n\nexport const Brødtekst = ({ children, litenVariant, ...props }: BrødtekstProps) => {\n const { getFontSize, getFontWeight } = useFontStyles()\n\n const fontSize = litenVariant ? getFontSize(\"LitenBrødtekst\") : getFontSize(\"Brødtekst\")\n const fontWeight = litenVariant ? getFontWeight(\"LitenBrødtekst\") : getFontWeight(\"Brødtekst\")\n\n return (\n \n {children}\n \n )\n}\n","export const freezeScroll = () => {\n const top = window.scrollY\n document.body.style.overflow = \"hidden\"\n window.onscroll = () => window.scrollTo(0, top)\n}\n\nexport const unfreezeScroll = () => {\n document.body.style.overflow = \"\"\n window.onscroll = null\n}\n","import { Flex, Icon, Skeleton } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useBruker } from \"../../../user/hooks/useBruker\"\nimport { Brødtekst } from \"../../text/components/Brødtekst\"\n\nexport const Brukerinfo = () => {\n const { data: bruker, isPending, isSuccess, isError } = useBruker()\n const { t } = useTranslation(\"navbar\")\n\n if (isError)\n return (\n \n \n \n {t(\"innlogget\")}\n \n \n )\n\n if (isPending || !isSuccess) return \n\n const navn = `${bruker.fornavn} ${bruker.etternavn}`\n\n return (\n \n \n {navn}\n \n )\n}\n\nconst SkeletonBrukerinfo = () => {\n const { t } = useTranslation(\"navbar\")\n return (\n \n \n \n \n \n {t(\"navn_placeholder\")}\n \n \n )\n}\n","import { Box, Button, Flex, Logo, VStack } from \"@kvib/react\"\nimport { useEffect, useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useNavigate } from \"react-router\"\nimport useHandleLogout from \"../../../auth/hooks/useHandleLogout\"\nimport useIsInnlogget from \"../../hooks/useIsInnlogget\"\nimport { useScreenView } from \"../../hooks/useScreenview\"\nimport { Brødtekst } from \"../../text/components/Brødtekst\"\nimport { freezeScroll, unfreezeScroll } from \"../../utils/navbarUtils\"\nimport Section from \"../layout/Section\"\nimport { Brukerinfo } from \"./Brukerinfo\"\n\nexport const NavBar = () => {\n const navigate = useNavigate()\n const { isDesktop } = useScreenView()\n const { mutate: logOut } = useHandleLogout()\n const [menuIsOpen, setMenuIsOpen] = useState(false)\n const { isSuccess, data: isInnloggetData } = useIsInnlogget()\n const isInnlogget = isSuccess && isInnloggetData\n const { t } = useTranslation([\"navbar\", \"nøkkelbegreper\"])\n\n useEffect(() => {\n if (isDesktop) setMenuIsOpen(false)\n }, [isDesktop])\n\n useEffect(() => {\n if (menuIsOpen) {\n freezeScroll()\n } else {\n unfreezeScroll()\n }\n }, [menuIsOpen])\n\n const handleNavigate = (path: string) => {\n setMenuIsOpen(false)\n navigate(path)\n }\n\n const LogoMedLenke = () => (\n handleNavigate(\"/\")}\n cursor=\"pointer\"\n >\n \n \n \n \n )\n\n const DesktopNavBar = () => (\n
\n \n \n {isInnlogget && (\n \n navigate(\"/hjelp\")}\n p={0}\n iconAriaIsHidden\n >\n {t(\"hjelp\", { ns: \"navbar\" })}\n \n \n logOut()}\n iconAriaIsHidden\n >\n {t(\"logg_ut\", { ns: \"navbar\" })}\n \n \n )}\n \n
\n )\n\n const MobileNavBar = () => (\n \n
\n \n \n {isInnlogget && (\n setMenuIsOpen(!menuIsOpen)}\n minW=\"80px\"\n >\n {t(\"meny\", { ns: \"navbar\" })}\n \n )}\n \n
\n {menuIsOpen && isInnlogget && }\n \n )\n\n const MobileMenu = () => (\n
\n \n \n \n Logget inn som\n \n \n \n \n handleNavigate(\"/\")}\n />\n handleNavigate(\"/hjelp\")}\n />\n \n \n logOut()}\n />\n \n \n
\n )\n\n const MenuButton = ({\n icon,\n label,\n onClick,\n }: {\n icon: \"logout\" | \"help\" | \"home\"\n label: string\n onClick: () => void\n }) => (\n \n )\n\n return isDesktop ? : \n}\n","import {\n Breadcrumb,\n BreadcrumbCurrentLink,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbProps,\n Flex,\n Icon,\n} from \"@kvib/react\"\nimport { NavLink, useLocation, useMatches } from \"react-router\"\nimport useIsInnlogget from \"../../hooks/useIsInnlogget\"\nimport { useScreenView } from \"../../hooks/useScreenview\"\n\nimport { useTranslation } from \"react-i18next\"\n\nexport const NavBreadcrumb = (props: BreadcrumbProps) => {\n const location = useLocation()\n const matches = useMatches()\n const { t } = useTranslation(\"errormeldinger\")\n const loggedIn = useIsInnlogget()\n const { isDesktop } = useScreenView()\n const breadcrumbFontSize = isDesktop ? \"md\" : \"sm\"\n\n if (loggedIn.isPending) return null\n\n const isInnlogget = loggedIn.isSuccess && loggedIn.data\n\n const activeRoutes = matches.filter(match => match.handle)\n const breadcrumb = matches.filter(match => match.handle != \"protected\")\n\n return (\n \n \n \n }\n {...props}\n >\n {breadcrumb.map((route, index) => {\n if (typeof route.handle === \"string\")\n return (\n \n {index === 0 && }\n {location.pathname === route.pathname ? (\n \n {activeRoutes.some(match => match.handle === \"protected\") && !isInnlogget\n ? t(\"fant_ikke_side\")\n : route.handle}\n \n ) : (\n \n {route.handle}\n \n )}\n \n )\n })}\n \n )\n}\n","import { Container, SkipNavContent } from \"@kvib/react\"\nimport { usePostHog } from \"posthog-js/react\"\nimport { useCallback, useEffect } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Outlet, ScrollRestoration, useLocation } from \"react-router\"\nimport { getEnv } from \"./environments\"\nimport { TilpassetFooter } from \"./features/core/components/footer/TilpassetFooter\"\nimport Section from \"./features/core/components/layout/Section\"\nimport { Driftsmelding } from \"./features/core/components/navbar/Driftsmelding\"\nimport { NavBar } from \"./features/core/components/navbar/NavBar\"\nimport { NavBreadcrumb } from \"./features/core/components/navbar/NavBreadcrumb\"\n\nconst Root = () => {\n const location = useLocation()\n\n const posthog = usePostHog()\n const visBreadcrumb = location.pathname !== \"/\"\n const { t } = useTranslation([\n \"hjelpOgStøtte\",\n \"omTjenesten\",\n \"personvernOgSikkerhet\",\n \"landingsside\",\n ])\n\n const getSidetittel = useCallback(\n (path: string) => {\n switch (path) {\n case \"/hjelp\":\n return t(\"tab_tittel\", { ns: \"hjelpOgStøtte\" })\n case \"/om-tenesta\":\n return t(\"tab_tittel\", { ns: \"omTjenesten\", lng: \"nn-NO\" })\n case \"/personvern\":\n return t(\"tab_tittel\", { ns: \"personvernOgSikkerhet\" })\n default:\n return t(\"tab_tittel\", { ns: \"landingsside\" })\n }\n },\n [t],\n )\n\n const getBakgrunnsfarge = () => {\n switch (location.pathname.split(\"/\")[1]) {\n case \"eiendom\":\n return \"white\"\n case \"hjelp\":\n return \"white\"\n case \"egenregistreringer\":\n return \"white\"\n default:\n return \"gray.50\"\n }\n }\n\n useEffect(() => {\n document.title = getSidetittel(location.pathname) as string\n }, [getSidetittel, location.pathname])\n\n useEffect(() => {\n if (getEnv() === \"localhost\") return\n\n posthog.capture(\"$pageview\", {\n $current_url: window.location.href,\n })\n }, [location, posthog])\n\n return (\n <>\n \n \n \n \n {visBreadcrumb && (\n
\n \n
\n )}\n \n
\n \n \n {\n const pathsWithoutScrollRestoration = [\"/eiendom\"]\n return pathsWithoutScrollRestoration.includes(location.pathname)\n ? location.pathname\n : location.key\n }}\n />\n \n )\n}\n\nexport default Root\n","import { Stack, StackProps } from \"@kvib/react\"\n\nconst StackMedGap = (props: StackProps) => (\n \n {props.children}\n \n)\n\nexport default StackMedGap\n","import { Heading, HeadingProps } from \"@kvib/react\"\nimport { useFontStyles } from \"../fontStyles\"\n\ninterface OverskriftProps extends HeadingProps {\n variant: \"h1\" | \"h2\" | \"h3\" | \"h4\"\n children: string\n}\n\nexport const Overskrift = ({ children, variant, ...props }: OverskriftProps) => {\n const { getFontSize, getFontWeight } = useFontStyles()\n\n const fontSize = getFontSize(variant)\n const fontWeight = getFontWeight(variant)\n\n return (\n \n {children}\n \n )\n}\n","import { Card, CardBody, CardHeader, CardProps } from \"@kvib/react\"\nimport { ReactNode } from \"react\"\nimport { Overskrift } from \"../../core/text/components/Overskrift\"\n\ninterface InfoCardProps extends CardProps {\n children: ReactNode\n cardheader: string\n}\nexport const InfoCard = (props: InfoCardProps) => {\n const { children, cardheader } = props\n return (\n \n \n {cardheader}\n \n {children}\n \n )\n}\n","import { Table, TableBody, TableCell, TableColumnHeader, TableHeader, TableRow } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\n\nconst CookieTabell = () => {\n const { t } = useTranslation(\"cookies\")\n const cookietabell = t(\"cookiestabell\", { returnObjects: true })\n return (\n \n \n \n {t(\"cookiestabell_header\", { returnObjects: true }).map(header => (\n {header}\n ))}\n \n \n \n {cookietabell.map(cookie => (\n \n {cookie.navn}\n {cookie.formal}\n {cookie.valgfrihet}\n {cookie.utsteder}\n \n ))}\n \n
\n )\n}\n\nexport default CookieTabell\n","import { Box, Button, Center, Flex } from \"@kvib/react\"\nimport { useContext } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport Section from \"../core/components/layout/Section\"\nimport StackMedGap from \"../core/components/layout/StackMedGap\"\nimport { useScreenView } from \"../core/hooks/useScreenview\"\nimport { Brødtekst } from \"../core/text/components/Brødtekst\"\nimport { EksternLenke } from \"../core/text/components/EksternLenke\"\nimport { Overskrift } from \"../core/text/components/Overskrift\"\nimport { InfoCard } from \"../infosider/components/InfoCard\"\nimport { useBruker } from \"../user/hooks/useBruker\"\nimport CookieTabell from \"./components/CookiesTabell\"\nimport { ConsentContext } from \"./context/ConsentContext\"\n\nconst Cookieserklæring = () => {\n const { t } = useTranslation(\"cookies\", { lng: \"nn-NO\" })\n const { isError } = useBruker()\n const { isMobile } = useScreenView()\n\n const { dispatch } = useContext(ConsentContext)\n\n return (\n
\n
\n \n {t(\"tittel\")}\n\n \n \n {t(\"informasjonskapsler\", { returnObjects: true }).avsnitt.map(tekst => (\n \n \n {tekst}\n \n {t(\"nødvendige_informasjonskapsler.nkom_lenke\")}\n \n \n
\n
\n ))}\n
\n {t(\"nødvendige_informasjonskapsler.tittel\")}\n \n {t(\"nødvendige_informasjonskapsler\", { returnObjects: true }).avsnitt.map(tekst => (\n \n {tekst}\n
\n
\n ))}\n
\n\n {t(\"webanalyse.tittel\")}\n \n {t(\"webanalyse\", { returnObjects: true }).avsnitt.map(tekst => (\n \n {tekst}\n
\n
\n ))}\n
\n {!isError && (\n <>\n {t(\"administrer_cookies.tittel\")}\n \n {t(\"administrer_cookies.avsnitt\", { returnObjects: true }).map(tekst => (\n \n {tekst}\n
\n
\n ))}\n
\n \n dispatch({ type: \"SHOW_BANNER\" })}\n >\n {t(\"administrer_cookies.tittel\")}\n \n \n \n )}\n
\n\n {!isMobile && (\n \n \n \n )}\n\n \n \n {t(\"cookiesforklaring\", { returnObjects: true }).map(tekst => (\n \n {tekst.tittel}\n {tekst.avsnitt}\n
\n
\n ))}\n
\n
\n
\n
\n
\n )\n}\n\nexport default Cookieserklæring\n","import { Box, Button, Flex, Heading, Separator, Switch } from \"@kvib/react\"\nimport { Dispatch, SetStateAction, useContext, useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\nimport { Bruker } from \"../../user/types/Bruker\"\nimport { ConsentContext } from \"../context/ConsentContext\"\n\nconst InformasjonskapslerOversikt = ({\n setShow,\n bruker,\n}: {\n setShow: Dispatch>\n bruker: Bruker\n}) => {\n const { consent, dispatch } = useContext(ConsentContext)\n\n const [isSwitchOn, setIsSwitchOn] = useState(consent.consentGiven)\n\n const { t } = useTranslation(\"cookiebanner\")\n\n return (\n \n \n {t(\"nodvendige_informasjonskapsler_overskrift\")}\n {t(\"nodvendige_informasjonskapsler_info\")}\n \n \n \n {t(\"webanalyse\")}\n \n {t(\"webanalyse_info\")}\n setIsSwitchOn(!isSwitchOn)}\n />\n \n \n {\n setShow(false)\n if (isSwitchOn) {\n dispatch({ type: \"GIVE_CONSENT\", payload: { bruker } })\n } else {\n dispatch({ type: \"DECLINE_CONSENT\" })\n }\n }}\n >\n {t(\"lagre_valg\")}\n \n \n )\n}\n\nexport default InformasjonskapslerOversikt\n","import { Box, Button, Flex, Heading } from \"@kvib/react\"\nimport { useContext, useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Link } from \"react-router\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\nimport { useBruker } from \"../../user/hooks/useBruker\"\nimport { ConsentContext } from \"../context/ConsentContext\"\nimport InformasjonskapslerOversikt from \"./InformasjonskapslerOversikt\"\n\nconst CookieBanner = () => {\n const { consent, dispatch } = useContext(ConsentContext)\n const { data: bruker } = useBruker()\n const [show, setShow] = useState(false)\n\n const { t } = useTranslation(\"cookiebanner\")\n\n if (!consent.isVisible || !bruker) return null\n\n const handleAccept = () => {\n dispatch({ type: \"GIVE_CONSENT\", payload: { bruker } })\n }\n\n return (\n \n \n {t(\"overskrift\")}\n \n\n <>\n \n {t(\"informasjonskapsler_info\")}{\" \"}\n \n {t(\"les_mer_cookieerklaering_lenke\")}\n \n \n\n {!(show || consent.showDetailedConsentPage) && (\n \n setShow(true)}\n aria-label={t(\"tilpass_aria\")}\n >\n {t(\"tilpass\")}\n \n \n \n )}\n \n\n {(show || consent.showDetailedConsentPage) && (\n \n )}\n \n )\n}\n\nexport default CookieBanner\n","import { ReactIntegration, createReactRouterV6DataOptions } from \"@grafana/faro-react\"\nimport { getWebInstrumentations, initializeFaro } from \"@grafana/faro-web-sdk\"\nimport { matchRoutes } from \"react-router\"\nimport { getEnv } from \"./environments\"\n\nconst faro = initializeFaro({\n app: {\n name: \"egenreg-frontend\",\n environment: getEnv(),\n },\n url: \"https://faro.atgcp1-prod.kartverket.cloud/collect\",\n instrumentations: [\n ...getWebInstrumentations(),\n new ReactIntegration({\n router: createReactRouterV6DataOptions({\n matchRoutes,\n }),\n }),\n ],\n sessionTracking: {\n enabled: false,\n },\n})\n\nexport default faro\n","import i18n from \"i18next\"\nimport { apiRouteLogin } from \"../../environments\"\n\n// Del 1 av autentisering.\n// /login i backend som gir oss en /authorize-url mot ID-porten\nexport async function getAuthUrlAndRedirect() {\n try {\n const response = await fetch(apiRouteLogin)\n if (!response.ok)\n throw new Error(\n i18n.t(\"feil_i_autentiseringsrespons\", { ns: \"errormeldinger\", status: response.status }),\n )\n const authUrl = await response.text()\n window.location.assign(authUrl)\n } catch {\n throw new Error(i18n.t(\"kunne_ikke_autentisere_bruker\", { ns: \"errormeldinger\" }))\n }\n}\n","import { useTranslation } from \"react-i18next\"\nimport { getAuthUrlAndRedirect } from \"../authentication\"\nimport { toaster } from \"@kvib/react\"\n\nexport const useHandleLogin = () => {\n const innloggingFeiletToast = useInnloggingFeiletToast()\n\n const handleLogin = () => {\n getAuthUrlAndRedirect().catch(() => innloggingFeiletToast())\n }\n\n return handleLogin\n}\n\nconst useInnloggingFeiletToast = () => {\n const { t } = useTranslation(\"errormeldinger\")\n\n const showToast = () => {\n toaster.create({\n title: t(\"kan_ikke_logge_inn_tittel\"),\n description: t(\"kan_ikke_logge_inn_beskrivelse\"),\n type: \"error\",\n duration: 8000,\n })\n }\n\n return showToast\n}\n","import { Box, Flex } from \"@kvib/react\"\nimport { ReactNode } from \"react\"\nimport { Brødtekst } from \"../text/components/Brødtekst\"\nimport { Overskrift } from \"../text/components/Overskrift\"\n\ninterface ErrorDisplayProps {\n alertTitle: string\n icon: ReactNode\n alertMessage?: string\n actionButton?: ReactNode\n}\n\nexport const ErrorDisplay = (props: ErrorDisplayProps) => {\n document.title = props.alertTitle\n\n return (\n \n {props.icon}\n \n \n {props.alertTitle}\n \n {props.alertMessage && {props.alertMessage}}\n \n {props.actionButton}\n \n )\n}\n","export default \"__VITE_ASSET__DOP_NyVe__\"","import { List, ListItem, Stack } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\nconst InfotekstHvorforDukkerIkkeEiendommenMinOpp = ({\n skalViseFnrSomÅrsak,\n}: {\n skalViseFnrSomÅrsak?: boolean\n}) => {\n const { t } = useTranslation(\"ofteStilteSpørsmål\")\n const avsnitt = t(\"hvorfor_ser_jeg_ikke_eiendommen\", {\n returnObjects: true,\n }).avsnitt\n\n return (\n \n \n {avsnitt[0]}
{avsnitt[1]}\n
\n \n {skalViseFnrSomÅrsak && (\n \n {avsnitt[2]} {avsnitt[3]}\n \n )}\n \n {avsnitt[4]} {avsnitt[5]}\n \n \n {avsnitt[6]} {avsnitt[7]}\n \n \n {avsnitt[8]} {avsnitt[9]}\n \n \n {avsnitt[10]} {avsnitt[11]}\n \n \n
\n )\n}\n\nexport default InfotekstHvorforDukkerIkkeEiendommenMinOpp\n","import { Box, Flex } from \"@kvib/react\"\nimport { ReactNode } from \"react\"\nimport { Overskrift } from \"../text/components/Overskrift\"\n\nexport const FinnerIkkeEiendommerErrorBox = ({\n tittel,\n children,\n}: {\n tittel: string\n children: ReactNode\n}) => (\n \n {tittel}\n {children}\n \n)\n","import { Button, Flex, Image } from \"@kvib/react\"\nimport { usePostHog } from \"posthog-js/react\"\nimport { useNavigate } from \"react-router\"\nimport manglerEiendommerIllustrasjon from \"../../../assets/questionmark_man.svg\"\nimport useHandleLogout from \"../../auth/hooks/useHandleLogout\"\nimport InfotekstHvorforDukkerIkkeEiendommenMinOpp from \"../../infosider/hjelp-og-stotte/InfotekstHvorforDukkerIkkeEiendommenMinOpp\"\nimport { useScreenView } from \"../hooks/useScreenview\"\nimport { FinnerIkkeEiendommerErrorBox } from \"./FinnerIkkeEiendommerInfoboks\"\nimport { ErrorType } from \"./types/ErrorType\"\nimport { useTranslation } from \"react-i18next\"\n\ninterface Props {\n errorType: Extract\n}\n\nconst FinnerIkkeEiendommer = (props: Props) => {\n const brukerIkkeFunnet = !!(props.errorType === \"FANT_IKKE_PERSON\")\n const posthog = usePostHog()\n const navigate = useNavigate()\n const { isDesktop } = useScreenView()\n const { mutate: handleLogout } = useHandleLogout()\n\n const { t } = useTranslation(\"ofteStilteSpørsmål\")\n const tekster = t(\"hvorfor_ser_jeg_ikke_eiendommen\", {\n returnObjects: true,\n })\n\n return (\n \n \n \n {isDesktop && (\n \n )}\n \n {brukerIkkeFunnet ? (\n \n ) : (\n {\n navigate(\"/hjelp\")\n posthog.capture(\"Les mer om utvalget\")\n }}\n iconAriaIsHidden\n w=\"fit-content\"\n mt=\"24px\"\n >\n {tekster.les_mer}\n \n )}\n \n )\n}\n\nexport default FinnerIkkeEiendommer\n","import { Button, Icon } from \"@kvib/react\"\nimport { useQueryErrorResetBoundary } from \"@tanstack/react-query\"\nimport i18n from \"i18next\"\nimport { useEffect } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useNavigate, useRouteError } from \"react-router\"\nimport faro from \"../../../faro-config\"\nimport { useHandleLogin } from \"../../auth/hooks/useHandleLogin\"\nimport { useScreenView } from \"../hooks/useScreenview\"\nimport { ApiError } from \"./ApiError\"\nimport { ErrorDisplay } from \"./ErrorDisplay\"\nimport FinnerIkkeEiendommer from \"./FinnerIkkeEiendommer\"\n\nconst ErrorHandler = ({ apiError }: { apiError?: ApiError }) => {\n const { isDesktop } = useScreenView()\n const iconSize = isDesktop ? 200 : 100\n const iconColor = \"#6C79804D\"\n\n const handleLogin = useHandleLogin()\n const routerError = useRouteError() as ApiError\n const { t } = useTranslation(\"errormeldinger\")\n\n const error = apiError || routerError\n\n const { reset } = useQueryErrorResetBoundary()\n const navigate = useNavigate()\n\n useEffect(() => {\n if (error) {\n faro.api.pushError(error)\n }\n }, [error])\n\n switch (error.type) {\n case \"IKKE_AUTENTISERT\":\n return (\n }\n actionButton={\n {\n handleLogin()\n reset()\n }}\n >\n {t(\"logg_inn_på_nytt\")}\n \n }\n />\n )\n case \"FANT_IKKE_INNHOLD\":\n return (\n }\n actionButton={\n {\n reset()\n navigate(\"/\")\n }}\n >\n {t(\"tilbake_til_start\")}\n \n }\n />\n )\n case \"EGENREGISTRERING_IKKE_TILGJENGELIG\":\n return (\n }\n actionButton={\n {\n reset()\n navigate(\"/\")\n }}\n >\n {t(\"tilbake_til_start\")}\n \n }\n />\n )\n case \"FANT_INGEN_EIENDOMMER\":\n return \n\n case \"FANT_IKKE_PERSON\":\n return \n\n case \"UVENTET_FEIL\":\n return (\n }\n />\n )\n default:\n return (\n }\n />\n )\n }\n}\n\nconst getErrorTitle = (errorType: ApiError): string => {\n switch (errorType.type) {\n case \"IKKE_AUTENTISERT\":\n return i18n.t(\"utløpt_session\", { ns: \"errormeldinger\" })\n case \"UVENTET_FEIL\":\n return i18n.t(\"intern_systemfeil\", { ns: \"errormeldinger\" })\n case \"FANT_IKKE_INNHOLD\":\n return i18n.t(\"fant_ikke_innhold_tittel\", { ns: \"errormeldinger\" })\n case \"EGENREGISTRERING_IKKE_TILGJENGELIG\":\n return \"Egenregistering er ikke tilgjengelig\"\n default:\n return i18n.t(\"ukjent_feil\", { ns: \"errormeldinger\" })\n }\n}\n\nexport default ErrorHandler\n","import i18n from \"i18next\"\nimport { ApiError } from \"../ApiError\"\n\nexport const finnerIngenPathsSomMatcher = new ApiError({\n type: \"FANT_IKKE_INNHOLD\",\n systemErrorMessage: i18n.t(\"fant_ikke_innhold_tittel\", { ns: \"errormeldinger\" }),\n userErrorMessage: i18n.t(\"fant_ikke_innhold_beskrivelse\", { ns: \"errormeldinger\" }),\n})\n","export default \"__VITE_ASSET__BulPXtED__\"","export default \"__VITE_ASSET__aJTPhTV0__\"","export default \"__VITE_ASSET__Db91OVEr__\"","import {\n Accordion,\n AccordionIcon,\n AccordionItem,\n AccordionItemContent,\n AccordionItemTrigger,\n Box,\n} from \"@kvib/react\"\nimport posthog from \"posthog-js\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\n\ninterface NøstetAccordionProps {\n items: { tittel: string; avsnitt: string[] }[]\n}\n\nexport const NøstetAccordion = ({ items }: NøstetAccordionProps) => (\n \n {items.map(item => (\n posthog.capture(item.tittel)}\n >\n \n \n {item.tittel}\n \n \n \n \n {item.avsnitt.map(avsnitt => (\n {avsnitt}\n ))}\n \n \n ))}\n \n)\n","import {\n Accordion,\n AccordionIcon,\n AccordionItem,\n AccordionItemContent,\n AccordionItemTrigger,\n Box,\n} from \"@kvib/react\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\n\nimport { usePostHog } from \"posthog-js/react\"\nimport { Trans } from \"react-i18next\"\nimport { EksternLenke } from \"../../core/text/components/EksternLenke\"\nimport { TittelAvsnitt } from \"../../localization/translations\"\nimport { NøstetAccordion } from \"./NøstetAccordion\"\n\ninterface ForklaringAccordionProps {\n translations: T[] | string\n}\n\nconst ForklaringAccordion = <\n T extends {\n tittel: string\n avsnitt: string[]\n lenker?: { lenke: string; tekst: string }[]\n statuser?: TittelAvsnitt[]\n matrikkelenhetstyper?: TittelAvsnitt[]\n arealmerknader?: TittelAvsnitt[]\n },\n>(\n props: ForklaringAccordionProps,\n) => {\n const { translations: datafelter_accordion } = props\n\n const posthog = usePostHog()\n\n return (\n \n {Array.isArray(datafelter_accordion) &&\n datafelter_accordion.map((datafelt, index) => (\n \n posthog.capture(datafelt.tittel)}\n >\n \n {datafelt.tittel}\n \n \n \n \n {datafelt.avsnitt.map(avsnitt => (\n \n {avsnitt}\n \n ))}\n\n {datafelt.lenker?.map(lenke => (\n \n \n {lenke.tekst}\n \n \n ))}\n\n {datafelt.statuser && (\n ({\n tittel: status.tittel,\n avsnitt: status.avsnitt,\n }))}\n />\n )}\n\n {datafelt.matrikkelenhetstyper && (\n ({\n tittel: matrikkelenhetstype.tittel,\n avsnitt: matrikkelenhetstype.avsnitt,\n }))}\n />\n )}\n\n {datafelt.arealmerknader && (\n ({\n tittel: arealmerknad.tittel,\n avsnitt: arealmerknad.avsnitt,\n }))}\n />\n )}\n \n \n ))}\n \n )\n}\n\nexport default ForklaringAccordion\n","import { Box, Flex, Image } from \"@kvib/react\"\nimport { useScreenView } from \"../../core/hooks/useScreenview\"\nimport { Overskrift } from \"../../core/text/components/Overskrift\"\nimport ForklaringAccordion from \"./ForklaringAccordion\"\n\ninterface ForklaringAccordionWrapperProps {\n tittel: string\n ikon: string\n translations: T[]\n}\n\nconst ForklaringAccordionWrapper = <\n T extends {\n tittel: string\n avsnitt: string[]\n lenker?: { lenke: string; tekst: string }[]\n },\n>(\n props: ForklaringAccordionWrapperProps,\n) => {\n const { tittel, ikon, translations } = props\n const { isDesktop } = useScreenView()\n return (\n \n \n \n {tittel}\n \n \n \n \n \n )\n}\n\nexport default ForklaringAccordionWrapper\n","import { Stack } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport bygning from \"../../assets/bygning.svg\"\nimport seksjon from \"../../assets/seksjon.svg\"\nimport teig from \"../../assets/teig.svg\"\nimport Section from \"../core/components/layout/Section\"\nimport { Overskrift } from \"../core/text/components/Overskrift\"\nimport ForklaringAccordionWrapper from \"./components/ForklaringAccordionWrapper\"\n\nconst Datafelter = () => {\n const { t } = useTranslation([\"datafelter\"])\n const eiendomsforklaringer = t(\"datafelter_eiendom\", { returnObjects: true })\n const bygningsforklaringer = t(\"datafelter_bygning\", { returnObjects: true })\n const bruksenhetforklaringer = t(\"datafelter_bruksenhet\", { returnObjects: true })\n return (\n
\n {t(\"hva_betyr_de_forskjellige_datafeltene\")}\n \n \n \n \n \n
\n )\n}\n\nexport default Datafelter\n","/**\n * Konverterer det gitte antallet minutter til millisekunder.\n *\n * @param {number} minutter - Antall minutter.\n * @returns {number} Den tilsvarende verdien i millisekunder.\n */\nexport const konverterFraMinutterTilMillisekunder = (minutter: number) => minutter * 60 * 1000\n","import { useQuery } from \"@tanstack/react-query\"\nimport { konverterFraMinutterTilMillisekunder } from \"../../../../utils/konverterFraMinutterTilMillisekunder\"\nimport { ApiError } from \"../../../core/error-handling/ApiError\"\nimport { api } from \"../../../shared-api/router\"\nimport { Eiendom } from \"../types/Eiendom\"\n\nexport const useEiendommer = () => {\n const eiendommerQuery = useQuery({\n queryKey: [\"eiendommer\"],\n staleTime: konverterFraMinutterTilMillisekunder(15),\n queryFn: api.eiendommer.hentEiendommer,\n throwOnError: err => err.type !== \"FANT_INGEN_EIENDOMMER\",\n })\n\n return eiendommerQuery\n}\n","import { useQueries, useQueryClient } from \"@tanstack/react-query\"\nimport { konverterFraMinutterTilMillisekunder } from \"../../../../utils/konverterFraMinutterTilMillisekunder\"\nimport { api } from \"../../../shared-api/router\"\nimport { useEiendommer } from \"../../eiendomsoversikt/api/useEiendommer\"\nimport { BruksenhetResponse, EidDetaljertEiendom } from \"../types/DetaljertEiendom\"\n\nexport const useDetaljerteEiendommer = () => {\n const queryClient = useQueryClient()\n const {\n data: eiendommer,\n isPending: eiendommerIsPending,\n error: eiendommerError,\n } = useEiendommer()\n\n const detaljerteEiendommerQueries = useQueries({\n queries: (eiendommer ?? [])\n .filter(eiendom => eiendom?.matrikkelenhetId)\n .map(eiendom => ({\n queryKey: [\"eiendom\", eiendom.matrikkelenhetId],\n queryFn: () => api.eiendom.hentEiendom(eiendom.matrikkelenhetId),\n staleTime: konverterFraMinutterTilMillisekunder(15),\n })),\n })\n\n const detaljerteEiendommer = detaljerteEiendommerQueries\n .flatMap(q => q.data)\n .filter(Boolean) as EidDetaljertEiendom[]\n\n const eiendomIndexMap = new Map(\n (eiendommer ?? []).map(eiendom => [eiendom?.matrikkelenhetId, eiendom?.eiendomsIndex]),\n )\n\n const detaljerteEiendommerMedIndex = detaljerteEiendommer.map(\n eiendom =>\n ({\n ...eiendom,\n eiendomsIndex: eiendomIndexMap.get(eiendom.matrikkelenhetId) ?? -1,\n }) as EidDetaljertEiendom,\n )\n\n const isPending = eiendommerIsPending || detaljerteEiendommerQueries.some(q => q.isPending)\n const error = eiendommerError || detaljerteEiendommerQueries.find(q => q.error)?.error\n\n detaljerteEiendommerMedIndex?.forEach(eiendom => {\n return (eiendom?.bruksenheterPåEiendom ?? [])\n ?.filter((bruksenhet: BruksenhetResponse) => bruksenhet.type === \"nummerert\")\n ?.forEach((bruksenhet: BruksenhetResponse) =>\n queryClient.prefetchQuery({\n queryKey: [\"egenregistrering-bruksenhet\", bruksenhet.byggId, bruksenhet.bruksenhetId],\n queryFn: () =>\n api.egenregistrering.hentEgenregistreringBruksenhet(\n bruksenhet.byggId,\n bruksenhet.bruksenhetId,\n ),\n staleTime: konverterFraMinutterTilMillisekunder(15),\n }),\n )\n })\n\n if (eiendommerIsPending || !eiendommer) {\n return { detaljerteEiendommerMedIndex: [], isPending: true, error: eiendommerError }\n }\n\n return { detaljerteEiendommerMedIndex, isPending, error }\n}\n","import i18n from \"i18next\"\n\n/*\n * Støttefunksjoner for formatering av tekst.\n */\n\nexport function formaterStorForbokstav(ord: string): string {\n return ord.charAt(0).toLocaleUpperCase() + ord.substring(1).toLocaleLowerCase()\n}\n\nexport function formaterMedKommaOgOgKunStoreBokstaver(listeMedTekster: string[]) {\n if (listeMedTekster.length === 0) return \"\"\n if (listeMedTekster.length === 1) return listeMedTekster[0]\n if (listeMedTekster.length === 2)\n return `${listeMedTekster[0]} ${i18n.t(\"og\", { ns: \"nøkkelbegreper\" })} ${listeMedTekster[1]}`\n\n const [førsteElement, ...rest] = listeMedTekster\n const alleUnntattSisteElement = rest.slice(0, -1).join(\", \")\n const sisteElement = rest[rest.length - 1]\n\n return `${førsteElement}, ${alleUnntattSisteElement} ${i18n.t(\"og\", { ns: \"nøkkelbegreper\" })} ${sisteElement}`\n}\n\nexport function formaterMedKommaOgOg(listeMedTekster: string[]) {\n if (listeMedTekster.length === 0) return \"\"\n if (listeMedTekster.length === 1) return listeMedTekster[0]\n if (listeMedTekster.length === 2)\n return `${listeMedTekster[0]} ${i18n.t(\"og\", { ns: \"nøkkelbegreper\" })} ${listeMedTekster[1].toLowerCase()}`\n\n const [førsteElement, ...rest] = listeMedTekster\n const alleUnntattSisteElement = rest\n .slice(0, -1)\n .map(text => text.toLowerCase())\n .join(\", \")\n const sisteElement = rest[rest.length - 1].toLowerCase()\n\n return `${førsteElement}, ${alleUnntattSisteElement} ${i18n.t(\"og\", { ns: \"nøkkelbegreper\" })} ${sisteElement}`\n}\n","import i18n from \"i18next\"\nimport { formaterMedKommaOgOgKunStoreBokstaver } from \"../../../../utils/formateringUtils\"\nimport { NummerertBruksenhet } from \"../../detaljert-eiendom/types/DetaljertEiendom\"\nimport { Adresse, Matrikkeladresse, Matrikkelnummer, Vegadresse } from \"../types/Eiendom\"\n\ntype GrupperteVegnavn = { [key: string]: Vegadresse[] }\n\n/**\n * Setter sammen en adresse-string basert på om den første adressen er en veg- eller matrikkeladresse,\n * om matrikkelenheten er en seksjon, og om det er flere adresser knyttet til matrikkelenheten\n */\nexport function formaterAdresseForEiendom(\n adresser: Adresse | undefined,\n matrikkelnummer: Matrikkelnummer | undefined,\n matrikkelenhetType: string,\n): string {\n if (!adresser || (!adresser.vegadresser?.length && !adresser.matrikkeladresser?.length)) {\n return i18n.t(\"eiendom_uten_adresse\", { ns: \"eiendomskort\" })\n }\n\n const adressedeler: string[] = []\n\n if (adresser.vegadresser?.length) {\n const grupperteVegnavn = grupperVegnavn(adresser.vegadresser)\n if (Object.keys(grupperteVegnavn).length > 3) {\n return i18n.t(\"eiendom_med_antall_adresser\", {\n ns: \"eiendomskort\",\n count: adresser.vegadresser.length,\n })\n }\n const formattedVegadresse = formaterFlereVegadresser(grupperteVegnavn, matrikkelenhetType)\n\n adressedeler.push(formattedVegadresse)\n } else if (adresser.matrikkeladresser) {\n adresser.matrikkeladresser.forEach(matrikkeladresse => {\n const formattedMatrikkeladresse = formaterMatrikkeladresse(matrikkeladresse, matrikkelnummer)\n adressedeler.push(formattedMatrikkeladresse)\n })\n }\n\n return adressedeler.join(\", \")\n}\n\nexport function formaterFlereVegadresserForBygning(vegadresser: Vegadresse[]): string {\n const grupperteVegnavn = grupperVegnavn(vegadresser)\n return formaterFlereVegadresser(grupperteVegnavn)\n}\n\nexport function hentAdresseForBruksenhet(\n vegadresser: Vegadresse[],\n bruksenhet: NummerertBruksenhet,\n): string {\n const adresse = vegadresser.find(adresse => bruksenhet.adresseId === adresse.adresseId)\n const adresseVisning = adresse\n ? `${adresse.vegnavn} ${adresse.husnummer}${adresse.bokstav ?? \"\"} ${bruksenhet.bruksenhetsnummer}`\n : `${bruksenhet.bruksenhetsnummer} (uten vegadresse)`\n\n return adresseVisning\n}\n\nfunction formaterFlereVegadresser(\n grupperteVegnavn: GrupperteVegnavn,\n matrikkelenhetstype?: string,\n): string {\n const grupperteFormatterteAdresser = Object.keys(grupperteVegnavn).reduce((acc, vegnavn) => {\n const vegnummerListe = grupperteVegnavn[vegnavn].toSorted((a, b) => {\n return sorterVegadresser(a, b)\n })\n acc.push(\n `${vegnavn} ${formaterMedKommaOgOgKunStoreBokstaver(\n vegnummerListe.map(\n vegadresse =>\n `${vegadresse.husnummer}${vegadresse.bokstav ?? \"\"}${\n matrikkelenhetstype && vegadresse.bruksenhetsnummer\n ? utledBruksenhetsnummerForAdresse(\n vegadresse.bruksenhetsnummer,\n matrikkelenhetstype,\n )\n : \"\"\n }`,\n ),\n )}`,\n )\n return acc\n }, [] as string[])\n\n return formaterMedKommaOgOgKunStoreBokstaver(grupperteFormatterteAdresser)\n}\n\nfunction utledBruksenhetsnummerForAdresse(\n bruksenhetsnumre: string[],\n matrikkelenhetstype: string,\n): string {\n if (matrikkelenhetstype !== \"Eierseksjon\") return \"\"\n\n const bruksenhetnumreUtenUnummererte = bruksenhetsnumre.filter(b => !b.includes(\"0000\"))\n\n const formaterBruksenhetsnumre = (numre: string[]): string => {\n if (numre.length === 0) return \"\"\n if (numre.length === 1) return \" \" + numre[0]\n const allExceptLast = numre.slice(0, -1).join(\", \")\n const last = numre[numre.length - 1]\n return ` ${allExceptLast} ${i18n.t(\"og\", { ns: \"nøkkelbegreper\" })} ${last}`\n }\n\n const sortBruksenhetsnumre = (numre: string[]): string[] => {\n return numre.sort((a, b) => {\n if (a.startsWith(\"H\") && !b.startsWith(\"H\")) return -1\n if (!a.startsWith(\"H\") && b.startsWith(\"H\")) return 1\n return a.localeCompare(b)\n })\n }\n\n const sorterteBruksenhetsnumre = sortBruksenhetsnumre(bruksenhetnumreUtenUnummererte)\n return formaterBruksenhetsnumre(sorterteBruksenhetsnumre)\n}\n\nfunction formaterMatrikkeladresse(\n matrikkelenhetadresse: Matrikkeladresse,\n matrikkelnummer: Matrikkelnummer | undefined,\n): string {\n return matrikkelnummer\n ? `${matrikkelnummer.gardsnummer}/${matrikkelnummer.bruksnummer}/${matrikkelnummer.festenummer}-${matrikkelenhetadresse.undernummer}`\n : \"\"\n}\n\nfunction sorterVegadresser(a: Vegadresse, b: Vegadresse): number {\n if (!a.husnummer || !b.husnummer) return 0\n return Number(a.husnummer) - Number(b.husnummer) || sorterVegadressePåBokstav(a, b)\n}\n\nfunction sorterVegadressePåBokstav(a: Vegadresse, b: Vegadresse): number {\n if (!a.bokstav || !b.bokstav) {\n return 0\n }\n return a.bokstav.localeCompare(b.bokstav)\n}\n\nconst grupperVegnavn = (vegadresser: Vegadresse[]) => {\n return vegadresser.reduce(\n (acc, vegadresse) => {\n acc[vegadresse.vegnavn] = acc[vegadresse.vegnavn] || []\n acc[vegadresse.vegnavn].push(vegadresse)\n return acc\n },\n {} as { [key: string]: Vegadresse[] },\n )\n}\n","import { Matrikkelnummer } from \"../types/Eiendom\"\n\nexport function getMatrikkelenhetstype(matrikkelenhetstype: string): string {\n return matrikkelenhetstype === \"AnnenMatrikkelenhet\" ? \"Annen type\" : matrikkelenhetstype\n}\n\nexport function formaterMatrikkelnummer(matrikkelnummer: Matrikkelnummer): string {\n const matrikkelnummerBase = `${matrikkelnummer.kommunenummer}-${matrikkelnummer.gardsnummer}/${matrikkelnummer.bruksnummer}`\n if (matrikkelnummer.festenummer === 0 && matrikkelnummer.seksjonsnummer === 0) {\n return matrikkelnummerBase\n }\n\n if (matrikkelnummer.seksjonsnummer === 0) {\n return `${matrikkelnummerBase}/${matrikkelnummer.festenummer}`\n }\n\n return `${matrikkelnummerBase}/${matrikkelnummer.festenummer}/${matrikkelnummer.seksjonsnummer}`\n}\n\nexport function formaterMatrikkelnummerMedSkråstrek(matrikkelnummer: Matrikkelnummer): string {\n const formatertMedBindestrek = formaterMatrikkelnummer(matrikkelnummer)\n return formatertMedBindestrek.replace(/-/g, \"/\")\n}\n\ntype MappedBygningsIdForIkon = keyof typeof ikonerForBygning\n\nexport const bygningstypeIkonMapper = (type: string) => {\n if (!(type in ikonerForBygning)) {\n return \"other_houses\"\n }\n\n return ikonerForBygning[type as MappedBygningsIdForIkon]\n}\n\nconst ikonerForBygning = {\n \"11\": \"house\",\n \"12\": \"foundation\",\n \"13\": \"holiday_village\",\n \"14\": \"apartment\",\n \"15\": \"corporate_fare\",\n \"16\": \"cottage\",\n \"17\": \"house_siding\",\n \"18\": \"garage_home\",\n \"19\": \"other_houses\",\n} as const\n\nexport const verboseMatrikkelnummer = (matrikkelnummer: string) => {\n const [kommunenummer, gardsnummer, bruksnummer, festenummer, seksjonsnummer] =\n matrikkelnummer.split(/[-/]/)\n\n const kommunenummerTekst = `Kommunenummer: ${kommunenummer}`\n const gardsnummerTekst = `Gårdsnummer: ${gardsnummer}`\n const bruksnummerTekst = `Bruksnummer: ${bruksnummer}`\n const festenummerTekst = festenummer && festenummer !== \"0\" ? `Festenummer: ${festenummer}` : null\n const seksjonsnummerTekst =\n seksjonsnummer && seksjonsnummer !== \"0\" ? `Seksjonsnummer: ${seksjonsnummer}` : null\n\n const verboseMatrikkelnummer = [\n kommunenummerTekst,\n gardsnummerTekst,\n bruksnummerTekst,\n festenummerTekst,\n seksjonsnummerTekst,\n ]\n .filter(tekst => tekst)\n .join(\", \")\n\n return verboseMatrikkelnummer\n}\n","import { NummerertBruksenhet } from \"../../types/DetaljertEiendom\"\nimport { Etasje } from \"../types/Bygning\"\n\nexport function formaterEtasjetekst(bruksenhet: NummerertBruksenhet): string {\n if (bruksenhet.etasjenummer === \"0.0\") {\n return \"Ikke registrert\"\n }\n\n const bruksenhetsBokstav = bruksenhet.bruksenhetsnummer.charAt(0)\n\n const etasjeplankodeverdi = transformMapping(bruksenhetsBokstav)\n const nummer = parseInt(bruksenhet.bruksenhetsnummer.slice(1, 3), 10) // Extract the number part and convert to integer\n\n if (etasjeplankodeverdi === \"Kjeller\" || etasjeplankodeverdi === \"Loft\") {\n return etasjeplankodeverdi\n }\n\n if (etasjeplankodeverdi === \"hovedetasje\" || etasjeplankodeverdi === \"underetasje\") {\n return `${nummer}. ${etasjeplankodeverdi}`\n }\n\n return \"Ikke registrert\"\n}\n\nconst transformMapping = (bruksenhetBokstav: string): string | undefined => {\n const formaterteEtasjeverdierMapping: Mapping = {\n hovedetasje: \"hovedetasje\",\n underetasje: \"underetasje\",\n kjelleretasje: \"Kjeller\",\n loftsetasje: \"Loft\",\n \"Ikke registrert\": \"Ikke registrert\",\n }\n\n const etasjeplankodeVerdi =\n etasjeplankodeMapping[bruksenhetBokstav as keyof typeof etasjeplankodeMapping] ||\n \"Ikke registrert\"\n return formaterteEtasjeverdierMapping[etasjeplankodeVerdi]\n}\n\nexport const sorterEtterPlankodeDeretterEtasjeummer = (etasjer: Etasje[]): Etasje[] => {\n const rangering: { [key in \"H\" | \"U\" | \"L\" | \"K\" | \" \"]: number } = {\n L: 4,\n H: 3,\n U: 2,\n K: 1,\n \" \": 0,\n }\n\n return etasjer.sort((a, b) => {\n const rankDiff = (rangering[b.etasjeplankode] || 0) - (rangering[a.etasjeplankode] || 0)\n if (rankDiff !== 0) {\n return rankDiff\n }\n\n return b.etasjenummer.localeCompare(a.etasjenummer, undefined, { numeric: true })\n })\n}\n\ntype Mapping = {\n [key: string]: string | undefined\n}\n\nexport const etasjeplankodeMapping = {\n H: \"hovedetasje\",\n U: \"underetasje\",\n K: \"kjelleretasje\",\n L: \"loftsetasje\",\n \" \": \"Ikke registrert\",\n} as const\n","import { useQuery } from \"@tanstack/react-query\"\nimport { useParams } from \"react-router\"\nimport { konverterFraMinutterTilMillisekunder } from \"../../../../utils/konverterFraMinutterTilMillisekunder\"\nimport { ApiError } from \"../../../core/error-handling/ApiError\"\nimport { finnerIngenPathsSomMatcher } from \"../../../core/error-handling/types/finnerIngenPathSomPatcher\"\nimport { api } from \"../../../shared-api/router\"\nimport { useEiendommer } from \"../../eiendomsoversikt/api/useEiendommer\"\nimport { BortfestetDetaljertEiendom, EidDetaljertEiendom } from \"../types/DetaljertEiendom\"\n\nexport const useEiendom = (\n eiendomsIndex?: number,\n) => {\n const eiendommerQuery = useEiendommer()\n const params = useParams()\n\n const bruktEiendomsIndex = eiendomsIndex ?? Number(params.eiendomsIndex)\n\n const matrikkelenhetId = eiendommerQuery.data?.find(\n e => e.eiendomsIndex === Number(bruktEiendomsIndex),\n )?.matrikkelenhetId\n\n if (!matrikkelenhetId && eiendommerQuery.isSuccess) {\n throw finnerIngenPathsSomMatcher\n }\n\n return useQuery({\n queryKey: [\"eiendom\", matrikkelenhetId],\n staleTime: konverterFraMinutterTilMillisekunder(15),\n queryFn: () => api.eiendom.hentEiendom(matrikkelenhetId!) as Promise,\n throwOnError: true,\n enabled: !!matrikkelenhetId,\n })\n}\n","import { useMemo } from \"react\"\nimport { useParams } from \"react-router\"\nimport { isNummerertBruksenhet, isUnummerertBruksenhet } from \"../api/eiendom\"\nimport { useEiendom } from \"../api/useEiendom\"\nimport { BruksenhetResponse, EidDetaljertEiendom } from \"../types/DetaljertEiendom\"\n\nconst useCurrentBygning = (currentBygningId?: string, eiendomsIndex?: number) => {\n const params = useParams<{ bygningId: string; eiendomsIndex: string }>()\n\n const bruktEiendomsIndex = eiendomsIndex ? Number(eiendomsIndex) : Number(params.eiendomsIndex)\n const bygningId = currentBygningId ? Number(currentBygningId) : Number(params.bygningId)\n\n const { data: eiendom } = useEiendom(bruktEiendomsIndex)\n\n const currentBygning = useMemo(() => {\n if (!eiendom) return undefined\n return eiendom.bygningerPåEiendom.find(bygning => Number(bygning.byggId) === bygningId)\n }, [eiendom, bygningId])\n\n const dineBruksenheterIBygning = useMemo(() => {\n if (!eiendom || !currentBygning)\n return { nummererteBruksenheter: [], unummererteBruksenheter: [] }\n\n const bruksenheter = (eiendom.bruksenheterPåEiendom ?? []) as BruksenhetResponse[]\n\n const bruksenheterIBygning = bruksenheter.filter(\n b => Number(b.byggId) === Number(currentBygning?.byggId),\n )\n\n const nummererteBruksenheter = bruksenheterIBygning.filter(isNummerertBruksenhet)\n const unummererteBruksenheter = bruksenheterIBygning.filter(isUnummerertBruksenhet)\n\n return { nummererteBruksenheter, unummererteBruksenheter }\n }, [eiendom, currentBygning])\n\n return { currentBygning, ...dineBruksenheterIBygning }\n}\n\nexport default useCurrentBygning\n","import { useQueries } from \"@tanstack/react-query\"\nimport { api } from \"../shared-api/router\"\n\nconst useEgenregistreringer = (bygningIds: string[] | undefined) => {\n const queries = useQueries({\n queries: bygningIds\n ? bygningIds.map(id => ({\n queryKey: [\"egenregistrering-bygning\", id],\n queryFn: () => api.egenregistrering.hentEgenregistrering(id),\n enabled: !!id,\n throwOnError: true,\n }))\n : [],\n })\n\n return queries\n}\n\nexport default useEgenregistreringer\n","export const avløpMapping = {\n \" \": \"Ikke registrert\",\n \"1\": \"Offentlig kloakk\",\n \"2\": \"Privat kloakk\",\n \"3\": \"Ingen kloakk\",\n} as const\n\nexport type Avløpskode = keyof typeof avløpMapping\n","export const energikildeMapping = {\n \" \": \"Ikke registrert\",\n E: \"Elektrisitet\",\n O: \"Olje/parafin\",\n B: \"Biobrensel\",\n S: \"Solenergi\",\n V: \"Varmepumpe\",\n G: \"Gass\",\n F: \"Fjernvarme\",\n A: \"Annen energikilde\",\n} as const\n\nexport type Energikildekode = keyof typeof energikildeMapping\n","import { KodelisteEntry } from \"../../shared-api/types/ApiResponseTypes\"\n\nexport function hentUtfraKodeliste(kode: string, kodeliste: KodelisteEntry[]): string {\n if (kode == \" \") return \"Ikke registrert\"\n const kodeMatch = kodeliste.find(kodelisteEntry => kodelisteEntry.kodeverdi === kode)\n return kodeMatch ? kodeMatch.verdi : \"Ikke registrert\"\n}\n","export enum Vannforsyningstype {\n OffentligVannverk = \"Offentlig vannverk\",\n TilknyttetPrivatVannverk = \"Tilknyttet privat vannverk\",\n AnnenPrivatInnlagtVann = \"Annen privat innlagt vann\",\n AnnenPrivatIkkeInnlagtVann = \"Annen privat ikke innlagt vann\",\n}\n\nexport enum Avløpstype {\n OffentligKloakk = \"Offentlig kloakk\",\n PrivatKloakk = \"Privat kloakk\",\n IngenKloakk = \"Ingen kloakk\",\n}\n\nexport const Energikildetype = {\n Biobrensel: \"Biobrensel\",\n Elektrisitet: \"Elektrisitet\",\n Fjernvarme: \"Fjernvarme\",\n Gass: \"Gass\",\n OljeParafin: \"Flytende brensel\",\n Solenergi: \"Solenergi\",\n Varmepumpe: \"Varmepumpe\",\n AnnenEnergikilde: \"Annen energikilde\",\n} as const\n\nexport const Oppvarmingstype = {\n Elektrisk: \"Elektrisk\",\n Sentralvarme: \"Sentralvarme\",\n AnnenOppvarming: \"Annen oppvarming\",\n} as const\n\nexport const VannforsyningKeysEnum = Object.keys(Vannforsyningstype) as [\n keyof typeof Vannforsyningstype,\n]\n\nexport enum Kildekode {\n Selvrapportert = \"Selvrapportert\",\n Salgsoppgave = \"Salgsoppgave\",\n Byggesaksdokumenter = \"Byggesaksdokumenter\",\n AnnenDokumentasjon = \"AnnenDokumentasjon\",\n}\n\nexport type Kildemateriale = {\n kode: Kildekode\n presentasjonsnavn: string\n beskrivelse: string\n}\n\nexport const AvløpKeysEnum = Object.keys(Avløpstype) as [keyof typeof Avløpstype]\nexport const OppvarmingKeysEnum = Object.keys(Oppvarmingstype) as [keyof typeof Oppvarmingstype]\nexport const EnergikildeKeysEnum = Object.keys(Energikildetype) as [keyof typeof Energikildetype]\n","import { formaterMedKommaOgOg } from \"../../../utils/formateringUtils\"\nimport { Kodelister } from \"../../shared-api/types/ApiResponseTypes\"\nimport { Bygning } from \"../detaljert-eiendom/bygningsdetaljer/types/Bygning\"\nimport { avløpMapping } from \"../detaljert-eiendom/bygningsdetaljer/utils/avløpsUtil\"\nimport { energikildeMapping } from \"../detaljert-eiendom/bygningsdetaljer/utils/energikilderUtil\"\nimport { etasjeplankodeMapping } from \"../detaljert-eiendom/bygningsdetaljer/utils/etasjeUtil\"\nimport { vannforsyningkodeMapping } from \"../detaljert-eiendom/bygningsdetaljer/utils/vannforsyningUtil\"\nimport { BruksenhetResponse } from \"../detaljert-eiendom/types/DetaljertEiendom\"\nimport { hentUtfraKodeliste } from \"../kodelister/utils\"\nimport {\n EgenregistreringBruksenhet,\n Etasjebetegnelse,\n EtasjeregistertBruksareal,\n} from \"./types/EgenregistreringBygning\"\nimport {\n Avløpstype,\n Energikildetype,\n Kildekode,\n Kildemateriale,\n Oppvarmingstype,\n Vannforsyningstype,\n} from \"./types/Enums\"\nimport { Felt } from \"./types/schema\"\n\nconst ikkeRegistrertMatrikkelverdi = \"Ikke registrert\"\n\nexport const visMatrikkelregistrertVerdi = (\n key: Felt,\n bygning: Bygning,\n bruksenhet: BruksenhetResponse,\n kodelister: Kodelister,\n) => {\n switch (key) {\n case \"byggeår\": {\n return ikkeRegistrertMatrikkelverdi\n }\n\n case \"bruksareal\": {\n if (bruksenhet.type === \"unummerert\") return \"Ikke registrert\"\n const totaltBruksareal = Number(bruksenhet.bruksareal)\n\n return totaltBruksareal > 0 ? `${totaltBruksareal} m²` : ikkeRegistrertMatrikkelverdi\n }\n\n case \"energikilder\": {\n const energikilder = bygning.energikilder || []\n return energikilder.length > 0\n ? formaterMedKommaOgOg(\n energikilder.map(energikilde => energikildeMapping[energikilde] || energikilde),\n )\n : ikkeRegistrertMatrikkelverdi\n }\n\n case \"oppvarming\": {\n const oppvarmingstyper = bygning.oppvarming || []\n return oppvarmingstyper.length > 0\n ? formaterMedKommaOgOg(\n oppvarmingstyper.map(type =>\n hentUtfraKodeliste(type, kodelister.oppvarmingstypeKodeliste),\n ),\n )\n : ikkeRegistrertMatrikkelverdi\n }\n\n case \"vannforsyning\":\n return bygning.vannforsyning\n ? vannforsyningkodeMapping[bygning.vannforsyning] || ikkeRegistrertVerdi\n : ikkeRegistrertMatrikkelverdi\n\n case \"avløp\":\n return bygning.avløp\n ? avløpMapping[bygning.avløp] || ikkeRegistrertVerdi\n : ikkeRegistrertMatrikkelverdi\n\n default:\n return ikkeRegistrertMatrikkelverdi\n }\n}\n\nexport const ikkeRegistrertVerdi = \"Ikke registrert av eier\"\n\nexport const hentEgenregistrertVerdi = (\n key: Felt,\n bruksenhet: EgenregistreringBruksenhet,\n): number | string | undefined => {\n switch (key) {\n case \"byggeår\":\n return bruksenhet.byggeår?.data\n\n case \"bruksareal\":\n return hentTotaltBruksareal(bruksenhet)\n\n case \"vannforsyning\":\n return bruksenhet.vannforsyning?.data\n ? Vannforsyningstype[bruksenhet.vannforsyning.data]\n : undefined\n\n case \"avløp\":\n return bruksenhet.avløp?.data ? Avløpstype[bruksenhet.avløp.data] : undefined\n\n case \"energikilder\": {\n const energikilder = bruksenhet.energikilder?.data ?? []\n return energikilder.length > 0\n ? formaterMedKommaOgOg(energikilder.map(energikilde => Energikildetype[energikilde]))\n : undefined\n }\n\n case \"oppvarming\": {\n const oppvarmingstyper = bruksenhet.oppvarming?.data ?? []\n return oppvarmingstyper.length > 0\n ? formaterMedKommaOgOg(oppvarmingstyper.map(oppvarming => Oppvarmingstype[oppvarming]))\n : undefined\n }\n\n default:\n return undefined\n }\n}\n\nfunction hentTotaltBruksareal(bruksenhet: EgenregistreringBruksenhet) {\n if (bruksenhet.bruksareal?.data?.totaltBruksareal) {\n return `${bruksenhet.bruksareal.data.totaltBruksareal} m²`\n }\n\n if (\n bruksenhet.bruksareal?.data?.etasjeRegistrertBruksareal &&\n bruksenhet.bruksareal?.data?.etasjeRegistrertBruksareal.length > 0\n ) {\n const totaltBruksarealFraEtasjer = bruksenhet.bruksareal.data.etasjeRegistrertBruksareal.reduce(\n (sum, etasjeregistrering) => sum + (etasjeregistrering.bruksareal || 0),\n 0,\n )\n\n return `${totaltBruksarealFraEtasjer} m²`\n }\n\n return undefined\n}\n\nexport function hentBruksarealForEtasjeregistrering(\n etasjeRegistrering: EtasjeregistertBruksareal,\n): string | string[] | undefined {\n const etasjebetegnelse = etasjeRegistrering.etasjebetegnelse\n const etasje = hentEtasjering(etasjebetegnelse)\n const bruksarealIEtasje = etasjeRegistrering.bruksareal\n return `${etasje}: ${bruksarealIEtasje} m² \\n`\n}\n\nfunction hentEtasjering(etasjebetegnelse: Etasjebetegnelse): string {\n const etasjenummer = etasjebetegnelse.etasjenummer\n\n const etasjeplanKey = etasjebetegnelse.etasjeplanKode\n\n const etasjeplan =\n etasjeplankodeMapping[etasjeplanKey as keyof typeof etasjeplankodeMapping] ||\n \"Ukjent etasjeplan\"\n\n return `${etasjenummer}. ${etasjeplan}`\n}\n\nexport const felterForEgenregistrering: Felt[] = [\n \"byggeår\",\n \"bruksareal\",\n \"vannforsyning\",\n \"avløp\",\n \"energikilder\",\n \"oppvarming\",\n]\n\nexport function hentKildepresentasjonsnavn({\n kodelister,\n kildemateriale,\n}: {\n kodelister: Kildemateriale[]\n kildemateriale: Kildekode\n}) {\n return kodelister.find((k: Kildemateriale) => k.kode === kildemateriale)?.presentasjonsnavn\n}\n\nexport const hentProgresjonsbrøkEgenregistrering = (\n egenreg: EgenregistreringBruksenhet | undefined,\n) => {\n if (!egenreg) {\n return { teller: 0, nevner: 6 }\n }\n const teller = Object.keys(egenreg).reduce((accumulator, felt: string) => {\n if (felterForEgenregistrering.includes(felt as Felt)) {\n return accumulator + 1\n }\n return accumulator\n }, 0)\n\n return { teller: teller, nevner: felterForEgenregistrering.length }\n}\n","import { Box, Flex, ProgressCircle, ProgressCircleRing } from \"@kvib/react\"\nimport { EgenregistreringBruksenhet } from \"../../eiendom/registrering/types/EgenregistreringBygning\"\nimport { hentProgresjonsbrøkEgenregistrering } from \"../../eiendom/registrering/utils\"\n\nconst ProgresjonsbrøkForEgenregistrering = ({\n egenregistrering,\n}: {\n egenregistrering: EgenregistreringBruksenhet | undefined\n}) => {\n const teller = hentProgresjonsbrøkEgenregistrering(egenregistrering).teller\n const nevner = hentProgresjonsbrøkEgenregistrering(egenregistrering).nevner\n\n return (\n \n {egenregistrering && (\n \n \n \n )}\n {`${teller} av ${nevner} felter er registrert `}\n \n )\n}\n\nexport default ProgresjonsbrøkForEgenregistrering\n","import { Box, Flex, Icon } from \"@kvib/react\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\nimport { Overskrift } from \"../../core/text/components/Overskrift\"\nimport {\n Bygningstypekode,\n hentBygningstype,\n} from \"../../eiendom/detaljert-eiendom/bygningsdetaljer/utils/bygningstypeUtil\"\nimport { formaterEtasjetekst } from \"../../eiendom/detaljert-eiendom/bygningsdetaljer/utils/etasjeUtil\"\nimport useCurrentBygning from \"../../eiendom/detaljert-eiendom/hooks/useCurrentBygning\"\nimport {\n EidDetaljertEiendom,\n NummerertBruksenhet,\n} from \"../../eiendom/detaljert-eiendom/types/DetaljertEiendom\"\nimport { hentAdresseForBruksenhet } from \"../../eiendom/eiendomsoversikt/utils/adresseForEiendomUtils\"\nimport { bygningstypeIkonMapper } from \"../../eiendom/eiendomsoversikt/utils/eiendomUtils\"\nimport useEgenregistreringer from \"../useEgenregistreringer\"\nimport ProgresjonsbrøkForEgenregistrering from \"./ProgresjonsbrøkForEgenregistrering\"\n\nconst BruksenhetForEgenregistrering = ({\n eiendom,\n bruksenhet,\n children,\n}: {\n eiendom: EidDetaljertEiendom\n bruksenhet: NummerertBruksenhet\n children?: React.ReactNode\n}) => {\n const { currentBygning } = useCurrentBygning(bruksenhet.byggId, eiendom.eiendomsIndex)\n const egenregistreringerQuery = useEgenregistreringer(\n eiendom.bygningerPåEiendom.map(bygning => bygning.byggId),\n )\n const egenregistrering = egenregistreringerQuery\n .flatMap(b => b.data?.bruksenheter)\n .find(e => e?.bruksenhetId.toString() === bruksenhet.bruksenhetId)\n\n const adressevisning = eiendom.adresser.vegadresser\n ? hentAdresseForBruksenhet(eiendom.adresser.vegadresser, bruksenhet)\n : \"\"\n\n const bygningstype = currentBygning?.bygningstype\n ? hentBygningstype[currentBygning.bygningstype as Bygningstypekode].toLocaleLowerCase()\n : \"Mangler bygningstype\"\n\n return (\n \n \n \n \n {adressevisning}\n \n \n {bruksenhet.type === \"nummerert\" && (\n \n \n {`Inngang i ${formaterEtasjetekst(bruksenhet).toLowerCase()}`}\n \n )}\n \n {currentBygning && (\n \n )}\n {`I ${bygningstype}`}\n \n \n \n \n \n {children}\n \n \n )\n}\n\nexport default BruksenhetForEgenregistrering\n","import { Button, Flex, Separator, Spinner, Stack } from \"@kvib/react\"\nimport { useNavigate } from \"react-router\"\nimport { Overskrift } from \"../../core/text/components/Overskrift\"\nimport { isNummerertBruksenhet } from \"../../eiendom/detaljert-eiendom/api/eiendom\"\nimport { useDetaljerteEiendommer } from \"../../eiendom/detaljert-eiendom/hooks/useDetaljerteEiendommer\"\nimport { EidDetaljertEiendom } from \"../../eiendom/detaljert-eiendom/types/DetaljertEiendom\"\nimport { formaterAdresseForEiendom } from \"../../eiendom/eiendomsoversikt/utils/adresseForEiendomUtils\"\nimport { formaterMatrikkelnummer } from \"../../eiendom/eiendomsoversikt/utils/eiendomUtils\"\n\nimport BruksenhetForEgenregistrering from \"./BruksenhetForEgenregistrering\"\n\nconst EiendommerMedBruksenheterForEgenregistreringListe = ({\n eiendommerMedGyldigeBruksenheter,\n}: {\n eiendommerMedGyldigeBruksenheter: EidDetaljertEiendom[]\n}) => {\n const navigate = useNavigate()\n const { detaljerteEiendommerMedIndex, isPending } = useDetaljerteEiendommer()\n\n if (isPending || !detaljerteEiendommerMedIndex) {\n return (\n \n \n \n )\n }\n\n return eiendommerMedGyldigeBruksenheter.map(eiendom => {\n return (\n \n \n \n {`${eiendom.kommunenavn} kommune`}\n \n {formaterAdresseForEiendom(\n eiendom.adresser,\n eiendom.matrikkelnummer,\n eiendom.matrikkelenhetstype,\n )}\n \n \n \n {`Matrikkelnummer: ${formaterMatrikkelnummer(eiendom.matrikkelnummer)}`}\n \n \n \n \n Bruksenheter du kan registrere på\n \n {eiendom.bruksenheterPåEiendom\n .filter(bruksenhet => isNummerertBruksenhet(bruksenhet))\n .map(bruksenhet => (\n \n \n navigate(\n `/egenregistreringer/${eiendom.eiendomsIndex}/${bruksenhet.byggId}/${bruksenhet.bruksenhetId}`,\n )\n }\n >\n Gå til registrering\n \n \n ))}\n \n )\n })\n}\n\nexport default EiendommerMedBruksenheterForEgenregistreringListe\n","import { Box, Flex, Icon } from \"@kvib/react\"\nimport { formaterMedKommaOgOgKunStoreBokstaver } from \"../../../utils/formateringUtils\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\nimport { Overskrift } from \"../../core/text/components/Overskrift\"\n\nconst InfoOmEgenregistrering = ({ kommuner }: { kommuner: string[] }) => {\n const mlForTekst = \"34px\"\n return (\n \n \n \n \n \n Hvorfor har du fått en oppgave?\n \n \n \n Kartverket holder på med en prøveordning hvor eiere selv har mulighet til å legge til\n korrekt informasjon om sine eiendommer i Eiendomsregistrert (matrikkelen). Dette er et av\n flere tiltak for å heve kvaliteten i registeret.\n \n \n Siden du eier eiendom i {formaterMedKommaOgOgKunStoreBokstaver(kommuner)} kommune har du\n mulighet til å bidra!\n \n \n Vi ber deg om å registrere seks opplysninger på bruksenheten(e) på eiendommen(e) din(e);\n byggeår, bruksareal, vannforsyning, avløp, energikilde og oppvarming.\n \n \n \n )\n}\n\nexport default InfoOmEgenregistrering\n","import { Flex, Spinner, Stack } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport Section from \"../core/components/layout/Section\"\nimport { Brødtekst } from \"../core/text/components/Brødtekst\"\nimport { Overskrift } from \"../core/text/components/Overskrift\"\nimport { isNummerertBruksenhet } from \"../eiendom/detaljert-eiendom/api/eiendom\"\nimport { useDetaljerteEiendommer } from \"../eiendom/detaljert-eiendom/hooks/useDetaljerteEiendommer\"\nimport EiendommerMedBruksenheterForEgenregistreringListe from \"./components/EiendommerMedBruksenheterForEgenregistreringListe\"\nimport InfoOmEgenregistrering from \"./components/InfoOmEgenregistrering\"\n\nconst Egenregistreringsoversikt = () => {\n const { detaljerteEiendommerMedIndex, isPending } = useDetaljerteEiendommer()\n\n const { t } = useTranslation(\"egenregistrering\")\n\n const detaljerteEiendommer = detaljerteEiendommerMedIndex ?? []\n const eiendommerMedGyldigeBruksenheter = detaljerteEiendommer\n .filter(eiendom =>\n eiendom.bruksenheterPåEiendom?.some(bruksenhet => isNummerertBruksenhet(bruksenhet)),\n )\n .sort((a, b) => a.kommunenavn.localeCompare(b.kommunenavn))\n\n const manglerEiendomForEgenregistrering =\n !isPending && (detaljerteEiendommer.length < 1 || eiendommerMedGyldigeBruksenheter.length < 1)\n\n if (isPending || !detaljerteEiendommerMedIndex) {\n return (\n \n \n \n )\n }\n\n return (\n <>\n
\n \n {t(\"oversikt_egenregistrering_sidetittel\")}\n \n \n e.kommunenavn)}\n />\n \n
\n
\n {!manglerEiendomForEgenregistrering ? (\n \n ) : (\n Du har ingen eiendommer tilgjengelig for egenregistrering. \n )}\n
\n \n )\n}\n\nexport default Egenregistreringsoversikt\n","import { useQuery } from \"@tanstack/react-query\"\nimport { konverterFraMinutterTilMillisekunder } from \"../../../utils/konverterFraMinutterTilMillisekunder\"\nimport { Matrikkelnummer } from \"../../eiendom/eiendomsoversikt/types/Eiendom\"\nimport { api } from \"../../shared-api/router\"\n\nconst useTeigpolygoner = (matrikkelnummer?: Matrikkelnummer) => {\n const queryKey = [\"teigpolygoner\", matrikkelnummer]\n const teigpolygonQuery = useQuery({\n queryKey,\n staleTime: konverterFraMinutterTilMillisekunder(30),\n queryFn: () => api.kart.hentTeigpolygonerForEiendom(matrikkelnummer!),\n throwOnError: true,\n enabled: !!matrikkelnummer,\n })\n\n return teigpolygonQuery\n}\n\nexport default useTeigpolygoner\n","import { Koordinat } from \"../../eiendom/detaljert-eiendom/bygningsdetaljer/types/Bygning\"\n\nexport const hentLenkeTilNorgeskart = (koordinat: Koordinat): string =>\n `https://norgeskart.no/#!?project=seeiendom&zoom=16&lat=${koordinat.lat}&lon=${koordinat.long}&markerLat=${koordinat.lat}&markerLon=${koordinat.long}&panel=Seeiendom&layers=1002,1014,1015,1016&showSelection=true`\n","import { Button } from \"@kvib/react\"\nimport { useScreenView } from \"../../core/hooks/useScreenview\"\nimport { Koordinat } from \"../../eiendom/detaljert-eiendom/bygningsdetaljer/types/Bygning\"\nimport { hentLenkeTilNorgeskart } from \"./utils\"\n\nexport const NorgeskartKnapp = ({\n koordinat,\n children,\n}: {\n koordinat?: Koordinat\n children: string\n}) => {\n const { isMobile } = useScreenView()\n\n if (!koordinat) return null\n\n const handleNavigateToNorgeskart = () => {\n window.open(`${hentLenkeTilNorgeskart(koordinat)}`, \"_blank\")\n }\n\n return (\n \n {children}\n \n )\n}\n","import { Projection } from \"ol/proj\"\n\n// Kartverkets egen extent for UTM33N-kartene. Fikk denne fra Håvard Vidme\nexport const KART_EXTENT = [-2500000.0, 3500000.0, 3045984.0, 9045984.0]\n\nexport const projeksjon = new Projection({\n code: \"EPSG:25833\",\n extent: KART_EXTENT,\n units: \"m\",\n})\n\nexport const kartpadding = 40 // i piksler fra kantene av kartet\n","import { Control } from \"ol/control\"\nimport { kartpadding } from \"../constants\"\n\nexport class ResetZoomControl extends Control {\n private readonly extent: number[]\n\n constructor(extent: number[]) {\n const resetZoomKnapp = document.createElement(\"button\")\n resetZoomKnapp.innerHTML = 'my_location'\n\n const element = document.createElement(\"div\")\n element.className = \"ol-control\"\n element.style.bottom = \"0.5em\"\n element.style.left = \"0.5em\"\n resetZoomKnapp.style.display = \"flex\"\n resetZoomKnapp.style.justifyContent = \"center\"\n resetZoomKnapp.style.alignItems = \"center\"\n\n element.appendChild(resetZoomKnapp)\n\n super({\n element: element,\n })\n\n this.extent = extent\n resetZoomKnapp.addEventListener(\"click\", this.reset.bind(this), false)\n }\n\n reset() {\n const map = this.getMap()\n if (map) {\n const view = map.getView()\n if (view) {\n view.fit(this.extent, {\n size: map.getSize(),\n padding: Array(4).fill(kartpadding),\n })\n }\n }\n }\n}\n","import { boundingExtent } from \"ol/extent\"\nimport Fill from \"ol/style/Fill\"\nimport Stroke from \"ol/style/Stroke\"\nimport Style from \"ol/style/Style\"\nimport { Polygon, Polygoner } from \"./types/InteraktivtKart\"\n\nexport const hentBboxForPolygoner = (polygoner?: Polygoner): number[] | undefined => {\n if (!polygoner) return\n const flat = polygoner\n .flat()\n .flat()\n .map(k => [k.long, k.lat])\n return boundingExtent(\n flat.map(k => {\n return [k[0], k[1]]\n }),\n )\n}\n\nexport const polygonTilGeoJSON = (polygon: Polygon) => {\n return {\n type: \"Feature\",\n geometry: {\n type: \"Polygon\",\n coordinates: polygon.map(ring => ring.map(koordinat => [koordinat.long, koordinat.lat])),\n },\n }\n}\n\nexport const polygonstil = new Style({\n stroke: new Stroke({\n color: \"rgba(89, 82, 210)\",\n width: 3,\n }),\n fill: new Fill({\n color: \"rgba(89, 82, 210, 0.2)\",\n }),\n})\n","import { Map, View } from \"ol\"\nimport { defaults as defaultControls } from \"ol/control\"\nimport { GeoJSON } from \"ol/format\"\nimport { defaults as defaultInteractions } from \"ol/interaction\"\nimport TileLayer from \"ol/layer/Tile\"\nimport VectorLayer from \"ol/layer/Vector\"\nimport \"ol/ol.css\"\nimport { XYZ } from \"ol/source\"\nimport VectorSource from \"ol/source/Vector\"\nimport { useEffect, useMemo } from \"react\"\n\nimport { Box } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Koordinat } from \"../eiendom/detaljert-eiendom/bygningsdetaljer/types/Bygning\"\nimport { NorgeskartKnapp } from \"../kartutsnitt/components/NorgeskartKnapp\"\nimport { ResetZoomControl } from \"./components/ResetZoomControl\"\nimport { KART_EXTENT, kartpadding, projeksjon } from \"./constants\"\nimport { Polygoner } from \"./types/InteraktivtKart\"\nimport { hentBboxForPolygoner, polygonTilGeoJSON, polygonstil } from \"./utils\"\n\nexport const InteraktivtKart = ({\n teigpolygoner,\n koordinat,\n}: {\n teigpolygoner?: Polygoner\n koordinat: Koordinat\n}) => {\n const overlays = useMemo(() => teigpolygoner?.map(p => polygonTilGeoJSON(p)), [teigpolygoner])\n const extent = useMemo(() => hentBboxForPolygoner(teigpolygoner), [teigpolygoner])\n const { t } = useTranslation(\"eiendomskort\")\n\n useEffect(() => {\n const viewConfig = {\n projection: projeksjon,\n maxZoom: 18,\n extent: KART_EXTENT,\n center: [koordinat.long, koordinat.lat],\n ...(!teigpolygoner && {\n zoom: 15,\n }),\n }\n\n const map = new Map({\n layers: [\n new TileLayer({\n source: new XYZ({\n crossOrigin: \"*\",\n projection: projeksjon,\n url: `https://cache.kartverket.no/v1/wmts/1.0.0/topo/default/utm33n/{z}/{y}/{x}.png`,\n }),\n }),\n ],\n view: new View(viewConfig),\n target: \"map\",\n interactions: defaultInteractions({\n mouseWheelZoom: false,\n }),\n controls: defaultControls().extend([new ResetZoomControl(extent ?? KART_EXTENT)]),\n })\n\n if (extent) {\n map.getView().fit(extent, {\n size: map.getSize(),\n padding: Array(4).fill(kartpadding),\n })\n }\n overlays?.forEach(overlay => {\n const source = new VectorSource({\n features: new GeoJSON().readFeatures(overlay),\n })\n map.addLayer(\n new VectorLayer({\n source: source,\n style: polygonstil,\n }),\n )\n })\n return () => {\n map.setTarget()\n }\n }, [koordinat, extent, overlays, teigpolygoner])\n\n return (\n \n
\n {t(\"vis_i_kart_knapp\")}\n
\n \n )\n}\n","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='57'%20height='44'%3e%3cg%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20d='M0%200h24v24H0z'/%3e%3cpath%20fill='%23156630'%20fill-rule='nonzero'%20d='M.9%2044V10.9L13.9%200l12.3%2010.8v29.6h5V26.3L44.9%2014%2057%2024.6V44H42.6V30.4h-8V44H11.5V31H5.7v13zm10.6-27.6H5.6V25h5.9zm11.3%200h-5.9V25h5.9zm0%2014.1h-5.9v10.2h5.9zm30.8%200h-5.9v10.2h5.9z'/%3e%3c/g%3e%3c/svg%3e\"","import { Box, BoxProps, Image, ImageProps } from \"@kvib/react\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\nimport eiendomSvg from \"../../../assets/eiendom.svg\"\n\ninterface Props {\n tekst: string\n imageProps: ImageProps\n boxProxs: BoxProps\n}\n\nconst FantIkkeKartutstnittBox = (props: Props) => {\n return (\n \n \n {props.tekst}\n \n \n \n )\n}\n\nexport default FantIkkeKartutstnittBox\n","import { Skeleton } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { DetaljertEiendomResponse } from \"../../eiendom/detaljert-eiendom/types/DetaljertEiendom\"\nimport useTeigpolygoner from \"../../interaktivtKart/api/useTeigpolygoner\"\nimport { InteraktivtKart } from \"../../interaktivtKart/InteraktivtKart\"\nimport FantIkkeKartutstnittBox from \"./FantIkkeKartutstnittBox\"\n\nconst KartutsnittForDetaljertEiendom = ({\n isPending,\n eiendom,\n}: {\n isPending: boolean\n eiendom: DetaljertEiendomResponse | undefined\n}) => {\n const { t } = useTranslation(\"eiendomskort\")\n const { data: teigpolygoner } = useTeigpolygoner(eiendom?.matrikkelnummer)\n\n if (isPending || !teigpolygoner) {\n return \n }\n\n return eiendom?.koordinat ? (\n \n ) : (\n \n )\n}\n\nexport default KartutsnittForDetaljertEiendom\n","import { Skeleton } from \"@kvib/react\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport { formaterAdresseForEiendom } from \"../../eiendomsoversikt/utils/adresseForEiendomUtils\"\nimport { DetaljertEiendomResponse } from \"../types/DetaljertEiendom\"\n\nexport const AdresseOverskrift = ({\n eiendom,\n}: {\n eiendom: DetaljertEiendomResponse | undefined\n}) => {\n if (!eiendom) {\n return (\n \n )\n }\n\n const adresse = formaterAdresseForEiendom(\n eiendom.adresser,\n eiendom.matrikkelnummer,\n eiendom.matrikkelenhetstype,\n )\n return (\n \n {adresse}\n \n )\n}\n","import i18n from \"i18next\"\nimport { Vegadresse } from \"../../../eiendomsoversikt/types/Eiendom\"\nimport { BruksenhetResponse } from \"../../types/DetaljertEiendom\"\nimport { Bygning } from \"../types/Bygning\"\n\nexport const sorterPåBygningstype = (bygninger: Bygning[]) =>\n bygninger.toSorted((a, b) => a.bygningstype.localeCompare(b.bygningstype))\n\nexport const bygningAria = (bygninger: Bygning[]) =>\n i18n.t(\"antall_bygninger_på_eiendommen\", { ns: \"bygningskort\", count: bygninger.length })\n\nexport const getVegadresserPåBygning = (\n vegadresser: Vegadresse[],\n bruksenheter: BruksenhetResponse[],\n) => {\n return vegadresser.filter((adresse: Vegadresse) =>\n bruksenheter.some(bruksenhet => bruksenhet.adresseId === adresse.adresseId),\n )\n}\n\nexport function formaterBruksareal(bruksareal: string): string {\n const bruksarealFloat = parseFloat(bruksareal)\n return bruksarealFloat === 0.0\n ? i18n.t(\"ikke_registrert\", { ns: \"nøkkelbegreper\" })\n : i18n.t(\"areal\", {\n ns: \"nøkkelbegreper\",\n val: bruksarealFloat,\n minimumFractionDigits: 0,\n maximumFractionDigits: 1,\n })\n}\n","import {\n AccordionIcon,\n AccordionItem,\n AccordionItemContent,\n AccordionItemTrigger,\n Box,\n Spacer,\n} from \"@kvib/react\"\nimport { usePostHog } from \"posthog-js/react\"\nimport { ReactNode } from \"react\"\nimport { useFontStyles } from \"../../../../core/text/fontStyles\"\n\nexport const AccordionItemBygningskort = ({\n children,\n accordionTittel,\n value,\n}: {\n children: ReactNode\n accordionTittel: string\n value: string\n}) => {\n const { getFontSize, getFontWeight } = useFontStyles()\n const borderColor = \"#E3E0E0\"\n const posthog = usePostHog()\n\n return (\n \n

\n posthog.capture(accordionTittel)}>\n \n {accordionTittel}\n \n \n \n \n

\n {children}\n \n )\n}\n","import { useQuery } from \"@tanstack/react-query\"\nimport { konverterFraMinutterTilMillisekunder } from \"../../../utils/konverterFraMinutterTilMillisekunder\"\nimport { ApiError } from \"../../core/error-handling/ApiError\"\nimport { api } from \"../../shared-api/router\"\nimport { Kodelister } from \"../../shared-api/types/ApiResponseTypes\"\n\nexport const useKodelister = () => {\n const kodelisteQuery = useQuery({\n queryKey: [\"kodelister\"],\n staleTime: konverterFraMinutterTilMillisekunder(15),\n queryFn: api.kodelister.hentKodelister,\n throwOnError: err => err.type !== \"UVENTET_FEIL\",\n })\n\n return kodelisteQuery\n}\n","import { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport { useFontStyles } from \"../../../core/text/fontStyles\"\n\nconst OverskriftForEiendomsdetaljer = ({ children }: { children: string }) => {\n const { getFontSize } = useFontStyles()\n\n return (\n \n {children}\n \n )\n}\n\nexport default OverskriftForEiendomsdetaljer\n","import { Flex, Icon } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { formaterMedKommaOgOg } from \"../../../../../utils/formateringUtils\"\nimport ErrorHandler from \"../../../../core/error-handling/ErrorHandler\"\nimport { Brødtekst } from \"../../../../core/text/components/Brødtekst\"\nimport { useKodelister } from \"../../../kodelister/useKodelister\"\nimport { hentUtfraKodeliste } from \"../../../kodelister/utils\"\nimport OverskriftForEiendomsdetaljer from \"../../components/OverskriftForEiendomsdetaljer\"\nimport { Bygning, Bygningsegenskaper } from \"../types/Bygning\"\nimport { avløpMapping } from \"../utils/avløpsUtil\"\nimport { energikildeMapping } from \"../utils/energikilderUtil\"\nimport { vannforsyningkodeMapping } from \"../utils/vannforsyningUtil\"\n\nconst EgenskaperVedBygning = ({ bygning }: { bygning: Bygning }) => {\n const { data: kodelister, error, isError, isLoading, isSuccess } = useKodelister()\n const { t } = useTranslation([\"egenskaperVedBygning\", \"nøkkelbegreper\", \"bygningskort\"])\n\n if (isLoading || !isSuccess) return null\n if (isError) return \n\n const bygningsegenskaper: Bygningsegenskaper[] = [\n {\n title: t(\"bruksareal_tittel\", { ns: \"egenskaperVedBygning\" }),\n ikon: \"square_foot\",\n evaluate: (bygning: Bygning) => {\n if (bygning.bruksarealTotalt === 0.0 || !bygning.bruksarealTotalt) {\n return t(\"ikke_registrert\", { ns: \"nøkkelbegreper\" })\n } else {\n const bruksareal = t(\"areal\", { ns: \"nøkkelbegreper\", val: bygning.bruksarealTotalt })\n\n return bruksareal\n }\n },\n },\n {\n title: t(\"antall_etasjer_tittel\", { ns: \"egenskaperVedBygning\" }),\n ikon: \"floor\",\n evaluate: (bygning: Bygning) => {\n if (bygning.etasjer.length === 0) {\n return t(\"ikke_registrert\", { ns: \"nøkkelbegreper\" })\n }\n\n // Tell antall etasjer per etasjeplankode\n const etasjeplankodeMap: { [key: string]: number } = {}\n bygning.etasjer.forEach(etasje => {\n const etasjeFraKodeliste = hentUtfraKodeliste(\n etasje.etasjeplankode,\n kodelister.etasjeKodeliste,\n ).toLowerCase()\n\n const etasjetekst = etasjeFraKodeliste === \"loft\" ? \"loftsetasje\" : etasjeFraKodeliste\n\n etasjeplankodeMap[etasjetekst] = (etasjeplankodeMap[etasjetekst] || 0) + 1\n })\n\n const etasjeDescriptions = Object.entries(etasjeplankodeMap).map(([description, count]) => {\n return `${count} ${description}${count > 1 ? \"r\" : \"\"}`\n })\n\n // Sorter så 'hovedetasje' kommer først\n etasjeDescriptions.sort((a, b) => {\n if (a.includes(\"hovedetasje\")) return -1\n if (b.includes(\"hovedetasje\")) return 1\n return 0\n })\n\n if (etasjeDescriptions.length === 1) {\n return etasjeDescriptions[0]\n }\n\n const lastDescription = etasjeDescriptions.pop()\n const antallEtasjer = t(\"antall_etasjer\", {\n count: bygning.etasjer.length,\n ns: \"bygningskort\",\n })\n\n const og = t(\"og\", { ns: \"nøkkelbegreper\" })\n\n return `${antallEtasjer}: ${etasjeDescriptions.join(\", \")} ${og} ${lastDescription}`\n },\n },\n {\n title: t(\"vannforsyning_tittel\", { ns: \"egenskaperVedBygning\" }),\n ikon: \"water_drop\",\n evaluate: (bygning: Bygning) => vannforsyningkodeMapping[bygning.vannforsyning],\n },\n {\n title: t(\"avløp_tittel\", { ns: \"egenskaperVedBygning\" }),\n ikon: \"valve\",\n evaluate: (bygning: Bygning) => avløpMapping[bygning.avløp],\n },\n {\n title: t(\"energikilder_tittel\", { ns: \"egenskaperVedBygning\" }),\n ikon: \"bolt\",\n evaluate: (bygning: Bygning) =>\n bygning.energikilder.length > 0\n ? bygning.energikilder.map(kilde => energikildeMapping[kilde] || kilde)\n : t(\"ikke_registrert\", { ns: \"nøkkelbegreper\" }),\n },\n {\n title: t(\"oppvarmingstyper_tittel\", { ns: \"egenskaperVedBygning\" }),\n ikon: \"heat\",\n evaluate: (bygning: Bygning) =>\n bygning.oppvarming.length > 0\n ? bygning.oppvarming.map(type =>\n hentUtfraKodeliste(type, kodelister.oppvarmingstypeKodeliste),\n )\n : t(\"ikke_registrert\", { ns: \"nøkkelbegreper\" }),\n },\n ]\n\n const EgenskaperFelter = ({ attributt }: { attributt: Bygningsegenskaper }) => {\n const verdier = attributt.evaluate(bygning)\n const formattedVerdier = Array.isArray(verdier) ? formaterMedKommaOgOg(verdier) : verdier\n const iconSize = 28\n\n const iconWrapper = `${iconSize + 6}px`\n\n return (\n \n \n \n \n \n {attributt.title}\n {formattedVerdier}\n \n \n )\n }\n\n return (\n <>\n {bygningsegenskaper.map(attributt => (\n \n ))}\n \n )\n}\n\nexport default EgenskaperVedBygning\n","import { Box, PopoverArrow, PopoverBody, PopoverCloseTrigger, PopoverContent } from \"@kvib/react\"\n\nconst PopoverInfo = ({ children }: { children?: React.ReactNode }) => (\n \n \n \n \n {children}\n \n \n)\n\nexport default PopoverInfo\n","import { Box, Button, Popover, PopoverTrigger } from \"@kvib/react\"\nimport { usePostHog } from \"posthog-js/react\"\nimport { ReactElement, useRef } from \"react\"\nimport PopoverInfo from \"./PopoverInfo\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\n\ninterface Props {\n label: string\n forklaring: string\n posthogName?: string\n children: ReactElement\n}\n\nconst VerdiMedForklaring = ({ label, forklaring, posthogName, children }: Props) => {\n const posthog = usePostHog()\n\n const elementRef = useRef(null)\n\n return (\n \n {\n e.stopPropagation()\n if (posthogName) posthog.capture(posthogName)\n }}\n onKeyDown={e => {\n e.stopPropagation()\n if (posthogName) posthog.capture(posthogName)\n }}\n w=\"fit-content\"\n >\n \n div > span > div > span:last-of-type\": {\n fontVariationSettings: \"'FILL' 1 !important\",\n },\n }}\n >\n \n {label}\n \n \n \n {children}\n {forklaring}\n \n \n )\n}\n\nexport default VerdiMedForklaring\n","import { ReactNode } from \"react\"\nimport { Brødtekst } from \"../../../../core/text/components/Brødtekst\"\nimport VerdiMedForklaring from \"../../../components/VerdiMedForklaring\"\n\nconst BruksenhetFlexItem = ({\n label,\n posthogName,\n forklaring,\n children,\n}: {\n label: string\n posthogName?: string\n forklaring?: string\n children: ReactNode\n}) => {\n return (\n <>\n {forklaring ? (\n \n {children}\n \n ) : (\n <>\n \n {label}\n \n {children}\n \n )}\n \n )\n}\n\nexport default BruksenhetFlexItem\n","import { Box, Flex } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Vegadresse } from \"../../../eiendomsoversikt/types/Eiendom\"\nimport { hentAdresseForBruksenhet } from \"../../../eiendomsoversikt/utils/adresseForEiendomUtils\"\nimport { useKodelister } from \"../../../kodelister/useKodelister\"\nimport { hentUtfraKodeliste } from \"../../../kodelister/utils\"\nimport { NummerertBruksenhet } from \"../../types/DetaljertEiendom\"\nimport { formaterBruksareal } from \"../utils/bygningerUtils\"\nimport { formaterEtasjetekst } from \"../utils/etasjeUtil\"\nimport BruksenhetFlexItem from \"./BruksenhetFlexItem\"\n\nconst BruksenhetBoks = ({\n bruksenhet,\n vegadresser,\n}: {\n bruksenhet: NummerertBruksenhet\n vegadresser?: Vegadresse[]\n}) => {\n const { t } = useTranslation([\"bruksenhetskort\", \"nøkkelbegreper\"])\n const { data: kodelister } = useKodelister()\n const helpetekstBruksenhetstype = t(\"bruksenhetstype_forklaring\", { ns: \"bruksenhetskort\" })\n const bruksarealForEnBruksenhetForklaring = t(\"bruksareal_for_en_bruksenhet_forklaring\", {\n ns: \"bruksenhetskort\",\n })\n const etasjeForInngangHjelpetekst = t(\"inngang_etasje_forklaring\", { ns: \"bruksenhetskort\" })\n\n if (!kodelister) return null\n\n const adressevisning = vegadresser && hentAdresseForBruksenhet(vegadresser, bruksenhet)\n return (\n \n {adressevisning && (\n \n {adressevisning}\n \n )}\n\n \n \n \n {hentUtfraKodeliste(bruksenhet.bruksenhetstype, kodelister.bruksenhettypeKodeliste)}\n \n \n\n \n \n {formaterEtasjetekst(bruksenhet)}\n \n \n\n \n \n {formaterBruksareal(bruksenhet.bruksareal)}\n \n \n \n \n )\n}\n\nexport default BruksenhetBoks\n","import { Box, Button, Flex } from \"@kvib/react\"\nimport { usePostHog } from \"posthog-js/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useNavigate } from \"react-router\"\nimport { Brødtekst } from \"../../../../core/text/components/Brødtekst\"\nimport { useKodelister } from \"../../../kodelister/useKodelister\"\n\nconst UnummerertBruksenhetBoks = () => {\n const { t } = useTranslation([\"bruksenhetskort\", \"nøkkelbegreper\"])\n const posthog = usePostHog()\n const { data: kodelister } = useKodelister()\n const navigate = useNavigate()\n\n if (!kodelister) return null\n\n const handleClick = () => {\n posthog.capture(\"Åpner lenke fra unummerert bruksenhet infoboks\")\n navigate(\"/hjelp/datafelter\")\n }\n\n return (\n \n \n {t(\"unummerert_bruksenhet_tittel\", {\n ns: \"bruksenhetskort\",\n })}\n \n \n {t(\"helpetekst_unummerert_bruksenhetstype\", {\n ns: \"bruksenhetskort\",\n })}\n \n \n {t(\"les_mer_om_bruksenheter\", {\n ns: \"bruksenhetskort\",\n })}\n \n \n )\n}\n\nexport default UnummerertBruksenhetBoks\n","import { Box } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Vegadresse } from \"../../../eiendomsoversikt/types/Eiendom\"\nimport { isNummerertBruksenhet } from \"../../api/eiendom\"\nimport { NummerertBruksenhet, UnummerertBruksenhet } from \"../../types/DetaljertEiendom\"\nimport BruksenhetBoks from \"./BruksenhetBoks\"\nimport UnummerertBruksenhetBoks from \"./UnummerertBruksenhetboks\"\n\nexport const BruksenhetBoksWrapper = ({\n bruksenhet,\n vegadresser,\n}: {\n bruksenhet: NummerertBruksenhet | UnummerertBruksenhet\n vegadresser?: Vegadresse[]\n}) => {\n const { t } = useTranslation(\"bruksenhetskort\")\n\n return (\n \n {vegadresser && vegadresser.length > 0 && isNummerertBruksenhet(bruksenhet) ? (\n \n ) : (\n \n )}\n \n )\n}\n","import { Vegadresse } from \"../../../eiendomsoversikt/types/Eiendom\"\nimport useCurrentBygning from \"../../hooks/useCurrentBygning\"\nimport { NummerertBruksenhet } from \"../../types/DetaljertEiendom\"\nimport { BruksenhetBoksWrapper } from \"./BruksenhetBoksWrapper\"\n\nconst NøkkelinfoOmAlleBruksenheterIBygning = ({\n byggId,\n vegadresser,\n}: {\n byggId: string\n vegadresser: Vegadresse[] | undefined\n}) => {\n const { nummererteBruksenheter, unummererteBruksenheter } = useCurrentBygning(byggId)\n\n const sortertSåBruksenheterIHovedetasjeKommerFørst = (\n a: NummerertBruksenhet,\n b: NummerertBruksenhet,\n ) => {\n const aIsH = a.bruksenhetsnummer.startsWith(\"H\") ? 0 : 1\n const bIsH = b.bruksenhetsnummer.startsWith(\"H\") ? 0 : 1\n return aIsH - bIsH\n }\n\n if (!nummererteBruksenheter || !unummererteBruksenheter) return null\n\n const alleBruksenheter = [\n ...nummererteBruksenheter.toSorted(sortertSåBruksenheterIHovedetasjeKommerFørst),\n ...unummererteBruksenheter,\n ]\n\n return (\n <>\n {alleBruksenheter.map(bruksenhet => (\n \n ))}\n \n )\n}\n\nexport default NøkkelinfoOmAlleBruksenheterIBygning\n","export const gyldigeBygningsstatuser = [\"RA\", \"IG\", \"MB\", \"FA\", \"TB\", \"MT\", \"MF\", \"FS\", \"IP\", \"GR\"]\n\n// I backend filteres disse ut: \"BU\", \"BR\", \"BF\", \"BA\"\n// Det er bygning- nummer utgått, revet, flyttet, avlyst\n","import { Kodelister } from \"../../../../shared-api/types/ApiResponseTypes\"\nimport { hentUtfraKodeliste } from \"../../../kodelister/utils\"\nimport { Bygning, BygningsstatusHistorikk } from \"../types/Bygning\"\nimport { gyldigeBygningsstatuser } from \"./gyldigeBygningsstatuser\"\n\nconst hentGjeldendeBygningsstatus = (\n bygningsstatusHistorikk: BygningsstatusHistorikk[],\n kodelister: Kodelister,\n) => {\n const bygningsHistorikk = bygningsstatusHistorikk\n .slice()\n .reverse()\n .filter(e => gyldigeBygningsstatuser.includes(e.status))\n\n const latestHistorikk = bygningsHistorikk[0]\n if (!latestHistorikk) return { år: null, status: \"\" }\n\n const { status, år } = latestHistorikk\n const mappedStatus = hentUtfraKodeliste(status, kodelister.bygningsstatusKodeliste)\n\n return { år: år, status: mappedStatus }\n}\n\nexport const hentAlleBygningsstatuser = (bygning: Bygning, kodelister: Kodelister) => {\n const bygningsstatusHistorikkUtenEBStatuser = bygning.bygningsstatusHistorikk.filter(e =>\n gyldigeBygningsstatuser.includes(e.status),\n )\n\n return bygningsstatusHistorikkUtenEBStatuser\n .toReversed()\n .map(statusHistorikk => hentGjeldendeBygningsstatus([statusHistorikk], kodelister))\n}\n","import { Box, IconButton, Popover, PopoverTrigger, Tooltip } from \"@kvib/react\"\nimport { usePostHog } from \"posthog-js/react\"\nimport PopoverInfo from \"../../eiendom/components/PopoverInfo\"\nimport { useScreenView } from \"../hooks/useScreenview\"\n\nconst PopoverikonMedTooltip = ({\n tooltipLabel,\n tooltipAriaLabel,\n iconButtonAriaLabel,\n icon,\n children,\n}: {\n tooltipLabel: string\n tooltipAriaLabel: string\n iconButtonAriaLabel: string\n icon: \"help\" | \"history\"\n children: React.ReactElement\n}) => {\n const isDesktop = useScreenView()\n const iconColor = icon === \"help\" ? \"gray.600\" : \"green.500\"\n const posthog = usePostHog()\n return (\n \n \n {isDesktop ? (\n \n \n \n e.preventDefault()}\n aria-label={iconButtonAriaLabel}\n icon={icon}\n color={iconColor}\n variant=\"tertiary\"\n iconFill={icon === \"help\"}\n onClick={e => {\n e.stopPropagation()\n posthog.capture(tooltipLabel)\n }}\n _hover={{ color: \"green.500\" }}\n />\n \n \n \n ) : (\n \n e.preventDefault()}\n aria-label={iconButtonAriaLabel}\n icon={icon}\n iconFill\n colorScheme=\"gray\"\n variant=\"tertiary\"\n onClick={e => e.stopPropagation()}\n />\n \n )}\n {children}\n \n \n )\n}\n\nexport default PopoverikonMedTooltip\n","import { Box, Flex, PopoverHeader } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport PopoverikonMedTooltip from \"../../../../core/components/PopoverikonMedTooltip\"\nimport { Brødtekst } from \"../../../../core/text/components/Brødtekst\"\nimport VerdiMedForklaring from \"../../../components/VerdiMedForklaring\"\nimport { Bygning, Bygningsnøkkelinfo } from \"../types/Bygning\"\n\nconst Bygningsstatus = ({\n bygning,\n attributt,\n}: {\n bygning: Bygning\n attributt: Bygningsnøkkelinfo\n}) => {\n const { t } = useTranslation([\"nøkkelbegreper\", \"bygningskort\"])\n const bygningsstatuser = attributt\n .evaluate(bygning)\n ?.toString()\n .split(\",\")\n .map(item => item.trim())\n .filter(item => item)\n const [nåværendeStatus, tidligereStatuser] = bygningsstatuser\n ? [bygningsstatuser[0], bygningsstatuser.slice(1)]\n : [t(\"ikke_registrert\", { ns: \"nøkkelbegreper\" }), []]\n\n const popoverContent = (\n <>\n \n {t(\"historiske_bygningsstatuser_overskrift\", { ns: \"bygningskort\" })}\n \n {tidligereStatuser.length === 0\n ? t(\"ingen_historiske_bygningsstatuser\", { ns: \"bygningskort\" })\n : tidligereStatuser.map((status, index) => {status})}\n \n )\n\n return (\n \n \n {nåværendeStatus}\n \n {popoverContent}\n \n \n \n )\n}\n\nexport default Bygningsstatus\n","import { formaterMedKommaOgOg } from \"../../../../../utils/formateringUtils\"\nimport { Brødtekst } from \"../../../../core/text/components/Brødtekst\"\nimport VerdiMedForklaring from \"../../../components/VerdiMedForklaring\"\nimport { Bygning, Bygningsnøkkelinfo } from \"../types/Bygning\"\n\nexport const FelterIBygningskort = ({\n attributt,\n bygning,\n}: {\n attributt: Bygningsnøkkelinfo\n bygning: Bygning\n}) => {\n const verdier = attributt.evaluate(bygning)\n const formattedVerdier = Array.isArray(verdier) ? formaterMedKommaOgOg(verdier) : verdier\n\n return (\n \n \n {formattedVerdier}\n \n \n )\n}\n","import { Stack } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport ErrorHandler from \"../../../../core/error-handling/ErrorHandler\"\nimport { useKodelister } from \"../../../kodelister/useKodelister\"\nimport { Bygning, Bygningsnøkkelinfo } from \"../types/Bygning\"\nimport { hentBygningstype } from \"../utils/bygningstypeUtil\"\nimport { hentAlleBygningsstatuser } from \"../utils/hentBygningsstatus\"\nimport Bygningsstatus from \"./Bygningsstatus\"\nimport { FelterIBygningskort } from \"./FelterIBygningskort\"\n\nconst OmBygningen = ({ bygning }: { bygning: Bygning }) => {\n const { t } = useTranslation([\"bygningskort\", \"nøkkelbegreper\"])\n const { data: kodelister, isError, isLoading, isSuccess, error } = useKodelister()\n\n if (isError) return \n\n if (isLoading || !isSuccess) return null\n\n const identifikatorForBygning: Bygningsnøkkelinfo[] = [\n {\n title: t(\"bygningstype_felt\"),\n id: \"bygningstype\",\n arialabel: t(\"hva_betyr_type_arialabel\", { ns: \"nøkkelbegreper\", type: \"bygningstype\" }),\n forklaringAvAttributt: t(\"bygningstype_forklaring\"),\n evaluate: (bygning: Bygning) => hentBygningstype[bygning.bygningstype],\n },\n {\n title: t(\"bygningsnummer_felt\"),\n id: \"bygningsnummer\",\n arialabel: t(\"hva_betyr_type_arialabel\", { ns: \"nøkkelbegreper\", type: \"bygningsnummer\" }),\n forklaringAvAttributt: t(\"bygningsnummer_forklaring\"),\n evaluate: (bygning: Bygning) => bygning.bygningsnummer,\n },\n {\n title: t(\"bygningsstatus_felt\"),\n id: \"bygningsstatuser\",\n arialabel: t(\"hva_betyr_type_arialabel\", { ns: \"nøkkelbegreper\", type: \"bygningsstatus\" }),\n forklaringAvAttributt: t(\"bygningsstatus_forklaring\"),\n evaluate: (bygning: Bygning) => {\n const statusHistorikk = hentAlleBygningsstatuser(bygning, kodelister)\n return Array.isArray(statusHistorikk)\n ? statusHistorikk.map(({ år, status }) => (år ? `${år}: ${status}` : status))\n : statusHistorikk\n },\n },\n ]\n\n const hentRiktigVisningForAttributt = (attributt: Bygningsnøkkelinfo) => {\n if (attributt.id === \"bygningsstatuser\") {\n return \n } else {\n return \n }\n }\n\n return (\n \n {identifikatorForBygning.map(attributt => hentRiktigVisningForAttributt(attributt))}\n \n )\n}\n\nexport default OmBygningen\n","import { Accordion, Flex } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useEiendom } from \"../../api/useEiendom\"\nimport useCurrentBygning from \"../../hooks/useCurrentBygning\"\nimport { AccordionItemBygningskort } from \"./AccordionItemBygningskort\"\nimport EgenskaperVedBygning from \"./EgenskaperVedBygning\"\nimport NøkkelinfoOmAlleBruksenheterIBygning from \"./NøkkelinfoOmAlleBruksenheterIBygning\"\nimport OmBygningen from \"./OmBygningen\"\n\nexport const BygningskortAccordion = ({ bygningsId }: { bygningsId: string }) => {\n const { currentBygning, nummererteBruksenheter, unummererteBruksenheter } =\n useCurrentBygning(bygningsId)\n const { data: eiendom } = useEiendom()\n const { t } = useTranslation([\"bygningskort\", \"bruksenhetskort\"])\n\n if (!eiendom || !currentBygning || !nummererteBruksenheter || !unummererteBruksenheter)\n return null\n\n const erEierseksjon = eiendom.matrikkelenhetstype === \"Eierseksjon\"\n const totaltAntallBruksenheter = nummererteBruksenheter.length + unummererteBruksenheter.length\n\n const componentsOrder = erEierseksjon\n ? [\n \n \n ,\n \n \n ,\n \n \n ,\n ]\n : [\n \n \n ,\n \n \n ,\n \n \n ,\n ]\n\n return (\n \n \n {componentsOrder}\n \n \n )\n}\n","import { Flex, FlexProps, Icon, Stack } from \"@kvib/react\"\nimport { useScreenView } from \"../../../../core/hooks/useScreenview\"\nimport { Brødtekst } from \"../../../../core/text/components/Brødtekst\"\nimport { Overskrift } from \"../../../../core/text/components/Overskrift\"\nimport { Vegadresse } from \"../../../eiendomsoversikt/types/Eiendom\"\nimport { formaterFlereVegadresserForBygning } from \"../../../eiendomsoversikt/utils/adresseForEiendomUtils\"\nimport { bygningstypeIkonMapper } from \"../../../eiendomsoversikt/utils/eiendomUtils\"\nimport { Bygningstypekode, hentBygningstype } from \"../utils/bygningstypeUtil\"\n\ninterface Props extends FlexProps {\n bygningstype: string\n vegadresse?: string | Vegadresse[]\n erSeksjon: boolean\n bruksenhetsnummer?: string\n}\n\nconst BygningstypeOgVegadresseOverskrift = ({\n erSeksjon,\n bruksenhetsnummer,\n bygningstype,\n vegadresse,\n ...props\n}: Props) => {\n const { isDesktop } = useScreenView()\n const iconSize = isDesktop ? 50 : 45\n const iconWrapper = `${iconSize + 6}px`\n\n const title = erSeksjon\n ? `Seksjon i ${hentBygningstype[bygningstype.substring(0, 2) as Bygningstypekode].toLowerCase()}`\n : hentBygningstype[bygningstype.substring(0, 2) as Bygningstypekode]\n\n return (\n \n \n \n \n \n \n {title}\n \n \n {Array.isArray(vegadresse) ? formaterFlereVegadresserForBygning(vegadresse) : vegadresse}\n {erSeksjon && bruksenhetsnummer ? `, ${bruksenhetsnummer}` : \"\"}\n \n \n \n )\n}\n\nexport default BygningstypeOgVegadresseOverskrift\n","import {\n Accordion,\n AccordionIcon,\n AccordionItem,\n AccordionItemContent,\n AccordionItemTrigger,\n Card,\n CardBody,\n CardHeader,\n CardProps,\n Flex,\n} from \"@kvib/react\"\nimport { useScreenView } from \"../../../../core/hooks/useScreenview\"\nimport { useEiendom } from \"../../api/useEiendom\"\nimport useCurrentBygning from \"../../hooks/useCurrentBygning\"\nimport { getVegadresserPåBygning } from \"../utils/bygningerUtils\"\nimport { BygningskortAccordion } from \"./BygningskortAccordion\"\nimport BygningstypeOgVegadresseOverskrift from \"./BygningstypeOgAdresseOverskrift\"\n\ninterface Props extends CardProps {\n bygningId: string\n}\n\nconst Bygningskort = ({ bygningId, children, ...props }: Props) => {\n const { isMobile } = useScreenView()\n const { currentBygning, nummererteBruksenheter } = useCurrentBygning(bygningId)\n const { data: eiendom } = useEiendom()\n\n if (!currentBygning || !nummererteBruksenheter || !eiendom || !eiendom.adresser.vegadresser)\n return null\n\n const vegadresserPåBygning = getVegadresserPåBygning(\n eiendom.adresser.vegadresser,\n nummererteBruksenheter,\n )\n\n return (\n \n {isMobile ? (\n \n \n

\n \n \n \n \n

\n \n {children}\n \n \n \n \n
\n
\n ) : (\n <>\n \n \n \n \n \n \n \n )}\n
\n )\n}\n\nexport default Bygningskort\n","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='48'%20height='48'%20fill='none'%3e%3cmask%20id='a'%20fill='%23fff'%3e%3cpath%20d='M24%2042.15q-.45%200-.95-.15-.45-.15-.8-.5a140%20140%200%200%201-4.2-4.05%2050%2050%200%200%201-4.35-5.1%2034%2034%200%200%201-3.4-5.8Q8.9%2023.5%208.9%2020.5q0-6.95%204.45-11.2Q17.85%205%2024%205t10.6%204.3q4.5%204.25%204.5%2011.2%200%203-1.4%206.05a32%2032%200%200%201-3.45%205.8%2043%2043%200%200%201-4.35%205.1%20111%20111%200%200%201-4.15%204.05q-.35.3-.85.5-.45.15-.9.15m0-18.8q1.35%200%202.3-.95t.95-2.3-.95-2.3a3.13%203.13%200%200%200-2.3-.95q-1.35%200-2.3%201-.95.95-.95%202.25%200%201.35.95%202.3t2.3.95'/%3e%3c/mask%3e%3cpath%20fill='%231A589F'%20d='M24%2042.15q-.45%200-.95-.15-.45-.15-.8-.5a140%20140%200%200%201-4.2-4.05%2050%2050%200%200%201-4.35-5.1%2034%2034%200%200%201-3.4-5.8Q8.9%2023.5%208.9%2020.5q0-6.95%204.45-11.2Q17.85%205%2024%205t10.6%204.3q4.5%204.25%204.5%2011.2%200%203-1.4%206.05a32%2032%200%200%201-3.45%205.8%2043%2043%200%200%201-4.35%205.1%20111%20111%200%200%201-4.15%204.05q-.35.3-.85.5-.45.15-.9.15m0-18.8q1.35%200%202.3-.95t.95-2.3-.95-2.3a3.13%203.13%200%200%200-2.3-.95q-1.35%200-2.3%201-.95.95-.95%202.25%200%201.35.95%202.3t2.3.95'/%3e%3cpath%20fill='%23000'%20d='m23.05%2042-.633%201.897.03.01.028.009zm-.8-.5%201.414-1.414-.03-.03-.03-.029zm-4.2-4.05-1.43%201.399.008.008.008.007zm-4.35-5.1-1.617%201.176.006.01.008.01zm-3.4-5.8-1.818.834zM13.35%209.3l1.381%201.446zm21.25%200-1.39%201.438.008.008.009.008zm3.1%2017.25%201.818.834zm-3.45%205.8-1.603-1.195-.008.01-.007.009zm-4.35%205.1-1.414-1.414-.008.007-.007.008zm-4.15%204.05%201.302%201.519.026-.023.025-.023zm-.85.5.633%201.897.055-.018.055-.022zm-3.2-24.15%201.414%201.414.018-.018.018-.018zm2.3%2022.3c-.077%200-.2-.013-.375-.066l-1.15%203.832c.491.147%201.002.234%201.525.234zm-.317-.047q-.002%200%200%200l.002.001-.004-.003-.017-.015-2.828%202.828c.443.443.974.78%201.582.983zm-.08-.076a138%20138%200%200%201-4.139-3.991l-2.828%202.828q2.37%202.371%204.26%204.109zm-4.124-3.976a48%2048%200%200%201-4.175-4.896l-3.207%202.39a52%2052%200%200%200%204.524%205.304zm-4.161-4.877a32%2032%200%200%201-3.2-5.458l-3.636%201.668a36%2036%200%200%200%203.6%206.142zm-3.2-5.458C11.29%2023.913%2010.9%2022.18%2010.9%2020.5h-4c0%202.32.543%204.62%201.582%206.884zM10.9%2020.5c0-4.165%201.313-7.348%203.831-9.754L11.97%207.854C8.554%2011.114%206.9%2015.398%206.9%2020.5zm3.832-9.754C17.365%208.23%2020.422%207%2024%207V3c-4.622%200-8.665%201.637-12.032%204.854zM24%207c3.578%200%206.614%201.23%209.21%203.738l2.78-2.876C32.653%204.637%2028.622%203%2024%203zm9.227%203.754c2.549%202.407%203.873%205.588%203.873%209.746h4c0-5.11-1.676-9.395-5.127-12.654zM37.1%2020.5c0%201.68-.39%203.413-1.218%205.216l3.636%201.668C40.557%2025.12%2041.1%2022.82%2041.1%2020.5zm-1.218%205.216a30%2030%200%200%201-3.235%205.439l3.206%202.39a34%2034%200%200%200%203.665-6.16zm-3.25%205.458a41%2041%200%200%201-4.146%204.862l2.828%202.828a45%2045%200%200%200%204.554-5.338zm-4.161%204.877a109%20109%200%200%201-4.074%203.976l2.706%202.946a113%20113%200%200%200%204.226-4.124zm-4.023%203.93a1%201%200%200%201-.29.162l1.485%203.714a5%205%200%200%200%201.409-.838zm-.18.122a.8.8%200%200%201-.268.047v4c.526%200%201.04-.088%201.532-.253zM24%2025.35a5.13%205.13%200%200%200%203.714-1.536l-2.828-2.828a1.14%201.14%200%200%201-.886.364zm3.714-1.536A5.13%205.13%200%200%200%2029.25%2020.1h-4c0%20.372-.108.63-.364.886zM29.25%2020.1a5.13%205.13%200%200%200-1.536-3.714l-2.828%202.828c.256.256.364.514.364.886zm-1.536-3.714A5.13%205.13%200%200%200%2024%2014.85v4c.372%200%20.63.108.886.364zM24%2014.85c-1.462%200-2.748.568-3.75%201.623l2.9%202.755c.265-.28.512-.378.85-.378zm-3.714%201.586c-.995.994-1.536%202.247-1.536%203.664h4c0-.317.092-.564.364-.836zM18.75%2020.1a5.13%205.13%200%200%200%201.536%203.714l2.828-2.828a1.14%201.14%200%200%201-.364-.886zm1.536%203.714A5.13%205.13%200%200%200%2024%2025.35v-4a1.14%201.14%200%200%201-.886-.364z'%20mask='url(%23a)'/%3e%3c/svg%3e\"","import { Box } from \"@kvib/react\"\nimport { Feature, Map, View } from \"ol\"\nimport Point from \"ol/geom/Point\"\nimport TileLayer from \"ol/layer/Tile\"\nimport VectorLayer from \"ol/layer/Vector\"\nimport { XYZ } from \"ol/source\"\nimport VectorSource from \"ol/source/Vector\"\nimport Icon from \"ol/style/Icon\"\nimport Style from \"ol/style/Style\"\nimport { ViewOptions } from \"ol/View\"\nimport { useEffect, useMemo, useRef, useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport pin from \"../../../assets/pin.svg\"\nimport { useScreenView } from \"../../core/hooks/useScreenview\"\nimport { useEiendom } from \"../../eiendom/detaljert-eiendom/api/useEiendom\"\nimport { Bygning } from \"../../eiendom/detaljert-eiendom/bygningsdetaljer/types/Bygning\"\nimport useTeigpolygoner from \"../../interaktivtKart/api/useTeigpolygoner\"\nimport { KART_EXTENT, projeksjon } from \"../../interaktivtKart/constants\"\nimport { hentBboxForPolygoner } from \"../../interaktivtKart/utils\"\nimport FantIkkeKartutstnittBox from \"./FantIkkeKartutstnittBox\"\nimport { NorgeskartKnapp } from \"./NorgeskartKnapp\"\n\nconst KartutsnittMedBygningsmarkør = ({ bygning }: { bygning: Bygning }) => {\n const { data: eiendom } = useEiendom()\n const { data: teigpolygoner } = useTeigpolygoner(eiendom?.matrikkelnummer)\n const { isMobile } = useScreenView()\n const { t } = useTranslation(\"bygningskort\")\n\n const mapRef = useRef(null)\n\n const extent = useMemo(() => {\n if (teigpolygoner && teigpolygoner.length > 0) {\n return hentBboxForPolygoner(teigpolygoner)\n }\n return null\n }, [teigpolygoner])\n\n const kart = useMemo(() => {\n if (!bygning?.representasjonspunkt || !eiendom) return null\n\n const bygningsmarkør = new Feature({\n geometry: new Point([bygning.representasjonspunkt.long, bygning.representasjonspunkt.lat]),\n })\n\n const markørStyle = new Style({ image: new Icon({ src: pin, scale: 0.7, anchor: [0.5, 1] }) })\n\n bygningsmarkør.setStyle(markørStyle)\n\n const viewConfig: ViewOptions = {\n projection: projeksjon,\n extent: KART_EXTENT,\n }\n\n if (eiendom.koordinat) {\n viewConfig.center = [eiendom.koordinat.long, eiendom.koordinat.lat]\n }\n\n const newMap = new Map({\n interactions: [],\n controls: [],\n maxTilesLoading: 4,\n layers: [\n new TileLayer({\n source: new XYZ({\n crossOrigin: \"*\",\n projection: projeksjon,\n url: `https://cache.kartverket.no/v1/wmts/1.0.0/topo/default/utm33n/{z}/{y}/{x}.png`,\n }),\n }),\n new VectorLayer({\n source: new VectorSource({\n features: [bygningsmarkør],\n }),\n }),\n ],\n view: new View(viewConfig),\n })\n\n return newMap\n }, [bygning, eiendom])\n\n const [isMapInitialized, setIsMapInitialized] = useState(false)\n\n useEffect(() => {\n if (kart && mapRef.current && bygning?.representasjonspunkt) {\n kart.setTarget(mapRef.current)\n if (extent) {\n kart.getView().fit(extent, {\n size: kart.getSize(),\n padding: Array(4).fill(50),\n maxZoom: 18,\n })\n } else {\n kart.getView().setZoom(17)\n kart\n .getView()\n .setCenter([bygning?.representasjonspunkt.long, bygning?.representasjonspunkt.lat])\n }\n setIsMapInitialized(true)\n\n return () => kart.setTarget()\n }\n }, [kart, extent, bygning?.representasjonspunkt])\n\n useEffect(() => {\n if (isMapInitialized && kart && mapRef.current) {\n kart.updateSize()\n }\n }, [isMapInitialized, kart])\n\n return bygning?.representasjonspunkt ? (\n \n
\n \n {t(\"vis_bygning_i_kart_knapp\")}\n \n \n ) : (\n \n )\n}\n\nexport default KartutsnittMedBygningsmarkør\n","import { Grid } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useScreenView } from \"../../core/hooks/useScreenview\"\nimport Bygningskort from \"../../eiendom/detaljert-eiendom/bygningsdetaljer/components/Bygningskort\"\nimport { Bygning } from \"../../eiendom/detaljert-eiendom/bygningsdetaljer/types/Bygning\"\nimport {\n Bygningstypekode,\n hentBygningstype,\n} from \"../../eiendom/detaljert-eiendom/bygningsdetaljer/utils/bygningstypeUtil\"\nimport KartutsnittMedBygningsmarkør from \"./KartutsnittMedBygningsmarkør\"\n\nexport const BygningskortMedKartutsnitt = ({\n bygning,\n index,\n}: {\n bygning: Bygning\n index: number\n}) => {\n const { t } = useTranslation(\"bygningskort\")\n const { isMobile } = useScreenView()\n\n return (\n \n \n {isMobile && }\n \n {!isMobile && }\n \n )\n}\n","import { Stack } from \"@kvib/react\"\nimport { BygningskortMedKartutsnitt } from \"../../../../kartutsnitt/components/BygningskortMedKartutsnitt\"\nimport { Bygning } from \"../types/Bygning\"\nimport { bygningAria, sorterPåBygningstype } from \"../utils/bygningerUtils\"\n\ninterface Props {\n bygningerPåEiendom: Bygning[]\n}\n\nconst AlleBygningskortMedKartutsnittStack = ({ bygningerPåEiendom }: Props) => {\n return (\n \n {sorterPåBygningstype(bygningerPåEiendom).map((bygning, index) => {\n return \n })}\n \n )\n}\n\nexport default AlleBygningskortMedKartutsnittStack\n","import { Skeleton } from \"@kvib/react\"\nimport { t } from \"i18next\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport AlleBygningskortMedKartutsnittStack from \"../bygningsdetaljer/components/AlleBygningskortMedKartutsnittStack\"\nimport { Bygning } from \"../bygningsdetaljer/types/Bygning\"\n\ninterface Props {\n bygningerPåEiendom: Bygning[] | undefined\n}\n\nconst Bygningsdetaljer = ({ bygningerPåEiendom }: Props) => {\n if (!bygningerPåEiendom) return \n return (\n <>\n \n {t(\"bygningsdetaljer_overskrift\", { ns: \"bygningskort\" })}\n \n \n \n )\n}\n\nexport default Bygningsdetaljer\n","import { TextProps } from \"@kvib/react\"\nimport { Brødtekst } from \"../../../core/text/components/Brødtekst\"\nimport { useFontStyles } from \"../../../core/text/fontStyles\"\n\ninterface Props extends TextProps {\n fieldValue?: string\n className?: string\n id?: string\n ariaLabel?: string\n}\n\nconst FeltverdiForEiendomsdetaljer = ({ fieldValue, id, ariaLabel, className }: Props) => {\n const { getFontSize } = useFontStyles()\n return (\n \n {fieldValue}\n \n )\n}\n\nexport default FeltverdiForEiendomsdetaljer\n","import { Box, Flex } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport VerdiMedForklaring from \"../../components/VerdiMedForklaring\"\nimport FeltverdiForEiendomsdetaljer from \"./FeltverdiForEiendomsdetaljer\"\n\nconst BortfestetDetalj = () => {\n const { t } = useTranslation(\"detaljertInnsyn\")\n return (\n \n \n \n \n \n )\n}\n\nexport default BortfestetDetalj\n","import { Flex, Skeleton } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport PopoverikonMedTooltip from \"../../../core/components/PopoverikonMedTooltip\"\nimport { useKodelister } from \"../../kodelister/useKodelister\"\nimport { hentUtfraKodeliste } from \"../../kodelister/utils\"\nimport FeltverdiForEiendomsdetaljer from \"./FeltverdiForEiendomsdetaljer\"\nimport VerdiMedForklaring from \"../../components/VerdiMedForklaring\"\n\nconst DinRettighet = ({ eierforholdtype }: { eierforholdtype: string | undefined }) => {\n const { t } = useTranslation([\"detaljertInnsyn\", \"nøkkelbegreper\"])\n const { data: kodelister } = useKodelister()\n\n const eiertype =\n kodelister && eierforholdtype\n ? (() => {\n const eierforholdkode = hentUtfraKodeliste(\n eierforholdtype,\n kodelister.eierforholdKodeliste,\n )\n return [\"Hjemmelshaver\", \"Aktuell eier\"].includes(eierforholdkode) ? \"Eier\" : \"Fester\"\n })()\n : undefined\n\n return (\n \n {kodelister && eiertype ? (\n \n \n \n {t(`eiertype_forklaring.${eiertype.toLowerCase()}` as never, {\n ns: \"detaljertInnsyn\",\n })}\n \n \n ) : (\n \n )}\n \n )\n}\n\nexport default DinRettighet\n","import { Skeleton } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport VerdiMedForklaring from \"../../components/VerdiMedForklaring\"\nimport FeltverdiForEiendomsdetaljer from \"./FeltverdiForEiendomsdetaljer\"\n\nconst Eierandeldetalj = ({ eierandel }: { eierandel: string | undefined }) => {\n const { t } = useTranslation([\"detaljertInnsyn\", \"nøkkelbegreper\"])\n const eierandelFerdigFetched = eierandel !== undefined\n\n return (\n \n {eierandelFerdigFetched ? (\n \n ) : (\n \n )}\n \n )\n}\n\nexport default Eierandeldetalj\n","import { Button } from \"@kvib/react\"\nimport posthog from \"posthog-js\"\nimport { Matrikkelnummer } from \"../../eiendomsoversikt/types/Eiendom\"\nimport { formaterMatrikkelnummerMedSkråstrek } from \"../../eiendomsoversikt/utils/eiendomUtils\"\n\nconst ÅpneGrunnboksutskriftButton = ({ matrikkelnummer }: { matrikkelnummer: Matrikkelnummer }) => {\n const seEiendomUrl = `https://seeiendom.kartverket.no/eiendom/${formaterMatrikkelnummerMedSkråstrek(\n matrikkelnummer,\n )}`\n\n const handleNavigateToSeEiendom = () => {\n window.open(`${seEiendomUrl}`, \"_blank\")\n posthog.capture(\"Ekstern lenke\", {\n link_name: \"Åpne grunnboksutskrift i Se eiendom\",\n tilAdresse: \"https://seeiendom.kartverket.no/eiendom/*/*/*\",\n })\n }\n\n return (\n \n Gå til Se eiendom for å se grunnboken\n \n )\n}\n\nexport default ÅpneGrunnboksutskriftButton\n","import { Box, SimpleGrid } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport { Matrikkelnummer } from \"../../eiendomsoversikt/types/Eiendom\"\nimport { Eierforhold } from \"../types/DetaljertEiendom\"\nimport BortfestetDetalj from \"./BortfestetDetalj\"\nimport DinRettighet from \"./DinRettighet\"\nimport Eierandeldetalj from \"./Eierandeldetalj\"\nimport ÅpneGrunnboksutskriftButton from \"./ÅpneGrunnboksutskriftButton\"\n\nconst EierforholdDetalj = ({\n eierforhold,\n matrikkelnummer,\n}: {\n eierforhold: Eierforhold | undefined\n matrikkelnummer: Matrikkelnummer | undefined\n}) => {\n const { t } = useTranslation(\"detaljertInnsyn\")\n\n return (\n \n \n {t(\"eierforhold_tittel\")}\n \n \n \n \n {eierforhold?.erFestetBort && }\n \n {matrikkelnummer && <ÅpneGrunnboksutskriftButton matrikkelnummer={matrikkelnummer} />}\n \n )\n}\n\nexport default EierforholdDetalj\n","import { usePostHog } from \"posthog-js/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { EksternLenke } from \"../../../core/text/components/EksternLenke\"\nimport { Matrikkelnummer } from \"../../eiendomsoversikt/types/Eiendom\"\nimport { formaterMatrikkelnummerMedSkråstrek } from \"../../eiendomsoversikt/utils/eiendomUtils\"\n\nconst SeeiendomButton = ({ matrikkelnummer }: { matrikkelnummer: Matrikkelnummer }) => {\n const posthog = usePostHog()\n const seEiendomUrl = `https://seeiendom.kartverket.no/eiendom/${formaterMatrikkelnummerMedSkråstrek(\n matrikkelnummer,\n )}`\n const { t } = useTranslation(\"detaljertInnsyn\")\n\n return (\n \n posthog.capture(\"Ekstern lenke\", {\n link_name: \"Åpne eiendommen i Se eiendom\",\n tilAdresse: \"https://seeiendom.kartverket.no/eiendom/*/*/*\",\n })\n }\n >\n {t(\"se_eiendom_link\")}\n \n )\n}\n\nexport default SeeiendomButton\n","import {\n Accordion,\n AccordionIcon,\n AccordionItem,\n AccordionItemContent,\n AccordionItemTrigger,\n Flex,\n Grid,\n Skeleton,\n Spacer,\n} from \"@kvib/react\"\nimport posthog from \"posthog-js\"\nimport { useTranslation } from \"react-i18next\"\nimport { useScreenView } from \"../../../core/hooks/useScreenview\"\nimport { Brødtekst } from \"../../../core/text/components/Brødtekst\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport { formaterMatrikkelnummer } from \"../../eiendomsoversikt/utils/eiendomUtils\"\nimport { Festegrunn } from \"../types/DetaljertEiendom\"\nimport OverskriftForEiendomsdetaljer from \"./OverskriftForEiendomsdetaljer\"\nimport SeeiendomButton from \"./SeeiendomButton\"\n\nconst FestegrunnerPåEiendomAccordion = ({\n festegrunner,\n}: {\n festegrunner: Festegrunn[] | undefined\n}) => {\n const { isDesktop } = useScreenView()\n const { t } = useTranslation([\"detaljertInnsyn\", \"nøkkelbegreper\"])\n\n if (!festegrunner) return \n\n const sortedFestegrunner = [...festegrunner].sort(\n (a, b) => a.matrikkelnummer.festenummer - b.matrikkelnummer.festenummer,\n )\n\n const FestegrunnInfo = ({ title, value }: { title: string; value: string | number }) => (\n \n {title}\n {value}\n \n )\n\n const antallFestegrunnerPåEiendommen = t(\"antall_festegrunner_på_eiendommen\", {\n count: festegrunner.length,\n })\n\n return (\n <>\n \n {t(\"festegrunner_tittel\", { ns: \"detaljertInnsyn\" })}\n \n \n \n

\n posthog.capture(\"Åpne festegrunner accordion\")}\n >\n {antallFestegrunnerPåEiendommen}\n \n {isDesktop && <>{t(\"se_alle\", { ns: \"nøkkelbegreper\" })}}\n \n \n

\n \n {sortedFestegrunner.map((festegrunn, index) => (\n \n \n \n \n \n \n \n ))}\n \n
\n
\n \n )\n}\n\nexport default FestegrunnerPåEiendomAccordion\n","import { Box, Flex, Skeleton } from \"@kvib/react\"\nimport { t } from \"i18next\"\nimport { useScreenView } from \"../../../core/hooks/useScreenview\"\nimport { Brødtekst } from \"../../../core/text/components/Brødtekst\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport { Matrikkelnummer } from \"../../eiendomsoversikt/types/Eiendom\"\nimport SeeiendomButton from \"./SeeiendomButton\"\n\nconst FlereOpplysninger = ({\n matrikkelnummer,\n}: {\n matrikkelnummer: Matrikkelnummer | undefined\n}) => {\n const isMobile = useScreenView()\n\n if (!matrikkelnummer) return \n\n return (\n <>\n \n {t(\"flere_opplysninger_overskrift\", { ns: \"detaljertInnsyn\" })}\n \n \n \n {t(\"flere_opplysninger_på_se_eiendom\", { ns: \"detaljertInnsyn\" }) as string}\n \n \n \n \n \n \n )\n}\n\nexport default FlereOpplysninger\n","import { Skeleton } from \"@kvib/react\"\nimport { t } from \"i18next\"\nimport { Brødtekst } from \"../../../core/text/components/Brødtekst\"\n\nexport const KommuneOverskrift = ({ kommunenavn }: { kommunenavn: string | undefined }) =>\n kommunenavn ? (\n \n {t(\"kommune\", { ns: \"nøkkelbegreper\", navn: kommunenavn })}\n \n ) : (\n \n )\n","export const arealmerknaderMapper = {\n \" \": \"Ikke registrert\",\n FG: \"Hjelpelinje fiktiv\",\n HP: \"Har punktfester\",\n VA: \"Hjelpelinje vannkant\",\n VE: \"Hjelpelinje vegkant\",\n NF: \"Noen fiktive hjelpelinjer\",\n OM: \"Omtvistet\",\n PF: \"Punktfeste\",\n} as const\n\nexport type Arealmerknadskode = keyof typeof arealmerknaderMapper\n","import { Flex, Skeleton } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport PopoverikonMedTooltip from \"../../../core/components/PopoverikonMedTooltip\"\nimport VerdiMedForklaring from \"../../components/VerdiMedForklaring\"\nimport { Arealmerknadskode, arealmerknaderMapper } from \"../bygningsdetaljer/utils/arealmerknadUtil\"\nimport FeltverdiForEiendomsdetaljer from \"./FeltverdiForEiendomsdetaljer\"\n\nconst Arealmerknad = ({ arealmerknader }: { arealmerknader?: Arealmerknadskode[] }) => {\n const { t } = useTranslation([\"detaljertInnsyn\", \"nøkkelbegreper\"])\n\n const unikeArealmerknaderForEiendomsareal = [\n ...new Set(arealmerknader?.map(merknad => arealmerknaderMapper[merknad] || merknad)),\n ]\n\n return (\n \n <>\n {arealmerknader ? (\n unikeArealmerknaderForEiendomsareal.map(merknad => (\n \n \n \n {t(\n `arealmerknadstype_forklaring.${merknad.toLowerCase().replace(/ /g, \"_\")}` as never,\n {\n ns: \"detaljertInnsyn\",\n },\n )}\n \n \n ))\n ) : (\n \n )}\n \n \n )\n}\n\nexport default Arealmerknad\n","import { useTranslation } from \"react-i18next\"\nimport VerdiMedForklaring from \"../../components/VerdiMedForklaring\"\nimport FeltverdiForEiendomsdetaljer from \"./FeltverdiForEiendomsdetaljer\"\n\nconst TeigMedFlereMatrikkelenheterDetalj = () => {\n const { t } = useTranslation(\"detaljertInnsyn\")\n\n return (\n \n \n \n )\n}\n\nexport default TeigMedFlereMatrikkelenheterDetalj\n","import { t } from \"i18next\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport { Arealmerknadskode } from \"../bygningsdetaljer/utils/arealmerknadUtil\"\nimport Arealmerknad from \"./Arealmerknad\"\nimport TeigMedFlereMatrikkelenheterDetalj from \"./TeigMedFlereMatrikkelenheterDetalj\"\nimport { Skeleton } from \"@kvib/react\"\n\nconst Merknader = ({\n teigdetaljer,\n arealmerknader,\n}: {\n teigdetaljer: boolean | undefined\n arealmerknader: Arealmerknadskode[] | undefined\n}) => {\n if (!teigdetaljer && !arealmerknader) return \n return (\n <>\n \n {t(\"teig_tittel\", { ns: \"detaljertInnsyn\" })}\n \n {arealmerknader && arealmerknader.length > 0 ? (\n \n ) : null}\n {teigdetaljer ? (\n \n ) : null}\n \n )\n}\n\nexport default Merknader\n","import { Skeleton } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport VerdiMedForklaring from \"../../components/VerdiMedForklaring\"\nimport FeltverdiForEiendomsdetaljer from \"./FeltverdiForEiendomsdetaljer\"\n\nconst AntallTeigerDetalj = ({ antallTeiger }: { antallTeiger: number | undefined }) => {\n const { t } = useTranslation(\"detaljertInnsyn\")\n\n return antallTeiger ? (\n \n \n \n ) : (\n \n )\n}\n\nexport default AntallTeigerDetalj\n","import { Skeleton } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport VerdiMedForklaring from \"../../components/VerdiMedForklaring\"\nimport FeltverdiForEiendomsdetaljer from \"./FeltverdiForEiendomsdetaljer\"\n\nconst EiendomsarealDetalj = ({\n areal,\n erEierseksjon,\n}: {\n areal: number | undefined\n erEierseksjon: boolean\n}) => {\n const { t } = useTranslation([\"detaljertInnsyn\", \"nøkkelbegreper\"])\n\n const forklaringKey = erEierseksjon\n ? \"eksklusivt_uteareal_forklaring\"\n : \"eiendomsareal_forklaring\"\n const overskriftKey = erEierseksjon\n ? \"eksklusivt_uteareal_overskrift\"\n : \"eiendomsareal_overskrift\"\n const ikkeRegistrertKey = erEierseksjon ? \"ikke_registrert\" : \"ikke_beregnet\"\n\n const arealVerdi =\n areal !== null && areal !== undefined && areal !== 0\n ? t(\"areal\", { ns: \"nøkkelbegreper\", val: areal })\n : t(ikkeRegistrertKey, { ns: \"nøkkelbegreper\" })\n\n return (\n \n {areal !== null && areal !== undefined ? (\n \n ) : (\n \n )}\n \n )\n}\n\nexport default EiendomsarealDetalj\n","import { Flex, Skeleton } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport PopoverikonMedTooltip from \"../../../core/components/PopoverikonMedTooltip\"\nimport VerdiMedForklaring from \"../../components/VerdiMedForklaring\"\nimport { getMatrikkelenhetstype } from \"../../eiendomsoversikt/utils/eiendomUtils\"\nimport FeltverdiForEiendomsdetaljer from \"./FeltverdiForEiendomsdetaljer\"\n\nconst Matrikkelenhetstypedetalj = ({\n matrikkelenhetstype,\n}: {\n matrikkelenhetstype: string | undefined\n}) => {\n const { t } = useTranslation([\"detaljertInnsyn\", \"nøkkelbegreper\"])\n\n const matrikkelenhetstypeTranslationString =\n matrikkelenhetstype?.toLocaleLowerCase() === \"annenmatrikkelenhet\"\n ? \"annen_matrikkelenhet\"\n : matrikkelenhetstype?.toLocaleLowerCase()\n\n const matrikkelenhetstypeAriaLabel =\n matrikkelenhetstype?.toLocaleLowerCase() === \"annenmatrikkelenhet\"\n ? \"annen type\"\n : matrikkelenhetstype?.toLocaleLowerCase()\n\n return (\n \n {matrikkelenhetstype ? (\n \n \n \n {t(`matrikkelenhetstype_forklaring.${matrikkelenhetstypeTranslationString}` as never, {\n ns: \"detaljertInnsyn\",\n })}\n \n \n ) : (\n \n )}\n \n )\n}\n\nexport default Matrikkelenhetstypedetalj\n","import { Skeleton } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Matrikkelnummer } from \"../../eiendomsoversikt/types/Eiendom\"\nimport {\n formaterMatrikkelnummer,\n verboseMatrikkelnummer,\n} from \"../../eiendomsoversikt/utils/eiendomUtils\"\nimport FeltverdiForEiendomsdetaljer from \"./FeltverdiForEiendomsdetaljer\"\nimport VerdiMedForklaring from \"../../components/VerdiMedForklaring\"\n\nconst Matrikkelnummerdetalj = ({ matrikkelnummer }: { matrikkelnummer?: Matrikkelnummer }) => {\n const matrikkelnummerId = \"matrikkelnummer-\" + matrikkelnummer\n const { t } = useTranslation(\"nøkkelbegreper\")\n\n return (\n \n {matrikkelnummer ? (\n \n ) : (\n \n )}\n \n )\n}\n\nexport default Matrikkelnummerdetalj\n","import { SimpleGrid } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport { DetaljertEiendomResponse } from \"../types/DetaljertEiendom\"\nimport AntallTeigerDetalj from \"./AntallTeigerDetalj\"\nimport EiendomsarealDetalj from \"./Eiendomsarealdetalj\"\nimport Matrikkelenhetstypedetalj from \"./Matrikkelenhetstypedetalj\"\nimport Matrikkelnummerdetalj from \"./Matrikkelnummerdetalj\"\n\nconst NøkkelinfoOmEiendommen = ({ eiendom }: { eiendom: DetaljertEiendomResponse | undefined }) => {\n const { t } = useTranslation([\"nøkkelbegreper\", \"detaljertInnsyn\"])\n\n return (\n <>\n \n {t(\"nøkkelinfo_tittel\", { ns: \"detaljertInnsyn\" })}\n \n \n \n \n \n {eiendom && eiendom?.antallTeiger > 1 && (\n \n )}\n \n \n )\n}\n\nexport default NøkkelinfoOmEiendommen\n","import { HStack, Separator, Stack } from \"@kvib/react\"\nimport { ReactNode } from \"react\"\nimport Section from \"../../../core/components/layout/Section\"\nimport { finnerIngenPathsSomMatcher } from \"../../../core/error-handling/types/finnerIngenPathSomPatcher\"\nimport KartutsnittForDetaljertEiendom from \"../../../kartutsnitt/components/KartutsnittForDetaljertEiendom\"\nimport { isBortfestetEiendom } from \"../api/eiendom\"\nimport { useEiendom } from \"../api/useEiendom\"\nimport { AdresseOverskrift } from \"./AdresseOverskrift\"\nimport Bygningsdetaljer from \"./Bygningsdetaljer\"\nimport EierforholdDetalj from \"./Eierforhold\"\nimport FestegrunnerPåEiendomAccordion from \"./FestegrunnerPåEiendomAccordion\"\nimport FlereOpplysninger from \"./FlereOpplysninger\"\nimport { KommuneOverskrift } from \"./KommuneOverskrift\"\nimport Merknader from \"./Merknader\"\nimport NøkkelinfoOmEiendommen from \"./NøkkelinfoOmEiendommen\"\n\nconst StackedSection = ({ children }: { children: ReactNode }) => (\n <>\n \n {children}\n \n)\n\nconst DetaljertEiendom = () => {\n const { data: eiendom, isPending: isEiendommerPending } = useEiendom()\n const commonPaddingForSection = [\"30px\", \"40px\"]\n\n if (!isEiendommerPending && !eiendom) {\n throw finnerIngenPathsSomMatcher\n }\n\n const eiendomErBortfestet = eiendom && isBortfestetEiendom(eiendom)\n const skalViseBygningerPåEiendom =\n eiendom && !eiendomErBortfestet && eiendom.bygningerPåEiendom?.length > 0\n const skalViseFestegrunnerPåEiendom =\n eiendom && !eiendomErBortfestet && eiendom.festegrunner?.length > 0\n const skalViseTeigInfo =\n eiendom &&\n (eiendom.teigMedFlereMatrikkelenheter ||\n (eiendom.areal?.arealmerknader && eiendom.areal.arealmerknader.length > 0))\n\n return (\n <>\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n {skalViseTeigInfo && (\n \n \n \n )}\n {skalViseFestegrunnerPåEiendom && (\n \n \n \n )}\n
\n {skalViseBygningerPåEiendom && (\n
\n \n
\n )}\n
\n \n
\n \n )\n}\n\nexport default DetaljertEiendom\n","import { useQuery } from \"@tanstack/react-query\"\nimport { konverterFraMinutterTilMillisekunder } from \"../../../../utils/konverterFraMinutterTilMillisekunder\"\nimport { api } from \"../../../shared-api/router\"\n\nexport const useEgenregistreringIsEnabled = () => {\n const queryKey = [\"feature-toogle\", \"egenregistrering\"]\n\n const egenregistreringQuery = useQuery({\n queryKey,\n staleTime: konverterFraMinutterTilMillisekunder(30),\n queryFn: () => api.egenregistrering.kanEgenregistrere(),\n })\n\n return egenregistreringQuery\n}\n","import { Flex, Icon, Stack } from \"@kvib/react\"\nimport { useQueries } from \"@tanstack/react-query\"\nimport { useTranslation } from \"react-i18next\"\nimport { useNavigate } from \"react-router\"\nimport { konverterFraMinutterTilMillisekunder } from \"../../../../utils/konverterFraMinutterTilMillisekunder\"\nimport { Brødtekst } from \"../../../core/text/components/Brødtekst\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport { api } from \"../../../shared-api/router\"\nimport { isBortfestetEiendom, isNummerertBruksenhet } from \"../../detaljert-eiendom/api/eiendom\"\nimport { BruksenhetResponse } from \"../../detaljert-eiendom/types/DetaljertEiendom\"\nimport { useEiendommer } from \"../../eiendomsoversikt/api/useEiendommer\"\nimport { useEgenregistreringIsEnabled } from \"../api/useEgenregistreringIsEnabled\"\n\nconst VarselOmEgenregistrering = () => {\n const { data: egenregistreringIsEnabled } = useEgenregistreringIsEnabled()\n const { data: eiendommer } = useEiendommer()\n const navigate = useNavigate()\n const { t } = useTranslation(\"egenregistrering\")\n\n const detaljertEiendommer = useQueries({\n queries:\n eiendommer?.map(eiendom => ({\n queryKey: [\"eiendom\", eiendom.matrikkelenhetId],\n queryFn: () => api.eiendom.hentEiendom(eiendom.matrikkelenhetId),\n staleTime: konverterFraMinutterTilMillisekunder(15),\n })) || [],\n })\n\n const harEiendommerMedBruksenheterForEgenregistrering =\n eiendommer &&\n eiendommer.some((_, index) => {\n const detaljertEiendom = detaljertEiendommer[index]?.data\n if (!detaljertEiendom) return false\n return (\n !isBortfestetEiendom(detaljertEiendom) &&\n detaljertEiendom.bygningerPåEiendom?.length > 0 &&\n detaljertEiendom.bruksenheterPåEiendom.some((bruksenhet: BruksenhetResponse) =>\n isNummerertBruksenhet(bruksenhet),\n )\n )\n })\n\n return (\n
\n {egenregistreringIsEnabled && harEiendommerMedBruksenheterForEgenregistrering && (\n {\n const url = `egenregistreringer`\n navigate(url)\n }}\n role=\"button\"\n p=\"20px\"\n bg=\"blue.700\"\n mb=\"16px\"\n cursor=\"pointer\"\n >\n \n \n \n \n \n {t(\"til_oversikt_egenregistrering.tittel\")}\n \n {t(\"til_oversikt_egenregistrering.knapp\")}\n \n \n \n \n \n )}\n
\n )\n}\n\nexport default VarselOmEgenregistrering\n","import { Box, Image, Skeleton } from \"@kvib/react\"\nimport { Map, View } from \"ol\"\nimport { GeoJSON } from \"ol/format\"\nimport TileLayer from \"ol/layer/Tile\"\nimport VectorLayer from \"ol/layer/Vector\"\nimport VectorSource from \"ol/source/Vector\"\nimport XYZ from \"ol/source/XYZ\"\nimport { ViewOptions } from \"ol/View\"\nimport { useEffect, useMemo, useRef } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport eiendomPlaceholder from \"../../../assets/eiendom.svg\"\nimport { Koordinat } from \"../../eiendom/detaljert-eiendom/bygningsdetaljer/types/Bygning\"\nimport { Matrikkelnummer } from \"../../eiendom/eiendomsoversikt/types/Eiendom\"\nimport useTeigpolygoner from \"../../interaktivtKart/api/useTeigpolygoner\"\nimport { KART_EXTENT, projeksjon } from \"../../interaktivtKart/constants\"\nimport { hentBboxForPolygoner, polygonTilGeoJSON, polygonstil } from \"../../interaktivtKart/utils\"\n\nconst KartutsnittForEiendomskort = ({\n matrikkelnummer,\n adresser,\n koordinat,\n}: {\n matrikkelnummer?: Matrikkelnummer\n adresser: string\n koordinat?: Koordinat\n}) => {\n const { t } = useTranslation(\"eiendomskort\")\n const { data: teigpolygoner, isPending } = useTeigpolygoner(matrikkelnummer)\n const mapRef = useRef(null)\n\n const polygonExtent = useMemo(() => {\n if (!teigpolygoner) return null\n return hentBboxForPolygoner(teigpolygoner)\n }, [teigpolygoner])\n\n const geoJsonOverlays = useMemo(\n () => teigpolygoner?.map(p => polygonTilGeoJSON(p)),\n [teigpolygoner],\n )\n\n const kart = useMemo(() => {\n const viewConfig: ViewOptions = {\n projection: projeksjon,\n extent: KART_EXTENT,\n maxZoom: 18,\n }\n\n const newMap = new Map({\n interactions: [],\n controls: [],\n maxTilesLoading: 2,\n layers: [\n new TileLayer({\n source: new XYZ({\n crossOrigin: \"*\",\n projection: projeksjon,\n url: `https://cache.kartverket.no/v1/wmts/1.0.0/topo/default/utm33n/{z}/{y}/{x}.png`,\n }),\n }),\n ],\n view: new View(viewConfig),\n })\n\n return newMap\n }, [])\n\n useEffect(() => {\n if (kart && mapRef.current) {\n kart.setTarget(mapRef.current)\n if (polygonExtent) {\n kart.getView().fit(polygonExtent, {\n size: kart.getSize(),\n padding: Array(4).fill(50),\n })\n }\n\n geoJsonOverlays?.forEach(overlay => {\n const source = new VectorSource({\n features: new GeoJSON().readFeatures(overlay),\n })\n\n kart.addLayer(\n new VectorLayer({\n source: source,\n style: polygonstil,\n }),\n )\n })\n\n return () => kart.setTarget()\n }\n }, [kart, polygonExtent, geoJsonOverlays])\n\n if (isPending) {\n return \n }\n\n return koordinat ? (\n \n ) : (\n \n \n \n )\n}\n\nexport default KartutsnittForEiendomskort\n","import { useTranslation } from \"react-i18next\"\nimport { useScreenView } from \"../../core/hooks/useScreenview\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\nimport VerdiMedForklaring from \"./VerdiMedForklaring\"\n\ninterface InfoPopoverProps {\n matrikkelnummer: string\n}\n\nexport const MatrikkelnummerInfoPopover = (props: InfoPopoverProps) => {\n const { t } = useTranslation(\"nøkkelbegreper\")\n const { isDesktop } = useScreenView()\n\n return (\n \n \n {props.matrikkelnummer}\n \n \n )\n}\n","import { useTranslation } from \"react-i18next\"\nimport { useScreenView } from \"../../core/hooks/useScreenview\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\nimport { getMatrikkelenhetstype } from \"../eiendomsoversikt/utils/eiendomUtils\"\nimport VerdiMedForklaring from \"./VerdiMedForklaring\"\n\nconst MatrikkeltypePopover = ({ matrikkelenhetstype }: { matrikkelenhetstype: string }) => {\n const { t } = useTranslation([\"nøkkelbegreper\"])\n const { isDesktop } = useScreenView()\n const matrikkelenhetstypeAriaLabel = getMatrikkelenhetstype(matrikkelenhetstype)\n\n return (\n \n \n {getMatrikkelenhetstype(matrikkelenhetstype)}\n \n \n )\n}\n\nexport default MatrikkeltypePopover\n","import { Box, Grid, GridProps } from \"@kvib/react\"\nimport { Children } from \"react\"\n\nconst EiendomskortContainer = ({ ...props }: GridProps) => {\n const skalVisesSomKolonne = props.flexDirection === \"column\" || props.flexDir === \"column\"\n\n const buttonProps: GridProps = {\n _hover: {\n boxShadow: \"{shadows.lg}\",\n },\n tabIndex: 0,\n transition: \"box-shadow 0.2s ease-in-out\",\n role: \"button\",\n }\n\n const children = Children.toArray(props.children)\n\n // Destructuring av children\n const [kartutsnitt, ...rest] = children\n\n return (\n \n {kartutsnitt}\n {rest}\n \n )\n}\n\nexport default EiendomskortContainer\n","import { Box, Button, GridProps, Stack } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useNavigate } from \"react-router\"\nimport { useScreenView } from \"../../../core/hooks/useScreenview\"\nimport { Brødtekst } from \"../../../core/text/components/Brødtekst\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport { useFontStyles } from \"../../../core/text/fontStyles\"\n\nimport KartutsnittForEiendomskort from \"../../../kartutsnitt/components/KartutsnittForEiendomskort\"\nimport { MatrikkelnummerInfoPopover } from \"../../components/MatrikkelnummerInfoPopover\"\nimport MatrikkeltypePopover from \"../../components/MatrikkeltypePopover\"\nimport { Eiendom } from \"../types/Eiendom\"\nimport { formaterAdresseForEiendom } from \"../utils/adresseForEiendomUtils\"\nimport { formaterMatrikkelnummer } from \"../utils/eiendomUtils\"\nimport EiendomskortContainer from \"./EiendomskortContainer\"\n\ninterface Props extends GridProps {\n eiendom: Eiendom\n}\n\nconst Eiendomskort = ({ eiendom, ...props }: Props) => {\n const { isMobile, isDesktop } = useScreenView()\n const { t } = useTranslation([\"nøkkelbegreper\", \"eiendomskort\"])\n\n const adresse = formaterAdresseForEiendom(\n eiendom.adresser,\n eiendom.matrikkelnummer,\n eiendom.matrikkelenhetstype,\n )\n\n const navigate = useNavigate()\n const åpneDetaljer = () => {\n navigate(`/eiendom/${eiendom.eiendomsIndex}`)\n }\n\n const { getFontSize } = useFontStyles()\n\n return (\n (e.key === \"Enter\" && åpneDetaljer()) || (e.key === \" \" && åpneDetaljer())}\n {...props}\n >\n \n \n \n\n \n \n {t(\"kommune\", { ns: \"nøkkelbegreper\", navn: eiendom.kommunenavn })}\n \n \n {adresse}\n \n \n {isDesktop ? (\n \n \n \n \n ) : (\n \n )}\n \n )\n}\n\nexport default Eiendomskort\n","import { Box, Button, Flex, Image } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useNavigate } from \"react-router\"\nimport manglerEiendommerIllustrasjon from \"../../../../assets/questionmark_man.svg\"\nimport { useScreenView } from \"../../../core/hooks/useScreenview\"\nimport { Brødtekst } from \"../../../core/text/components/Brødtekst\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\n\nconst HvorforSerJegIkkeEiendomCard = ({\n skalVisesSomRad,\n visLogo,\n}: {\n skalVisesSomRad: boolean\n visLogo: boolean\n}) => {\n const { t } = useTranslation(\"eiendomskort\")\n const { isMobile } = useScreenView()\n const navigate = useNavigate()\n return (\n \n \n )\n}\n\nexport default HvorforSerJegIkkeEiendomCard\n","import { Grid, GridItem, useBreakpointValue } from \"@kvib/react\"\nimport { useRef } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Eiendom } from \"../types/Eiendom\"\nimport Eiendomskort from \"./Eiendomskort\"\nimport HvorforSerJegIkkeEiendomCard from \"./HvorforSerJegIkkeEiendomCard\"\n\nconst EiendomskortListe = ({ eiendommer }: { eiendommer?: Eiendom[] }) => {\n const { t } = useTranslation(\"eiendomskort\")\n const eiendommerLengde = eiendommer?.length\n const skalVisesSomRad =\n useBreakpointValue({ base: false, md: true, lg: (eiendommerLengde ?? 0) < 3 }) ?? false\n\n const flexDir = useBreakpointValue({\n base: \"column\",\n md: \"row\",\n lg: skalVisesSomRad ? \"row\" : \"column\",\n }) as \"column\" | \"row\"\n\n const imgRef = useRef(null)\n\n return (\n <>\n {eiendommer && (\n \n {eiendommer.map(eiendom => (\n \n \n \n ))}\n \n \n \n \n )}\n \n )\n}\n\nexport default EiendomskortListe\n","import { Center, Separator, Spinner } from \"@kvib/react\"\nimport { useQueryClient } from \"@tanstack/react-query\"\nimport { useTranslation } from \"react-i18next\"\nimport { konverterFraMinutterTilMillisekunder } from \"../../../../utils/konverterFraMinutterTilMillisekunder\"\nimport Section from \"../../../core/components/layout/Section\"\nimport ErrorHandler from \"../../../core/error-handling/ErrorHandler\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport { api } from \"../../../shared-api/router\"\nimport VarselOmEgenregistrering from \"../../registrering/components/VarselOmEgenregistrering\"\nimport { useEiendommer } from \"../api/useEiendommer\"\nimport EiendomskortListe from \"../components/EiendomskortListe\"\n\nconst MineEiendommer = () => {\n const paddingTopBottom = { base: \"24px\", lg: \"80px\", xl: \"80px\" }\n const { t } = useTranslation(\"nøkkelbegreper\")\n const { data: eiendommer, isLoading, isError, error } = useEiendommer()\n const queryClient = useQueryClient()\n\n eiendommer?.forEach(eiendom => {\n queryClient.prefetchQuery({\n queryKey: [\"eiendom\", eiendom.matrikkelenhetId],\n queryFn: () => api.eiendom.hentEiendom(eiendom.matrikkelenhetId),\n staleTime: konverterFraMinutterTilMillisekunder(15),\n })\n })\n\n return (\n
\n \n {t(\"mine_eiendommer\")}\n \n \n {isError && }\n {isLoading && (\n
\n \n
\n )}\n
\n )\n}\n\nexport default MineEiendommer\n","import { useQuery } from \"@tanstack/react-query\"\nimport { useParams } from \"react-router\"\nimport { api } from \"../../../shared-api/router\"\n\nconst useEgenregistreringBruksenhet = () => {\n const { bygningId, bruksenhetId } = useParams()\n\n const egenregistreringsQuery = useQuery({\n queryKey: [\"egenregistrering-bruksenhet\", bygningId, bruksenhetId],\n queryFn: () => api.egenregistrering.hentEgenregistreringBruksenhet(bygningId!, bruksenhetId!),\n throwOnError: true,\n })\n\n return egenregistreringsQuery\n}\n\nexport default useEgenregistreringBruksenhet\n","import { z } from \"zod\"\nimport {\n AvløpKeysEnum,\n EnergikildeKeysEnum,\n Kildekode,\n OppvarmingKeysEnum,\n VannforsyningKeysEnum,\n} from \"./Enums\"\n\nexport type IkonForFelt =\n | \"calendar_today\"\n | \"square_foot\"\n | \"bolt\"\n | \"heat\"\n | \"water_drop\"\n | \"valve\"\n | \"help\"\n\nexport function hentIkonForFelt(felt: Felt): IkonForFelt {\n switch (felt) {\n case \"byggeår\":\n return \"calendar_today\"\n case \"bruksareal\":\n return \"square_foot\"\n case \"energikilder\":\n return \"bolt\"\n case \"oppvarming\":\n return \"heat\"\n case \"vannforsyning\":\n return \"water_drop\"\n case \"avløp\":\n return \"valve\"\n default:\n return \"help\"\n }\n}\nexport type Felt =\n | EgenregFelt\n | EgenregFelt\n | EgenregFelt\n | EgenregFelt\n | EgenregFelt\n | EgenregFelt\n\ntype EgenregFelt = keyof Omit\n\nconst preprocessOptionalToUndefined = (schema: T) =>\n z.preprocess(input => {\n if (\n input === \"\" ||\n Number.isNaN(input) ||\n input === false ||\n input === null ||\n (Array.isArray(input) && input.length === 0)\n ) {\n return undefined\n }\n return input\n }, schema)\n\nconst validateByggeår = z\n .number({\n message: \"Vennligst oppgi et gyldig byggeår\",\n required_error: \"Vennligst oppgi et gyldig byggeår\",\n })\n .nonnegative(\"Vennligst oppgi et gyldig byggeår\")\n .min(1000, \"Vennligst oppgi et gyldig byggeår\")\n .max(new Date().getFullYear(), \"Byggeår kan ikke være frem i tid\")\n\nconst validateEtasjeRegistrering = z.object({\n bruksareal: z\n .number({\n required_error: \"Vennligst oppgi et gyldig bruksareal for etasjen\",\n })\n .nonnegative(\"Bruksareal kan ikke være negativt\")\n .min(1, { message: \"Bruksareal må være større enn 0\" }),\n\n etasjebetegnelse: z.object({\n etasjeplanKode: z.string(),\n etasjenummer: z.number().int().positive(),\n }),\n})\n\nconst validateBruksareal = z\n .object({\n totaltBruksareal: preprocessOptionalToUndefined(\n z\n .number({\n required_error: \"Vennligst oppgi totalt bruksareal\",\n })\n .nonnegative(\"Totalt bruksareal kan ikke være negativt\")\n .min(1, { message: \"Totalt bruksareal må være større enn 0\" }),\n ),\n etasjeRegistreringer: preprocessOptionalToUndefined(\n z.array(preprocessOptionalToUndefined(validateEtasjeRegistrering.optional())).optional(),\n ),\n })\n .refine(\n data => data.totaltBruksareal !== undefined || (data.etasjeRegistreringer?.length ?? 0) > 0,\n {\n message: \"Du må enten oppgi totalt bruksareal eller bruksareal per etasje\",\n path: [\"bruksareal\"],\n },\n )\n .transform(data => {\n if (\n data.etasjeRegistreringer?.every(e => e === undefined) ||\n data.etasjeRegistreringer === undefined ||\n data.etasjeRegistreringer.length === 0\n ) {\n delete data.etasjeRegistreringer\n return data\n }\n return data\n })\n .refine(\n data => {\n const etasjer = data.etasjeRegistreringer ?? []\n const hasUndefined = etasjer.some(e => e === undefined)\n const hasDefined = etasjer.some(e => e !== undefined)\n return !(hasDefined && hasUndefined)\n },\n {\n message: \"Alle etasjeregistreringer må være utfylt eller tomme\",\n path: [\"bruksareal.etasjeRegistreringer\"],\n },\n )\n\nconst kildematerialeSchema = z.object({\n kildemateriale: z.object({\n kode: z.nativeEnum(Kildekode, {\n message: \"Vennligst velg et kildemateriale\",\n }),\n }),\n})\n\nexport const byggeårSchema = z\n .object({\n byggeår: validateByggeår,\n })\n .merge(kildematerialeSchema)\n\nexport const bruksarealSchema = z\n .object({\n bruksareal: validateBruksareal,\n })\n .merge(kildematerialeSchema)\n .refine(\n e => {\n if (!e.bruksareal.etasjeRegistreringer?.some(e => e?.bruksareal !== undefined)) return true\n return (\n e.bruksareal.totaltBruksareal ===\n e.bruksareal.etasjeRegistreringer?.reduce((acc, curr) => acc + (curr?.bruksareal ?? 0), 0)\n )\n },\n {\n message: \"Totalt bruksareal må være lik summen av bruksarealene for alle etasjer\",\n path: [\"bruksareal.totaltBruksareal\"],\n },\n )\nconst preprocessEmptyArrayToUndefined = (val: unknown) => {\n if (Array.isArray(val)) {\n return val.length === 0 ? undefined : val\n }\n return undefined\n}\n\nexport const oppvarmingSchema = z\n .object({\n oppvarming: z.preprocess(\n preprocessEmptyArrayToUndefined,\n z\n .array(z.enum(OppvarmingKeysEnum), {\n required_error: \"Vennligst oppgi minst én oppvarmingstype\",\n })\n .nonempty({ message: \"Vennligst oppgi minst én oppvarmingstype\" }),\n ),\n })\n .merge(kildematerialeSchema)\n\nexport const energikilderSchema = z\n .object({\n energikilder: z.preprocess(\n preprocessEmptyArrayToUndefined,\n z\n .array(z.enum(EnergikildeKeysEnum), {\n required_error: \"Vennligst oppgi minst én energikilde\",\n })\n .nonempty({ message: \"Vennligst oppgi minst én energikilde\" }),\n ),\n })\n .merge(kildematerialeSchema)\n\nexport const vannforsyningSchema = z\n .object({\n vannforsyning: preprocessOptionalToUndefined(\n z.enum(VannforsyningKeysEnum, {\n required_error: \"Vennligst velg en vannforsyningstype\",\n }),\n ),\n })\n .merge(kildematerialeSchema)\n\nexport const avløpSchema = z\n .object({\n avløp: preprocessOptionalToUndefined(\n z.enum(AvløpKeysEnum, {\n required_error: \"Vennligst velg en avløpstype\",\n }),\n ),\n })\n .merge(kildematerialeSchema)\n\nexport type ByggeårSchema = z.infer\nexport type BruksarealSchema = z.infer\nexport type EnergikilderSchema = z.infer\nexport type OppvarmingSchema = z.infer\nexport type VannforsyningSchema = z.infer\nexport type AvløpSchema = z.infer\n","import { toaster } from \"@kvib/react\"\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\"\nimport { useTranslation } from \"react-i18next\"\nimport { useParams } from \"react-router\"\nimport { ApiError } from \"../../../core/error-handling/ApiError\"\nimport { api } from \"../../../shared-api/router\"\nimport {\n AvløpSchema,\n BruksarealSchema,\n ByggeårSchema,\n EnergikilderSchema,\n Felt,\n OppvarmingSchema,\n VannforsyningSchema,\n} from \"../types/schema\"\n\nexport interface OpprettEgenregistreringDTO<\n T extends\n | ByggeårSchema\n | EnergikilderSchema\n | BruksarealSchema\n | OppvarmingSchema\n | AvløpSchema\n | VannforsyningSchema,\n> {\n bygningId: string\n bruksenhetId: string\n key: Felt\n egenregistrering: T\n}\n\nconst useOpprettEgenregistrering = <\n T extends\n | ByggeårSchema\n | EnergikilderSchema\n | BruksarealSchema\n | OppvarmingSchema\n | AvløpSchema\n | VannforsyningSchema,\n>() => {\n const { bygningId, bruksenhetId } = useParams()\n const queryClient = useQueryClient()\n const { t } = useTranslation(\"egenregistrering\")\n return useMutation>({\n mutationFn: api.egenregistrering.sendEgenregistrering,\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: [\"egenregistrering-bruksenhet\", bygningId!, bruksenhetId!],\n })\n queryClient.invalidateQueries({ queryKey: [\"egenregistrering-bygning\", bygningId] })\n toaster.create({\n title: t(\"vellykket_innsending.tittel\"),\n description: t(\"vellykket_innsending.beskrivelse\"),\n type: \"success\",\n duration: 4000,\n })\n },\n onError: err => {\n toaster.create({ title: err.userErrorMessage, type: \"error\" })\n },\n })\n}\n\nexport default useOpprettEgenregistrering\n","import { Button, ButtonProps } from \"@kvib/react\"\n\ninterface EgenregistreringKnappProps extends ButtonProps {\n icon: \"edit\" | \"add\"\n children: string\n}\n\nexport const EgenregistreringKnapp = ({\n children,\n icon,\n ...buttonProps\n}: EgenregistreringKnappProps) => (\n \n {children}\n \n)\n","import { Box, Icon, MaterialSymbol } from \"@kvib/react\"\n\nconst CircularIcon = ({ icon, iconSize }: { icon: MaterialSymbol; iconSize?: number }) => (\n \n \n \n)\n\nexport default CircularIcon\n","import { Flex, IconProps } from \"@kvib/react\"\nimport { formaterStorForbokstav } from \"../../../../utils/formateringUtils\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport { Felt, IkonForFelt } from \"../types/schema\"\nimport CircularIcon from \"./skjemakomponenter/CircularIcon\"\n\ninterface Props extends IconProps {\n felt: Felt\n icon: IkonForFelt\n iconSize?: number\n}\n\nexport const IkonOgFeltLabel = ({ felt, iconSize, icon }: Props) => {\n return (\n \n \n {formaterStorForbokstav(felt)}\n \n )\n}\n","import { useQuery } from \"@tanstack/react-query\"\nimport { konverterFraMinutterTilMillisekunder } from \"../../../utils/konverterFraMinutterTilMillisekunder\"\nimport { ApiError } from \"../../core/error-handling/ApiError\"\nimport { api } from \"../../shared-api/router\"\nimport { Kildemateriale } from \"../registrering/types/Enums\"\n\nexport const useKodelisterBygning = () => {\n const kodelisteQuery = useQuery({\n queryKey: [\"kodelisterBygning\"],\n staleTime: konverterFraMinutterTilMillisekunder(15),\n queryFn: api.kodelisterFraBygning.hentKodelisterBygning,\n throwOnError: err => err.type !== \"UVENTET_FEIL\",\n })\n\n return kodelisteQuery\n}\n","import { Box, DialogBody, Grid } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { formaterMedKommaOgOg, formaterStorForbokstav } from \"../../../../../utils/formateringUtils\"\nimport { Brødtekst } from \"../../../../core/text/components/Brødtekst\"\nimport { Overskrift } from \"../../../../core/text/components/Overskrift\"\nimport { useKodelisterBygning } from \"../../../kodelister/useKodelisterBygning\"\nimport { Kildekode } from \"../../types/Enums\"\nimport { Felt } from \"../../types/schema\"\nimport { hentKildepresentasjonsnavn } from \"../../utils\"\n\nconst EgenregistreringOppsummering = ({\n felt,\n formdata,\n kildedata,\n}: {\n felt: Felt\n formdata: string | number | string[]\n kildedata: Kildekode\n}) => {\n const { t } = useTranslation([\"egenregistrering\", \"skjemaoverskrifter\"])\n const { data: kodelister } = useKodelisterBygning()\n\n if (!kodelister) return null\n\n return (\n \n \n \n {t(\"oppsummering\", { ns: \"skjemaoverskrifter\" })}\n \n {t(\"oppsummering_tekst\")}\n \n \n {formaterStorForbokstav(felt)}\n \n {Array.isArray(formdata)\n ? formaterMedKommaOgOg(formdata.map(formdata => formdata))\n : formdata}\n \n {t(\"kilde\", { ns: \"skjemaoverskrifter\" })}\n \n {hentKildepresentasjonsnavn({ kildemateriale: kildedata, kodelister: kodelister })}\n \n \n \n )\n}\n\nexport default EgenregistreringOppsummering\n","import { Button, DialogFooter, Spinner } from \"@kvib/react\"\nimport { Dispatch, SetStateAction } from \"react\"\nimport { FieldValues, UseFormTrigger } from \"react-hook-form\"\nimport { useTranslation } from \"react-i18next\"\n\ninterface FooterProps {\n step: number\n setStep: (step: number) => void\n formId: string\n isSubmitting: boolean\n setIsOpen: Dispatch>\n triggerValidation: UseFormTrigger\n}\n\nconst EgenregistreringFooter = ({\n step,\n setStep,\n formId,\n isSubmitting,\n triggerValidation,\n setIsOpen,\n}: FooterProps) => {\n const { t } = useTranslation(\"skjemafooter\")\n\n return (\n \n {step === 1 ? (\n <>\n \n
\n {\n triggerValidation().then(isValid => {\n if (isValid) setStep(2)\n })\n }}\n >\n {t(\"neste\")}\n \n
\n \n ) : (\n <>\n \n \n \n )}\n
\n )\n}\n\nexport default EgenregistreringFooter\n","import { Box } from \"@kvib/react\"\nimport { Brødtekst } from \"../../../../core/text/components/Brødtekst\"\n\nconst HjelpetekstForFelt = ({\n colorSceheme = \"blue.50\",\n children,\n}: {\n colorSceheme?: \"green.50\" | \"blue.50\"\n children: string\n}) => {\n return (\n \n {children}\n \n )\n}\n\nexport default HjelpetekstForFelt\n","import { Alert, AlertDescription } from \"@kvib/react\"\nimport { FieldError, Merge } from \"react-hook-form\"\n\nexport const InvalidInputAlert = ({\n error,\n}: {\n error: Merge | undefined\n}) => {\n return (\n error && (\n \n {Array.isArray(error) ? (\n error.map((e, i) => {e.message})\n ) : (\n {error.message}\n )}\n \n )\n )\n}\n","import { Box, Radio, RadioGroup, Stack } from \"@kvib/react\"\nimport { Control, Controller, FieldValues, Path } from \"react-hook-form\"\nimport { Brødtekst } from \"../../../../core/text/components/Brødtekst\"\nimport { Overskrift } from \"../../../../core/text/components/Overskrift\"\n\nconst Radioknapper = ({\n label,\n beskrivelse,\n control,\n name,\n valgmuligheter,\n highlightValgtVerdi = false,\n}: {\n label: string\n beskrivelse?: string\n control: Control\n name: Path\n valgmuligheter: Valgmulighet[]\n highlightValgtVerdi?: boolean\n}) => {\n return (\n \n {label}\n {beskrivelse && {beskrivelse}}\n\n (\n field.onChange(value)}\n >\n \n {valgmuligheter.map(valgmulighet => (\n \n \n {valgmulighet.beskrivelse ? (\n <>\n {valgmulighet.presentasjonsnavn}\n {valgmulighet.beskrivelse}\n \n ) : (\n {valgmulighet.presentasjonsnavn}\n )}\n \n \n ))}\n \n \n )}\n />\n \n )\n}\n\ntype Valgmulighet = {\n kode: string\n presentasjonsnavn: string\n beskrivelse?: string\n}\n\nexport default Radioknapper\n","import { zodResolver } from \"@hookform/resolvers/zod\"\nimport { DialogBody, Field } from \"@kvib/react\"\nimport { useState } from \"react\"\nimport { useForm } from \"react-hook-form\"\nimport { useTranslation } from \"react-i18next\"\nimport { useKodelisterBygning } from \"../../kodelister/useKodelisterBygning\"\nimport useEgenregistreringBruksenhet from \"../api/useEgenregistreringBruksenhet\"\nimport { Avløpstype } from \"../types/Enums\"\nimport { AvløpSchema, avløpSchema } from \"../types/schema\"\nimport { RegistreringsProps } from \"./modaler/EgenregistreringDialog\"\nimport EgenregistreringOppsummering from \"./modaler/EgenregistreringOppsummering\"\nimport EgenregistreringFooter from \"./skjemakomponenter/EgenregistreringFooter\"\nimport HjelpetekstForFelt from \"./skjemakomponenter/HjelpetekstForFelt\"\nimport { InvalidInputAlert } from \"./skjemakomponenter/InvalidInputAlert\"\nimport Radioknapper from \"./skjemakomponenter/Radioknapper\"\n\nconst RegistrerAvløp = ({ handleSubmit, setIsOpen }: RegistreringsProps) => {\n const { t } = useTranslation([\"egenregistrering\", \"hjelpetekster\"])\n const { data: egenregistreringFraBruksenhet } = useEgenregistreringBruksenhet()\n const [step, setStep] = useState(1)\n\n const form = useForm({\n resolver: zodResolver(avløpSchema),\n defaultValues: {\n avløp: egenregistreringFraBruksenhet?.avløp?.data,\n kildemateriale: { kode: egenregistreringFraBruksenhet?.avløp?.metadata.kildemateriale },\n },\n })\n\n const onSubmit = form.handleSubmit(data => {\n handleSubmit(data)\n })\n\n const { data: kodelister } = useKodelisterBygning()\n if (!kodelister) return null\n\n const valgmuligheter = Object.entries(Avløpstype).map(([key, label]) => ({\n kode: key,\n presentasjonsnavn: label,\n }))\n\n return (\n <>\n \n
\n {step === 1 ? (\n \n \n {t(\"hjelpetekst_avløp\", {\n ns: \"hjelpetekster\",\n })}\n \n \n name=\"avløp\"\n label={t(\"registrer_felt_for_bruksenheten.avløp\", { ns: \"skjemaoverskrifter\" })}\n control={form.control}\n valgmuligheter={valgmuligheter}\n />\n \n \n label=\"Kilde\"\n beskrivelse={t(\"hjelpetekst_velg_dokumentasjon\", {\n ns: \"hjelpetekster\",\n })}\n control={form.control}\n name=\"kildemateriale.kode\"\n valgmuligheter={kodelister}\n highlightValgtVerdi={true}\n />\n \n \n ) : (\n \n )}\n \n
\n \n \n )\n}\n\nexport default RegistrerAvløp\n","import {\n Flex,\n HStack,\n InputGroup,\n InputProps,\n NumberInputField,\n NumberInputRoot,\n Stack,\n} from \"@kvib/react\"\nimport { UseFormRegisterReturn } from \"react-hook-form\"\n\ninterface InputfeltTallProps extends InputProps {\n register: UseFormRegisterReturn\n}\n\nconst InputfeltTall = (props: InputfeltTallProps) => {\n const { name, variant, register } = props\n return (\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default InputfeltTall\n","import { zodResolver } from \"@hookform/resolvers/zod\"\nimport { DialogBody, Field } from \"@kvib/react\"\nimport { useState } from \"react\"\nimport { useForm } from \"react-hook-form\"\nimport { useTranslation } from \"react-i18next\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport { useKodelisterBygning } from \"../../kodelister/useKodelisterBygning\"\nimport useEgenregistreringBruksenhet from \"../api/useEgenregistreringBruksenhet\"\nimport { ByggeårSchema, byggeårSchema } from \"../types/schema\"\nimport { RegistreringsProps } from \"./modaler/EgenregistreringDialog\"\nimport EgenregistreringOppsummering from \"./modaler/EgenregistreringOppsummering\"\nimport EgenregistreringFooter from \"./skjemakomponenter/EgenregistreringFooter\"\nimport HjelpetekstForFelt from \"./skjemakomponenter/HjelpetekstForFelt\"\nimport InputfeltTall from \"./skjemakomponenter/InputfeltTall\"\nimport { InvalidInputAlert } from \"./skjemakomponenter/InvalidInputAlert\"\nimport Radioknapper from \"./skjemakomponenter/Radioknapper\"\n\nconst RegistrerByggeår = ({ handleSubmit, setIsOpen }: RegistreringsProps) => {\n const { t } = useTranslation([\"egenregistrering\", \"hjelpetekster\"])\n const { data: egenregistreringFraBruksenhet } = useEgenregistreringBruksenhet()\n const [step, setStep] = useState(1)\n const byggeårForm = useForm({\n resolver: zodResolver(byggeårSchema),\n defaultValues: {\n byggeår: egenregistreringFraBruksenhet?.byggeår?.data,\n kildemateriale: {\n kode: egenregistreringFraBruksenhet?.byggeår?.metadata.kildemateriale,\n },\n },\n })\n\n const onSubmit = byggeårForm.handleSubmit(data => {\n handleSubmit(data)\n })\n const { data: kodelister } = useKodelisterBygning()\n if (!kodelister) return null\n\n return (\n <>\n \n
\n {step === 1 ? (\n \n \n {t(\"hjelpetekst_byggeår\", { ns: \"hjelpetekster\" })}\n \n \n {t(\"registrer_felt_for_bruksenheten.byggeår\", { ns: \"skjemaoverskrifter\" })}\n \n \n \n \n label=\"Kilde\"\n beskrivelse={t(\"hjelpetekst_velg_dokumentasjon\", {\n ns: \"hjelpetekster\",\n })}\n control={byggeårForm.control}\n name=\"kildemateriale.kode\"\n valgmuligheter={kodelister}\n highlightValgtVerdi={true}\n />\n \n \n ) : (\n \n )}\n \n
\n \n \n )\n}\n\nexport default RegistrerByggeår\n","import { Flex } from \"@kvib/react\"\nimport { UseFormRegisterReturn } from \"react-hook-form\"\nimport { Brødtekst } from \"../../../../core/text/components/Brødtekst\"\n\ninterface CheckboxProps {\n feltKey: string\n label: string\n name: \"energikilder\" | \"oppvarming\"\n register: UseFormRegisterReturn\n}\nconst CheckboxForEgenregistrering = (props: CheckboxProps) => {\n const { feltKey, label, register } = props\n return (\n \n \n \n \n )\n}\n\nexport default CheckboxForEgenregistrering\n","import { CheckboxGroup, Grid, Stack } from \"@kvib/react\"\nimport { UseFormRegisterReturn } from \"react-hook-form\"\nimport { useTranslation } from \"react-i18next\"\nimport { Overskrift } from \"../../../../core/text/components/Overskrift\"\nimport { Energikildetype, Oppvarmingstype } from \"../../types/Enums\"\nimport CheckboxForEgenregistrering from \"./CheckboxForEgenregistrering\"\n\ninterface Props {\n name: \"energikilder\" | \"oppvarming\"\n register: UseFormRegisterReturn\n options: T\n}\n\nconst Flervalg = ({\n name,\n register,\n options,\n}: Props) => {\n const { t } = useTranslation([\"egenregistrering\", \"skjemaoverskrifter\", \"hjelpetekster\"])\n\n const optionMedEksempeltekst = [\n \"Biobrensel\",\n \"AnnenOppvarming\",\n \"Sentralvarme\",\n \"Elektrisk\",\n \"OljeParafin\",\n ]\n\n const formlabelTekst =\n name === \"energikilder\"\n ? t(\"registrer_felt_for_bruksenheten.energikilder\", { ns: \"skjemaoverskrifter\" })\n : t(\"registrer_felt_for_bruksenheten.oppvarming\", { ns: \"skjemaoverskrifter\" })\n\n const hentOptionMedEksempeltekst = (label: string, key: string) => {\n if (!optionMedEksempeltekst.includes(key)) return label\n const hjelpetekst = t(`hjelpetekst_flervalg.${key}` as never, {\n ns: \"hjelpetekster\",\n })\n return label + hjelpetekst\n }\n\n return (\n \n {formlabelTekst}\n \n \n {Object.entries(options).map(([key, label]) => (\n \n ))}\n \n \n \n )\n}\n\nexport default Flervalg\n","import { zodResolver } from \"@hookform/resolvers/zod\"\nimport { DialogBody, Field } from \"@kvib/react\"\nimport { useState } from \"react\"\nimport { useForm } from \"react-hook-form\"\nimport { useTranslation } from \"react-i18next\"\nimport { useKodelisterBygning } from \"../../kodelister/useKodelisterBygning\"\nimport useEgenregistreringBruksenhet from \"../api/useEgenregistreringBruksenhet\"\nimport { Energikildetype } from \"../types/Enums\"\nimport { EnergikilderSchema, energikilderSchema } from \"../types/schema\"\nimport { RegistreringsProps } from \"./modaler/EgenregistreringDialog\"\nimport EgenregistreringOppsummering from \"./modaler/EgenregistreringOppsummering\"\nimport EgenregistreringFooter from \"./skjemakomponenter/EgenregistreringFooter\"\nimport Flervalg from \"./skjemakomponenter/Flervalg\"\nimport HjelpetekstForFelt from \"./skjemakomponenter/HjelpetekstForFelt\"\nimport { InvalidInputAlert } from \"./skjemakomponenter/InvalidInputAlert\"\nimport Radioknapper from \"./skjemakomponenter/Radioknapper\"\n\nconst RegistrerEnergikilder = ({\n handleSubmit,\n setIsOpen,\n}: RegistreringsProps) => {\n const { t } = useTranslation([\"egenregistrering\", \"hjelpetekster\"])\n const { data: egenregistreringFraBruksenhet } = useEgenregistreringBruksenhet()\n const [step, setStep] = useState(1)\n\n const form = useForm({\n resolver: zodResolver(energikilderSchema),\n defaultValues: {\n energikilder: egenregistreringFraBruksenhet?.energikilder?.data,\n kildemateriale: {\n kode: egenregistreringFraBruksenhet?.energikilder?.metadata?.kildemateriale,\n },\n },\n })\n\n const onSubmit = form.handleSubmit(data => {\n handleSubmit(data)\n })\n\n const { data: kodelister } = useKodelisterBygning()\n if (!kodelister) return null\n\n return (\n <>\n \n
\n {step === 1 ? (\n \n \n {t(\"hjelpetekst_energikilder\", {\n ns: \"hjelpetekster\",\n })}\n \n \n \n \n label=\"Kilde\"\n beskrivelse={t(\"hjelpetekst_velg_dokumentasjon\", {\n ns: \"hjelpetekster\",\n })}\n control={form.control}\n name=\"kildemateriale.kode\"\n valgmuligheter={kodelister}\n highlightValgtVerdi={true}\n />\n \n \n ) : (\n Energikildetype[energikilde])}\n kildedata={form.getValues(\"kildemateriale.kode\")}\n />\n )}\n \n
\n \n \n )\n}\n\nexport default RegistrerEnergikilder\n","import { zodResolver } from \"@hookform/resolvers/zod\"\nimport { DialogBody, Field } from \"@kvib/react\"\nimport { useState } from \"react\"\nimport { useForm } from \"react-hook-form\"\nimport { useTranslation } from \"react-i18next\"\nimport { useKodelisterBygning } from \"../../kodelister/useKodelisterBygning\"\nimport useEgenregistreringBruksenhet from \"../api/useEgenregistreringBruksenhet\"\nimport { Oppvarmingstype } from \"../types/Enums\"\nimport { OppvarmingSchema, oppvarmingSchema } from \"../types/schema\"\nimport { RegistreringsProps } from \"./modaler/EgenregistreringDialog\"\nimport EgenregistreringOppsummering from \"./modaler/EgenregistreringOppsummering\"\nimport EgenregistreringFooter from \"./skjemakomponenter/EgenregistreringFooter\"\nimport Flervalg from \"./skjemakomponenter/Flervalg\"\nimport HjelpetekstForFelt from \"./skjemakomponenter/HjelpetekstForFelt\"\nimport { InvalidInputAlert } from \"./skjemakomponenter/InvalidInputAlert\"\nimport Radioknapper from \"./skjemakomponenter/Radioknapper\"\n\nconst RegistrerOppvarming = ({ handleSubmit, setIsOpen }: RegistreringsProps) => {\n const { t } = useTranslation([\"egenregistrering\", \"skjemaoverskrifter\", \"hjelpetekster\"])\n const { data: egenregistreringFraBruksenhet } = useEgenregistreringBruksenhet()\n const [step, setStep] = useState(1)\n const { data: kodelister } = useKodelisterBygning()\n\n const form = useForm({\n resolver: zodResolver(oppvarmingSchema),\n defaultValues: {\n oppvarming: egenregistreringFraBruksenhet?.oppvarming?.data,\n kildemateriale: {\n kode: egenregistreringFraBruksenhet?.oppvarming?.metadata?.kildemateriale,\n },\n },\n })\n\n const onSubmit = form.handleSubmit(data => {\n handleSubmit(data)\n })\n\n if (!kodelister) return null\n\n return (\n <>\n \n
\n {step === 1 ? (\n \n \n {t(\"hjelpetekst_oppvarmingstyper\", {\n ns: \"hjelpetekster\",\n })}\n \n \n \n\n \n label=\"Kilde\"\n beskrivelse={t(\"hjelpetekst_velg_dokumentasjon\", {\n ns: \"hjelpetekster\",\n })}\n control={form.control}\n name=\"kildemateriale.kode\"\n valgmuligheter={kodelister}\n highlightValgtVerdi={true}\n />\n \n \n ) : (\n Oppvarmingstype[oppvarming])}\n kildedata={form.getValues(\"kildemateriale.kode\")}\n />\n )}\n \n
\n \n \n )\n}\n\nexport default RegistrerOppvarming\n","import { zodResolver } from \"@hookform/resolvers/zod\"\nimport { DialogBody, Field } from \"@kvib/react\"\nimport { useState } from \"react\"\nimport { useForm } from \"react-hook-form\"\nimport { useTranslation } from \"react-i18next\"\nimport { useKodelisterBygning } from \"../../kodelister/useKodelisterBygning\"\nimport useEgenregistreringBruksenhet from \"../api/useEgenregistreringBruksenhet\"\nimport { Kildekode, Vannforsyningstype } from \"../types/Enums\"\nimport { VannforsyningSchema, vannforsyningSchema } from \"../types/schema\"\nimport { RegistreringsProps } from \"./modaler/EgenregistreringDialog\"\nimport EgenregistreringOppsummering from \"./modaler/EgenregistreringOppsummering\"\nimport EgenregistreringFooter from \"./skjemakomponenter/EgenregistreringFooter\"\nimport HjelpetekstForFelt from \"./skjemakomponenter/HjelpetekstForFelt\"\nimport { InvalidInputAlert } from \"./skjemakomponenter/InvalidInputAlert\"\nimport Radioknapper from \"./skjemakomponenter/Radioknapper\"\n\nconst RegistrerVannforsyning = ({\n handleSubmit,\n setIsOpen,\n}: RegistreringsProps) => {\n const { t } = useTranslation([\"egenregistrering\", \"hjelpetekster\"])\n const { data: egenregistreringFraBruksenhet } = useEgenregistreringBruksenhet()\n const [step, setStep] = useState(1)\n\n const form = useForm({\n resolver: zodResolver(vannforsyningSchema),\n defaultValues: {\n vannforsyning: egenregistreringFraBruksenhet?.vannforsyning?.data,\n kildemateriale: {\n kode: egenregistreringFraBruksenhet?.vannforsyning?.metadata.kildemateriale,\n },\n },\n })\n\n const { data: kodelister } = useKodelisterBygning()\n if (!kodelister) return null\n\n const onSubmit = form.handleSubmit(data => {\n handleSubmit(data)\n })\n\n const valgmuligheter = Object.entries(Vannforsyningstype).map(([key, label]) => ({\n kode: key,\n presentasjonsnavn: label,\n }))\n\n return (\n <>\n \n
\n {step === 1 ? (\n \n \n {t(\"hjelpetekst_vannforsyning\", {\n ns: \"hjelpetekster\",\n })}\n \n \n name=\"vannforsyning\"\n label={t(\"registrer_felt_for_bruksenheten.vannforsyning\", {\n ns: \"skjemaoverskrifter\",\n })}\n control={form.control}\n valgmuligheter={valgmuligheter}\n />\n \n \n name=\"kildemateriale.kode\"\n label=\"Kilde\"\n beskrivelse={t(\"hjelpetekst_velg_dokumentasjon\", {\n ns: \"hjelpetekster\",\n })}\n control={form.control}\n valgmuligheter={kodelister}\n highlightValgtVerdi={true}\n />\n \n \n ) : (\n \n )}\n \n
\n \n \n )\n}\n\nexport default RegistrerVannforsyning\n","import { Box, Field, Flex, HStack, NumberInputField, NumberInputRoot } from \"@kvib/react\"\nimport { t } from \"i18next\"\nimport { Controller, UseFormReturn } from \"react-hook-form\"\nimport { Brødtekst } from \"../../../../../core/text/components/Brødtekst\"\nimport { Overskrift } from \"../../../../../core/text/components/Overskrift\"\nimport { Etasje } from \"../../../../detaljert-eiendom/bygningsdetaljer/types/Bygning\"\nimport {\n etasjeplankodeMapping,\n sorterEtterPlankodeDeretterEtasjeummer,\n} from \"../../../../detaljert-eiendom/bygningsdetaljer/utils/etasjeUtil\"\nimport { BruksarealSchema } from \"../../../types/schema\"\n\ninterface EtasjeRegistering {\n etasjer: Etasje[]\n bruksarealForm: UseFormReturn\n}\n\nconst EtasjeRegistrering = ({ etasjer, bruksarealForm }: EtasjeRegistering) => {\n return etasjer.length > 0 ? (\n sorterEtterPlankodeDeretterEtasjeummer(etasjer).map((etasje, index) => (\n \n {\n return (\n \n \n {`${etasje.etasjenummer}. ${etasjeplankodeMapping[etasje.etasjeplankode]}`}\n \n {\n field.onChange({\n bruksareal: valueAsNumber,\n etasjebetegnelse: {\n etasjeplanKode: etasje.etasjeplankode,\n etasjenummer: Number(etasje.etasjenummer),\n },\n })\n }}\n >\n \n \n \n \n \n \n )\n }}\n />\n \n ))\n ) : (\n \n {t(\"hjelpetekst_bruksareal_ingen_registrerte_etasjer\")}\n \n )\n}\n\nexport default EtasjeRegistrering\n","import {\n Accordion,\n AccordionIcon,\n AccordionItem,\n AccordionItemContent,\n AccordionItemTrigger,\n Box,\n Field,\n Flex,\n} from \"@kvib/react\"\nimport { UseFormReturn } from \"react-hook-form\"\nimport { useTranslation } from \"react-i18next\"\nimport { useParams } from \"react-router\"\nimport { Brødtekst } from \"../../../../../core/text/components/Brødtekst\"\nimport { Overskrift } from \"../../../../../core/text/components/Overskrift\"\nimport { useEiendom } from \"../../../../detaljert-eiendom/api/useEiendom\"\nimport { EidDetaljertEiendom } from \"../../../../detaljert-eiendom/types/DetaljertEiendom\"\nimport { useKodelisterBygning } from \"../../../../kodelister/useKodelisterBygning\"\nimport { BruksarealSchema } from \"../../../types/schema\"\nimport EgenregistreringOppsummering from \"../../modaler/EgenregistreringOppsummering\"\nimport HjelpetekstForFelt from \"../HjelpetekstForFelt\"\nimport InputfeltTall from \"../InputfeltTall\"\nimport { InvalidInputAlert } from \"../InvalidInputAlert\"\nimport Radioknapper from \"../Radioknapper\"\nimport EtasjeRegistrering from \"./EtasjeRegistrering\"\n\nconst BruksarealForm = ({\n handleSubmit,\n bruksarealForm,\n step,\n}: {\n handleSubmit: (data: BruksarealSchema) => void\n bruksarealForm: UseFormReturn\n step: number\n}) => {\n const { bygningId } = useParams()\n const { data: eidEiendom } = useEiendom()\n\n const { t } = useTranslation([\"egenregistrering\", \"skjemaoverskrifter\", \"hjelpetekster\"])\n\n const etasjer = eidEiendom?.bygningerPåEiendom.find(b => b.byggId === bygningId)?.etasjer\n\n const { data: kodelister } = useKodelisterBygning()\n\n if (!eidEiendom || !bygningId || !kodelister) return null\n\n const onSubmit = bruksarealForm.handleSubmit(handleSubmit)\n\n return (\n
\n {step === 1 ? (\n \n \n {t(\"hjelpetekst_bruksareal\", {\n ns: \"hjelpetekster\",\n })}\n \n \n \n {t(\"registrer_felt_for_bruksenheten.bruksareal_totalt\", {\n ns: \"skjemaoverskrifter\",\n })}\n \n \n \n \n \n \n \n \n \n \n {t(\"vil_registrere_areal_per_etasje_tittel\")}\n \n \n \n \n \n {t(\"vil_registrere_bruksareal_per_etasje_hjelpetekst\")}\n \n {etasjer && (\n \n )}\n \n \n \n \n \n label=\"Kilde\"\n beskrivelse={t(\"hjelpetekst_velg_dokumentasjon\", {\n ns: \"hjelpetekster\",\n })}\n control={bruksarealForm.control}\n name=\"kildemateriale.kode\"\n valgmuligheter={kodelister}\n highlightValgtVerdi={true}\n />\n \n \n ) : (\n \n )}\n \n )\n}\n\nexport default BruksarealForm\n","import { zodResolver } from \"@hookform/resolvers/zod\"\nimport { DialogBody } from \"@kvib/react\"\nimport { useState } from \"react\"\nimport { useForm } from \"react-hook-form\"\nimport useEgenregistreringBruksenhet from \"../../../api/useEgenregistreringBruksenhet\"\nimport { BruksarealSchema, bruksarealSchema } from \"../../../types/schema\"\nimport { RegistreringsProps } from \"../../modaler/EgenregistreringDialog\"\nimport EgenregistreringFooter from \"../EgenregistreringFooter\"\nimport BruksarealForm from \"./BruksarealForm\"\n\nconst RegistrerBruksareal = ({ handleSubmit, setIsOpen }: RegistreringsProps) => {\n const [step, setStep] = useState(1)\n const { data: egenregistreringFraBruksenhet } = useEgenregistreringBruksenhet()\n\n const bruksarealForm = useForm({\n resolver: zodResolver(bruksarealSchema),\n defaultValues: {\n bruksareal: {\n totaltBruksareal: egenregistreringFraBruksenhet?.bruksareal?.data.totaltBruksareal,\n etasjeRegistreringer:\n egenregistreringFraBruksenhet?.bruksareal?.data.etasjeRegistrertBruksareal,\n },\n kildemateriale: {\n kode: egenregistreringFraBruksenhet?.bruksareal?.metadata.kildemateriale,\n },\n },\n })\n\n return (\n <>\n \n \n \n \n \n )\n}\n\nexport default RegistrerBruksareal\n","import {\n DialogBackdrop,\n DialogCloseTrigger,\n DialogContent,\n DialogHeader,\n DialogRoot,\n DialogTrigger,\n} from \"@kvib/react\"\nimport { Dispatch, SetStateAction, useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useParams } from \"react-router\"\nimport { formaterStorForbokstav } from \"../../../../../utils/formateringUtils\"\nimport { useScreenView } from \"../../../../core/hooks/useScreenview\"\nimport useOpprettEgenregistrering from \"../../api/useOpprettEgenregistering\"\nimport { EgenregistreringBruksenhet } from \"../../types/EgenregistreringBygning\"\nimport {\n AvløpSchema,\n BruksarealSchema,\n ByggeårSchema,\n EnergikilderSchema,\n Felt,\n OppvarmingSchema,\n VannforsyningSchema,\n hentIkonForFelt,\n} from \"../../types/schema\"\nimport { hentEgenregistrertVerdi } from \"../../utils\"\nimport { EgenregistreringKnapp } from \"../EgenregistreringKnapp\"\nimport { IkonOgFeltLabel } from \"../IkonOgFeltLabel\"\nimport RegistrerAvløp from \"../RegistrerAvløp\"\nimport RegistrerByggeår from \"../RegistrerByggeår\"\nimport RegistrerEnergikilder from \"../RegistrerEnergikilder\"\nimport RegistrerOppvarming from \"../RegistrerOppvarming\"\nimport RegistrerVannforsyning from \"../RegistrerVannforsyning\"\nimport RegistrerBruksareal from \"../skjemakomponenter/bruksareal/RegistrerBruksareal\"\n\ninterface EgenregistreringModalProps {\n felt: Felt\n egenregistreringForBruksenhet: EgenregistreringBruksenhet\n}\n\nexport interface RegistreringsProps<\n T extends\n | ByggeårSchema\n | EnergikilderSchema\n | BruksarealSchema\n | OppvarmingSchema\n | AvløpSchema\n | VannforsyningSchema,\n> {\n handleSubmit: (data: T) => void\n setIsOpen: Dispatch>\n}\n\nconst EgenregistreringDialog = ({\n felt,\n egenregistreringForBruksenhet,\n}: EgenregistreringModalProps) => {\n const { mutate: sendEgenregistrering } = useOpprettEgenregistrering()\n const { bygningId, bruksenhetId } = useParams()\n const { isDesktop } = useScreenView()\n const { t } = useTranslation([\"egenregistrering\", \"nøkkelbegreper\"])\n const [isOpen, setIsOpen] = useState(false)\n\n const handleSubmit = (\n form:\n | ByggeårSchema\n | EnergikilderSchema\n | BruksarealSchema\n | OppvarmingSchema\n | AvløpSchema\n | VannforsyningSchema,\n ) => {\n sendEgenregistrering(\n {\n bygningId: bygningId!,\n bruksenhetId: bruksenhetId!,\n key: felt,\n egenregistrering: form,\n },\n {\n onSuccess: () => {\n setIsOpen(false)\n },\n },\n )\n }\n\n const getFieldContent = (field: Felt) => {\n switch (field) {\n case \"byggeår\":\n return \n case \"bruksareal\":\n return \n case \"energikilder\":\n return \n case \"oppvarming\":\n return \n case \"vannforsyning\":\n return \n case \"avløp\":\n return \n default:\n return null\n }\n }\n\n const tekstForEgenregistreringsknapp = (\n egenregistrertVerdi: number | string | undefined,\n ): string => {\n if (egenregistrertVerdi === undefined) {\n return formaterStorForbokstav(t(\"tekst_registrer_verdi_knapp\"))\n }\n\n return formaterStorForbokstav(t(\"tekst_endre_verdi_knapp\"))\n }\n\n const egenregistrertVerdi = hentEgenregistrertVerdi(felt, egenregistreringForBruksenhet)\n\n return (\n setIsOpen(e.open)}\n >\n \n \n setIsOpen(true)}\n >\n {tekstForEgenregistreringsknapp(egenregistrertVerdi)}\n \n \n \n \n \n \n \n {getFieldContent(felt)}\n \n \n )\n}\n\nexport default EgenregistreringDialog\n","import useEgenregistreringBruksenhet from \"../api/useEgenregistreringBruksenhet\"\nimport { Felt } from \"../types/schema\"\n\nexport const useMetadata = (feltKey?: Felt) => {\n const { data: egenregistreringBruksenhet } = useEgenregistreringBruksenhet()\n\n if (!egenregistreringBruksenhet || !feltKey) return undefined\n\n switch (feltKey) {\n case \"byggeår\":\n return egenregistreringBruksenhet.byggeår?.metadata\n case \"bruksareal\":\n return egenregistreringBruksenhet.bruksareal?.metadata\n case \"energikilder\":\n return egenregistreringBruksenhet.energikilder?.metadata\n case \"oppvarming\":\n return egenregistreringBruksenhet.oppvarming?.metadata\n case \"vannforsyning\":\n return egenregistreringBruksenhet.vannforsyning?.metadata\n case \"avløp\":\n return egenregistreringBruksenhet.avløp?.metadata\n default:\n return undefined\n }\n}\n","import { format } from \"date-fns\"\nimport { Brødtekst } from \"../../../core/text/components/Brødtekst\"\nimport { useKodelisterBygning } from \"../../kodelister/useKodelisterBygning\"\nimport { useMetadata } from \"../hooks/useMetadata\"\nimport { Felt } from \"../types/schema\"\nimport { hentKildepresentasjonsnavn } from \"../utils\"\n\nconst Registreringsinfo = ({ feltKey }: { feltKey: Felt }) => {\n const { data: kodelister } = useKodelisterBygning()\n\n const metadata = useMetadata(feltKey)\n if (!metadata) return null\n\n const registrertAv = (metadata: { registrertAvDeg: boolean }) => {\n return metadata.registrertAvDeg ? \"deg\" : \"annen eier\"\n }\n\n const registreringstidspunkt = (metadata: { registreringstidspunkt: string }) => {\n return metadata.registreringstidspunkt\n ? format(new Date(metadata.registreringstidspunkt), \"dd.MM.yyyy\")\n : \"\"\n }\n\n const registreringstidspunktFormatted = registreringstidspunkt(metadata)\n\n return (\n registreringstidspunktFormatted && (\n <>\n \n {`Registrert av ${registrertAv(metadata)} ${registreringstidspunktFormatted}`}\n \n {metadata.kildemateriale && kodelister && (\n <>\n \n Kilde\n \n \n {hentKildepresentasjonsnavn({\n kodelister: kodelister,\n kildemateriale: metadata.kildemateriale,\n })}\n \n \n )}\n \n )\n )\n}\n\nexport default Registreringsinfo\n","import { Box, Flex, Icon } from \"@kvib/react\"\nimport { Brødtekst } from \"../../../core/text/components/Brødtekst\"\nimport { EgenregistreringBruksenhet } from \"../types/EgenregistreringBygning\"\nimport { Felt } from \"../types/schema\"\nimport {\n hentBruksarealForEtasjeregistrering,\n hentEgenregistrertVerdi,\n ikkeRegistrertVerdi,\n} from \"../utils\"\nimport EgenregistreringDialog from \"./modaler/EgenregistreringDialog\"\nimport Registreringsinfo from \"./Registreringsinfo\"\n\nconst EgenregistrertVerdi = ({\n egenregistreringForBruksenhet,\n felt,\n}: {\n egenregistreringForBruksenhet: EgenregistreringBruksenhet\n felt: Felt\n}) => {\n const egenregistrertVerdi = hentEgenregistrertVerdi(felt, egenregistreringForBruksenhet)\n\n return (\n \n \n {hentEgenregistrertVerdi(felt, egenregistreringForBruksenhet) && (\n \n \n \n )}\n \n {egenregistrertVerdi ?? ikkeRegistrertVerdi}\n {felt === \"bruksareal\" &&\n egenregistreringForBruksenhet.bruksareal?.data?.etasjeRegistrertBruksareal &&\n egenregistreringForBruksenhet.bruksareal?.data?.etasjeRegistrertBruksareal.length >\n 0 && (\n \n {egenregistreringForBruksenhet.bruksareal.data.etasjeRegistrertBruksareal.map(\n registrering => (\n \n {hentBruksarealForEtasjeregistrering(registrering)}\n \n ),\n )}\n \n )}\n \n \n \n \n \n \n \n )\n}\n\nexport default EgenregistrertVerdi\n","import { useMemo } from \"react\"\nimport { useParams } from \"react-router\"\nimport { useEiendom } from \"../../detaljert-eiendom/api/useEiendom\"\nimport {\n BruksenhetResponse,\n EidDetaljertEiendom,\n} from \"../../detaljert-eiendom/types/DetaljertEiendom\"\n\nconst useBruksenhet = (bruksenhetId?: string) => {\n const { bruksenhetId: paramBruksenhetid } = useParams<{ bruksenhetId: string }>()\n const { data: eiendom } = useEiendom()\n\n const brukRiktigBruksenhetsId = bruksenhetId ?? paramBruksenhetid\n const bruksenhetIdNumber = useMemo(\n () => Number(brukRiktigBruksenhetsId),\n [brukRiktigBruksenhetsId],\n )\n\n const bruksenhet = eiendom?.bruksenheterPåEiendom.find(\n (bruksenhet: BruksenhetResponse) => Number(bruksenhet.bruksenhetId) === bruksenhetIdNumber,\n )\n\n return { bruksenhet }\n}\n\nexport default useBruksenhet\n","import { Box, BoxProps } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Brødtekst } from \"../../../core/text/components/Brødtekst\"\nimport { useEiendom } from \"../../detaljert-eiendom/api/useEiendom\"\nimport useCurrentBygning from \"../../detaljert-eiendom/hooks/useCurrentBygning\"\nimport { useKodelister } from \"../../kodelister/useKodelister\"\nimport useBruksenhet from \"../hooks/UseBruksenhet\"\nimport { Felt } from \"../types/schema\"\nimport { visMatrikkelregistrertVerdi } from \"../utils\"\n\ninterface Props extends BoxProps {\n felt: Felt\n}\n\nexport const MatrikkelVerdi = ({ felt }: Props) => {\n const { currentBygning } = useCurrentBygning()\n const { bruksenhet } = useBruksenhet()\n const { data: eiendom } = useEiendom()\n const { data: kodelister } = useKodelister()\n const { t } = useTranslation(\"egenregistrering\")\n\n if (!eiendom) return null\n\n if (!currentBygning || !kodelister || !bruksenhet) return null\n\n return (\n \n \n {visMatrikkelregistrertVerdi(felt, currentBygning, bruksenhet, kodelister)}\n \n \n {t(\"matrikkelverdi_undertittel\")}\n \n \n )\n}\n","import { Box, Flex, Separator } from \"@kvib/react\"\nimport { EgenregistreringBruksenhet } from \"../types/EgenregistreringBygning\"\nimport { Felt, hentIkonForFelt } from \"../types/schema\"\nimport EgenregistrertVerdi from \"./EgenregistrertVerdi\"\nimport { IkonOgFeltLabel } from \"./IkonOgFeltLabel\"\nimport { MatrikkelVerdi } from \"./MatrikkelVerdi\"\n\ninterface EgenregistreringRadProps {\n felt: Felt\n egenregistreringForBruksenhet: EgenregistreringBruksenhet\n}\n\nconst EgenregistreringRad = (props: EgenregistreringRadProps) => {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default EgenregistreringRad\n","import { Flex } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport Section from \"../../../core/components/layout/Section\"\nimport { Overskrift } from \"../../../core/text/components/Overskrift\"\nimport BruksenhetForEgenregistrering from \"../../../egenregistreringsoversikt/components/BruksenhetForEgenregistrering\"\nimport {\n EidDetaljertEiendom,\n NummerertBruksenhet,\n} from \"../../detaljert-eiendom/types/DetaljertEiendom\"\nimport { EgenregistreringBruksenhet } from \"../types/EgenregistreringBygning\"\nimport { felterForEgenregistrering } from \"../utils\"\nimport EgenregistreringRad from \"./EgenregistreringRad\"\n\nconst EgenregistrerteOpplysninger = ({\n egenregistreringForBruksenhet,\n eiendom,\n bruksenhet,\n}: {\n eiendom: EidDetaljertEiendom\n egenregistreringForBruksenhet: EgenregistreringBruksenhet\n bruksenhet: NummerertBruksenhet\n}) => {\n const { t } = useTranslation(\"egenregistrering\")\n\n return (\n
\n \n {t(\"egenregistrering_sidetittel\")}\n \n \n\n \n {felterForEgenregistrering.map(felt => (\n \n ))}\n \n \n
\n )\n}\n\nexport default EgenregistrerteOpplysninger\n","import { Flex, Spinner } from \"@kvib/react\"\nimport { isNummerertBruksenhet } from \"../detaljert-eiendom/api/eiendom\"\nimport { useEiendom } from \"../detaljert-eiendom/api/useEiendom\"\nimport { EidDetaljertEiendom } from \"../detaljert-eiendom/types/DetaljertEiendom\"\nimport useEgenregistreringBruksenhet from \"./api/useEgenregistreringBruksenhet\"\nimport EgenregistrerteOpplysninger from \"./components/EgenregistrerteOpplysninger\"\nimport useBruksenhet from \"./hooks/UseBruksenhet\"\n\nconst Egenregistrering = () => {\n const { data: eidEiendom, isLoading: eiendomLoading } = useEiendom()\n const { data: egenregistreringForBruksenhet, isLoading: egenregLoading } =\n useEgenregistreringBruksenhet()\n const { bruksenhet } = useBruksenhet()\n\n const isLoading = eiendomLoading || egenregLoading || !eidEiendom || !bruksenhet\n\n if (isLoading) {\n return (\n \n \n \n )\n }\n\n return (\n isNummerertBruksenhet(bruksenhet) && (\n \n )\n )\n}\n\nexport default Egenregistrering\n","export default \"__VITE_ASSET__C4DTfHa1__\"","export default \"__VITE_ASSET__B9yVzGwL__\"","import { Box, IconButton } from \"@kvib/react\"\nimport { Link } from \"react-router\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\nimport { InfoCard } from \"./InfoCard\"\n\ninterface InfoCardEksternLenkeProps {\n oversettelse: { tittel: string; avsnitt: string[] }\n lenke: string\n iconButtonArialabel: string\n}\nconst InfoCardEksternLenke = (props: InfoCardEksternLenkeProps) => {\n const { oversettelse, lenke, iconButtonArialabel: iconButtonAriaLabel } = props\n\n return (\n \n \n \n \n \n {oversettelse.avsnitt.map(avsnitt => (\n \n {avsnitt}\n
\n
\n ))}\n
\n \n \n \n
\n
\n \n
\n )\n}\n\nexport default InfoCardEksternLenke\n","import { Box, Button, Center, Flex, Image } from \"@kvib/react\"\nimport { Link as ReactRouterLink } from \"react-router\"\n\nimport { Trans, useTranslation } from \"react-i18next\"\nimport husMedForstorrelsesGlass from \"../../../assets/hus_forstorrelsesglass.svg\"\nimport questionmarkMan from \"../../../assets/questionmark_man.svg\"\nimport questionmarkWoman from \"../../../assets/questionmark_woman.svg\"\nimport Section from \"../../core/components/layout/Section\"\nimport StackMedGap from \"../../core/components/layout/StackMedGap\"\nimport { useScreenView } from \"../../core/hooks/useScreenview\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\nimport { EksternLenke } from \"../../core/text/components/EksternLenke\"\nimport { Overskrift } from \"../../core/text/components/Overskrift\"\nimport { InfoCard } from \"../components/InfoCard\"\nimport InfoCardEksternLenke from \"../components/InfoCardEksternLenke\"\nimport ForklaringAccordion from \"../../datafelter/components/ForklaringAccordion\"\n\nconst HjelpOgStøtte = () => {\n const { t } = useTranslation([\"hjelpOgStøtte\", \"ofteStilteSpørsmål\"])\n const leterEtterAnnenEiendomOversettelse = t(\"leter_du_etter_annen_eiendom\", {\n ns: \"hjelpOgStøtte\",\n returnObjects: true,\n })\n\n const kontaktKundesenteretOversettelse = t(\"kontakt_kundesenteret\", {\n ns: \"hjelpOgStøtte\",\n returnObjects: true,\n })\n\n const { isMobile } = useScreenView()\n const bakgrunnsfarge = \"green.50\"\n const feilOgManglerForklaringer = t(\"hjelpOgStøtte:feilOgManglerForklaringer\", {\n returnObjects: true,\n })\n\n return (\n
\n
\n \n {t(\"overskrift\", { ns: \"hjelpOgStøtte\" })}\n \n \n \n \n {t(\"hjelpOgStøtte:om_utvalget\", {\n returnObjects: true,\n }).avsnitt.map(avsnitt => (\n \n \n {avsnitt}\n \n \n ))}\n \n \n {t(\"mer_om_eiendomsregisteret_link\")}\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n {t(\"hjelpOgStøtte:hva_betyr_datafeltene\", {\n returnObjects: true,\n }).avsnitt.map(avsnitt => (\n \n {avsnitt}\n
\n
\n ))}\n\n \n \n {t(\"hjelpOgStøtte:les_mer_om_datafeltene\") as string}\n \n \n
\n
\n \n\n \n \n\n \n \n
\n
\n
\n
\n )\n}\n\nexport default HjelpOgStøtte\n","import { useTranslation } from \"react-i18next\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\nimport { EksternLenke } from \"../../core/text/components/EksternLenke\"\n\nexport const OversiktOverDineEiendommer = ({ nynorsk }: { nynorsk?: boolean }) => {\n const { t } = useTranslation(\"omTjenesten\", nynorsk ? { lng: \"nn-NO\" } : {})\n return (\n <>\n {t(\"oversikt_over_dine_eiendommer\", { returnObjects: true }).avsnitt.map(beskrivelse => (\n \n {beskrivelse}\n
\n
\n ))}\n \n )\n}\n\nexport const FantDuIkkeSvar = ({ nynorsk }: { nynorsk?: boolean }) => {\n const { t } = useTranslation(\"hjelpOgStøtte\", nynorsk ? { lng: \"nn-NO\" } : {})\n return (\n <>\n {t(\"fant_du_ikke_svar\", { returnObjects: true }).avsnitt[0]}\n \n {t(\"mer_om_eiendomsregisteret_link\")}\n \n
\n
\n {t(\"fant_du_ikke_svar\", { returnObjects: true }).avsnitt[1]}\n \n {t(\"kundesenteret_link\")}\n \n \n )\n}\n","import { Box, Center } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport Section from \"../../core/components/layout/Section\"\nimport StackMedGap from \"../../core/components/layout/StackMedGap\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\nimport { EksternLenke } from \"../../core/text/components/EksternLenke\"\nimport { Overskrift } from \"../../core/text/components/Overskrift\"\nimport { InfoCard } from \"../components/InfoCard\"\nimport { FantDuIkkeSvar, OversiktOverDineEiendommer } from \"../components/InfoteksterSamlefil\"\n\nconst OmTjenesten = () => {\n const { t } = useTranslation([\"omTjenesten\", \"hjelpOgStøtte\"], { lng: \"nn-NO\" })\n\n return (\n
\n
\n \n {t(\"overskrift\", { ns: \"omTjenesten\" })}\n \n \n \n \n {t(\"informasjon_om_eiendommen\", {\n ns: \"omTjenesten\",\n returnObjects: true,\n }).avsnitt.map(beskrivelse => (\n \n {beskrivelse}\n
\n
\n ))}\n \n {t(\"hjelpOgStøtte:mer_om_matrikkelbrev_link\", { lng: \"nn-NO\" })}\n \n \n \n \n \n
\n
\n
\n )\n}\n\nexport default OmTjenesten\n","import { Box, Center } from \"@kvib/react\"\nimport { useTranslation } from \"react-i18next\"\nimport Section from \"../../core/components/layout/Section\"\nimport StackMedGap from \"../../core/components/layout/StackMedGap\"\nimport { Brødtekst } from \"../../core/text/components/Brødtekst\"\nimport { EksternLenke } from \"../../core/text/components/EksternLenke\"\nimport { Overskrift } from \"../../core/text/components/Overskrift\"\nimport { InfoCard } from \"../components/InfoCard\"\n\nconst PersonvernOgSikkerhetInfoside = () => {\n const { t } = useTranslation(\"personvernOgSikkerhet\", { lng: \"nn-NO\" })\n\n return (\n
\n
\n \n {t(\"overskrift\")}\n\n \n {t(\"personopplysninger\", { returnObjects: true }).avsnitt.map(tekst => (\n \n {tekst}\n
\n
\n ))}\n \n {t(\"mer_om_personvernerklæring_link\")}\n \n
\n\n \n {t(\"innlogging\", { returnObjects: true }).avsnitt[0]}\n
\n \n {t(\"mer_om_IDporten_innlogging_link\")}\n \n
\n
\n
\n
\n )\n}\n\nexport default PersonvernOgSikkerhetInfoside\n","import { Button, Container, Flex, Heading, Image } from \"@kvib/react\"\nimport { ReactElement } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport eiendom from \"../../../../assets/eiendom.svg\"\nimport { useHandleLogin } from \"../../../auth/hooks/useHandleLogin\"\nimport { useScreenView } from \"../../hooks/useScreenview\"\nimport { Brødtekst } from \"../../text/components/Brødtekst\"\n\nexport const Landingsside = (): ReactElement => {\n const handleLogin = useHandleLogin()\n const { isMobile } = useScreenView()\n const { t } = useTranslation(\"landingsside\")\n\n const Hus = () => \n\n return (\n \n \n \n \n \n {t(\"tittel\")}\n \n \n \n \n {t(\"beskrivelse\")}\n \n \n {isMobile ? t(\"loggInnKnappMobil\") : t(\"loggInnKnapp\")}\n \n \n \n \n \n \n \n \n \n \n )\n}\n","import { Flex } from \"@kvib/react\"\nimport { Outlet, useLocation, useMatch } from \"react-router\"\nimport { Landingsside } from \"../core/components/layout/Landingsside\"\nimport ErrorHandler from \"../core/error-handling/ErrorHandler\"\nimport useIsInnlogget from \"../core/hooks/useIsInnlogget\"\n\nconst ProtectedRoute = () => {\n const { isSuccess, isPending, data: isInnloggetData, error } = useIsInnlogget()\n const isInnlogget = isSuccess && isInnloggetData\n\n const location = useLocation()\n const match = useMatch(location.pathname)\n\n if (isPending) return null\n\n if (error && error.type === \"FANT_IKKE_PERSON\")\n return (\n \n \n \n )\n\n if (match?.pathname != \"/\" && !isInnlogget) return \n\n return isInnlogget ? : \n}\n\nexport default ProtectedRoute\n","import { Outlet, Route } from \"react-router\"\nimport Root from \"../../Root\"\nimport Cookieserklæring from \"../cookies\"\nimport CookieBanner from \"../cookies/components/CookieBanner\"\nimport ErrorHandler from \"../core/error-handling/ErrorHandler\"\nimport { finnerIngenPathsSomMatcher } from \"../core/error-handling/types/finnerIngenPathSomPatcher\"\nimport Datafelter from \"../datafelter/Datafelter\"\nimport Egenregistreringsoversikt from \"../egenregistreringsoversikt\"\nimport DetaljertEiendom from \"../eiendom/detaljert-eiendom/components/DetaljertEiendom\"\nimport MineEiendommer from \"../eiendom/eiendomsoversikt/components/MineEiendommer\"\nimport Egenregistrering from \"../eiendom/registrering/Egenregistrering\"\nimport HjelpOgStøtte from \"../infosider/hjelp-og-stotte/HjelpOgStøtte\"\nimport OmTjenesten from \"../infosider/om-tjenesten/OmTjenesten\"\nimport PersonvernOgSikkerhetInfoside from \"../infosider/personvern/PersonvernOgSikkerhetInfoside\"\nimport { api } from \"../shared-api/router\"\nimport ProtectedRoute from \"./ProtectedRoute\"\n\nconst Routes = (\n }>\n \n \n \n \n }\n >\n } errorElement={} handle=\"protected\">\n } />\n\n \n } />\n \n\n {\n const kanEgenregistrere = await api.egenregistrering.kanEgenregistrere()\n if (!kanEgenregistrere) {\n throw finnerIngenPathsSomMatcher\n }\n return null\n }}\n path=\"egenregistreringer\"\n handle=\"Oppgaver\"\n >\n } />\n }\n />\n \n\n \n } />\n } handle=\"Datafelter\" />\n \n \n\n }>\n } handle=\"Om tenesta\" />\n } handle=\"Personvern\" />\n } handle=\"Cookieerklæring\" />\n\n {\n throw finnerIngenPathsSomMatcher\n }}\n errorElement={}\n handle=\"Fant ikke side\"\n />\n \n \n \n)\n\nexport default Routes\n","import { withFaroRouterInstrumentation } from \"@grafana/faro-react\"\nimport { createBrowserRouter, createRoutesFromElements } from \"react-router\"\nimport Routes from \"./Routes\"\n\nconst reactBrowserRouter = createBrowserRouter(createRoutesFromElements(Routes))\nconst browserRouter = withFaroRouterInstrumentation(reactBrowserRouter)\n\nexport default browserRouter\n","import { SkipNavLink, Toaster } from \"@kvib/react\"\nimport { QueryClient, QueryClientProvider } from \"@tanstack/react-query\"\nimport { ReactQueryDevtools } from \"@tanstack/react-query-devtools\"\nimport i18n from \"i18next\"\nimport { useReducer } from \"react\"\nimport { RouterProvider } from \"react-router\"\nimport { getEnv } from \"./environments\"\nimport { initialConsent, reducer } from \"./features/cookies/consentReducer\"\nimport { ConsentContext } from \"./features/cookies/context/ConsentContext\"\nimport browserRouter from \"./features/routing/browserRouter\"\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n retry: false,\n refetchOnReconnect: false,\n },\n },\n})\n\nexport default function App() {\n const [consent, dispatch] = useReducer(reducer, initialConsent())\n return (\n \n \n {i18n.t(\"hopp_til_hovedinnhold\", { ns: \"navbar\" })}\n \n \n \n \n {getEnv() === \"localhost\" && }\n \n \n )\n}\n","export const cookiebanner = {\n \"nb-NO\": {\n overskrift: \"Vi bruker informasjonskapsler (cookies)\",\n informasjonskapsler_info:\n \"Min eiendom bruker informasjonskapsler (cookies) for sikkerhet og analyse. Noen av informasjonskapslene er valgfrie. Du kan når som helst endre samtykket ditt i vår cookieerklæring.\",\n les_mer_cookieerklaering_lenke: \"Les mer om hvilke informasjonskapsler vi bruker.\",\n nodvendige_informasjonskapsler_overskrift: \"Nødvendige informasjonskapsler\",\n nodvendige_informasjonskapsler_info:\n \"Disse informasjonskapselene brukes for å gjøre nettsiden sikker å bruke, og er nødvendige for at tjenesten skal fungere. De er derfor ikke mulig å velge bort.\",\n webanalyse: \"Webanalyse\",\n webanalyse_info:\n \"Vi bruker informasjonskapsler for å samle inn statistikk om brukeraktivitet på nettsiden vår. Funksjonaliteten på nettsiden påvirkes ikke dersom du lar være å samtykke.\",\n lagre_valg: \"Lagre valg\",\n lukk_banner_aria: \"Lukk cookiebanner\",\n tilpass: \"Tilpass\",\n tilpass_aria: \"Tilpass informasjonskapsler\",\n godta: \"Godta alle\",\n },\n\n \"nn-NO\": {},\n}\n","const keys = {\n \"nb-NO\": {\n til_egenregistrering_knapp: \"Se egenregistrerte opplysninger\",\n egenregistrering_sidetittel: \"Egenregistrerte opplysninger\",\n vellykket_innsending: {\n tittel: \"Din registrering ble sendt inn\",\n beskrivelse: \"Opplysningen er nå registrert i Eiendomsregisteret.\",\n },\n matrikkelverdi_undertittel: \"Fra Eiendomsregisteret (matrikkelen)\",\n vil_registrere_areal_per_etasje_tittel: \"Fordel det totale arealet over flere etasjer\",\n bygningen_mangler_registrerte_etasjer: \"Bygningen har ingen registrerte etasjer\",\n vil_registrere_bruksareal_per_etasje_hjelpetekst:\n \"Dersom du har bruksareal i flere etasjer og er kjent med fordelingen per etasje, kan du registrere det her. \",\n legg_til_etasjer_accordion_tittel: \"Legg til bruksareal i andre etasjer i bygningen\",\n registrerte_etasjer_overskrift: \"Huk av de etasjene i bygget hvor du vil fylle inn bruksareal\",\n hjelpetekst_bruksareal_ingen_registrerte_etasjer:\n \"Bruksenheten din har ingen registrert etasje\",\n overskrift_fyll_inn_areal_per_etasje: \"Registrer bruksareal per etasje i bygningen\",\n omtvistet:\n \"En eller flere av grensene til teigen er omtvistet, eller teigen er registrert som omtvistet. Arealet vil være usikkert inntil den eller de uavklarte grensene er avklart.\",\n noen_fiktive_hjelpelinjer:\n \"En eller flere (men ikke alle) av grensene til teigen er av typen fiktiv hjelpelinje. Arealet som beregnes vil derfor være usikkert.\",\n hjelpelinje_vannkant:\n \"En eller flere av grensene til teigen er av type vannkant. Arealet som beregnes vil derfor være usikkert.\",\n hjelpelinje_vegkant:\n \"En eller flere av grensene til teigen er av type vegkant. Arealet som beregnes vil derfor være usikkert.\",\n har_punktfester:\n \"En eller flere (men ikke alle) av grensene til teigen er av type punktfeste fordi det er registrert punktfester på eiendommen. Arealet til punktfestene beregnes inn i arealet til eiendommen og eiendommens areal vil derfor være usikkert.\",\n ukjent_arealmerknad: \"Ukjent arealmerknad. \",\n tekst_registrer_verdi_knapp: \"registrer\",\n tekst_endre_verdi_knapp: \"endre\",\n tekst_fjern_verdi_knapp: \"fjern\",\n eierseksjon_tittel: \"Du skal kun registrere på din bruksenhet\",\n oppsummering_tekst:\n \"Følgende opplysninger vil bli registrert av deg i Eiendomsregisteret (matrikkelen):\",\n oversikt_egenregistrering_sidetittel: \"Oppgaver\",\n til_oversikt_egenregistrering: {\n tittel: \"Varsel\",\n knapp: \"Kontroller at opplysningene om eiendommene dine stemmer. \",\n },\n },\n \"nn-NO\": {\n matrikkelverdi_undertittel: \"\",\n },\n} as const\n\nexport const egenregistrering = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n hjelpetekst_byggeår:\n \"Byggeåret er det året bruksenheten var ferdigstilt og kunne tas i bruk første gang. Rehabilitering, oppussing og påbygning i ettertid endrer ikke byggeåret.\",\n hjelpetekst_bruksareal:\n \"Fyll inn totalt bruksareal tilknyttet din bruksenhet. Bruksareal inkluderer alt areal innenfor ytterveggene. Dersom du har innglasset balkong inngår dette i bruksarealet. Separat bod (feks. loft- og kjellerbod) skal ikke registreres her.\",\n hjelpetekst_energikilder:\n \"Dette er den eller de kildene som gir energi til belysning, apparater eller oppvarming.\",\n hjelpetekst_oppvarmingstyper:\n \"Dette er hovedmåten varme leveres på i bruksenheten. Velg den eller de som gir mest varme i bruksenheten hele året.\",\n hjelpetekst_avløp:\n \"Avløpskoden beskriver systemet for håndtering av brukt vann fra bruksenheten. Det gjelder både hvordan vann fra vask og dusj, og vann fra toalett, blir håndtert.\",\n hjelpetekst_flervalg: {\n AnnenOppvarming: \" (f.eks. peis, kamin, ovn)\",\n Sentralvarme: \" (f.eks. varme fra fjernvarmeanlegg, vannbåren varme)\",\n Elektrisk: \" (f.eks. panelovn, gulvvarme, luft-luft varmepumpe)\",\n OljeParafin: \" (f.eks. olje, parafin)\",\n Biobrensel: \" (f.eks. ved, pellets)\",\n },\n hjelpetekst_vannforsyning:\n \"Vannforsyning beskriver om og hvordan bruksenheten får tilgang til rent vann. Dersom du henter vann fra bekk eller brønn uten tilkobling til bruksenheten benyttes 'annen privat men ikke innlagt vann'.\",\n hjelpetekst_velg_dokumentasjon:\n \"Velg hvilken kilde du har brukt for å komme frem til opplysningen.\",\n },\n \"nn-NO\": {\n hjelpetekst_velg_dokumentasjon: \"\",\n hjelpetekst_avløp: \"\",\n hjelpetekst_bruksareal: \"\",\n hjelpetekst_byggeår: \"\",\n hjelpetekst_energikilder: \"\",\n hjelpetekst_oppvarmingstyper: \"\",\n },\n} as const\n\nexport const hjelpetekster = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n avbryt: \"Avbryt\",\n neste: \"Gå videre\",\n tilbake: \"Tilbake til registrering\",\n submit: \"Send inn\",\n },\n \"nn-NO\": {\n avbryt: \"\",\n },\n} as const\n\nexport const skjemafooter = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n registrer_felt_for_bruksenheten: {\n byggeår: \"Byggeår\",\n bruksareal_totalt: \"Totalt bruksareal\",\n vannforsyning: \"Velg bruksenhetens vannforsyning\",\n avløp: \"Velg bruksenhetens avløp\",\n oppvarming: \"Velg hovedoppvarming for bruksenheten\",\n energikilder: \"Velg energikilder for bruksenheten\",\n },\n kilde: \"Kilde\",\n oppsummering: \"Din registrering\",\n },\n \"nn-NO\": {\n registrer_felt_for_bruksenheten: \"\",\n },\n} as const\n\nexport const skjemaoverskrifter = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n ukjent_feil: \"Ukjent feil\",\n ukjent_feil_melding:\n \"Det har oppstått en ukjent feil. Vennligst prøv igjen senere eller kontakt oss hvis feilen vedvarer\",\n logg_inn_på_nytt: \"Logg inn på nytt\",\n tilbake_til_start: \"Gå tilbake til startsiden\",\n fant_ikke_side: \"Fant ikke side\",\n klarte_ikke_å_logge_ut_bruker: \"Klarte ikke å logge deg ut\",\n kunne_ikke_autentisere_bruker: \"Kunnne ikke autentisere bruker\",\n feil_i_autentiseringsrespons: \"Feil i respons fra autentisering: {{status}}\",\n kan_ikke_logge_inn_tittel: \"Kan ikke logge inn\",\n kan_ikke_logge_inn_beskrivelse:\n \"Innlogging er ikke tilgjengelig for øyeblikket. Vi beklager ulempen. Du kan prøve igjen om et par minutter\",\n fant_ikke_innhold_tittel: \"Fant ikke innhold\",\n fant_ikke_innhold_beskrivelse:\n \"Hmm, her var det visst ikke noe. Sikker på at URL-en er riktig?\",\n utløpt_session: \"Din innloggede sesjon er utløpt\",\n intern_systemfeil: \"Intern systemfeil\",\n nedetid_tittel: \"Nedetid i kveld\",\n nedetid_beskrivelse:\n \"Fra klokken 16:00 til 23:59 vil det bli gjort vedlikehold på Kartverkets tjenester. Min eiendom vil i perioden være ustabil eller ikke fungere. Vi beklager ulempene.\",\n },\n \"nn-NO\": {\n ukjent_feil: \"\",\n ukjent_feil_melding: \"\",\n logg_inn_på_nytt: \"\",\n tilbake_til_start: \"\",\n fant_ikke_side: \"\",\n klarte_ikke_å_logge_ut_bruker: \"\",\n kunne_ikke_autentisere_bruker: \"\",\n feil_i_autentiseringsrespons: \"\",\n kan_ikke_logge_inn_tittel: \"\",\n kan_ikke_logge_inn_beskrivelse: \"\",\n fant_ikke_innhold_tittel: \"\",\n fant_ikke_innhold_beskrivelse: \"\",\n utløpt_session: \"\",\n intern_systemfeil: \"\",\n nedetid_tittel: \"\",\n nedetid_beskrivelse: \"\",\n },\n}\n\ntype ErrormeldingerKey = keyof (typeof keys)[\"nb-NO\"]\n\ntype Errormeldinger = {\n [K in keyof typeof keys]: Record\n}\n\nexport const errormeldinger: Errormeldinger = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n om_tjenesten_link: \"Om tjenesten\",\n cookieserklaering: \"Cookieerklæring\",\n personvern_og_sikkerhet_link: \"Personvern og sikkerhet\",\n personvern_erklæring_link: \"Personvernerklæring\",\n personvern_erklæring_arialabel: \"Besøk Kartverkets nettside om personvern\",\n tilgjengelighetserklæring_link: \"Tilgjengelighetserklæring\",\n tilgjengelighetserklæring_arialabel:\n \"Besøk tilgjengelighetserklæring for mineiendom.kartverket.no\",\n },\n \"nn-NO\": {\n om_tjenesten_link: \"Om tenesta\",\n cookieserklaering: \"Cookieerklæring\",\n personvern_og_sikkerhet_link: \"Personvern og tryggleik\",\n personvern_erklæring_link: \"Personvernerklæring\",\n personvern_erklæring_arialabel: \"Besøk Kartverkets nettside om personvern\",\n tilgjengelighetserklæring_link: \"Tilgjengeleikserklæring\",\n tilgjengelighetserklæring_arialabel:\n \"Besøk tilgjengeleikserklæring for mineiendom.kartverket.no\",\n },\n}\n\ntype FooterKey = keyof (typeof keys)[\"nb-NO\"]\n\ntype Footer = {\n [K in keyof typeof keys]: Record\n}\n\nexport const footer: Footer = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n logg_ut: \"Logg ut\",\n meny: \"Meny\",\n hjelp: \"Hjelp og støtte\",\n innlogget: \"Innlogget\",\n logget_inn_arialabel: \"Logget inn\",\n navn_placeholder: \"Placeholder på navn\",\n hopp_til_hovedinnhold: \"Hopp til hovedinnhold\",\n },\n \"nn-NO\": {\n logg_ut: \"Logg ut\",\n meny: \"Meny\",\n hjelp: \"Hjelp og støtte\",\n innlogget: \"Innlogget\",\n logget_inn_arialabel: \"Logget inn\",\n navn_placeholder: \"Placeholder på navn\",\n hopp_til_hovedinnhold: \"\",\n },\n}\n\ntype NavbarKey = keyof (typeof keys)[\"nb-NO\"]\n\ntype Navbar = {\n [K in keyof typeof keys]: Record\n}\n\nexport const navbar: Navbar = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n og: \"og\",\n areal: \"{{val, number}} m²\",\n matrikkelnummer_forklaring:\n \"Matrikkelnummeret er et unikt nummer som er bygd opp slik: kommunenummer - gårdsnummer / bruksnummer / festenummer / seksjonsnummer. Om festenummer og seksjonsnummer er med i matrikkelnummeret avhenger av hvordan type eiendom du har.\",\n matrikkelenhetstype_forklaring_begrep:\n \"Alle eiendommer må være registrert med en matrikkelenhetstype som beskriver eiendommens fysiske eller formelle egenskaper, slik som utstrekning eller måten eiendommen kan eies på. Les mer under “Hjelp og støtte”.\",\n mine_eiendommer: \"Mine eiendommer\",\n kommune: \"{{navn}} kommune\",\n matrikkelnummer: \"Matrikkelnummer\",\n type_eiendom: \"Type eiendom\",\n eierseksjon: \"Eierseksjon\",\n laster_inn_forklaring: \"Laster inn forklaring...\",\n vis_forklaring: \"Vis forklaring\",\n hva_betyr_dette: \"Hva betyr dette?\",\n hva_betyr_type_arialabel: \"Hva betyr {{type}}?\",\n ikke_beregnet: \"Ikke beregnet\",\n ikke_registrert: \"Ikke registrert\",\n med_matrikkelnummer:\n \"med matrikkelnummer {{matrikkelnummer, Matrikkelnummer(matrikkelnummer)}}\",\n artikkel_slutt: \"Artikkel slutt\",\n ja: \"Ja\",\n nei: \"Nei\",\n se_alle: \"Se alle\",\n avbryt: \"Avbryt\",\n },\n \"nn-NO\": {\n og: \"og\",\n areal: \"{{val, number}} m²\",\n matrikkelnummer_forklaring:\n \"Matrikkelnummeret er et unikt nummer som er bygd opp slik: kommunenummer - gårdsnummer / bruksnummer / festenummer / seksjonsnummer. Om festenummer og seksjonsnummer er med i matrikkelnummeret avhenger av hvordan type eiendom du har.\",\n matrikkelenhetstype_forklaring_begrep: \"Hva betyr type eiendom?\",\n mine_eiendommer: \"Mine eigedommar\",\n kommune: \"kommune\",\n matrikkelnummer: \"Matrikkelnummer\",\n type_eiendom: \"Type eigedom\",\n eierseksjon: \"Eierseksjon\",\n laster_inn_forklaring: \"Laster inn forklaring...\",\n vis_forklaring: \"Vis forklaring\",\n hva_betyr_dette: \"Kva betyr dette?\",\n hva_betyr_type_arialabel: \"Kva betyr {{type}}?\",\n ikke_beregnet: \"\",\n ikke_registrert: \"\",\n med_matrikkelnummer:\n \"med matrikkelnummer {{matrikkelnummer, Matrikkelnummer(matrikkelnummer)}}\",\n artikkel_slutt: \"Artikkel slutt\",\n ja: \"Ja\",\n nei: \"Nei\",\n se_alle: \"Sjå alle\",\n avbryt: \"Avbryt\",\n },\n}\n\ntype NøkkelbegreperKey = keyof (typeof keys)[\"nb-NO\"]\n\ntype Nøkkelbegreper = {\n [K in keyof typeof keys]: Record\n}\n\nexport const nøkkelbegreper: Nøkkelbegreper = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n bruksenhetskort_arialabel: \"Bruksenhet {{bruksenhetsnummer}}\",\n unummerert_bruksenhet_tittel: \"Unummerert bruksenhet\",\n bruksenhetstype_overskrift: \"Type bruksenhet\",\n helpetekst_unummerert_bruksenhetstype:\n \"Denne bruksenheten er registrert uten et offisielt nummer. Denne typen registrering er vanlig i bygninger som ofte ikke har egen adresse- for eksempel garasje, anneks og naust.\",\n bruksenhetstype_forklaring:\n \"Beskriver bruken av bruksenheten. Kan være følgende typer: Bolig, Ikke godkjent bolig, Fritidsbolig, Annet enn bolig eller Unummerert bruksenhet (benyttes for eksempel for garasje).\",\n bruksareal_for_en_bruksenhet_overskrift: \"Bruksareal\",\n les_mer_om_bruksenheter: \"Les mer om bruksenheter på hjelp og støtte. \",\n bruksareal_for_en_bruksenhet_forklaring:\n \"Registrert bruksareal for denne bruksenheten. Arealet kan inkludere innglasset balkong, samt privat garasje og boder.\",\n bruksareal_for_en_bruksenhet_arialabel: \"Hva er bruksareal for bruksenheten?\",\n inngang_etasje_overskrift: \"Inngang\",\n inngang_etasje_forklaring: \"Hvilken etasje inngangen til bruksenheten ligger i.\",\n dine_bruksenheter_i_bygningen_accordion_overskrift_one: \"Din bruksenhet i bygningen\",\n dine_bruksenheter_i_bygningen_accordion_overskrift_other: \"Dine bruksenheter i bygningen\",\n },\n \"nn-NO\": {\n bruksenhetskort_arialabel: \"\",\n unummerertBruksenhet_forklaring: \"\",\n bruksenhetstype_overskrift: \"\",\n bruksenhetstype_forklaring: \"\",\n bruksareal_for_en_bruksenhet_overskrift: \"\",\n bruksareal_for_en_bruksenhet_forklaring: \"\",\n bruksareal_for_en_bruksenhet_arialabel: \"\",\n inngang_etasje_overskrift: \"\",\n inngang_etasje_forklaring: \"\",\n dine_bruksenheter_i_bygningen_accordion_overskrift_one: \"\",\n dine_bruksenheter_i_bygningen_accordion_overskrift_other: \"\",\n helpetekst_unummerert_bruksenhetstype: \"\",\n unummerert_bruksenhet_tittel: \"\",\n les_mer_om_bruksenheter: \"\",\n },\n}\n\ntype BruksenhetkortKey = keyof (typeof keys)[\"nb-NO\"]\n\ntype Bruksenhetskort = {\n [K in keyof typeof keys]: Record\n}\n\nexport const bruksenhetskort: Bruksenhetskort = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n bygningskort_arialabel: \"Bygning {{index, number}}: {{bygningstype}}\",\n bygningskort_overskrift: \"Om bygningen\",\n bygningsdetaljer_overskrift: \"Bygningsdetaljer\",\n bygningsstatus_forklaring: `Den gjeldende statusen beskriver hvordan bygget er registrert for bruk, om det er under bygging eller skal rives. Statusen avhenger blant annet av hvilket regelverk som gjaldt da bygningen ble oppført. Les mer under \"Hjelp og støtte\".`,\n vannforsyning_forklaring:\n \"Hvilken type vannforsyning bygget benytter seg av. Privat vannverk defineres som nett som forsyner mer enn 100 personer eller 20 husstander.\",\n avløp_forklaring: \"Hvilken avløpsordning bygget benytter seg av.\",\n energi_forklaring: \"Hvilke energikilder bygget benytter seg av.\",\n oppvarming_forklaring: \"Hvilken oppvarmingskilde som utgjør hovedoppvarming for bygget.\",\n bygningstype_forklaring:\n \"Alle bygninger har en bygningstype som forklarer bygningens funksjon.\",\n bygningsnummer_forklaring:\n \"Et bygningsnummer er bygningens unike nummer og brukes for å identifisere bygningen.\",\n bruksareal_for_bygning_forklaring:\n \"Det totale registrerte bruksarealet internt i bygningen. Dette er summen av totalt areal for alle etasjer og kan inkludere areal for loft- og kjellerbod, innglasset balkong og lignende.\",\n antall_etasjer_forklaring:\n \"Antall registrerte etasjer i bygningen. Eventuelle kjeller- og loftetasjer telles med i antall etasjer.\",\n vis_bygning_i_kart_knapp: \"Vis bygning i kart\",\n kartutsnitt_bygning_alt_tittel: \"Kartutsnitt av bygning\",\n historiske_bygningsstatuser_tooltip: \"Vis tidligere statuser\",\n historiske_bygningsstatuser_arialabel: \"Vis historikk for bygningsstatus\",\n historiske_bygningsstatuser_overskrift: \"Tidligere registrerte statuser\",\n ingen_historiske_bygningsstatuser: \"Ingen tidligere registrerte statuser\",\n eiendommen_har_ingen_bygninger: \"Ingen registrerte bygninger\",\n ingen_adresse: \"Ingen adresse\",\n antall_etasjer_one: \"{{count}} etasje\",\n antall_etasjer_other: \"{{count}} etasjer\",\n antall_bygninger_på_eiendommen_one: \"{{count}} bygning på eiendommen\",\n antall_bygninger_på_eiendommen_other: \"{{count}} bygninger på eiendommen\",\n om_bygningen_accordion_overskrift: \"Om bygningen\",\n egenskaper_ved_bygningen_accordion_overskrift: \"Egenskaper ved bygningen\",\n bygningstype_felt: \"Bygningstype\",\n bygningsnummer_felt: \"Bygningsnummer\",\n bygningsstatus_felt: \"Bygningsstatus\",\n bygning_mangler_representasjonspunkt:\n \"Bygningen har ikke noe representasjonspunkt, og kan derfor ikke vises i kartet.\",\n },\n \"nn-NO\": {\n bygningskort_arialabel: \"\",\n bygningskort_overskrift: \"\",\n bygningsdetaljer_overskrift: \"\",\n bygningsstatus_forklaring: \"\",\n vannforsyning_forklaring: \"\",\n avløp_forklaring: \"\",\n energi_forklaring: \"\",\n oppvarming_forklaring: \"\",\n bygningstype_forklaring: \"\",\n bygningsnummer_forklaring: \"\",\n bruksareal_for_bygning_forklaring: \"\",\n antall_etasjer_forklaring: \"\",\n vis_bygning_i_kart_knapp: \"\",\n kartutsnitt_bygning_alt_tittel: \"\",\n historiske_bygningsstatuser_tooltip: \"\",\n historiske_bygningsstatuser_arialabel: \"\",\n historiske_bygningsstatuser_overskrift: \"\",\n ingen_historiske_bygningsstatuser: \"\",\n eiendommen_har_ingen_bygninger: \"\",\n ingen_adresse: \"\",\n antall_etasjer_one: \"\",\n antall_etasjer_other: \"\",\n antall_bygninger_på_eiendommen_one: \"\",\n antall_bygninger_på_eiendommen_other: \"\",\n om_bygningen_accordion_overskrift: \"\",\n egenskaper_ved_bygningen_accordion_overskrift: \"\",\n bygningstype_felt: \"\",\n bygningsnummer_felt: \"\",\n bygningsstatus_felt: \"\",\n bygning_mangler_representasjonspunkt: \"\",\n },\n}\n\nexport const bygningskort = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","export const cookies = {\n \"nb-NO\": {\n tittel: \"Bruk av cookies på mineiendom.kartverket.no\",\n informasjonskapsler: {\n tittel: \"Informasjonskapslar (cookies)\",\n avsnitt: [\n \"Informasjonskapslar er mellombelse filer som blir lagra på eininga di når du besøkjer ei nettside.\",\n ],\n },\n nødvendige_informasjonskapsler: {\n tittel: \"Nødvendige informasjonskapsler\",\n avsnitt: [\n \"Når du besøker mineiendom.kartverket.no bruker vi noen få informasjonskapsler som gjør nettsiden sikker å bruke, og er nødvendige for at tjenesten skal fungere. Disse er derfor ikke mulig å velge bort.\",\n ],\n nkom_lenke: \"Les mer om hva informasjonskapsler er på nkom.no\",\n },\n webanalyse: {\n tittel: \"Webanalyse\",\n avsnitt: [\n \"Dersom du gir samtykke bruker vi noen informasjonskapsler for å samle inn statistikk om brukeraktivitet på nettsiden vår. Vi benytter verktøyet Posthog for å samle inn og analysere aktivitet for å forbedre tjenesten. Disse må du samtykke til å bruke. Funksjoanliteten på nettsiden påvirkes ikke dersom du lar være å samtykke. Tabellen med oversikt over cookies på mineiendom.kartverket.no viser hvilke informasjonskaplser som er nødvendige og hvilke som er valgfrie.\",\n ],\n },\n oversikt_over_cookies_på_mineiendom: \"Oversikt over cookies på mineiendom.kartverket.no\",\n cookiestabell_header: [\"Navn\", \"Formål\", \"Valgfrihet\", \"Utsteder\"],\n cookiestabell: [\n {\n navn: \"session_id\",\n formal: \"Autentisering\",\n valgfrihet: \"Nødvendig\",\n utsteder: \"Kartverket\",\n },\n {\n navn: \"ISTIO-STICKY\",\n formal: \"Infrastruktur\",\n valgfrihet: \"Nødvendig\",\n utsteder: \"Kartverket\",\n },\n {\n navn: \"ph_phc_{VisitorIdentifier}\",\n formal: \"Webanalyse\",\n valgfrihet: \"Valgfri\",\n utsteder: \"Posthog\",\n },\n {\n navn: \"distinct_id\",\n formal: \"Webanalyse\",\n valgfrihet: \"Valgfri\",\n utsteder: \"Posthog\",\n },\n ],\n cookiesforklaring_tittel: \"Mer informasjon om hver enkelt cookie\",\n cookiesforklaring: [\n {\n tittel: \"session_id\",\n avsnitt: [\n \"Brukes for autentisering. Nødvendig for sikker samhandlig med den felles innloggingsløsningen for offentlige tjenester, ID-porten.\",\n ],\n },\n {\n tittel: \"ISTIO-STICKY\",\n avsnitt: [\n \"Benyttes for å håndtere økten din i Kartverkets infrastruktur. Cookien er nødvendig.\",\n ],\n },\n {\n tittel: \"ph_phc_{VisitorIdentifier}\",\n avsnitt: [\n \"Identifikator vi benytter for å samle inn og analysere aktivitet for å forbedre tjenesten i verktøyet Posthog. \",\n ],\n },\n {\n tittel: \"distinct_id\",\n avsnitt: [\n \"Identifikator vi benytter for å måle bruk av tjenesten i bruker- og analyseverktøyet Posthog.\",\n ],\n },\n ],\n administrer_cookies: {\n tittel: \"Administrer cookies\",\n avsnitt: [\n \"Du kan når som helst trekke tilbake samtykket ved å trykke “administrer cookies” under.\",\n ],\n },\n },\n \"nn-NO\": {\n tittel: \"Bruk av informasjonskapslar på mineiendom.kartverket.no\",\n informasjonskapsler: {\n tittel: \"Informasjonskapslar (cookies)\",\n avsnitt: [\n \"Informasjonskapslar er mellombelse filer som blir lagra på eininga di når du besøkjer ei nettside.\",\n ],\n },\n nødvendige_informasjonskapsler: {\n tittel: \"Nødvendige informasjonskapslar\",\n avsnitt: [\n \"Når du besøkjer mineiendom.kartverket.no brukar vi nokre få informasjonskapslar som gjer nettsida trygg å bruke, og som er nødvendige for at tenesta skal fungere. Desse kan derfor ikkje veljast bort.\",\n ],\n nkom_lenke: \"Les meir om kva informasjonskapslar er på nkom.no\",\n },\n webanalyse: {\n tittel: \"Webanalyse\",\n avsnitt: [\n \"Dersom du gjev samtykke, brukar vi nokre informasjonskapslar for å analysere brukaraktivitet på nettsida vår. Samtykket ditt inneber òg at vi kan samle inn data om eigedomen inkludert bygningsinformasjon og dine rettar på den. Dataen er avgrensa og vi lagrar likkje meir enn informasjonen du sjølv ser når du er logga inn. Vi nyttar verktøyet Posthog for å samle inn og analysere aktivitet for å forbetre tenesta. Funksjonaliteten på nettsida blir ikkje påverka om du let vere å samtykke. Lenger ned på denne sida vises kva for informasjonskapslar som er nødvendige, og kva for nokre som er valfrie.\",\n ],\n },\n administrer_samtykke: \"Administrer samtykke\",\n administrer_cookies: \"\",\n oversikt_over_cookies_på_mineiendom: \"Oversikt over cookies på mineiendom.kartverket.no\",\n cookiestabell_header: [\"Namn\", \"Føremål\", \"Valfridom\", \"Utstedar\"],\n cookiestabell: [\n {\n namn: \"session_id\",\n formal: \"Innlogging\",\n valgfrihet: \"Naudsynt\",\n utsteder: \"Kartverket\",\n },\n {\n namn: \"ph_phc_{VisitorIdentifier}\",\n formal: \"Webanalyse\",\n valgfrihet: \"Valfri\",\n utsteder: \"Posthog\",\n },\n {\n namn: \"distinct_id\",\n formal: \"Webanalyse\",\n valgfrihet: \"Valfri\",\n utsteder: \"Posthog\",\n },\n ],\n cookiesforklaring_tittel: \"Informasjon om kvar enkelt cookie\",\n cookiesforklaring: [\n {\n tittel: \"session_id\",\n avsnitt: [\n \"Denne informasjonskapselen blir brukt for innlogging og autentisering. Informasjonskapselen er nødvendig for at vi trygt kan bruke ID-porten som innloggingsløysing. Innhaldet i informasjonskapselen er eit tilfeldig oppretta identifikasjonsnummer og informasjon om val du har gjort. Informasjonskapselen blir sletta idet nettlesarøkta avsluttast.\",\n ],\n },\n {\n tittel: \"ISTIO-STICKY\",\n avsnitt: [\n \"Denne informasjonskapselen nyttar vi i Kartverket for å forsikre oss om at nettlesaren din ber om data frå riktig server hos Kartverket. Informasjonskapselen er nødvendig.\",\n ],\n },\n {\n tittel: \"ph_phc_{VisitorIdentifier}, distinct_id\",\n avsnitt: [\n \"Desse informasjonskapslane blir brukte for å samle inn og analysere aktivitet, som vi nyttar i arbeidet med å utvikle og forbetre tenesta. Desse blir brukte gjennom analyseverktøyet Posthog.\",\n ],\n },\n ],\n },\n}\n","const keys = {\n \"nb-NO\": {\n hva_betyr_de_forskjellige_datafeltene: \"Hva betyr de forskjellige datafeltene?\",\n eiendom: \"Eiendom\",\n bygning: \"Bygning\",\n bruksenhet: \"Bruksenhet\",\n datafelter_eiendom: [\n {\n tittel: \"Adresse\",\n avsnitt: [\"Adressen er den/de offisielle vegadressen(e) til bygningen(e) på eiendommen.\"],\n },\n {\n tittel: \"Arealmerknader\",\n avsnitt: [\n \"En arealmerknad betyr at en eller flere av grensene til eiendommen er registrert med en usikkerhet. Dette gjør at arealet er usikkert eller ikke kan beregnes. For en fullstendig oversikt over din eiendom kan du bestille et matrikkelbrev fra kommunen, dette er gebyrbelagt.\",\n \"De ulike merknadene:\",\n ],\n arealmerknader: [\n {\n tittel: \"Hjelpelinje vannkant\",\n avsnitt: [\n \"Eiendom hvor en eller flere grenser er mot vann, kan være registrert med hjelpelinje av typen vannkant. Arealet som beregnes vil derfor være usikkert.\",\n ],\n },\n {\n tittel: \"Hjelpelinje veikant\",\n avsnitt: [\n \"Eiendommer hvor en eller flere grenser er mot en vei, kan være registrert med hjelpelinje av typen veikant. Arealet som beregnes vil derfor være usikkert.\",\n ],\n },\n {\n tittel: \"Noen fiktive hjelpelinjer\",\n avsnitt: [\n \"En eller flere, men ikke alle, grenser er registrert som fiktiv hjelpelinje. Det betyr at grensen som er registrert ikke nødvendigvis stemmer med virkeligheten. Arealet som beregnes vil derfor være usikkert.\",\n ],\n },\n {\n tittel: \"Kun fiktive hjelpelinjer\",\n avsnitt: [\n \"Alle grensene er registrert som fiktive hjelpelinjer. Det betyr at grensen som er registrert ikke nødvendigvis stemmer med virkeligheten, for eksempel at teigen er registrert som en sirkel. Det er derfor ikke mulig å beregne areal på eiendommen.\",\n ],\n },\n {\n tittel: \"Punktfeste\",\n avsnitt: [\n \"Hvis du har et punktfeste beregnes ikke et areal fordi det kun defineres med ett punkt. Eventuelle avtaler om bruk av areal registreres ikke i Eiendomsregisteret (matrikkelen) for punktfester.\",\n ],\n },\n {\n tittel: \"Har punktfeste\",\n avsnitt: [\n \"Det er en eller flere punktfester på eiendommen. Punktfestene er som øyer avgrenset av hjelpelinje punktfeste. Teigen med punktfester får ikke fratrekk for disse ved beregning av areal. Arealet til eiendommen vil derfor være usikkert.\",\n ],\n },\n {\n tittel: \"Omtvistet eller usikker\",\n avsnitt: [\n \"En eller flere av grensene er merket omtvistet, er usikre eller en teigen er merket med tvist. Dette er en markering av at det er uavklart eller omtvistet hvor grensen går. På en oppmålingsforretning kan det oppstå tvil om hvor en eksisterende grense går, eller partene har ulik oppfatning av grenseforløpet. Hvis de ikke kommer til enighet beskrives dette i protokollen og grenselinjen(e) blir markert som usikker eller omtvistet. Arealet vil derfor være usikkert inntil grenseforløpet er avklart. Du må ta kontakt med kommunen der eiendommen ligger dersom du ønsker en ny oppmålingsforretning.\",\n ],\n },\n ],\n },\n {\n tittel: \"Bygningstyper på eiendommen\",\n avsnitt: [\n \"På detaljsiden for eiendommen din kan du se de ulike type bygninger som finnes på eiendommen. Bygningstypen er definert utifra bygningens hovedfunksjon. Dette defineres i Norsk standard for bygningstype (NS3457:1995). For bygninger med flere typer bruk vil den største delen av bygningen som regel definere bygningstypen.\",\n ],\n },\n {\n tittel: \"Eiendomsareal\",\n avsnitt: [\n \"Arealet beregnes på grunnlag av registrerte eiendomsgrenser i matrikkelen. Det kan være mangler i grenseinformasjonen som gjør at arealet ikke stemmer, er usikkert eller det ikke er mulig å beregne areal. For eierseksjoner uten registrert eksklusivt uteareal vil det ikke være areal.\",\n ],\n lenker: [\n {\n tekst: \"Les mer om feil i eiendomsgrenser \",\n lenke:\n \"https://www.kartverket.no/eiendom/eiendomsgrenser/feil-grenser-i-eiendomskartet\",\n },\n ],\n },\n {\n tittel: \"Eierandel\",\n avsnitt: [\n \"En eierandel sier hvor mye av en eiendom du er registrert tinglyst eier (eller fester) av. Eierandelen er oppgitt som en brøk der 1/1 betyr at du eier 100% av eiendommen. Eierandelen hentes fra grunnboken. Hvis eierforholdet ikke er tinglyst, vil ikke eierandelene vises.\",\n ],\n },\n {\n tittel: \"Eksklusivt uteareal\",\n avsnitt: [\n \"Eksklusivt uteareal er areal du har rett til å disponere tilknyttet seksjonen. For eksempel kan dette være uteområde som hage eller parkering. “Ikke registrert“ kan bety at det ikke er eksklusivt uteareal tilknyttet seksjonen, eller at det ikke er registrert i Eiendomsregisteret (matrikkelen).\",\n ],\n lenker: [\n {\n tekst: \"Les mer om Eierseksjoner\",\n lenke: \"https://www.kartverket.no/eiendom/eierseksjoner\",\n },\n ],\n },\n {\n tittel: \"Kartutsnitt for eiendom\",\n avsnitt: [\n \"Grensene kan ha ulik nøyaktighet og det kan være feil og mangler i det du ser som din eiendom. Hvis du ikke ser kartutsnitt kan det være fordi eiendommen mangler teig.\",\n ],\n },\n {\n tittel: \"Matrikkelenhetstype\",\n avsnitt: [\n \"Matrikkelenhetstype sier noe om eiendommens egenskaper. Det finnes fem ulike matrikkelenhetstyper: grunneiendom, festegrunn, eierseksjon, anleggseiendom og jordsameie. I tillegg kan noen være registret som annen type. Du kan lese mer om dem nedenfor.\",\n ],\n matrikkelenhetstyper: [\n {\n tittel: \"Grunneiendom\",\n avsnitt: [\n \"Eiendom som er avgrenset med eiendomsgrenser på jordoverflaten og strekker seg så langt ned og opp som eiendomsretten rekker. En grunneiendom har typisk en eller flere grunneiere og er eksempelvis en landbrukseiendom eller boligeiendom. En grunneiendom har kun eget gårds- og bruksnummer, ikke festenummer og seksjonsnummer. Grunneiendom er den vanligste matrikkelenheten i Norge.\",\n ],\n },\n {\n tittel: \"Festegrunn\",\n avsnitt: [\n \"Del av grunneiendom eller jordsameie som noen har festerett til eller som kan festes bort (feste betyr å leie), eller som noen har en tilsvarende eksklusiv og langvarig bruksrett til. Når man fester eier man ikke grunnen selv. Et eksempel kan være et naust eller bolighus som ikke blir disponert av grunneieren selv, men av den som fester. Enten så fester man et areal hvor grensene er avklart, eller punktfeste som ikke har en klar avgrensing. En festegrunn har både gårds- og bruksnummer, og et festenummer i tillegg.\",\n ],\n },\n {\n tittel: \"Eierseksjon\",\n avsnitt: [\n \"En eierseksjon er den del av en eiendom som er seksjonert (delt). Den som eier en eierseksjon, eier dermed en eierandel av eiendommen. Hele eiendommen er i sameie med de andre seksjonseierne. Et typisk eksempel er en boligblokk med flere leiligheter, hvor man har en eksklusiv bruksrett til en seksjon i bygget, for eksempel en leilighet. En eierseksjon har et seksjonsnummer som del av sitt matrikkelnummer.\",\n ],\n },\n {\n tittel: \"Anleggseiendom\",\n avsnitt: [\n \"En bygning, konstruksjon, eller et avgrenset volum som er utbygd eller kan utbygges. Eiendommen strekker seg ut over eller inn under en annen eiendom. Et parkeringsanlegg som befinner seg under bakken og strekker seg under en annen eiendom er et typisk eksempel på en anleggseiendom.\",\n ],\n },\n {\n tittel: \"Jordsameie\",\n avsnitt: [\n \"Et grunnareal som er eies av flere grunneiendommer. Jordsameie er ikke inndelt etter hva hver grunneiendom eier, men alt eies i fellesskap av alle grunneiendommene. Grunneiendommene som er eiere i jordsameier, er ofte gårder (bruk). Jordsameie har en historisk opprinnelse. Et eksempel på jordsameier er utmarksområder, gjerne opp mot fjellene. Jordsameie har eget gårds- og bruksnummer hvis det er registret i matrikkelen. I et jordsameie kan ikke en av gårdeierene selge sin ideelle andel, uten at gården overdras samtidig.\",\n ],\n },\n {\n tittel: \"Annen type\",\n avsnitt: [\n \"Eiendommen er av eldre type og er tildelt matrikkelnummer etter tidligere regelverk. Etter tidligere regelverk har det vært mulig å registrere for eksempel bruksretter som egne enheter i matrikkelen og de vil vises som “Annen type“ i dag. Eksempeler på slike varige bruksretter som kan være gitt eget gårds- og bruksnummer, er skog, beite, fiske og vannfall.\",\n ],\n },\n ],\n },\n {\n tittel: \"Matrikkelnummer\",\n avsnitt: [\n \"Matrikkelnummeret er et unikt nummer som består av kommunenummer, gårdsnummer, bruksnummer, og eventuelt festenummer og/eller seksjonsnummer.\",\n ],\n },\n ],\n datafelter_bygning: [\n {\n tittel: \"Bygningsnummer\",\n avsnitt: [\n \"Et bygningsnummer er bygningens unike nummer og brukes for å identifisere bygningen. Løsningen viser ikke bygningsendringer som tilbygg og påbygg. Registrerte bygningsendringer kan være synlig i andre tjenester for eksempel på Se eiendom og Norgeskart. Disse er markert med en -1, -2 osv. på slutten av bygningsnummeret.\",\n ],\n },\n {\n tittel: \"Bygningsstatus\",\n avsnitt: [\n \"En bygning har en eller flere bygningsstatuser som beskriver hvordan bygget er registrert for bruk, bygging eller riving i Eiendomsregisteret (matrikkelen). Statusen avhenger blant annet av hvilket regelverk som gjaldt da bygningen ble oppført. I hovedsak samsvarer bygningsstatusene med reglene i plan- og bygningsloven. Bygninger som er avlyst, revet, brent, flyttet eller hvis bygningsnummeret er utgått, vises ikke i løsningen.\",\n \"I oversikten finner du de ulike statusene og hva de betyr. Mener du statusen er feil og har dokumentasjon på en annen status, kan du ta kontakt med kommunen for veiledning og oppdatering.\",\n ],\n statuser: [\n {\n tittel: \"Rammetillatelse\",\n avsnitt: [\n \"Forhåndsgodkjenning fra kommunen som setter de overordnede rammene for et byggeprosjekt. En rammetillatelse er avhengig av en igangsettingstillatelse før bygging kan starte.\",\n ],\n },\n {\n tittel: \"Igangsettingstillatelse\",\n avsnitt: [\"Tillatelse fra kommunen til å starte bygging.\"],\n },\n {\n tittel: \"Midlertidig brukstillatelse\",\n avsnitt: [\n \"Tillatelse fra kommunen som gir lov til å ta i bruk et byggverk før alt arbeid er fullført.\",\n ],\n },\n {\n tittel: \"Ferdigattest\",\n avsnitt: [\n \"Det endelige beviset på at byggeprosjektet er lovlig utført og klart for bruk.\",\n ],\n },\n {\n tittel: \"Tatt i bruk\",\n avsnitt: [\n \"Statuskode ofte brukt for bygninger som regnes som ferdigstilt og kan tas i bruk.\",\n ],\n },\n {\n tittel: \"Meldingssak registrer tiltak\",\n avsnitt: [\n \"En tillatelse fra kommunen til å starte bygging av et søknadspliktig tiltak. Statusen er utgått og brukes ikke lenger i nye byggeprosjekter.\",\n ],\n },\n {\n tittel: \"Meldingssak tiltak fullført\",\n avsnitt: [\n \"Et vedtak fra kommunen på at bygging anses lovlig utført og klart for bruk. Statusen er utgått og brukes ikke lenger i nye byggeprosjekter.\",\n ],\n },\n {\n tittel: \"Fritatt for søknadsplikt\",\n avsnitt: [\n \"Brukes for byggeprosjekter som ikke er søknadspliktige, men som skal registreres i Eiendomsregisteret (matrikkelen).\",\n ],\n },\n {\n tittel: \"Ikke pliktig registrert\",\n avsnitt: [\n \"Brukes for bygninger som faller utenfor de vanlige kravene til søknad eller godkjenning.\",\n ],\n },\n {\n tittel: \"Bygning godkjent for rivning / brenning\",\n avsnitt: [\n \"En tillatelse fra kommunen til å rive eller igangsette brenning av en bygning.\",\n ],\n },\n ],\n },\n {\n tittel: \"Bygningstype\",\n avsnitt: [\n \"Alle bygninger har en bygningstype som forklarer bygningens funksjon. Informasjonen er hentet fra Norsk standard for bygningstype (NS3457:1995), som kategoriserer bygninger etter hvilken hovedfunksjon det har.\",\n ],\n },\n {\n tittel: \"Kartutsnitt med bygning\",\n avsnitt: [\n \"Kartutsnittet er sentrert på bygningen hvis bygningskoordinaten ligger innenfor bygningsflaten i kartet. Hvis dette ser feil ut kan det være fordi koordinaten er plassert et annet sted enn bygningen. For å rette dette kan du ta kontakt med kommunen der bygningen ligger.\",\n ],\n },\n {\n tittel: \"Totalt bruksareal\",\n avsnitt: [\n \"Det totale registrerte bruksarealet internt i bygningen. Dette kan inkludere areal for loft- og kjellerbod, innglasset balkong og lignende.\",\n ],\n },\n ],\n datafelter_bruksenhet: [\n {\n tittel: \"Bruksareal\",\n avsnitt: [\n \"Det totale registrerte bruksarealet for din bruksenhet. Dette er areal inne i bygningen, og kan inkludere areal for bod, innglasset balkong og lignende. Uteområder som hage og parkeringsplass regnes ikke med i bruksarealet.\",\n ],\n },\n {\n tittel: \"Bruksenhetnummer\",\n avsnitt: [\n \"Alle bruksenheter (som ikke er av typen unummerert) har et bruksenhetsnummer. Bruksenhetsnummeret består av én bokstav og fire tall. Bokstaven forteller om du bor i en hovedetasje (H), loftsetasje (L), underetasje (U) eller kjelleretasje (K). De to første tallene angir hvilken etasje inngangen til bruksenheten ligger i. De to siste tallene angir nummeret i etasjen, som regel satt fra venstre mot høyre.\",\n ],\n lenker: [\n {\n tekst: \"Les mer om bruksenhetsnummere\",\n lenke:\n \"https://www.kartverket.no/eiendom/adressering/finn-bruksenhetsnummer-bolignummer\",\n },\n ],\n },\n {\n tittel: \"Bruksenhetstype\",\n avsnitt: [\n \"Beskriver bruken av bruksenheten. Kan være følgende typer: Bolig, Ikke godkjent bolig, Fritidsbolig, Annet enn bolig eller Unummerert bruksenhet (benyttes for eksempel for garasje).\",\n ],\n },\n\n { tittel: \"Inngang\", avsnitt: [\"Hvilken etasje inngangsdøren til bruksenheten ligger i.\"] },\n ],\n },\n \"nn-NO\": {\n hva_betyr_de_forskjellige_datafeltene: \"Hva betyr de forskjellige datafeltene?\",\n eiendom: \"Eiendom\",\n bygning: \"Bygning\",\n bruksenhet: \"Bruksenhet\",\n datafelter_eiendom: [\n {\n tittel: \"Adresse\",\n avsnitt: [\"Adressen er den/de offisielle vegadressen(e) til bygningen(e) på eiendommen.\"],\n },\n {\n tittel: \"Arealmerknader\",\n avsnitt: [\n \"En arealmerknad betyr at en eller flere av grensene til eiendommen er hjelpelinjer.\",\n ],\n arealmerknader: [\n {\n tittel: \"Hjelpelinje vannkant\",\n avsnitt: [\"\"],\n },\n {\n tittel: \"Hjelpelinje veikant\",\n avsnitt: [\"\"],\n },\n {\n tittel: \"Noen fiktive hjelpelinjer\",\n avsnitt: [\"\"],\n },\n {\n tittel: \"Kun fiktive hjelpelinjer\",\n avsnitt: [\"\"],\n },\n {\n tittel: \"Punktfeste\",\n avsnitt: [\"\"],\n },\n {\n tittel: \"Har punktfeste\",\n avsnitt: [\"\"],\n },\n {\n tittel: \"Omtvistet eller usikker\",\n avsnitt: [\"\"],\n },\n ],\n },\n {\n tittel: \"Bygningstyper på eiendommen\",\n avsnitt: [\n \"På detaljsiden for eiendommen din kan du se de ulike type bygninger som finnes på eiendommen. Bygningstypen er definert utifra bygningens hovedfunksjon. Dette defineres i Norsk standard for bygningstype (NS3457:1995). For bygninger med flere typer bruk vil den største delen av bygningen som regel definere bygningstypen.\",\n ],\n },\n {\n tittel: \"Eiendomsareal\",\n avsnitt: [\n \"Arealet beregnes på grunnlag av registrerte eiendomsgrenser i matrikkelen. Det kan være mangler i grenseinformasjonen som gjør at arealet ikke stemmer, er usikkert eller det ikke er mulig å beregne areal. For eierseksjoner uten registrert eksklusivt uteareal vil det ikke være areal.\",\n ],\n },\n {\n tittel: \"Eierandel\",\n avsnitt: [\n \"En eierandel sier hvor mye av en eiendom du er registrert tinglyst eier (eller fester) av. Eierandelen er oppgitt som en brøk der 1/1 betyr at du eier 100% av eiendommen. Eierandelen hentes fra grunnboken. Hvis eierforholdet ikke er tinglyst vil ikke eierandelene vises.\",\n ],\n },\n {\n tittel: \"Eksklusivt uteareal\",\n avsnitt: [\n \"Eksklusivt uteareal er areal du har rett til å disponere tilknyttet seksjonen. For eksempel kan dette være uteområde som hage eller parkering. “Ikke registrert“ kan bety at det ikke er eksklusivt uteareal tilknyttet seksjonen, eller at det ikke er registrert i Eiendomsregisteret (matrikkelen).\",\n ],\n },\n {\n tittel: \"Kartutsnitt for eiendom\",\n avsnitt: [\n \"Grensene kan ha ulik nøyaktighet og det kan være feil og mangler i det du ser som din eiendom. Hvis du ikke ser kartutsnitt kan det være fordi eiendommen mangler teig.\",\n ],\n },\n {\n tittel: \"Matrikkelenhetstype\",\n avsnitt: [\n \"Matrikkelenhetstype sier noe om eiendommens egenskaper. Det finnes fem ulike matrikkelenhetstyper: grunneiendom, festegrunn, eierseksjon, anleggseiendom og jordsameie. I tillegg kan noen være registret som annen type. Du kan lese mer om dem nedenfor.\",\n ],\n matrikkelenhetstyper: [\n {\n tittel: \"Grunneiendom\",\n avsnitt: [\n \"Eiendom som er avgrenset med eiendomsgrenser på jordoverflaten og strekker seg så langt ned og opp som eiendomsretten rekker. En grunneiendom har typisk en eller flere grunneiere og er eksempelvis en landbrukseiendom eller boligeiendom. En grunneiendom har kun eget gårds- og bruksnummer, ikke festenummer og seksjonsnummer. Grunneiendom er den vanligste matrikkelenheten i Norge.\",\n ],\n },\n {\n tittel: \"Festegrunn\",\n avsnitt: [\n \"Del av grunneiendom eller jordsameie som noen har festerett til eller som kan festes bort (feste betyr å leie), eller som noen har en tilsvarende eksklusiv og langvarig bruksrett til. Når man fester eier man ikke grunnen selv. Et eksempel kan være et naust eller bolighus som ikke blir disponert av grunneieren selv, men av den som fester. Enten så fester man et areal hvor grensene er avklart, eller punktfeste som ikke har en klar avgrensing. En festegrunn har både gårds- og bruksnummer, og et festenummer i tillegg.\",\n ],\n },\n {\n tittel: \"Eierseksjon\",\n avsnitt: [\n \"En eierseksjon er den del av en eiendom som er seksjonert (delt). Den som eier en eierseksjon, eier dermed en eierandel av eiendommen. Hele eiendommen er i sameie med de andre seksjonseierne. Et typisk eksempel er en boligblokk med flere leiligheter, der man eier sin egen seksjon av bygget, for eksempel en leilighet. En eierseksjon har et seksjonsnummer i matrikkelnummeret, dette er med på å indikere at det er en eierseksjon.\",\n ],\n },\n {\n tittel: \"Anleggseiendom\",\n avsnitt: [\n \"En bygning, konstruksjon, eller et avgrenset volum som er utbygd eller kan utbygges. Eiendommen strekker seg ut over eller inn under en annen eiendom. Et parkeringsanlegg som befinner seg under bakken og strekker seg under en annen eiendom er et typisk eksempel på en anleggseiendom.\",\n ],\n },\n {\n tittel: \"Jordsameie\",\n avsnitt: [\n \"Et grunnareal som er eies av flere grunneiendommer. Jordsameie er ikke inndelt etter hva hver grunneiendom eier, men alt eies i fellesskap av alle grunneiendommene. Grunneiendommene som er eiere i jordsameier, er ofte gårder (bruk). Jordsameie har en historisk opprinnelse. Et eksempel på jordsameier er utmarksområder, gjerne opp mot fjellene. Jordsameie har eget gårds- og bruksnummer hvis det er registret i matrikkelen. I et jordsameie kan ikke en av gårdeierene selge sin ideelle andel, uten at gården overdras samtidig.\",\n ],\n },\n {\n tittel: \"Annen type\",\n avsnitt: [\n \"Eiendommen er av eldre type og er tildelt matrikkelnummer etter tidligere regelverk. Etter tidligere regelverk har det vært mulig å registrere for eksempel bruksretter som egne enheter i matrikkelen og de vil vises som “Annen type“ i dag. Eksempeler på slike varige bruksretter som kan være gitt eget gårds- og bruksnummer, er skog, beite, fiske og vannfall.\",\n ],\n },\n ],\n },\n {\n tittel: \"Matrikkelnummer\",\n avsnitt: [\n \"Matrikkelnummeret er et unikt nummer som består av kommunenummer, gårdsnummer, bruksnummer, og eventuelt festenummer og/eller seksjonsnummer.\",\n ],\n },\n ],\n datafelter_bygning: [\n {\n tittel: \"Bygningsnummer\",\n avsnitt: [\n \"Et bygningsnummer er bygningens unike nummer og brukes for å identifisere bygningen. Løsningen viser ikke bygningsendringer som tilbygg og påbygg. Registrerte bygningsendringer kan være synlig i andre tjenester for eksempel på Se eiendom og Norgeskart. Disse er markert med en -1, -2 osv. på slutten av bygningsnummeret.\",\n ],\n },\n {\n tittel: \"Bygningsstatus\",\n avsnitt: [\n \"En bygning har en eller flere bygningsstatuser som beskriver hvordan bygget er registrert for bruk, bygging eller riving i Eiendomsregisteret (matrikkelen). Statusen avhenger blant annet av hvilket regelverk som gjaldt da bygningen ble oppført. I hovedsak samsvarer bygningsstatusene med reglene i plan- og bygningsloven. Bygninger som er avlyst, revet, brent, flyttet eller hvis bygningsnummeret er utgått, vises ikke i løsningen. I oversikten finner du de ulike statusene og hva de betyr. Mener du statusen er feil og har dokumentasjon på en annen status, kan du ta kontakt med kommunen for veiledning og oppdatering.\",\n \"I oversikten finner du de ulike statusene og hva de betyr. Mener du statusen er feil og har dokumentasjon på en annen status, kan du ta kontakt med kommunen for veiledning og oppdatering.\",\n ],\n statuser: [\n {\n tittel: \"Rammetillatelse\",\n avsnitt: [\n \"Forhåndsgodkjenning fra kommunen som setter de overordnede rammene for et byggeprosjekt. En rammetillatelse er avhengig av en igangsettingstillatelse før bygging kan starte.\",\n ],\n },\n {\n tittel: \"Igangsettingstillatelse\",\n avsnitt: [\"Tillatelse fra kommunen til å starte bygging.\"],\n },\n {\n tittel: \"Midlertidig brukstillatelse\",\n avsnitt: [\n \"Tillatelse fra kommunen som gir lov til å ta i bruk et byggverk før alt arbeid er fullført.\",\n ],\n },\n {\n tittel: \"Ferdigattest\",\n avsnitt: [\n \"Det endelige beviset på at byggeprosjektet er lovlig utført og klart for bruk.\",\n ],\n },\n {\n tittel: \"Tatt i bruk\",\n avsnitt: [\n \"Statuskode ofte brukt for bygninger som regnes som ferdigstilt og kan tas i bruk.\",\n ],\n },\n {\n tittel: \"Meldingssak registrer tiltak\",\n avsnitt: [\n \"En tillatelse fra kommunen til å starte bygging av et søknadspliktig tiltak. Statusen er utgått og brukes ikke lenger i nye byggeprosjekter.\",\n ],\n },\n {\n tittel: \"Meldingssak tiltak fullført\",\n avsnitt: [\n \"Et vedtak fra kommunen på at bygging anses lovlig utført og klart for bruk. Statusen er utgått og brukes ikke lenger i nye byggeprosjekter.\",\n ],\n },\n {\n tittel: \"Fritatt for søknadsplikt\",\n avsnitt: [\n \"Brukes for byggeprosjekter som ikke er søknadspliktige, men som skal registreres i Eiendomsregisteret (matrikkelen).\",\n ],\n },\n {\n tittel: \"Ikke pliktig registrert\",\n avsnitt: [\n \"Brukes for bygninger som faller utenfor de vanlige kravene til søknad eller godkjenning.\",\n ],\n },\n {\n tittel: \"Bygning godkjent for rivning / brenning\",\n avsnitt: [\n \"En tillatelse fra kommunen til å rive eller igangsette brenning av en bygning.\",\n ],\n },\n ],\n },\n {\n tittel: \"Bygningstype\",\n avsnitt: [\n \"Alle bygninger har en bygningstype som forklarer bygningens funksjon. Informasjonen er hentet fra Norsk standard for bygningstype (NS3457:1995), som kategoriserer bygninger etter hvilken hovedfunksjon det har.\",\n ],\n },\n {\n tittel: \"Kartutsnitt med bygning\",\n avsnitt: [\n \"Kartutsnittet er sentrert på bygningen hvis bygningskoordinaten ligger innenfor bygningsflaten i kartet. Hvis dette ser feil ut kan det være fordi koordinaten er plassert et annet sted enn bygningen. For å rette dette kan du ta kontakt med kommunen der bygningen ligger.\",\n ],\n },\n {\n tittel: \"Totalt bruksareal\",\n avsnitt: [\n \"Det totale registrerte bruksarealet internt i bygningen. Dette kan inkludere areal for loft- og kjellerbod, innglasset balkong og lignende.\",\n ],\n },\n ],\n datafelter_bruksenhet: [\n {\n tittel: \"Bruksareal\",\n avsnitt: [\n \"Det totale registrerte bruksarealet på din seksjon. Dette er areal inne i bygningen, og kan inkludere areal for loft- og kjellerbod, innglasset balkong og lignende. Uteområder som hage og parkeringsplass regnes ikke med i bruksarealet.\",\n ],\n },\n {\n tittel: \"Bruksenhetnummer og seksjonsnummer\",\n avsnitt: [\n \"I tillegg til seksjonsnummeret har seksjonen din et bruksenhetsnummer. Bokstaven og de to første tallene angir hvilken etasje leiligheten ligger i. De to siste tallene angir leilighetens nummer i etasjen, som regel satt fra venstre mot høyre.\",\n ],\n },\n {\n tittel: \"Bruksenhetstype\",\n avsnitt: [\n \"Beskriver bruken av bruksenheten. Kan være følgende typer: Bolig, Ikke godkjent bolig, Fritidsbolig, Annet enn bolig eller Unummerert bruksenhet (benyttes for eksempel for garasje).\",\n ],\n },\n\n { tittel: \"Inngang\", avsnitt: [\"Hvilken etasje inngangsdøren til bruksenheten ligger i.\"] },\n ],\n },\n}\n\nexport const datafelter = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n nøkkelinfo_tittel: \"Nøkkelinfo\",\n teig_tittel: \"Merknader\",\n festegrunner_tittel: \"Festegrunner\",\n bygning_tittel: \"Bygninger\",\n matrikkelenhetstype_forklaring: {\n grunneiendom:\n \"Dette er en grunneiendom. Denne er avgrenset med eiendomsgrenser på jordoverflaten. Grunneiendommen strekker seg etter eiendomsgrensene så langt ned i bakken og opp i luften som eiendomsretten rekker. Les mer under “Hjelp og støtte”.\",\n festegrunn:\n \"Dette er en festegrunn. Feste betyr å leie. En festegrunn er en del av en grunneiendom eller et jordsameie som noen har en langvarig og eksklusiv rett til å bruke, eller rett til å feste (leie) bort til noen andre. Les mer under “Hjelp og støtte”.\",\n eierseksjon:\n \"Dette er en eierseksjon. En eierseksjon er en del av en eiendom som er seksjonert. Den som eier en eierseksjon, har rett til å bruke en bestemt andel av eiendommen. Les mer under “Hjelp og støtte”.\",\n anleggseiendom:\n \"Dette er en anleggseiendom. En anleggseiendom er et avgrenset volum som er bebygd eller kan utbygges. Anleggseiendommen strekker seg over eller under en annen eiendom. Les mer under “Hjelp og støtte”.\",\n jordsameie:\n \"Dette er et jordsameie. Et jordsameie er et grunnareal som eies sammen av flere grunneiendommer. Jordsameie er ikke inndelt etter hva hver grunneiendom eier, men alt eies i fellesskap av alle grunneiendommene. Les mer under “Hjelp og støtte”.\",\n annen_matrikkelenhet:\n \"Eiendommen er av eldre type og er tildelt matrikkelnummer etter tidligere regelverk. Les mer under “Hjelp og støtte”.\",\n },\n antall_teiger_forklaring: `Eiendommen har flere teiger og du kan se dem i kartutsnittet. På eiendommer med flere teiger vil den største teigen normalt være hovedteig. `,\n antall_teiger_overskrift: \"Antall teiger\",\n antall_teiger: \"{{count, number}} teiger\",\n eiendomsareal_overskrift: \"Eiendomsareal\",\n eiendomsareal_forklaring:\n \"Eiendomsareal beregnes på grunnlag av registrerte eiendomsgrenser i matrikkelen. Det kan være mangler i grenseinformasjonen som gjør at arealet ikke stemmer, er usikkert eller det ikke er mulig å beregne areal. Les mer under “Hjelp og støtte”.\",\n eiendomsareal_forklaring_arialabel: \"Hva er eiendomsareal?\",\n eiendomsareal_ikke_beregnet_verdi: \"Ikke beregnet\",\n eksklusivt_uteareal_overskrift: \"Eksklusivt uteareal\",\n eksklusivt_uteareal_forklaring:\n \"Eksklusivt uteareal er areal du har rett til å disponere tilknyttet seksjonen. For eksempel kan dette være uteområde som hage eller parkering. “Ikke registrert“ kan bety at det ikke er eksklusivt uteareal tilknyttet seksjonen, eller at det ikke er registrert i Eiendomsregisteret (matrikkelen).\",\n teig_med_flere_matrikkelenheter_forklaring:\n \"Teigen er registrert i Eiendomsregisteret (matrikkelen) med tilknytning til mer enn ett matrikkelnummer. Det betyr at grensene mellom dem ikke er registrert. Det kan være du som eier alle eller de er eid av andre.\",\n teig_med_flere_matrikkelenheter_overskrift: \"Teigdetaljer\",\n teig_med_flere_matrikkelenheter_tekst: \"Teig med flere matrikkelenheter\",\n din_andel_overskrift: \"Din andel\",\n eiertype_tittel: \"Din rettighet\",\n din_rettighet_forklaring: \"Hvilken type rettighet du er registrert med på denne eiendommen.\",\n eiertype_forklaring: {\n eier: \"Du står oppført som eier i Eiendomsregisteret (matrikkelen) til den matrikkelenheten som vises her.\",\n fester:\n \"Du står oppført som fester eller fremfester i Eiendomsregisteret (matrikkelen). Feste er en rett til å leie en festegrunn eller grunneiendom.\",\n },\n eierforhold_tittel: \"Eierforhold\",\n eierandel_forklaring:\n \"Hvor stor andel av eiendommen du har rett på. Andelen hentes fra grunnboken. Hvis eierforholdet eller festeforholdet ikke er tinglyst trenger det ikke være registrert noen andel.\",\n bygningstyper_på_eiendommen_overskrift: \"Type bygninger tilknyttet eiendommen\",\n bygningstyper_på_eiendommen_forklaring:\n \"Alle de ulike bygningstypene tilknyttet eiendommen din. Finnes det flere bygninger med samme type vil typen listes opp kun én gang.\",\n bygningstyper_på_eiendommen_forklaring_arialabel: \"Hva er bygningstyper?\",\n arealmerknader_overskrift: \"Arealmerknader\",\n arealmerknad_begrep_forklaring:\n \"Eiendommens areal har en eller flere merknader. Det betyr at arealet har en større usikkerhet eller ikke kan beregnes.\",\n arealmerknadstype_forklaring: {\n punktfeste:\n \"Alle grensene til teigen er av typen punktfeste. Punktfester har ikke beregnet areal da de kun defineres med ett punkt. Eventuelle avtaler om bruk av areal registreres ikke i Eiendomsregisteret (matrikkelen) for punktfester.\",\n hjelpelinje_fiktiv:\n \"Avgrensningen til teigen er kun fiktive hjelpelinjer, og det er derfor ikke mulig å beregne areal på eiendommen.\",\n omtvistet:\n \"En eller flere av grensene til en teig er uavklart, enten ved at den er usikker eller ved at det er en tvist. Arealet vil derfor være usikkert inntil grenseforløpet er avklart gjennom en oppmåling. Les mer under “Arealmerknad” på 'Hjelp og støtte'.\",\n noen_fiktive_hjelpelinjer:\n \"En eller flere (men ikke alle) av grensene til teigen er av typen fiktiv hjelpelinje. Arealet som beregnes vil derfor være usikkert.\",\n hjelpelinje_vannkant:\n \"En eller flere av grensene til teigen er av type vannkant. Arealet som beregnes vil derfor være usikkert.\",\n hjelpelinje_vegkant:\n \"En eller flere av grensene til teigen er av type vegkant. Arealet som beregnes vil derfor være usikkert.\",\n har_punktfester:\n \"En eller flere (men ikke alle) av grensene til teigen er av type punktfeste fordi det er registrert punktfester på eiendommen. Arealet til punktfestene beregnes inn i arealet til eiendommen og eiendommens areal vil derfor være usikkert.\",\n ukjent_arealmerknad: \"Ukjent arealmerknad. \",\n },\n vis_forklaring_arealmerknad_aria_label: \"Hva er en arealmerknad?\",\n flere_opplysninger_overskrift: \"Flere opplysninger\",\n flere_opplysninger_på_se_eiendom:\n \"På Se eiendom kan du se flere offentlige eiendomsopplysninger. Du kan også hente ut grunnboksutskrift for å se hva som er tinglyst på eiendommen.\",\n se_eiendom_link: \"Åpne eiendommen i Se eiendom\",\n antall_festegrunner_på_eiendommen_one: \"{{count}} festegrunn fester på eiendommen\",\n antall_festegrunner_på_eiendommen_other: \"{{count}} festegrunner fester på eiendommen\",\n bortfestet_detaljer_er_festet_bort_tittel: \"Er festet bort\",\n bortfestet_detaljer_festenummer_tittel: \"Festenummer\",\n bortfestet_detaljer_matrikkelnummer_tittel: \"Matrikkelnummer\",\n bortfestet_eiendom_forklaring:\n \"At eiendommen er festet bort betyr at noen andre har en aktiv festekontrakt (leier) på eiendommen. Det er da begrenset hvilke opplysninger du har rett til å se. For eksempel får du ikke se detaljer om bygninger på eiendommen.\",\n },\n \"nn-NO\": {\n nøkkelinfo_tittel: \"\",\n teig_tittel: \"\",\n festegrunner_tittel: \"\",\n bygning_tittel: \"\",\n matrikkelenhetstype_forklaring: {\n grunneiendom:\n \"Dette er en grunneiendom. Denne er avgrenset med eiendomsgrenser på jordoverflaten. Grunneiendommen strekker seg etter eiendomsgrensene så langt ned i bakken og opp i luften som eiendomsretten rekker. Les mer under “Hjelp og støtte”.\",\n festegrunn:\n \"Dette er en festegrunn. Feste betyr å leie. En festegrunn er en del av en grunneiendom eller et jordsameie som noen har en langvarig og eksklusiv rett til å bruke, eller rett til å feste (leie) bort til noen andre. Les mer under “Hjelp og støtte”.\",\n eierseksjon:\n \"Dette er en eierseksjon. En eierseksjon er en del av en eiendom som er seksjonert. Den som eier en eierseksjon, har rett til å bruke en bestemt eierandel av eiendomme. Les mer under “Hjelp og støtte”.\",\n anleggseiendom:\n \"Dette er en anleggseiendom. En anleggseiendom er et avgrenset volum som er bebygd eller kan utbygges. Anleggseiendommen strekker seg over eller under en annen eiendom. Les mer under “Hjelp og støtte”.\",\n jordsameie:\n \"Dette er et jordsameie. Et jordsameie er et grunnareal som eies sammen av flere grunneiendommer. Jordsameie er ikke inndelt etter hva hver grunneiendom eier, men alt eies i fellesskap av alle grunneiendommene. Les mer under “Hjelp og støtte”.\",\n annen_matrikkelenhet:\n \"Eiendommen er av eldre type og er tildelt matrikkelnummer etter tidligere regelverk. Les mer under “Hjelp og støtte”.\",\n },\n antall_teiger_forklaring: `Eiendommen har flere teiger enn den du ser i kartutsnittet. Hvis du klikker på lenken \"Vis i kart\" vil du se alle teigene som er registrert i Eiendomsregisteret (matrikkelen).`,\n antall_teiger_overskrift: \"Antall teiger\",\n antall_teiger: \"{{count, number}} teiger\",\n eiendomsareal_overskrift: \"Eiendomsareal\",\n eiendomsareal_forklaring: `Eiendomsareal beregnes på grunnlag av registrerte eiendomsgrenser i matrikkelen. Det kan være mangler i grenseinformasjonen som gjør at arealet ikke stemmer, er usikkert eller det ikke er mulig å beregne areal. Les mer under “Hjelp og støtte”.`,\n eiendomsareal_forklaring_arialabel: \"Hva er eiendomsareal?\",\n eiendomsareal_ikke_beregnet_verdi: \"\",\n eksklusivt_uteareal_overskrift: \"\",\n eksklusivt_uteareal_forklaring: `Eksklusivt uteareal er areal du har rett til å disponere tilknyttet seksjonen. For eksempel kan dette være uteområde som hage eller parkering. \"Ikke registrert\" kan bety at det ikke er eksklusivt uteareal tilknyttet seksjonen, eller at det ikke er registrert i Eiendomsregisteret (matrikkelen).`,\n teig_med_flere_matrikkelenheter_forklaring:\n \"Ein eller fleire av teigane er knytta til fleire matrikkeleiningar. Dersom du eig desse matrikkeleiningane kan du sjå same teig fleire gongar, men med ulike eigedomsdetaljar (t.d. matrikkelnummer).\",\n teig_med_flere_matrikkelenheter_overskrift: \"Teigdetaljar\",\n teig_med_flere_matrikkelenheter_tekst: \"Teig med fleire matrikkeleiningar\",\n din_andel_overskrift: \"Din andel\",\n eiertype_tittel: \"Din rettighet\",\n din_rettighet_forklaring: \"Hvilken type rettighet du er registrert med på denne eiendommen.\",\n eiertype_forklaring: {\n eier: \"Du står oppført som eier i Eiendomsregisteret (matrikkelen) til den matrikkelenheten som vises her.\",\n fester:\n \"Du står oppført som fester eller fremfester i Eiendomsregisteret (matrikkelen). Feste er en rett til å leie en festegrunn eller grunneiendom.\",\n },\n eierforhold_tittel: \"Eierforhold\",\n eierandel_forklaring:\n \"Hvor stor andel av eiendommen du har rett på. Andelen hentes fra grunnboken. Hvis eierforholdet eller festeforholdet ikke er tinglyst trenger det ikke være registrert noen andel.\",\n bygningstyper_på_eiendommen_overskrift: \"Type bygninger på eiendommen\",\n bygningstyper_på_eiendommen_forklaring:\n \"Alle de ulike bygningstypene tilknyttet eiendommen din. Finnes det flere bygninger med samme type vil typen listes opp kun én gang.\",\n bygningstyper_på_eiendommen_forklaring_arialabel: \"Hva er bygningstyper?\",\n arealmerknader_overskrift: \"\",\n arealmerknad_begrep_forklaring: \"\",\n arealmerknadstype_forklaring: {\n punktfeste: \"\",\n hjelpelinje_fiktiv: \"\",\n omtvistet: \"\",\n noen_fiktive_hjelpelinjer: \"\",\n hjelpelinje_vannkant: \"\",\n hjelpelinje_vegkant: \"\",\n har_punktfester: \"\",\n ukjent_arealmerknad: \"Ukjent arealmerknad. \",\n },\n vis_forklaring_arealmerknad_aria_label: \"\",\n flere_opplysninger_overskrift: \"\",\n flere_opplysninger_på_se_eiendom: \"\",\n se_eiendom_link: \"\",\n antall_festegrunner_på_eiendommen_one: \"{{count}} festegrunn fester på eiendommen\",\n antall_festegrunner_på_eiendommen_other: \"{{count}} festegrunner fester på eiendommen\",\n bortfestet_detaljer_er_festet_bort_tittel: \"Er festet bort\",\n bortfestet_detaljer_festenummer_tittel: \"Festenummer\",\n bortfestet_detaljer_matrikkelnummer_tittel: \"Matrikkelnummer\",\n bortfestet_eiendom_forklaring: \"\",\n },\n} as const\n\nexport const detaljertInnsyn = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n bruksareal_tittel: \"Totalt bruksareal\",\n antall_etasjer_tittel: \"Antall etasjer\",\n vannforsyning_tittel: \"Vannforsyning\",\n avløp_tittel: \"Avløp\",\n energikilder_tittel: \"Energikilder\",\n oppvarmingstyper_tittel: \"Oppvarming\",\n },\n \"nn-NO\": {\n bruksareal_tittel: \"\",\n antall_etasjer_tittel: \"\",\n vannforsyning_tittel: \"\",\n avløp_tittel: \"\",\n energikilder_tittel: \"\",\n oppvarmingstyper_tittel: \"\",\n },\n}\n\ntype EgenskaperVedBygningenKey = keyof (typeof keys)[\"nb-NO\"]\n\ntype EgenskaperVedBygningen = {\n [K in keyof typeof keys]: Record\n}\n\nexport const egenskaperVedBygning: EgenskaperVedBygningen = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n eiendomskort_arialabel:\n \"Eiendom {{index, number}}: {{adresse}}. Gå til side for detaljer om eiendommen.\",\n mangler_kartutsnitt_for_eiendommen_forklaring:\n \"Eiendommen har ingen registrerte teiger som kan vises i kartet.\",\n vis_i_kart_knapp: \"Åpne i Norgeskart\",\n kartutsnitt_eiendom_alt_tittel_med_adresse: \"Kartutsnitt av eiendommen {{adresse}}\",\n mangler_kartutsnitt_eiendom_alt_tittel_med_adresse:\n \"Kartutsnitt er ikke tilgjengelig for eiendommen {{adresse}}\",\n eiendom_uten_adresse: \"Eiendommen har ingen adresse\",\n mine_eiendommer_arialabel_one: \"Mine eiendommer. Oversikten viser {{count}} eiendom.\",\n mine_eiendommer_arialabel_other: \"Mine eiendommer. Oversikten viser {{count}} eiendommer.\",\n eiendom_med_antall_adresser_one: \"Eiendommen har {{count}} adresse\",\n eiendom_med_antall_adresser_other: \"Eiendommen har {{count}} adresser\",\n les_mer: \"Les mer om eiendomsutvalget\",\n mangler_du_en_eiendom: \"Mangler du en eiendom?\",\n mangler_eiendom_beskrivelse:\n \"Noen typer eiendommer, for eksempel borettslag, vil ikke vises i denne oversikten.\",\n },\n \"nn-NO\": {\n eiendomskort_arialabel: \"\",\n mangler_kartutsnitt_for_eiendommen_overskrift: \"\",\n mangler_kartutsnitt_for_eiendommen_forklaring: \"\",\n mangler_kartutsnitt_eiendom_alt_tittel_med_adresse: \"\",\n vis_i_kart_knapp: \"Åpne i Norgeskart\",\n kartutsnitt_eiendom_alt_tittel_med_adresse: \"\",\n eiendom_uten_adresse: \"\",\n mine_eiendommer_arialabel_one: \"\",\n mine_eiendommer_arialabel_other: \"\",\n eiendom_med_antall_adresser_one: \"\",\n eiendom_med_antall_adresser_other: \"\",\n les_mer: \"Les meir om eigedomsutvalet\",\n mangler_du_en_eiendom: \"Manglar du ein eigedom?\",\n mangler_eiendom_beskrivelse:\n \"Nokre typar eigedomar, til dømes borettslag, vil ikkje visast i denne oversikta.\",\n },\n}\n\ntype EiendomskortKey = keyof (typeof keys)[\"nb-NO\"]\n\ntype Eiendomskort = {\n [K in keyof typeof keys]: Record\n}\n\nexport const eiendomskort: Eiendomskort = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n tab_tittel: \"Hjelp og støtte\",\n hva_betyr_datafeltene: {\n tittel: \"Hva betyr datafeltene?\",\n avsnitt: [\n \"Hva betyr for eksempel bruksenhetstype eller matrikkelnummer? Her finner du ordforklaringer og veiledning om hva de ulike datafeltene betyr.\",\n ],\n },\n les_mer_om_datafeltene: \"Les mer om datafeltene\",\n\n overskrift: \"Hjelp og støtte\",\n\n om_utvalget: {\n tittel: \"Hvilke eiendommer finner jeg på Min eiendom?\",\n avsnitt: [\n \"Eiendommene som vises i løsningen er de du er registrert som eier eller fester av. Tinglyste eierforhold er hentet fra grunnboken.\",\n \"Eiendommene og opplysningene om dem er hentet fra Eiendomsregisteret (matrikkelen). Det er kun eiendommer som eies av deg som privatperson som vises i løsningen. Hvis du opptrer som verge vil du ikke få tilgang til vedkommendes eiendommer.\",\n \"Noen eiendommer vises ikke. Dette gjelder:
  • Borettslagsandeler
  • Aksjeleiligheter
  • Eiendom eid av selskaper, organisasjoner eller andre juridiske rettssubjekter
  • \",\n \"Tjenesten er fortsatt under utvikling og utvalget kan endres i fremtiden.\",\n ],\n },\n mer_om_eiendomsregisteret_link: \"Les mer om Eiendomsregisteret (matrikkelen)\",\n\n kartutsnitt_eiendommen: {\n tittel: \"Kartutsnitt av eiendommen\",\n avsnitt: [\n \"Grensene kan ha ulik nøyaktighet og det kan være feil og mangler i det du ser som din eiendom. Hvis du ikke ser kartutsnitt kan det være fordi eiendommen mangler teig.\",\n ],\n },\n mer_om_eiendomsgrenser_link: \"Les mer om eiendomsgrenser\",\n matrikkelenhetstype: {\n tittel: \"Matrikkelenhetstype\",\n avsnitt: [\n \"Matrikkelenhetstype sier noe om eiendommens egenskaper. Det finnes fem ulike matrikkelenhetstyper: grunneiendom, festegrunn, eierseksjon, anleggseiendom og jordsameie.\",\n ],\n },\n bruksnavn: {\n tittel: \"Bruksnavn\",\n avsnitt: [\n \"Noen eiendommer har et bruksnavn. Navnet kan komme fra reguleringsplan, utbygger, nåværende eller tidligere eier.\",\n ],\n },\n mer_om_bruksnavn_link: \"Les mer om stedsnavn og bruksnavn\",\n adresse: {\n tittel: \"Adresse\",\n avsnitt: [\"Adressen er den/de offisielle vegadressen(e) til bygningen(e) på eiendommen.\"],\n },\n matrikkelnummer: {\n tittel: \"Matrikkelnummer\",\n avsnitt: [\n \"Matrikkelnummeret er et unikt nummer som består av kommunenummer, gårdsnummer, bruksnummer, og eventuelt festenummer og/eller seksjonsnummer.\",\n \"For å se mer av informasjonen som ligger i Eiendomsregisteret (matrikkelen) kan du ta kontakt med kommunen din og bestille matrikkelbrev. Eller du kan søke opp eiendommen din på seeiendom.kartverket.no\",\n ],\n },\n feilOgMangler: \"Feil og mangler\",\n feilOgManglerForklaringer: [\n {\n tittel: \"En eller flere eiendommer mangler\",\n avsnitt: [\n \"Det er kun de eiendommene du som privatperson er registrert som eier eller fester av som vil vises i denne løsningen. Hvis du leier bolig vil denne ikke vises her.\",\n \"Har du nylig kjøpt eller overtatt en eiendom kan det ta noe tid før eiendomsregisteret er oppdatert.\",\n \"Noen typer eiendommer; borettslagsandeler og aksjeleiligheter, vil ikke vises her, fordi eierskapet ikke er registrert i Eiendomsregisteret (matrikkelen). Eiendom eid av selskaper, organisasjoner eller andre juridiske rettssubjekter vises ikke.\",\n \"Dersom du har vært eier eller fester av eiendommen du ser etter siden før 1964, kan det være at grunnen til at denne ikke vises er at du er registrert med løpenummer (og ikke fødselsnummer) i grunnboken. Løpenummer har i enkelte tilfeller blitt brukt for å registrere eierskap. Denne tjenesten henter kun eiendommer som er knyttet til eier eller fester med fødselsnummer. Dersom du tror du kan være registrert med løpenummer, kan du ta kontakt med kundesenteret.\",\n ],\n lenker: [\n {\n tekst: \"Les mer om hvordan du tar kontakt med Kartverket\",\n lenke: \"https://www.kartverket.no/om-kartverket/kontakt-oss\",\n },\n ],\n },\n {\n tittel: \"Opplysninger om eiendommen stemmer ikke\",\n avsnitt: [\n \"Hvis du ser feil i eiendomsinformasjonen, for eksempel adresse, grenser, eller bygningsopplysninger kan du be om retting hos kommunen. Hvorvidt feilen kan rettes eller ikke, kravene til dokumentasjon og kostnad for retting, reguleres blant annet av matrikkelloven § 26.\",\n \"Ta kontakt med kommunen hvor eiendommen ligger for spørsmål om dette.\",\n ],\n lenker: [\n {\n tekst: \"Les mer om hva du kan gjøre hvis du ser feil i eiendomsopplysningene\",\n lenke:\n \"https://www.kartverket.no/eiendom/eiendomsgrenser/matrikkelen-norgeseiendomsregister\",\n },\n ],\n },\n {\n tittel: 'Opplysninger om bygningen er \"ikke registrert\"',\n avsnitt: [\n \"Bygninger og bruksenheter kan registreres med en rekke opplysninger i Eiendomsregisteret (matrikkelen). Dersom du ser at en opplysning står som “ikke registrert” betyr det at den ikke er oppgitt, eller ikke kan registreres for den bygningen eller bruksenheten.\",\n \"Det har vært ulike krav til hvilke opplysninger som skal registreres avhengig av hvilket regelverk som har vært gjeldende da bygningen ble oppført. Det er også ulike krav for ulike typer bygninger og bruksenheter. For eksempel vil en garasjebygning med en unummerert bruksenhet ha færre registrerte opplysninger.\",\n \"Dersom du har dokumentasjon på hva som skulle vært registrert kan du ta kontakt med kommunen der eiendommen ligger for å få dette rettet opp.\",\n ],\n },\n {\n tittel: \"Jeg ser eiendommer jeg ikke eier\",\n avsnitt: [\n \"Hvis du ser flere eiendommer enn du eier bør du først sjekke om du er registrert som tinglyst eier eller fester. Dette kan du finne ut av ved å søke opp eiendommen på seeiendom.kartverket.no.\",\n \"Dersom du er registrert som tinglyst eier eller fester, og dette ikke stemmer, kan du ta kontakt med kundesenteret for å få hjelp. Merk at om du nylig har solgt eiendommen kan det ta en stund før Min eiendom oppdateres.\",\n \"Dersom du er registrert som tinglyst eier eller fester, og dette ikke stemmer, kan du endre eierskapet ved tinglysing.\",\n \"Merk at om du nylig har solgt eiendommen kan det ta en stund før Min eiendom oppdateres.\",\n ],\n lenker: [\n {\n tekst: \"Les mer om hvordan du tinglyser endring av eierskap\",\n lenke: \"https://www.kartverket.no/eiendom/overfore-eiendom\",\n },\n ],\n },\n\n {\n tittel: \"Eiendommen er oppført med flere adresser\",\n avsnitt: [\n \"Mulige årsaker til at du ser flere adresser kan være at bygningen har flere innganger eller at det er flere bygninger på eiendommen som skal ha sin egen adresse.\",\n ],\n lenker: [\n { tekst: \"Les mer om adresser\", lenke: \"https://www.kartverket.no/eiendom/adressering\" },\n ],\n },\n {\n tittel: \"Eiendommen mangler adresse\",\n avsnitt: [\n \"Hvis det står at eiendommen ikke har adresse betyr dette at eiendommen ikke er tildelt en offisiell vegadresse. Mulige årsaker kan være at eiendommen ikke er bebygd eller ligger i et område uten veier.\",\n ],\n lenker: [\n { tekst: \"Les mer om adresser\", lenke: \"https://www.kartverket.no/eiendom/adressering\" },\n ],\n },\n {\n tittel: \"Eiendommen er realsameie eller jordsameie\",\n avsnitt: [\n \"Realsameie er et sameie hvor matrikkelenheter eier fast eiendom i fellesskap. Eksempel på et realsameie kan være når et antall eiendommer eier veg, parkeringsareal eller lekeplass i fellesskap, og dette arealet er en egen eiendom. Eiendommene vil da sammen ha grunnbokshjemmel til fellesarealet med en angitt andel på hver. Innsynsløsningen viser ikke slike realsameier, du får kun tilgang til det du eier som privatperson.\",\n \"Jordsameie er en egen form for realsameie eid av gårder, gjerne jordfellesskap som beitestrekninger, skog- og fjellvidder. Hvis jordsameiet er registrert har det fått sitt eget matrikkelnummer (gårds- og bruksnummer) og det er eiendommene som eier det som står oppført som eiere. Sameieretten er knyttet til bruket og kan bare overføres sammen med det.\",\n \"Innsynsløsningen viser ikke realsameier. Du får kun tilgang til det du eier som privatperson.\",\n ],\n },\n ],\n mer_om_matrikkelbrev_link: \"Les mer om matrikkelbrev\",\n eiendomsareal: {\n tittel: \"Eiendomsareal\",\n avsnitt: [\n \"Arealet beregnes på grunnlag av registrerte eiendomsgrenser i matrikkelen. Det kan være mangler i grenseinformasjonen som gjør at arealet ikke stemmer, er usikkert eller det ikke er mulig å beregne areal. For eierseksjoner uten registrert eksklusivt uteareal vil det ikke være areal.\",\n ],\n },\n eierandel: {\n tittel: \"Eierandel\",\n avsnitt: [\n \"En eierandel sier hvor mye av en eiendom du er registrert tinglyst eier (eller fester) av. Eierandelen er oppgitt som en brøk der 1/1 betyr at du eier 100% av eiendommen. Eierandelen hentes fra grunnboken. Hvis eierforholdet ikke er tinglyst vil ikke eierandelene vises.\",\n ],\n },\n bygningstyper: {\n tittel: \"Bygningstyper på eiendommen\",\n avsnitt: [\n \"På detaljsiden for eiendommen din kan du se de ulike type bygninger som finnes på eiendommen. Bygningstypen er definert utifra bygningens hovedfunksjon. Dette defineres i Norsk standard for bygningstype (NS3457:1995). For bygninger med flere typer bruk, vil den største delen av bygningen som regel definere bygningstypen.\",\n ],\n },\n får_opp_feil_eiendommer: {\n tittel: \"Eiendommene jeg får opp er feil\",\n avsnitt: [\n \"Hvis du ser flere eiendommer enn du eier, eller noen av dine eiendommer mangler, må du først finne ut om eiendommen er tinglyst eller ikke. Dette kan du finne ut av ved å søke opp eiendommen på seeiendom.kartverket.no.\",\n \"Hvis eiendommen er tinglyst - \",\n \"Hvis eiendommen ikke er tinglyst - \",\n ],\n },\n mer_om_overføring_eiendom_link: \"Les mer om overføring av fast eiendom\",\n mer_om_føring_av_eier_link: \"Les mer om føring av eier og fester\",\n kontakt_kundesenter_feil_eiendom_link:\n \"Ta kontakt med kundesenteret hvis du ser feil eiendommer\",\n feil_opplysninger_om_eiendom: {\n tittel: \"Opplysningene om eiendommen er feil\",\n avsnitt: [\n \"Hvis du ser feil i eiendomsinformasjonen, for eksempel adresse, grenser, eller bygningsopplysninger kan du kreve retting hos kommunen \",\n \". For at kommunen skal behandle kravet må du kunne dokumentere opplysningene du ønsker å endre. Kravene til dokumentasjonen kan variere avhengig av hvilke opplysninger du ønsker å rette. Hver sak må vurderes konkret av den aktuelle kommunen.\",\n \"Ta kontakt med kommunen hvor eiendommen ligger for spørsmål om dette.\",\n ],\n },\n matrikkellov_par_26_link: \"(se matrikkelloven § 26)\",\n fant_du_ikke_svar: {\n tittel: \"Fant du ikke svar på det du lurte på eller har du tilbakemeldinger?\",\n avsnitt: [\n \"Du kan finne mer informasjon om Eiendomsregisteret (matrikkelen) på våre nettsider.\",\n \"Ta kontakt med kundesenteret vårt dersom du har spørsmål eller tilbakemeldinger til løsningen. \",\n ],\n },\n kundesenteret_link: \"Kontaktinformasjon og åpningstider for kundesenteret\",\n kontakt_kundesenteret: {\n tittel: \"Kontakt kundesenteret\",\n avsnitt: [\n \"Ta kontakt med kundesenteret vårt dersom du har spørsmål eller tilbakemeldinger til Min eiendom.\",\n ],\n },\n kontakt_kundesenteret_aria: \"Kontakt kundesenteret\",\n gaa_til_seeiendom_aria: \"Gå til seeiendom.kartverket.no\",\n leter_du_etter_annen_eiendom: {\n tittel: \"Ønsker du opplysninger om andre eiendommer?\",\n avsnitt: [\n \"På Se eiendom kan du søke opp alle eiendommer og se offentlige opplysninger. Her vil du også finne opplysninger om næringseiendommer og borettslag.\",\n ],\n },\n },\n\n \"nn-NO\": {\n tab_tittel: \"Hjelp og støtte\",\n hva_betyr_datafeltene: {\n tittel: \"Kva tyder datafelta?\",\n avsnitt: [\n \"Kva tyder til dømes bruksenheitstype eller matrikkelnummer? Les meir om kva datafelta som kan dukke opp for eigedomen din tyder.\",\n ],\n },\n les_mer_om_datafeltene: \"Les meir om datafelta\",\n overskrift: \"Hjelp og støtte\",\n om_utvalget: {\n tittel: \"Om utvalet\",\n avsnitt: [\n \"Eigedomane og opplysningane om dei er henta frå Eigedomsregisteret (matrikkelen) som inneheld informasjon om eigedomsgrenser, areal, bygningar, bustader og adresser.\",\n \"Eigedomane som vert viste i løysinga er dei du er registrert som eigar eller festar av i Eigedomsregisteret (matrikkelen). Burettslagsandelar og aksjeleilegheiter vert ikkje viste i dagens løysing. Tenesta er under utvikling og utvalet kan bli endra.\",\n ],\n },\n mer_om_eiendomsregisteret_link: \"Les meir om Eigedomsregisteret (matrikkelen)\",\n kartutsnitt_eiendommen: {\n tittel: \"Kartutsnitt av eigedommen\",\n avsnitt: [\n \"Grensene kan ha ulik nøyaktigheit og det kan vere feil og manglar i det du ser som din eigedom. Om du ikkje ser kartutsnitt kan det vere fordi eigedomen manglar teig.\",\n ],\n },\n mer_om_eiendomsgrenser_link: \"Les meir om eigedomsgrenser\",\n matrikkelenhetstype: {\n tittel: \"Matrikkeleiningstype\",\n avsnitt: [\n \"Matrikkeleiningstypen seier noko om eigedommens eigenskapar. Det finst fem ulike matrikkelenheitstyper: grunneigedom, festegrunn, eigarseksjon, anleggseigedom og jordsameige.\",\n ],\n },\n bruksnavn: {\n tittel: \"Bruksnamn\",\n avsnitt: [\n \"Nokre eigedomar har eit bruksnamn. Namnet kan komme frå reguleringsplan, utbyggjar, noverande eller tidlegare eigar.\",\n ],\n },\n mer_om_bruksnavn_link: \"Les meir om stadnamn og bruksnamn\",\n adresse: {\n tittel: \"Adresse\",\n avsnitt: [\"Adressa er den/dei offisielle vegadressa(ne) til bygninga(ne) på eigedomen.\"],\n },\n matrikkelnummer: {\n tittel: \"Matrikkelnummer\",\n avsnitt: [\n \"Matrikkelnummeret er eit unikt nummer som består av kommunenummer, gardsnummer, bruksnummer, og eventuelt festenummer og/eller seksjonsnummer.\",\n \"For å sjå meir av informasjonen som ligg i Eigedomsregisteret (matrikkelen) kan du ta kontakt med kommunen din og bestille matrikkelbrev. Eller du kan søkje opp eigedomen din på seeiendom.kartverket.no\",\n ],\n },\n feilOgMangler: \"Feil og manglar\",\n feilOgManglerForklaringer: [\n {\n tittel: \"Ein eller fleire eigedomar manglar\",\n avsnitt: [\n \"Ein eller fleire eigedomar manglar\",\n \"Det kan vere fleire grunnar til at eigedomen din ikkje visast.\",\n \"Du er ikkje registrert eigar eller festar. Om du ikkje er registrert eigar eller festar i Eigedomsregisteret (matrikkelen) vil ikkje eigedomen dukke opp.\",\n \"Du eig ein leilegheit i eit borettslag eller eit bustadselskap. Borettslagsandelar og aksjeleilegheiter er ikkje registrerte i Eigedomsregisteret (matrikkelen).\",\n \"Du har nett kjøpt eller overteke eigedom. Har du nyleg kjøpt eller overteke ein eigedom kan det ta tid før Eigedomsregisteret (matrikkelen) er oppdatert.\",\n \"Eigedomen eigast ikkje av ein privatperson. Min Eigedom er for augeblikket ikkje tilgjengeleg for juridiske rettssubjekt. Det vil seie selskap, foreiningar og organisasjonar.\",\n ],\n },\n {\n tittel: \"Opplysningane om eigedomen stemmer ikkje\",\n avsnitt: [\n \"Om du ser feil i eigedomsinformasjonen, til dømes adresse, grenser, eller bygningsopplysningar kan du krevje retting hos kommunen (sjå matrikkellova § 26). For at kommunen skal handsame kravet må du kunne dokumentere opplysningane du ønskjer å endre. Krava til dokumentasjonen kan variere avhengig av kva opplysningar du ønskjer å rette. Kvar sak må vurderast konkret av den aktuelle kommunen.\",\n \"Ta kontakt med kommunen der eigedomen ligg for spørsmål om dette.\",\n ],\n lenker: [\n {\n tekst: \"Les meir om kva du kan gjere om du ser feil i eigedomsopplysningane\",\n lenke:\n \"https://www.kartverket.no/eiendom/eiendomsgrenser/matrikkelen-norgeseiendomsregister\",\n },\n ],\n },\n {\n tittel: \"Eg ser eigedomar eg ikkje eig\",\n avsnitt: [\n \"Om du ser fleire eigedomar enn du eig bør du først sjekke om du er registrert som tinglyst eigar eller festar. Dette kan du finne ut av ved å søkje opp eigedomen på seeiendom.kartverket.no.\",\n \"Dersom du er registrert som tinglyst eigar eller festar, og dette ikkje stemmer, kan du ta kontakt med kundesenteret for å få hjelp. Merk at om du nyleg har selt eigedomen kan det ta ei stund før Min eigedom vert oppdatert.\",\n \"Dersom du ikkje er tinglyst eigar eller festar men framleis ser eigedomen her, kan du ta kontakt med kundesenteret for å få dette retta.\",\n ],\n },\n {\n tittel: \"Eigedomen er oppført med fleire adresser\",\n avsnitt: [\n \"Om du ser fleire eigedomar enn du eig bør du først sjekke om du er registrert som tinglyst eigar eller festar. Dette kan du finne ut av ved å søkje opp eigedomen på http://seeiendom.kartverket.no. \",\n \"Dersom du er registrert som tinglyst eigar eller festar, og dette ikkje stemmer, kan du ta kontakt med kundesenteret for å få hjelp. Merk at om du nyleg har selt eigedomen kan det ta ei stund før Min eigedom vert oppdatert.\",\n \"Dersom du ikkje er tinglyst eigar eller festar men framleis ser eigedomen her, kan du ta kontakt med kundesenteret for å få dette retta.\",\n ],\n },\n {\n tittel: \"Eigedomen manglar adresse\",\n avsnitt: [\n \"Om det står at eigedomen ikkje har adresse tyder dette at eigedomen ikkje er tildelt ein offisiell vegadresse. Moglege årsaker kan vere at eigedomen ikkje er bygd eller ligg i eit område utan vegar.\",\n ],\n lenker: [\n { tekst: \"Les meir om adresser\", lenke: \"https://www.kartverket.no/eiendom/adressering\" },\n ],\n },\n ],\n mer_om_matrikkelbrev_link: \"Les meir om matrikkelbrev\",\n eiendomsareal: {\n tittel: \"Eigedomsareal\",\n avsnitt: [\n \"Arealet vert rekna ut frå registrerte eigedomsgrenser i matrikkelen. Det kan vere manglar i grenseinformasjonen som gjer at arealet ikkje stemmer, er usikkert eller det ikkje er mogleg å rekne ut areal. For eigarseksjonar utan registrert eksklusivt uteareal vil det ikkje vere areal.\",\n ],\n },\n eierandel: {\n tittel: \"Eigardel\",\n avsnitt: [\n \"Ein eigardel seier kor mykje av ein eigedom du er registrert tinglyst eigar (eller festar) av. Eigardelen er oppgjeven som ein brøk der 1/1 tyder at du eig 100% av eigedomen. Eigardelen vert henta frå grunnboka. Om eigarforholdet ikkje er tinglyst vil ikkje eigardelane visast.\",\n ],\n },\n bygningstyper: {\n tittel: \"Bygningstyper på eigedomen\",\n avsnitt: [\n \"På detaljsida for eigedomen din kan du sjå dei ulike type bygningar som finst på eigedomen. Bygningstypen er definert ut frå bygninga sin hovudfunksjon. Dette vert definert i Norsk standard for bygningstype (NS3457:1995). For bygningar med fleire typar bruk vil den største delen av bygninga som regel definere bygningstypen.\",\n ],\n },\n får_opp_feil_eiendommer: {\n tittel: \"Eigedomane eg får opp er feil\",\n avsnitt: [\n \"Om du ser fleire eigedomar enn du eig, eller nokon av dine eigedomar manglar, må du først finne ut om eigedomen er tinglyst eller ikkje. Dette kan du finne ut av ved å søkje opp eigedomen på seeiendom.kartverket.no.\",\n \"Om eigedomen er tinglyst - \",\n \"Om eigedomen ikkje er tinglyst - \",\n ],\n },\n mer_om_overføring_eiendom_link: \"Les meir om overføring av fast eigedom\",\n mer_om_føring_av_eier_link: \"Les meir om føring av eigar og festar\",\n kontakt_kundesenter_feil_eiendom_link: \"Ta kontakt med kundesenteret om du ser feil eigedomar\",\n feil_opplysninger_om_eiendom: {\n tittel: \"Opplysningane om eigedomen er feil\",\n avsnitt: [\n \"Om du ser feil i eigedomsinformasjonen, til dømes adresse, grenser, eller bygningsopplysningar kan du krevje retting hos kommunen \",\n \". For at kommunen skal handsame kravet må du kunne dokumentere opplysningane du ønskjer å endre. Krava til dokumentasjonen kan variere avhengig av kva opplysningar du ønskjer å rette. Kvar sak må vurderast konkret av den aktuelle kommunen.\",\n \"Ta kontakt med kommunen der eigedomen ligg for spørsmål om dette.\",\n ],\n },\n matrikkellov_par_26_link: \"(sjå matrikkellova § 26)\",\n fant_du_ikke_svar: {\n tittel: \"Fann du ikkje svar på det du lurte på eller har du tilbakemeldingar?\",\n avsnitt: [\n \"Du kan finne meir informasjon om Eigedomsregisteret (matrikkelen) på nettsidene våre.\",\n \"Ta kontakt med kundesenteret vårt om du har spørsmål eller tilbakemeldingar til løysinga.\",\n ],\n },\n kundesenteret_link: \"Kontaktinformasjon og opningstider for kundesenteret\",\n kontakt_kundesenteret: {\n tittel: \"Kontakt kundesenteret\",\n avsnitt: [\n \"Ta kontakt med kundesenteret vårt dersom du har spørsmål eller tilbakemeldingar til Min eigedom.\",\n ],\n },\n kontakt_kundesenteret_aria: \"Kontakt kundesenteret\",\n gaa_til_seeiendom_aria: \"Gå til seeiendom.kartverket.no\",\n leter_du_etter_annen_eiendom: {\n tittel: \"Leitar du etter nokon andre si eigedom?\",\n avsnitt: [\n \"På Sjå eigedom kan du søkje opp alle eigedomar og sjå offentlege opplysningar. Her vil du også finne opplysningar om aksjeleilegheiter, næringseigedomar og borettslagsandelar.\",\n ],\n },\n },\n}\n\nexport const hjelpOgStøtte = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n tab_tittel: \"Min eiendom\",\n tittel: \"Min eiendom\",\n beskrivelse:\n \"Min eiendom er en tjeneste fra Kartverket hvor du kan finne registrerte opplysninger om dine eiendommer. Informasjonen er hentet fra Eiendomsregisteret (matrikkelen) som inneholder opplysninger om eiendomsgrenser, areal, bygninger, boliger og adresser.\",\n loggInnKnapp: \"Logg inn for å se dine eiendommer\",\n loggInnKnappMobil: \"Logg inn\",\n },\n \"nn-NO\": {\n tab_tittel: \"Min eigedom\",\n tittel: \"Min eigedom\",\n beskrivelse:\n \"Min eigedom er ein teneste frå Kartverket der du kan finne registrerte opplysningar om eigedommane dine. Informasjonen er henta frå Eiendomsregisteret (matrikkelen) som inneheld opplysningar om eigedomsgrenser, areal, bygningar, bustader og adresser.\",\n loggInnKnapp: \"Logg inn for å sjå eigedommane dine\",\n loggInnKnappMobil: \"Logg inn\",\n },\n} as const\n\nexport const landingsside = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n hvorfor_ser_jeg_ikke_eiendommen: {\n tittel: \"Det er ikke registrert noen eiendommer på deg\",\n avsnitt: [\n \"Forventet du å finne eiendom her?\",\n \"Det kan være flere grunner til at eiendommen din ikke er tilgjengelig i løsningen:\",\n \"Fødselsnummeret ditt er ikke registrert i Eiendomsregisteret (matrikkelen).\",\n \"Hvis du ikke er registrert eier i Eiendomsregistreret vil ikke eiendommen vises.\",\n \"Du er ikke registrert eier eller fester.\",\n \"Det er kun eiendommer du eier eller fester som vises i løsningen, hvis du leier vil det ikke vises her.\",\n \"Du eier en leilighet i et borettslag eller et boligselskap.\",\n \"Borettslagsandeler og aksjeleiligheter vises ikke her.\",\n \"Du har nettopp kjøpt eller overtatt eiendom.\",\n \"Det kan ta litt tid før nytt eierskap oppdateres.\",\n \"Eiendommen eies av et selskap (eller annet juridisk rettssubjekt).\",\n \"Du får kun innsyn i eiendom eid av deg som privatperson.\",\n ],\n les_mer: \"Les mer om eiendommene vi viser\",\n },\n hvorfor_flere_adresser: {\n tittel: \"Hvorfor ser jeg flere adresser?\",\n avsnitt: [\n \"Mulige årsaker til at du ser flere adresser kan være at bygningen har flere innganger eller at det er flere bygninger på eiendommen som skal ha sin egen adresse.\",\n ],\n },\n hvorfor_ikke_adresse: {\n tittel: \"Hvorfor har jeg ikke adresse?\",\n avsnitt: [\n \"Hvis det står at eiendommen ikke har adresse betyr dette at eiendommen ikke er tildelt en offisiell vegadresse. Mulige årsaker kan være at eiendommen ikke er bebygd eller ligger i et område uten veier.\",\n ],\n },\n mer_om_adresser_link: \"Les mer om adresser\",\n betydning_opplysninger_mine_eiendommer_overskrift:\n \"Hva betyr opplysningene som vises om mine eiendommer?\",\n betydning_opplysninger_bygninger: {\n tittel: \"Hva betyr opplysningene som vises om bygningene?\",\n avsnitt: [\n \"På detaljsiden for hvor eiendom ser du en oversikt over alle registrerte bygninger på eiendommen. For hver bygning kan du se følgende opplysninger:\",\n ],\n },\n kartutsnitt_bygning: {\n tittel: \"Kartutsnitt med bygningen\",\n avsnitt: [\n \"Kartutsnittet er sentrert på bygningen hvis bygningskoordinaten ligger innenfor bygningsflaten i kartet. Hvis dette ser feil ut kan det være fordi koordinaten er plassert et annet sted enn bygningen. For å rette dette kan du ta kontakt med kommunen der bygningen ligger.\",\n ],\n },\n totalt_bruksareal: {\n tittel: \"Totalt bruksareal\",\n avsnitt: [\n \"Det totale registrerte bruksarealet internt i bygningen. Dette kan inkludere areal for loft- og kjellerbod, innglasset balkong og lignende.\",\n ],\n },\n bygningsnummer: {\n tittel: \"Bygningsnummer\",\n avsnitt: [\n \"Et bygningsnummer er bygningens unike nummer og brukes for å identifisere bygningen.\",\n \"Løsningen viser ikke bygningsendringer som tilbygg og påbygg. Registrerte bygningsendringer kan være synlig i andre tjenester for eksempel på Se eiendom og Norgeskart. Disse er markert med en -1, -2 osv. på slutten av bygningsnummeret.\",\n ],\n },\n detaljert_bygningstype: {\n tittel: \"Detaljert bygningstype\",\n avsnitt: [\n \"Alle bygninger har en bygningstype som forklarer bygningens funksjon. Informasjonen er hentet fra Norsk standard for bygningstype (NS3457:1995), som kategoriserer bygninger etter hvilken hovedfunksjon det har.\",\n ],\n },\n betydning_opplysninger_seksjon_overskrift: \"Hva betyr opplysningene som vises om seksjonen?\",\n seksjonsnummer: {\n tittel: \"Din seksjon (eks. H0303)\",\n avsnitt: [\n \"I tillegg til seksjonsnummeret har seksjonen din et bruksenhetsnummer. Bokstaven og de to første tallene angir hvilken etasje leiligheten ligger i. De to siste tallene angir leilighetens nummer i etasjen, som regel satt fra venstre mot høyre.\",\n ],\n },\n bruksareal_seksjon: {\n tittel: \"Bruksareal\",\n avsnitt: [\n \"Det totale registrerte bruksarealet på din seksjon. Dette er areal inne i bygningen, og kan inkludere areal for loft- og kjellerbod, innglasset balkong og lignende. Uteområder som hage og parkeringsplass regnes ikke med i bruksarealet.\",\n ],\n },\n inngang_seksjon: {\n tittel: \"Inngang\",\n avsnitt: [\"Hvilken etasje inngangsdøren til bruksenheten ligger i.\"],\n },\n forklaring_matrikkelenhetstypene: {\n tittel: \"Hva er matrikkelenhetstypene?\",\n avsnitt: [\n \"Alle eiendommer må være registrert med en matrikkelenhetstype som beskriver eiendommens fysiske eller formelle egenskaper, slik som utstrekning eller måten eiendommen kan eies på. De ulike matrikkelenhetstypene er:\",\n ],\n },\n grunneiendom_forklaring: {\n tittel: \"Grunneiendom\",\n avsnitt: [\n \"Eiendom som er avgrenset med eiendomsgrenser på jordoverflaten og strekker seg så langt ned og opp som eiendomsretten rekker. En grunneiendom har typisk en eller flere grunneiere og er eksempelvis en landbrukseiendom eller boligeiendom. En grunneiendom har kun eget gårds- og bruksnummer, ikke festenummer og seksjonsnummer. Grunneiendom er den vanligste matrikkelenheten i Norge.\",\n ],\n },\n festegrunn_forklaring: {\n tittel: \"Festegrunn\",\n avsnitt: [\n \"Del av grunneiendom eller jordsameie som noen har festerett til eller som kan festes bort (feste betyr å leie), eller som noen har en tilsvarende eksklusiv og langvarig bruksrett til. Når man fester eier man ikke grunnen selv. Et eksempel kan være et naust eller bolighus som ikke blir disponert av grunneieren selv, men av den som fester. Enten så fester man et areal hvor grensene er avklart, eller punktfeste som ikke har en klar avgrensing. En festegrunn har både gårds- og bruksnummer, og et festenummer i tillegg.\",\n ],\n },\n seksjon_forklaring: {\n tittel: \"Eierseksjon\",\n avsnitt: [\n \"En eierseksjon er den del av en eiendom som er seksjonert (delt). Den som eier en eierseksjon, eier dermed en eierandel av eiendommen. Hele eiendommen er i sameie med de andre seksjonseierne. Et typisk eksempel er en boligblokk med flere leiligheter, der man eier sin egen seksjon av bygget, for eksempel en leilighet. En eierseksjon har et seksjonsnummer i matrikkelnummeret, dette er med på å indikere at det er en eierseksjon.\",\n ],\n },\n anleggseiendom_forklaring: {\n tittel: \"Anleggseiendom\",\n avsnitt: [\n \"En bygning, konstruksjon, eller et avgrenset volum som er utbygd eller kan utbygges. Eiendommen strekker seg ut over eller inn under en annen eiendom. Et parkeringsanlegg som befinner seg under bakken og strekker seg under en annen eiendom er et typisk eksempel på en anleggseiendom.\",\n ],\n },\n jordsameie_forklaring: {\n tittel: \"Jordsameie\",\n avsnitt: [\n \"Et grunnareal som er eies av flere grunneiendommer. Jordsameie er ikke inndelt etter hva hver grunneiendom eier, men alt eies i fellesskap av alle grunneiendommene. Grunneiendommene som er eiere i jordsameier, er ofte gårder (bruk). Jordsameie har en historisk opprinnelse. Et eksempel på jordsameier er utmarksområder, gjerne opp mot fjellene. Jordsameie har eget gårds- og bruksnummer hvis det er registret i matrikkelen. I et jordsameie kan ikke en av gårdeierene selge sin ideelle andel, uten at gården overdras samtidig.\",\n ],\n },\n annen_type_forklaring: {\n tittel: \"Annen type\",\n avsnitt: [\n \"Eiendommen er av eldre type og er tildelt matrikkelnummer etter tidligere regelverk. Etter tidligere regelverk har det vært mulig å registrere for eksempel bruksretter som egne enheter i matrikkelen og de vil vises som “Annen type“ i dag. Eksempeler på slike varige bruksretter som kan være gitt eget gårds- og bruksnummer, er skog, beite, fiske og vannfall.\",\n ],\n },\n forklaring_bygningsstatusene: {\n tittel: \"Hva betyr bygningsstatusene som vises om bygningene?\",\n avsnitt: [\n \"En bygning har en eller flere bygningsstatuser som beskriver hvordan bygget er registrert for bruk, bygging eller riving i Eiendomsregisteret (matrikkelen). Statusen avhenger blant annet av hvilket regelverk som gjaldt da bygningen ble oppført. I hovedsak samsvarer bygningsstatusene med reglene i plan- og bygningsloven. Bygninger som er avlyst, revet, brent, flyttet eller hvis bygningsnummeret er utgått, vises ikke i løsningen.\",\n \"I oversikten finner du de ulike statusene og hva de betyr.\",\n \"Mener du statusen er feil og har dokumentasjon på en annen status, kan du ta kontakt med kommunen for veiledning og oppdatering.\",\n ],\n },\n rammetillatelse: {\n tittel: \"Rammetillatelse\",\n avsnitt: [\n \"Forhåndsgodkjenning fra kommunen som setter de overordnede rammene for et byggeprosjekt. En rammetillatelse er avhengig av en igangsettingstillatelse før bygging kan starte.\",\n ],\n },\n igangsettingstillatelse: {\n tittel: \"Igangsettingstillatelse\",\n avsnitt: [\"Tillatelse fra kommunen til å starte bygging.\"],\n },\n midlertidig_brukstillatelse: {\n tittel: \"Midlertidig brukstillatelse\",\n avsnitt: [\n \"Tillatelse fra kommunen som gir lov til å ta i bruk et byggverk før alt arbeid er fullført.\",\n ],\n },\n ferdigattest: {\n tittel: \"Ferdigattest\",\n avsnitt: [\"Det endelige beviset på at byggeprosjektet er lovlig utført og klart for bruk.\"],\n },\n tatt_i_bruk: {\n tittel: \"Tatt i bruk\",\n avsnitt: [\n \"Statuskode ofte brukt for bygninger som regnes som ferdigstilt og kan tas i bruk.\",\n ],\n },\n melding_registrer_tiltak: {\n tittel: \"Meldingssak registrer tiltak\",\n avsnitt: [\n \"En tillatelse fra kommunen til å starte bygging av et søknadspliktig tiltak. Statusen er utgått og brukes ikke lenger i nye byggeprosjekter.\",\n ],\n },\n melding_tiltak_fullført: {\n tittel: \"Meldingssak tiltak fullført\",\n avsnitt: [\n \"Et vedtak fra kommunen på at bygging anses lovlig utført og klart for bruk. Statusen er utgått og brukes ikke lenger i nye byggeprosjekter.\",\n ],\n },\n fritatt_søknadsplikt: {\n tittel: \"Fritatt for søknadsplikt\",\n avsnitt: [\n \"Brukes for byggeprosjekter som ikke er søknadspliktige, men som skal registreres i Eiendomsregisteret (matrikkelen).\",\n ],\n },\n ikke_pliktig_registrert: {\n tittel: \"Ikke pliktig registrert\",\n avsnitt: [\n \"Brukes for bygninger som faller utenfor de vanlige kravene til søknad eller godkjenning.\",\n ],\n },\n godkjent_for_rivning_brenning: {\n tittel: \"Bygning godkjent for rivning / brenning\",\n avsnitt: [\"En tillatelse fra kommunen til å rive eller igangsette brenning av en bygning.\"],\n },\n },\n\n \"nn-NO\": {\n hvorfor_ser_jeg_ikke_eiendommen: {\n tittel: \"Kvifor ser eg ikkje eigendommen min?\",\n avsnitt: [\" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \", \" \"],\n },\n hvorfor_flere_adresser: {\n tittel: \"Kvifor ser eg fleire adresser?\",\n avsnitt: [\"\"],\n },\n hvorfor_ikke_adresse: {\n tittel: \"Kvifor har eg ikkje adresse?\",\n avsnitt: [\"\"],\n },\n mer_om_adresser_link: \"Les meir om adresser\",\n betydning_opplysninger_mine_eiendommer_overskrift:\n \"Kva betyr opplysningane som vises om mine eigendommar?\",\n betydning_opplysninger_bygninger: {\n tittel: \"Kva betyr opplysningane som vises om bygningene?\",\n avsnitt: [\" \"],\n },\n kartutsnitt_bygning: {\n tittel: \"Kartutsnitt med bygningen\",\n avsnitt: [\" \"],\n },\n totalt_bruksareal: {\n tittel: \"Totalt bruksareal\",\n avsnitt: [\" \"],\n },\n bygningsnummer: {\n tittel: \"Bygningsnummer\",\n avsnitt: [\" \", \" \"],\n },\n detaljert_bygningstype: {\n tittel: \"Detaljert bygningstype\",\n avsnitt: [\" \"],\n },\n betydning_opplysninger_seksjon_overskrift: \"Kva betyr opplysningane som vises om seksjonen?\",\n seksjonsnummer: {\n tittel: \"Din seksjon (eks. H0303)\",\n avsnitt: [\"\"],\n },\n bruksareal_seksjon: {\n tittel: \"Bruksareal\",\n avsnitt: [\"\"],\n },\n inngang_seksjon: {\n tittel: \"Inngang\",\n avsnitt: [\"\"],\n },\n forklaring_matrikkelenhetstypene: {\n tittel: \"Kva er matrikkelenheitstypane?\",\n avsnitt: [\"\"],\n },\n grunneiendom_forklaring: {\n tittel: \"Grunneigendom\",\n avsnitt: [\"\"],\n },\n festegrunn_forklaring: {\n tittel: \"Festegrunn\",\n avsnitt: [\"\"],\n },\n seksjon_forklaring: {\n tittel: \"Eierseksjon\",\n avsnitt: [\"\"],\n },\n anleggseiendom_forklaring: {\n tittel: \"Anleggseigendom\",\n avsnitt: [\"\"],\n },\n jordsameie_forklaring: {\n tittel: \"Jordsameie\",\n avsnitt: [\"\"],\n },\n annen_type_forklaring: {\n tittel: \"Annen type\",\n avsnitt: [\"\"],\n },\n forklaring_bygningsstatusene: {\n tittel: \"Kva betyr bygningsstatusane som vises om bygningane?\",\n avsnitt: [\"\", \"\", \"\"],\n },\n rammetillatelse: {\n tittel: \"Rammetillatelse\",\n avsnitt: [\"\"],\n },\n igangsettingstillatelse: {\n tittel: \"Igangsettingstillatelse\",\n avsnitt: [\"\"],\n },\n midlertidig_brukstillatelse: {\n tittel: \"Midlertidig brukstillatelse\",\n avsnitt: [\"\"],\n },\n ferdigattest: {\n tittel: \"Ferdigattest\",\n avsnitt: [\"\"],\n },\n tatt_i_bruk: {\n tittel: \"Tatt i bruk\",\n avsnitt: [\"\"],\n },\n melding_registrer_tiltak: {\n tittel: \"Meldingssak registrer tiltak\",\n avsnitt: [\"\"],\n },\n melding_tiltak_fullført: {\n tittel: \"Meldingssak tiltak fullført\",\n avsnitt: [\"\"],\n },\n fritatt_søknadsplikt: {\n tittel: \"Fritatt for søknadsplikt\",\n avsnitt: [\"\"],\n },\n ikke_pliktig_registrert: {\n tittel: \"Ikkje pliktig registrert\",\n avsnitt: [\"\"],\n },\n godkjent_for_rivning_brenning: {\n tittel: \"Bygning godkjent for rivning / brenning\",\n avsnitt: [\"\"],\n },\n },\n}\n\nexport const ofteStilteSpørsmål = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n tab_tittel: \"Om tjenesten\",\n overskrift: \"Om tjenesten\",\n oversikt_over_dine_eiendommer: {\n tittel: \"\",\n avsnitt: [\"\"],\n },\n informasjon_om_eiendommen: {\n tittel: \"Informasjon om eiendommen\",\n avsnitt: [\"For hver eiendom vil du se følgende informasjon:\"],\n },\n },\n \"nn-NO\": {\n tab_tittel: \"Om tenesta\",\n overskrift: \"Om tenesta\",\n oversikt_over_dine_eiendommer: {\n tittel: \"Oversikt over dine eigedommar\",\n avsnitt: [\n \"Min eiendom er ei teneste frå Kartverket der du kan finne registrerte opplysingar om dine eigedommar. Eigedommane som blir viste i løysinga er dei du er registrert som eigar eller festar av i Eigedomsregisteret (matrikkelen). Burettslagandelar og aksjeleilegheiter blir ikkje vist i dagens løysing. Tenesta er under utvikling og utvalet kan bli endra.\",\n ],\n },\n informasjon_om_eiendommen: {\n tittel: \"Informasjon om eigedommane\",\n avsnitt: [\n \"Du får sjå viktige opplysingar om eigedommen, om bygningane som er registrerte på den, og om brukseiningane du eig.\",\n \"Det er ikkje all informasjon fra Eigedomsregisteret (matrikkelen) som finst på Min eiendom. For å sjå meir av informasjonen som ligg i Eigedomsregisteret (matrikkelen) kan du søke opp eigendommen din på seeiendom.kartverket.no, eller ta kontakt med kommunen din for å bestille matrikkelbrev.\",\n ],\n },\n },\n}\n\nexport const omTjenesten = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","const keys = {\n \"nb-NO\": {\n tab_tittel: \"Personvern og sikkerhet\",\n overskrift: \"Personvern og sikkerhet på mineiendom.kartverket.no\",\n personopplysninger: {\n tittel: \"Personopplysninger\",\n avsnitt: [\n \"Vi behandler ikke personopplysninger om deg før du logger inn på Min eiendom.\",\n \"Når du logger inn på løsningen Min eiendom henter vi utvalgte opplysninger fra Eiendomsregisteret (matrikkelen) om eiendommer du er registrert som eier eller fester av. Disse opplysningene kan knyttes til deg som bruker og er derfor å anses som personopplysninger.\",\n \"Personopplysningene dine blir behandlet etter kravene i personopplysningsloven. Opplysningene blir ikke lagret etter at sesjonen din er avsluttet. Du kan avslutte sesjonen ved å logge ut manuelt, ellers skjer automatisk utlogging etter 60 minutter.\",\n ],\n },\n\n mer_om_personvernerklæring_link: \"Les mer om Kartverkets personvernerklæring\",\n innlogging: {\n tittel: \"Innlogging\",\n avsnitt: [\n \"Mineiendom.kartverket.no krever innlogging via ID-porten (MinID, BankID osv.). Når du logger deg inn, er det erklæringen om sikkerhet og informasjonskapsler på ID-porten som gjelder.\",\n ],\n },\n mer_om_IDporten_innlogging_link: \"Les mer om sikkerhet og personvern for ID-porten\",\n },\n \"nn-NO\": {\n tab_tittel: \"Personvern og tryggleik\",\n overskrift: \"Personvern og tryggleik på mineiendom.kartverket.no\",\n personopplysninger: {\n tittel: \"Personopplysningar\",\n avsnitt: [\n \"Vi behandlar ikkje personopplysningar om deg før du loggar inn på Min eiendom.\",\n \"Når du loggar inn på løysinga Min eiendom hentar vi utvalde opplysningar frå Eigedomsregisteret (matrikkelen) om eigedommar du er registrert som eigar eller festar av. Desse opplysningane kan knytast til deg som brukar og er difor å sjå på som personopplysningar.\",\n \"Personopplysningane dine blir behandla etter krava i personopplysningsloven. Opplysningane dine som er nødvendige for samhandling med ID-porten blir ikkje lagra etter at sesjonen din er avslutta. Du kan avslutte sesjonen ved å logge ut manuelt, ellers skjer automatisk utlogging etter 60 minuttar.\",\n \"Dersom du har godteke bruk av valfrie informasjonskapslar, blir det samla inn data om eigarskap tilknytt dine matrikkeleiningar og bygningar. Dette blir brukt til å forbetre tenesta. Du kan når som helst trekkje tilbake samtykket ditt ved å endre innstillingane for informasjonskapslar.\",\n \"Som hovudregel har du rett til innsyn, sletting og endring i data registrert om deg. Slike førespurnader kan rettast til personvernombod i Kartverket, Laila Aslesen, personvernombudet@kartverket.no.\",\n ],\n },\n mer_om_personvernerklæring_link: \"Les meir om Kartverkets personvernerklæring\",\n innlogging: {\n tittel: \"Innlogging\",\n avsnitt: [\n \"Mineiendom.kartverket.no krev innlogging via ID-porten (MinID, BankID osv.). Når du loggar deg inn, er det erklæringa om tryggleik og informasjonskapslar på ID-porten som gjeld.\",\n ],\n },\n mer_om_IDporten_innlogging_link: \"Les meir om tryggleik og personvern for ID-porten\",\n },\n}\n\nexport const personvernOgSikkerhet = {\n \"nb-NO\": keys[\"nb-NO\"],\n \"nn-NO\": keys[\"nn-NO\"],\n}\n","import { cookiebanner } from \"./cookiebanner\"\nimport { egenregistrering } from \"./egenregistrering/egenregistrering\"\nimport { hjelpetekster } from \"./egenregistrering/hjelpetekster\"\nimport { skjemafooter } from \"./egenregistrering/skjemafooter\"\nimport { skjemaoverskrifter } from \"./egenregistrering/skjemaoverskrifter\"\nimport { errormeldinger } from \"./errorMeldinger\"\nimport { footer } from \"./footer\"\nimport { navbar } from \"./navbar\"\nimport { nøkkelbegreper } from \"./nøkkelbegreper\"\nimport { bruksenhetskort } from \"./pages/bruksenhetskort\"\nimport { bygningskort } from \"./pages/bygningskort\"\nimport { cookies } from \"./pages/cookie-erklaering\"\nimport { datafelter } from \"./pages/datafelter\"\nimport { detaljertInnsyn } from \"./pages/detaljertInnsyn\"\nimport { egenskaperVedBygning } from \"./pages/egenskaperVedBygning\"\nimport { eiendomskort } from \"./pages/eiendomskort\"\nimport { hjelpOgStøtte } from \"./pages/hjelpOgStøtte\"\nimport { landingsside } from \"./pages/landingsside\"\nimport { ofteStilteSpørsmål } from \"./pages/ofteStilteSpørsmål\"\nimport { omTjenesten } from \"./pages/omTjenesten\"\nimport { personvernOgSikkerhet } from \"./pages/personvernOgSikkerhet\"\n\nconst bokmål = {\n landingsside: landingsside[\"nb-NO\"],\n hjelpOgStøtte: hjelpOgStøtte[\"nb-NO\"],\n ofteStilteSpørsmål: ofteStilteSpørsmål[\"nb-NO\"],\n omTjenesten: omTjenesten[\"nb-NO\"],\n footer: footer[\"nb-NO\"],\n navbar: navbar[\"nb-NO\"],\n nøkkelbegreper: nøkkelbegreper[\"nb-NO\"],\n bygningskort: bygningskort[\"nb-NO\"],\n eiendomskort: eiendomskort[\"nb-NO\"],\n bruksenhetskort: bruksenhetskort[\"nb-NO\"],\n detaljertInnsyn: detaljertInnsyn[\"nb-NO\"],\n personvernOgSikkerhet: personvernOgSikkerhet[\"nb-NO\"],\n errormeldinger: errormeldinger[\"nb-NO\"],\n egenskaperVedBygning: egenskaperVedBygning[\"nb-NO\"],\n datafelter: datafelter[\"nb-NO\"],\n egenregistrering: egenregistrering[\"nb-NO\"],\n cookies: cookies[\"nb-NO\"],\n cookiebanner: cookiebanner[\"nb-NO\"],\n skjemaoverskrifter: skjemaoverskrifter[\"nb-NO\"],\n hjelpetekster: hjelpetekster[\"nb-NO\"],\n skjemafooter: skjemafooter[\"nb-NO\"],\n} as const\nconst nynorsk = {\n landingsside: landingsside[\"nn-NO\"],\n skjemafooter: skjemafooter[\"nb-NO\"],\n hjelpOgStøtte: hjelpOgStøtte[\"nn-NO\"],\n ofteStilteSpørsmål: ofteStilteSpørsmål[\"nn-NO\"],\n omTjenesten: omTjenesten[\"nn-NO\"],\n footer: footer[\"nn-NO\"],\n navbar: navbar[\"nn-NO\"],\n nøkkelbegreper: nøkkelbegreper[\"nn-NO\"],\n bygningskort: bygningskort[\"nn-NO\"],\n eiendomskort: eiendomskort[\"nn-NO\"],\n bruksenhetskort: bruksenhetskort[\"nn-NO\"],\n detaljertInnsyn: detaljertInnsyn[\"nn-NO\"],\n personvernOgSikkerhet: personvernOgSikkerhet[\"nn-NO\"],\n errormeldinger: errormeldinger[\"nn-NO\"],\n egenskaperVedBygning: egenskaperVedBygning[\"nn-NO\"],\n datafelter: datafelter[\"nn-NO\"],\n egenregistrering: egenregistrering[\"nn-NO\"],\n cookies: cookies[\"nn-NO\"],\n cookiebanner: cookiebanner[\"nn-NO\"],\n skjemaoverskrifter: skjemaoverskrifter[\"nn-NO\"],\n hjelpetekster: hjelpetekster[\"nn-NO\"],\n} as const\n\nexport const resources = {\n \"nb-NO\": bokmål,\n \"nn-NO\": nynorsk,\n} as const\n\nexport type TittelAvsnitt = {\n tittel: string\n avsnitt: string[]\n}\n","import i18n from \"i18next\"\nimport { initReactI18next } from \"react-i18next\"\nimport { Matrikkelnummer } from \"./features/eiendom/eiendomsoversikt/types/Eiendom\"\nimport { formaterMatrikkelnummer } from \"./features/eiendom/eiendomsoversikt/utils/eiendomUtils\"\nimport { resources } from \"./features/localization/translations\"\n\ni18n.use(initReactI18next).init({\n react: {\n transKeepBasicHtmlNodesFor: [\"br\", \"strong\", \"i\", \"li\", \"ul\"],\n },\n resources: resources,\n lng: \"nb-NO\",\n fallbackLng: \"nb-NO\",\n interpolation: {\n escapeValue: false,\n },\n})\ni18n.services.formatter?.addCached(\"matrikkelnummer\", () => (value: Matrikkelnummer) => {\n return formaterMatrikkelnummer(value)\n})\n","import { KvibProvider } from \"@kvib/react\"\nimport { PostHogProvider } from \"posthog-js/react\"\nimport { createRoot } from \"react-dom/client\"\nimport App from \"./App\"\nimport { getEnv } from \"./environments\"\nimport \"./faro-config\"\nimport \"./i18next-config\"\nimport { konverterFraMinutterTilMillisekunder } from \"./utils/konverterFraMinutterTilMillisekunder\"\n\nconst root = createRoot(document.getElementById(\"root\") as HTMLDivElement)\n\nconst env = getEnv()\n\nroot.render(\n {\n // Masker API-endepunkter som kan inneholde matrikkelenhetsId i URLen\n const regex = /\\/\\d+$/\n\n if (regex.test(req.name)) {\n req.name = req.name.replace(regex, \"/*\")\n\n return req\n }\n\n // Filtrer ut faro-relaterte requests, da disse er uinteressante i session recording\n if (req.name.includes(\"faro\")) {\n return null\n }\n\n return req\n },\n },\n }}\n >\n \n \n \n ,\n)\n"],"names":["apiRoute","apiRouteLogin","apiRouteLogout","getEnv","hostname","ApiError","type","systemErrorMessage","userErrorMessage","__publicField","eiendomRouter","matrikkelenhetId","res","body","isBortfestetEiendom","data","isEidEiendom","isNummerertBruksenhet","isUnummerertBruksenhet","hentBygningstype","vannforsyningkodeMapping","eiendommerRouter","eiendom","index","kodelisterMatrikkelRouter","kodelisterMatrikkel","kodelisterBygningRouter","kodelisterBygning","egenregistreringRouter","url","resolve","reject","response","kanEgenregistrere","error","dto","egenregistrering","key","bruksenhetId","errorBody","bygningId","interaktivtKartRouter","matrikkelnummer","bygningsmarkører","brukerRouter","api","initialConsent","consent","hentDetaljerteEiendommer","detaljerteEiendommer","reducer","state","action","posthog","payload","eiendommer","b","err","ConsentContext","createContext","useScreenView","system","useKvibContext","isDesktop","useMediaQuery","getBreakpointCondition","isTablet","isMobile","FontSizeValues","FontWeightValues","useFontStyles","screenView","useGetCurrentScreenview","fontSizeType","fontWeightType","EksternLenke","children","tilAdresse","preventTracking","props","getFontSize","getFontWeight","usePostHog","fontSize","fontWeight","jsx","Link","Section","horizontalPadding","Container","Flex","Box","TilpassetFooter","t","useTranslation","linkStyle","ThinLink","jsxs","Logo","Driftsmelding","isOpen","setIsOpen","useState","visDriftsmelding","handleClose","Alert","AlertContent","AlertDescription","CloseButton","nedetid","today","useHandleLogout","queryClient","useQueryClient","useMutation","resText","useBruker","brukerQuery","useQuery","useIsInnlogget","Brødtekst","litenVariant","Text","freezeScroll","top","unfreezeScroll","Brukerinfo","bruker","isPending","isSuccess","isError","Icon","SkeletonBrukerinfo","navn","Skeleton","NavBar","navigate","useNavigate","logOut","menuIsOpen","setMenuIsOpen","isInnloggetData","isInnlogget","useEffect","handleNavigate","path","LogoMedLenke","DesktopNavBar","Button","MobileNavBar","MobileMenu","VStack","MenuButton","icon","label","onClick","NavBreadcrumb","location","useLocation","matches","useMatches","loggedIn","breadcrumbFontSize","activeRoutes","match","breadcrumb","Breadcrumb","route","BreadcrumbItem","BreadcrumbCurrentLink","BreadcrumbLink","NavLink","Root","visBreadcrumb","getSidetittel","useCallback","getBakgrunnsfarge","Fragment","SkipNavContent","Outlet","ScrollRestoration","StackMedGap","Stack","Overskrift","variant","Heading","InfoCard","cardheader","Card","CardHeader","CardBody","CookieTabell","cookietabell","Table","TableHeader","TableRow","TableColumnHeader","header","TableBody","cookie","TableCell","Cookieserklæring","dispatch","useContext","Center","tekst","InformasjonskapslerOversikt","setShow","isSwitchOn","setIsSwitchOn","Separator","Switch","CookieBanner","show","handleAccept","faro","initializeFaro","getWebInstrumentations","ReactIntegration","createReactRouterV6DataOptions","matchRoutes","getAuthUrlAndRedirect","i18n","authUrl","useHandleLogin","innloggingFeiletToast","useInnloggingFeiletToast","toaster","ErrorDisplay","questionmarkMan","InfotekstHvorforDukkerIkkeEiendommenMinOpp","skalViseFnrSomÅrsak","avsnitt","List","ListItem","FinnerIkkeEiendommerErrorBox","tittel","FinnerIkkeEiendommer","brukerIkkeFunnet","handleLogout","tekster","Image","manglerEiendommerIllustrasjon","ErrorHandler","apiError","iconSize","iconColor","handleLogin","routerError","useRouteError","reset","useQueryErrorResetBoundary","getErrorTitle","errorType","finnerIngenPathsSomMatcher","bygning","seksjon","teig","NøstetAccordion","items","Accordion","item","AccordionItem","AccordionItemTrigger","AccordionIcon","AccordionItemContent","ForklaringAccordion","datafelter_accordion","datafelt","Trans","_a","lenke","status","matrikkelenhetstype","arealmerknad","ForklaringAccordionWrapper","ikon","translations","Datafelter","eiendomsforklaringer","bygningsforklaringer","bruksenhetforklaringer","konverterFraMinutterTilMillisekunder","minutter","useEiendommer","useDetaljerteEiendommer","eiendommerIsPending","eiendommerError","detaljerteEiendommerQueries","useQueries","q","eiendomIndexMap","detaljerteEiendommerMedIndex","_b","bruksenhet","formaterStorForbokstav","ord","formaterMedKommaOgOgKunStoreBokstaver","listeMedTekster","førsteElement","rest","alleUnntattSisteElement","sisteElement","formaterMedKommaOgOg","text","formaterAdresseForEiendom","adresser","matrikkelenhetType","adressedeler","_c","grupperteVegnavn","grupperVegnavn","formattedVegadresse","formaterFlereVegadresser","matrikkeladresse","formattedMatrikkeladresse","formaterMatrikkeladresse","formaterFlereVegadresserForBygning","vegadresser","hentAdresseForBruksenhet","adresse","grupperteFormatterteAdresser","acc","vegnavn","vegnummerListe","sorterVegadresser","vegadresse","utledBruksenhetsnummerForAdresse","bruksenhetsnumre","bruksenhetnumreUtenUnummererte","formaterBruksenhetsnumre","numre","allExceptLast","last","sorterteBruksenhetsnumre","a","matrikkelenhetadresse","sorterVegadressePåBokstav","getMatrikkelenhetstype","formaterMatrikkelnummer","matrikkelnummerBase","formaterMatrikkelnummerMedSkråstrek","bygningstypeIkonMapper","ikonerForBygning","verboseMatrikkelnummer","kommunenummer","gardsnummer","bruksnummer","festenummer","seksjonsnummer","kommunenummerTekst","gardsnummerTekst","bruksnummerTekst","festenummerTekst","seksjonsnummerTekst","formaterEtasjetekst","bruksenhetsBokstav","etasjeplankodeverdi","transformMapping","nummer","bruksenhetBokstav","formaterteEtasjeverdierMapping","etasjeplankodeVerdi","etasjeplankodeMapping","sorterEtterPlankodeDeretterEtasjeummer","etasjer","rangering","rankDiff","useEiendom","eiendomsIndex","eiendommerQuery","params","useParams","bruktEiendomsIndex","e","useCurrentBygning","currentBygningId","currentBygning","useMemo","dineBruksenheterIBygning","bruksenheterIBygning","nummererteBruksenheter","unummererteBruksenheter","useEgenregistreringer","bygningIds","id","avløpMapping","energikildeMapping","hentUtfraKodeliste","kode","kodeliste","kodeMatch","kodelisteEntry","Vannforsyningstype","Avløpstype","Energikildetype","Oppvarmingstype","VannforsyningKeysEnum","Kildekode","AvløpKeysEnum","OppvarmingKeysEnum","EnergikildeKeysEnum","ikkeRegistrertMatrikkelverdi","visMatrikkelregistrertVerdi","kodelister","totaltBruksareal","energikilder","energikilde","oppvarmingstyper","ikkeRegistrertVerdi","hentEgenregistrertVerdi","hentTotaltBruksareal","_d","_e","oppvarming","_f","sum","etasjeregistrering","hentBruksarealForEtasjeregistrering","etasjeRegistrering","etasjebetegnelse","etasje","hentEtasjering","bruksarealIEtasje","etasjenummer","etasjeplanKey","etasjeplan","felterForEgenregistrering","hentKildepresentasjonsnavn","kildemateriale","k","hentProgresjonsbrøkEgenregistrering","egenreg","accumulator","felt","ProgresjonsbrøkForEgenregistrering","teller","nevner","ProgressCircle","ProgressCircleRing","BruksenhetForEgenregistrering","adressevisning","bygningstype","EiendommerMedBruksenheterForEgenregistreringListe","eiendommerMedGyldigeBruksenheter","Spinner","InfoOmEgenregistrering","kommuner","mlForTekst","Egenregistreringsoversikt","manglerEiendomForEgenregistrering","useTeigpolygoner","hentLenkeTilNorgeskart","koordinat","NorgeskartKnapp","handleNavigateToNorgeskart","KART_EXTENT","projeksjon","Projection","kartpadding","ResetZoomControl","Control","extent","resetZoomKnapp","element","map","view","hentBboxForPolygoner","polygoner","flat","boundingExtent","polygonTilGeoJSON","polygon","ring","polygonstil","Style","Stroke","Fill","InteraktivtKart","teigpolygoner","overlays","p","viewConfig","Map","TileLayer","XYZ","View","defaultInteractions","defaultControls","overlay","source","VectorSource","GeoJSON","VectorLayer","FantIkkeKartutstnittBox","eiendomSvg","KartutsnittForDetaljertEiendom","AdresseOverskrift","sorterPåBygningstype","bygninger","bygningAria","getVegadresserPåBygning","bruksenheter","formaterBruksareal","bruksareal","bruksarealFloat","AccordionItemBygningskort","accordionTittel","value","borderColor","Spacer","useKodelister","OverskriftForEiendomsdetaljer","EgenskaperVedBygning","isLoading","bygningsegenskaper","etasjeplankodeMap","etasjeFraKodeliste","etasjetekst","etasjeDescriptions","description","count","lastDescription","antallEtasjer","og","kilde","EgenskaperFelter","attributt","verdier","formattedVerdier","iconWrapper","PopoverInfo","PopoverContent","PopoverArrow","PopoverCloseTrigger","PopoverBody","VerdiMedForklaring","forklaring","posthogName","elementRef","useRef","Popover","PopoverTrigger","BruksenhetFlexItem","BruksenhetBoks","helpetekstBruksenhetstype","bruksarealForEnBruksenhetForklaring","etasjeForInngangHjelpetekst","UnummerertBruksenhetBoks","handleClick","BruksenhetBoksWrapper","NøkkelinfoOmAlleBruksenheterIBygning","byggId","sortertSåBruksenheterIHovedetasjeKommerFørst","aIsH","bIsH","alleBruksenheter","gyldigeBygningsstatuser","hentGjeldendeBygningsstatus","bygningsstatusHistorikk","latestHistorikk","år","mappedStatus","hentAlleBygningsstatuser","statusHistorikk","PopoverikonMedTooltip","tooltipLabel","tooltipAriaLabel","iconButtonAriaLabel","Tooltip","IconButton","Bygningsstatus","bygningsstatuser","nåværendeStatus","tidligereStatuser","popoverContent","PopoverHeader","FelterIBygningskort","OmBygningen","identifikatorForBygning","hentRiktigVisningForAttributt","BygningskortAccordion","bygningsId","erEierseksjon","totaltAntallBruksenheter","componentsOrder","BygningstypeOgVegadresseOverskrift","erSeksjon","bruksenhetsnummer","title","Bygningskort","vegadresserPåBygning","pin","KartutsnittMedBygningsmarkør","mapRef","kart","bygningsmarkør","Feature","Point","markørStyle","isMapInitialized","setIsMapInitialized","BygningskortMedKartutsnitt","Grid","AlleBygningskortMedKartutsnittStack","bygningerPåEiendom","Bygningsdetaljer","FeltverdiForEiendomsdetaljer","fieldValue","ariaLabel","className","BortfestetDetalj","DinRettighet","eierforholdtype","eiertype","eierforholdkode","Eierandeldetalj","eierandel","eierandelFerdigFetched","ÅpneGrunnboksutskriftButton","seEiendomUrl","handleNavigateToSeEiendom","EierforholdDetalj","eierforhold","SimpleGrid","SeeiendomButton","FestegrunnerPåEiendomAccordion","festegrunner","sortedFestegrunner","FestegrunnInfo","antallFestegrunnerPåEiendommen","festegrunn","FlereOpplysninger","KommuneOverskrift","kommunenavn","arealmerknaderMapper","Arealmerknad","arealmerknader","unikeArealmerknaderForEiendomsareal","merknad","TeigMedFlereMatrikkelenheterDetalj","Merknader","teigdetaljer","AntallTeigerDetalj","antallTeiger","EiendomsarealDetalj","areal","forklaringKey","overskriftKey","ikkeRegistrertKey","arealVerdi","Matrikkelenhetstypedetalj","matrikkelenhetstypeTranslationString","matrikkelenhetstypeAriaLabel","Matrikkelnummerdetalj","matrikkelnummerId","NøkkelinfoOmEiendommen","StackedSection","DetaljertEiendom","isEiendommerPending","commonPaddingForSection","eiendomErBortfestet","skalViseBygningerPåEiendom","skalViseFestegrunnerPåEiendom","skalViseTeigInfo","HStack","useEgenregistreringIsEnabled","VarselOmEgenregistrering","egenregistreringIsEnabled","detaljertEiendommer","harEiendommerMedBruksenheterForEgenregistrering","_","detaljertEiendom","KartutsnittForEiendomskort","polygonExtent","geoJsonOverlays","eiendomPlaceholder","MatrikkelnummerInfoPopover","MatrikkeltypePopover","EiendomskortContainer","skalVisesSomKolonne","buttonProps","Children","kartutsnitt","Eiendomskort","åpneDetaljer","HvorforSerJegIkkeEiendomCard","skalVisesSomRad","visLogo","EiendomskortListe","eiendommerLengde","useBreakpointValue","flexDir","imgRef","GridItem","MineEiendommer","paddingTopBottom","useEgenregistreringBruksenhet","hentIkonForFelt","preprocessOptionalToUndefined","schema","z","input","validateByggeår","validateEtasjeRegistrering","validateBruksareal","hasUndefined","kildematerialeSchema","byggeårSchema","bruksarealSchema","curr","preprocessEmptyArrayToUndefined","val","oppvarmingSchema","energikilderSchema","vannforsyningSchema","avløpSchema","useOpprettEgenregistrering","EgenregistreringKnapp","CircularIcon","IkonOgFeltLabel","useKodelisterBygning","EgenregistreringOppsummering","formdata","kildedata","DialogBody","EgenregistreringFooter","step","setStep","formId","isSubmitting","triggerValidation","DialogFooter","isValid","HjelpetekstForFelt","colorSceheme","InvalidInputAlert","i","Radioknapper","beskrivelse","control","name","valgmuligheter","highlightValgtVerdi","Controller","field","RadioGroup","valgmulighet","Radio","RegistrerAvløp","handleSubmit","egenregistreringFraBruksenhet","form","useForm","zodResolver","onSubmit","Field","InputfeltTall","register","InputGroup","NumberInputRoot","NumberInputField","RegistrerByggeår","byggeårForm","CheckboxForEgenregistrering","feltKey","Flervalg","options","optionMedEksempeltekst","formlabelTekst","hentOptionMedEksempeltekst","hjelpetekst","CheckboxGroup","RegistrerEnergikilder","RegistrerOppvarming","RegistrerVannforsyning","EtasjeRegistrering","bruksarealForm","valueAsNumber","BruksarealForm","eidEiendom","RegistrerBruksareal","EgenregistreringDialog","egenregistreringForBruksenhet","sendEgenregistrering","getFieldContent","tekstForEgenregistreringsknapp","egenregistrertVerdi","DialogRoot","DialogBackdrop","DialogTrigger","DialogContent","DialogHeader","DialogCloseTrigger","useMetadata","egenregistreringBruksenhet","Registreringsinfo","metadata","registrertAv","registreringstidspunktFormatted","format","EgenregistrertVerdi","registrering","useBruksenhet","paramBruksenhetid","brukRiktigBruksenhetsId","bruksenhetIdNumber","MatrikkelVerdi","EgenregistreringRad","EgenregistrerteOpplysninger","Egenregistrering","eiendomLoading","egenregLoading","husMedForstorrelsesGlass","questionmarkWoman","InfoCardEksternLenke","oversettelse","HjelpOgStøtte","leterEtterAnnenEiendomOversettelse","kontaktKundesenteretOversettelse","bakgrunnsfarge","feilOgManglerForklaringer","ReactRouterLink","OversiktOverDineEiendommer","nynorsk","FantDuIkkeSvar","OmTjenesten","PersonvernOgSikkerhetInfoside","Landingsside","Hus","ProtectedRoute","useMatch","Routes","Route","reactBrowserRouter","createBrowserRouter","createRoutesFromElements","browserRouter","withFaroRouterInstrumentation","QueryClient","App","useReducer","SkipNavLink","Toaster","QueryClientProvider","RouterProvider","ReactQueryDevtools","cookiebanner","keys","hjelpetekster","skjemafooter","skjemaoverskrifter","errormeldinger","footer","navbar","nøkkelbegreper","bruksenhetskort","bygningskort","cookies","datafelter","detaljertInnsyn","egenskaperVedBygning","eiendomskort","hjelpOgStøtte","landingsside","ofteStilteSpørsmål","omTjenesten","personvernOgSikkerhet","bokmål","resources","initReactI18next","root","createRoot","env","PostHogProvider","req","regex","KvibProvider"],"mappings":"2kEAAO,MAAMA,EAAW,OAEXC,GAAgB,GAAGD,CAAQ,cAE3BE,GAAiB,GAAGF,CAAQ,eAIlC,SAASG,IAA0B,CAClC,MAAAC,EAAW,OAAO,SAAS,SAC7B,GAAAA,IAAa,YAAoB,MAAA,YACrC,GAAIA,EAAS,SAAS,qCAAqC,EAAU,MAAA,MACrE,GAAIA,EAAS,SAAS,yCAAyC,EAAU,MAAA,OACzE,GAAIA,EAAS,SAAS,0BAA0B,EAAU,MAAA,OAElD,QAAA,KAAK,sBAAsBA,CAAQ,iCAAiC,CAE9E,CCdO,MAAMC,UAAiB,KAAM,CAGlC,YAAY,CAAE,KAAAC,EAAM,mBAAAC,EAAoB,iBAAAC,GAAmC,CACzE,MAAMD,CAAkB,EAH1BE,GAAA,aACAA,GAAA,yBAGE,KAAK,KAAOH,EACZ,KAAK,iBAAmBE,CAAA,CAE5B,CCAO,MAAME,GAAgB,CAC3B,YAAa,MAAOC,GAA6B,CAC/C,MAAMC,EAAM,MAAM,MAAM,GAAGZ,CAAQ,eAAeW,CAAgB,EAAE,EAEhE,GAAA,CAACC,EAAI,GAAI,CACL,MAAAC,EAAO,MAAMD,EAAI,KAAK,EACtB,MAAA,IAAIP,EAASQ,CAAI,CAAA,CAIlB,OAD4C,MAAMD,EAAI,KAAK,CAC3D,CAEX,EAEO,SAASE,GACdC,EACoC,CACpC,OAAOA,EAAK,OAAS,YACvB,CAEa,MAAAC,GAAgBD,GACpBA,EAAK,OAAS,MAGVE,EAAyBF,GAC7BA,EAAK,OAAS,YAGVG,GAA0BH,GAC9BA,EAAK,OAAS,aCxCVI,GAAmB,CAC9B,EAAK,QACL,EAAK,2BACL,EAAK,gCACL,EAAK,wCACL,EAAK,gCACL,EAAK,+BACL,EAAK,eACL,EAAK,iCACL,GAAM,WACN,GAAM,eACN,GAAM,mCACN,GAAM,kBACN,GAAM,2BACN,GAAM,eACN,GAAM,6BACN,GAAM,0BACN,GAAM,qBACN,GAAM,kBACN,GAAM,0BACN,GAAM,eACN,GAAM,+BACN,GAAM,gBACN,GAAM,qBACN,GAAM,gCACN,GAAM,4BACN,GAAM,4BACN,GAAM,gCACN,GAAM,gBACN,GAAM,0BACN,GAAM,oBACN,GAAM,eACN,GAAM,kCACN,GAAM,gCACN,GAAM,iBACN,GAAM,YACN,GAAM,oCACN,GAAM,UACN,GAAM,WACN,GAAM,qBACN,GAAM,kBACN,GAAM,oBACN,GAAM,WACN,GAAM,oBACN,IAAO,WACP,IAAO,oDACP,IAAO,aACP,IAAO,6BACP,IAAO,+BACP,IAAO,yCACP,IAAO,2CACP,IAAO,WACP,IAAO,2BACP,IAAO,cACP,IAAO,yCACP,IAAO,6CACP,IAAO,kDACP,IAAO,wDACP,IAAO,0CACP,IAAO,+CACP,IAAO,kDACP,IAAO,uBACP,IAAO,6BACP,IAAO,iCACP,IAAO,0CACP,IAAO,wCACP,IAAO,uCACP,IAAO,4BACP,IAAO,+BACP,IAAO,2CACP,IAAO,kDACP,IAAO,uBACP,IAAO,eACP,IAAO,sDACP,IAAO,iBACP,IAAO,kBACP,IAAO,0BACP,IAAO,gDACP,IAAO,wBACP,IAAO,6BACP,IAAO,qCACP,IAAO,gCACP,IAAO,YACP,IAAO,uBACP,IAAO,cACP,IAAO,qBACP,IACE,4FACF,IAAO,WACP,IAAO,2DACP,IAAO,8BACP,IAAO,kCACP,IAAO,yBACP,IAAO,4CACP,IAAO,uBACP,IAAO,eACP,IAAO,sBACP,IAAO,uBACP,IAAO,gBACP,IAAO,gBACP,IAAO,2BACP,IAAO,4BACP,IAAO,iDACP,IAAO,6BACP,IAAO,eACP,IAAO,eACP,IAAO,yCACP,IAAO,4BACP,IAAO,gBACP,IAAO,+BACP,IAAO,wBACP,IAAO,sCACP,IAAO,gBACP,IAAO,gBACP,IAAO,sBACP,IAAO,qBACP,IAAO,8CACP,IAAO,cACP,IAAO,2BACP,IAAO,gCACP,IAAO,iCACP,IAAO,iCACP,IAAO,4BACP,IAAO,0BACP,IAAO,WACP,IAAO,YACP,IAAO,aACP,IAAO,eACP,IAAO,mCACP,IAAO,qBACP,IAAO,qBACP,IAAO,uFACP,IAAO,qBACP,IAAO,sDACP,IAAO,uBACP,IAAO,sBACP,IAAO,6BACP,IAAO,qCACP,IAAO,cACP,IAAO,SACP,IAAO,aACP,IAAO,8BACP,IAAO,cACP,IAAO,uBACP,IAAO,+CACP,IAAO,yBA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"}