+
+ ({
+ active: activeTab === index,
+ label: `${periode.periode.fom && formatDate(periode.periode.fom)} - ${periode.periode.tom && formatDate(periode.periode.tom)}`,
+ }))}
+ onClick={setActiveTab}
+ theme="arrow"
+ heading="Perioder"
+ />
+
+
+
+ {featureToggles?.['OMSORGEN_FOR_PERIODISERT'] && (
+
+ )}
+
+ {!featureToggles?.['OMSORGEN_FOR_PERIODISERT'] && (
+
+ )}
+
+
+ );
+};
+
+export default VilkarresultatMedOverstyringProsessIndex;
diff --git a/packages/v2/gui/src/prosess/vilkar-overstyring/components-periodisert/FormState.ts b/packages/v2/gui/src/prosess/vilkar-overstyring/components-periodisert/FormState.ts
new file mode 100644
index 0000000000..79b195d276
--- /dev/null
+++ b/packages/v2/gui/src/prosess/vilkar-overstyring/components-periodisert/FormState.ts
@@ -0,0 +1,11 @@
+import type { VilkarResultPickerFormState } from './VilkarResultPickerPeriodisertRHF';
+
+export type VilkarBegrunnelseFormState = {
+ begrunnelse: string;
+};
+
+export type VilkarresultatMedBegrunnelseState = VilkarBegrunnelseFormState & VilkarResultPickerFormState;
+
+export type VilkarresultatMedOverstyringFormState = VilkarresultatMedBegrunnelseState & {
+ isOverstyrt: boolean;
+};
diff --git a/packages/v2/gui/src/prosess/vilkar-overstyring/components-periodisert/VilkarResultPickerPeriodisertRHF.tsx b/packages/v2/gui/src/prosess/vilkar-overstyring/components-periodisert/VilkarResultPickerPeriodisertRHF.tsx
new file mode 100644
index 0000000000..ffd7e2488d
--- /dev/null
+++ b/packages/v2/gui/src/prosess/vilkar-overstyring/components-periodisert/VilkarResultPickerPeriodisertRHF.tsx
@@ -0,0 +1,273 @@
+import type { AksjonspunktDto, VilkårPeriodeDto } from '@k9-sak-web/backend/k9sak/generated';
+import { vilkårStatusPeriodisert } from '@k9-sak-web/backend/k9sak/kodeverk/behandling/VilkårStatusPeriodisert.js';
+import { useKodeverkContext } from '@k9-sak-web/gui/kodeverk/index.js';
+import { type KodeverkMedUndertype, KodeverkType, type Periode } from '@k9-sak-web/lib/kodeverk/types.js';
+import { Alert, BodyShort, Box } from '@navikt/ds-react';
+import { Datepicker, RadioGroupPanel, SelectField } from '@navikt/ft-form-hooks';
+import { hasValidDate, required } from '@navikt/ft-form-validators';
+import { isAfter, isBefore, parse } from 'date-fns';
+import type { FunctionComponent, ReactNode } from 'react';
+import { isAksjonspunktOpen } from '../../../utils/aksjonspunktUtils';
+
+export type VilkarResultPickerFormState = {
+ erVilkarOk: string;
+ periodeVilkarStatus: boolean;
+ avslagCode?: string;
+ avslagDato?: string;
+ valgtPeriodeFom: string;
+ valgtPeriodeTom: string;
+};
+
+type TransformedValues = {
+ erVilkarOk: boolean;
+ periode: Periode | null | undefined;
+ avslagskode?: string;
+ avslagDato?: string;
+};
+
+interface OwnProps {
+ erVilkarOk?: string;
+ periodeVilkarStatus?: boolean;
+ customVilkarIkkeOppfyltText: string | ReactNode;
+ customVilkarOppfyltText: string | ReactNode;
+ readOnly: boolean;
+ erMedlemskapsPanel?: boolean;
+ visPeriodisering: boolean;
+ fieldNamePrefix?: string;
+ periodeFom: string;
+ periodeTom: string;
+ valgtPeriodeFom: string;
+ valgtPeriodeTom: string;
+ vilkarType: string;
+}
+
+interface StaticFunctions {
+ transformValues: (values: VilkarResultPickerFormState, periodeFom?: string, periodeTom?: string) => TransformedValues;
+ buildInitialValues: (
+ aksjonspunkter: AksjonspunktDto[],
+ status: string,
+ periode: VilkårPeriodeDto,
+ avslagKode?: string,
+ ) => VilkarResultPickerFormState;
+}
+
+/**
+ * VilkarResultPicker
+ *
+ * Presentasjonskomponent. Lar NAV-ansatt velge om vilkåret skal oppfylles eller avvises.
+ */
+const VilkarResultPickerPeriodisertRHF: FunctionComponent