From 15ac054c6ed080b83f1ac069bc4440f999195f0c Mon Sep 17 00:00:00 2001 From: Hallvard Andreas Stark <57254397+hallvardastark@users.noreply.github.com> Date: Thu, 7 Dec 2023 15:34:12 +0100 Subject: [PATCH 1/9] Bytter ut gammel komponent med problemer til ny (#5402) --- .../TilbakekrevingVedtakForm.spec.tsx | 2 +- ...bakekrevingEditerVedtaksbrevPanel.spec.tsx | 30 +++---- .../TilbakekrevingEditerVedtaksbrevPanel.tsx | 78 ++++++++++--------- ...kekrevingEditerVedtaksbrevPanel.module.css | 10 +-- 4 files changed, 56 insertions(+), 64 deletions(-) diff --git a/packages/prosess-vedtak-tilbakekreving/src/components/TilbakekrevingVedtakForm.spec.tsx b/packages/prosess-vedtak-tilbakekreving/src/components/TilbakekrevingVedtakForm.spec.tsx index e470076ce5..a8e981a584 100644 --- a/packages/prosess-vedtak-tilbakekreving/src/components/TilbakekrevingVedtakForm.spec.tsx +++ b/packages/prosess-vedtak-tilbakekreving/src/components/TilbakekrevingVedtakForm.spec.tsx @@ -41,7 +41,7 @@ test(' skal vise tekstfelt for begrunnelse og godkjenn { messages }, ); - expect(screen.getByRole('heading')).toHaveTextContent('Vedtaksbrev'); + expect(screen.getByRole('heading', { level: 2 })).toHaveTextContent('Vedtaksbrev'); expect(screen.getByText('Til godkjenning')).not.toBeDisabled(); expect(screen.getByRole('link')).toHaveTextContent('Forhåndsvis brev'); }); diff --git a/packages/prosess-vedtak-tilbakekreving/src/components/brev/TilbakekrevingEditerVedtaksbrevPanel.spec.tsx b/packages/prosess-vedtak-tilbakekreving/src/components/brev/TilbakekrevingEditerVedtaksbrevPanel.spec.tsx index 46fbed4bf4..1897fcedae 100644 --- a/packages/prosess-vedtak-tilbakekreving/src/components/brev/TilbakekrevingEditerVedtaksbrevPanel.spec.tsx +++ b/packages/prosess-vedtak-tilbakekreving/src/components/brev/TilbakekrevingEditerVedtaksbrevPanel.spec.tsx @@ -1,7 +1,6 @@ import React from 'react'; -import { shallow } from 'enzyme'; -import Ekspanderbartpanel from 'nav-frontend-ekspanderbartpanel'; - +import { renderWithIntlAndReduxForm } from '@fpsak-frontend/utils-test/src/test-utils'; +import { screen } from '@testing-library/react'; import TilbakekrevingEditerVedtaksbrevPanel from './TilbakekrevingEditerVedtaksbrevPanel'; describe('', () => { @@ -74,7 +73,7 @@ describe('', () => { ]; it('skal vise tekstfelt for begrunnelse og godkjenningsknapp', () => { - const wrapper = shallow( + renderWithIntlAndReduxForm( ', () => { />, ); - const paneler = wrapper.find(Ekspanderbartpanel); - expect(paneler).toHaveLength(3); - expect(paneler.first().prop('tittel')).toEqual('Du må betale tilbake foreldrepenger'); - expect(paneler.first().prop('apen')).toBe(false); - expect(paneler.at(1).prop('tittel')).toEqual('Perioden fra og med 10. april 2019 til og med 14. april 2019'); - expect(paneler.at(1).prop('apen')).toBe(false); - expect(paneler.last().prop('tittel')).toEqual('Hvordan betale tilbake pengene du skylder'); - expect(paneler.last().prop('apen')).toBe(false); + expect(screen.getByText('Du må betale tilbake foreldrepenger', { selector: 'h3' })).toBeInTheDocument(); + expect( + screen.getByText('Perioden fra og med 10. april 2019 til og med 14. april 2019', { selector: 'h3' }), + ).toBeInTheDocument(); + expect(screen.getByText('Hvordan betale tilbake pengene du skylder', { selector: 'h3' })).toBeInTheDocument(); + expect(screen.getAllByRole('button', { expanded: false })).toHaveLength(3); }); it('skal automatisk åpne panel som ikke har obligatorisk verdi utfylt', () => { - const wrapper = shallow( + renderWithIntlAndReduxForm( ', () => { />, ); - const paneler = wrapper.find(Ekspanderbartpanel); - expect(paneler).toHaveLength(3); - expect(paneler.at(0).prop('apen')).toBe(true); - expect(paneler.at(1).prop('apen')).toBe(true); - expect(paneler.at(2).prop('apen')).toBe(false); + expect(screen.getAllByRole('button', { expanded: false })).toHaveLength(1); + expect(screen.getAllByRole('button', { expanded: true })).toHaveLength(2); }); it('skal sette opp initial values for form', () => { diff --git a/packages/prosess-vedtak-tilbakekreving/src/components/brev/TilbakekrevingEditerVedtaksbrevPanel.tsx b/packages/prosess-vedtak-tilbakekreving/src/components/brev/TilbakekrevingEditerVedtaksbrevPanel.tsx index c3952ccc8f..8d19e5da9a 100644 --- a/packages/prosess-vedtak-tilbakekreving/src/components/brev/TilbakekrevingEditerVedtaksbrevPanel.tsx +++ b/packages/prosess-vedtak-tilbakekreving/src/components/brev/TilbakekrevingEditerVedtaksbrevPanel.tsx @@ -1,4 +1,4 @@ -import Ekspanderbartpanel from 'nav-frontend-ekspanderbartpanel'; +import { ExpansionCard } from '@navikt/ds-react'; import { Element, Normaltekst, Undertittel } from 'nav-frontend-typografi'; import React from 'react'; import { FormattedMessage } from 'react-intl'; @@ -47,43 +47,49 @@ const TilbakekrevingEditerVedtaksbrevPanel = ({ avsnitt.avsnittstype === underavsnittType.OPPSUMMERING && fritekstOppsummeringPakrevdMenIkkeUtfylt; return ( - - ) - } - apen={harPeriodeSomManglerObligatoriskVerdi || visApen} + - {underavsnitter.map((underavsnitt: any) => ( - - {underavsnitt.overskrift && {underavsnitt.overskrift}} - {underavsnitt.brødtekst && {underavsnitt.brødtekst}} - {underavsnitt.fritekstTillatt && ( - <> - - - + + + {avsnitt.overskrift ? ( + avsnitt.overskrift + ) : ( + )} - - - ))} - + + + + {underavsnitter.map((underavsnitt: any) => ( + + {underavsnitt.overskrift && {underavsnitt.overskrift}} + {underavsnitt.brødtekst && {underavsnitt.brødtekst}} + {underavsnitt.fritekstTillatt && ( + <> + + + + )} + + + ))} + + ); diff --git a/packages/prosess-vedtak-tilbakekreving/src/components/brev/tilbakekrevingEditerVedtaksbrevPanel.module.css b/packages/prosess-vedtak-tilbakekreving/src/components/brev/tilbakekrevingEditerVedtaksbrevPanel.module.css index d75632a5ee..fe1fb6651f 100644 --- a/packages/prosess-vedtak-tilbakekreving/src/components/brev/tilbakekrevingEditerVedtaksbrevPanel.module.css +++ b/packages/prosess-vedtak-tilbakekreving/src/components/brev/tilbakekrevingEditerVedtaksbrevPanel.module.css @@ -2,14 +2,6 @@ max-width: 1000px; } -.panel { - border: 1px solid black; - padding: 1px 1px 1px 1px; -} - .panelMedGulmarkering { - border: 1px solid black; - border-left-color: #fa3; - border-left-width: 5px; - padding: 1px 1px 1px 1px; + border-left: 5px solid #fa3; } From ca33fc155fd8c92e1fa1e1c5a19f0424833b444a Mon Sep 17 00:00:00 2001 From: Hallvard Andreas Stark <57254397+hallvardastark@users.noreply.github.com> Date: Thu, 7 Dec 2023 20:06:50 +0100 Subject: [PATCH 2/9] Bytter fra anchor til knapp i historikkinnslag (#5403) * Bytter fra anchor til knapp i historikkinnslag * Fikser test --- .../src/components/maler/felles/bubbleText.module.css | 4 ++++ .../src/components/maler/felles/bubbleText.spec.tsx | 2 +- .../src/components/maler/felles/bubbleText.tsx | 9 +++++---- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/sak-historikk/src/components/maler/felles/bubbleText.module.css b/packages/sak-historikk/src/components/maler/felles/bubbleText.module.css index 2132dbae4e..116888af35 100644 --- a/packages/sak-historikk/src/components/maler/felles/bubbleText.module.css +++ b/packages/sak-historikk/src/components/maler/felles/bubbleText.module.css @@ -1,4 +1,8 @@ .clickableArea { + background: none; + border: none; + color: rgb(0, 103, 197); + cursor: pointer; float: right; margin-bottom: 4px; margin-top: 4px; diff --git a/packages/sak-historikk/src/components/maler/felles/bubbleText.spec.tsx b/packages/sak-historikk/src/components/maler/felles/bubbleText.spec.tsx index a708b7a5ab..4b4cb9243b 100644 --- a/packages/sak-historikk/src/components/maler/felles/bubbleText.spec.tsx +++ b/packages/sak-historikk/src/components/maler/felles/bubbleText.spec.tsx @@ -31,7 +31,7 @@ describe('', () => { const wrapper = shallowWithIntl( , ); - const x = wrapper.find('a'); + const x = wrapper.find('button'); x.simulate('click'); const oppChevron = wrapper.find(OppChevron); expect(oppChevron).toHaveLength(1); diff --git a/packages/sak-historikk/src/components/maler/felles/bubbleText.tsx b/packages/sak-historikk/src/components/maler/felles/bubbleText.tsx index e2c7f6ae2d..679a43fb40 100644 --- a/packages/sak-historikk/src/components/maler/felles/bubbleText.tsx +++ b/packages/sak-historikk/src/components/maler/felles/bubbleText.tsx @@ -39,15 +39,16 @@ const BubbleText = ({ intl, cutOffLength = 83, bodyText = '' }: OwnProps & Wrapp <> {expanded &&
{bodyText}
} {!expanded &&
{truncateText(bodyText, cutOffLength)}
} - {expanded ? : } - + ); }; From 38e373e6e7bc074fd1c5d44fdc98b2671b4189e7 Mon Sep 17 00:00:00 2001 From: Hallvard Andreas Stark <57254397+hallvardastark@users.noreply.github.com> Date: Mon, 11 Dec 2023 13:46:34 +0100 Subject: [PATCH 3/9] Tar bort spesifikke lodash-pakker (#5409) --- .../behandling-opplaeringspenger/package.json | 10 +- .../package.json | 4 +- packages/behandling-pleiepenger/package.json | 10 +- packages/fakta-etablert-tilsyn/package.json | 1 - .../EtablertTilsynMedSmoring.tsx | 2 +- packages/fakta-inntektsmelding/package.json | 4 +- packages/fakta-institusjon/package.json | 2 +- .../package.json" | 2 +- packages/fakta-om-barnet/package.json | 2 +- packages/fakta-omsorgen-for/package.json | 2 +- packages/fakta-omsorgsdager/package.json | 1 - .../src/util/useFormSessionStorageUtils.ts | 2 +- packages/fakta-opplaering/package.json | 2 +- packages/form/package.json | 2 +- packages/prosess-aarskvantum-oms/package.json | 2 +- packages/prosess-uttak/package.json | 2 +- .../package.json | 2 +- .../src/OpptjeningVilkarProsessIndex.tsx | 2 +- packages/prosess-vilkar-sykdom/package.json | 2 +- .../src/SykdomProsessIndex.tsx | 2 +- packages/sak-app/package.json | 12 +- yarn.lock | 131 +++++++++--------- 22 files changed, 97 insertions(+), 104 deletions(-) diff --git a/packages/behandling-opplaeringspenger/package.json b/packages/behandling-opplaeringspenger/package.json index 4a3fdbee3b..14f5ec064e 100644 --- a/packages/behandling-opplaeringspenger/package.json +++ b/packages/behandling-opplaeringspenger/package.json @@ -43,12 +43,12 @@ "@navikt/ft-fakta-beregning-redesign": "1.0.17", "@navikt/ft-fakta-fordel-beregningsgrunnlag": "7.3.20", "@navikt/ft-prosess-beregningsgrunnlag": "6.3.20", - "@navikt/k9-fe-etablert-tilsyn": "1.0.3", + "@navikt/k9-fe-etablert-tilsyn": "1.0.4", "@navikt/k9-fe-http-utils": "1.0.8", - "@navikt/k9-fe-inntektsmelding": "1.0.4", - "@navikt/k9-fe-medisinsk-vilkar": "1.0.3", - "@navikt/k9-fe-om-barnet": "1.0.3", - "@navikt/k9-fe-omsorgen-for": "1.0.3", + "@navikt/k9-fe-inntektsmelding": "1.0.5", + "@navikt/k9-fe-medisinsk-vilkar": "1.0.4", + "@navikt/k9-fe-om-barnet": "1.0.4", + "@navikt/k9-fe-omsorgen-for": "1.0.4", "axios": "1.6.2", "nav-frontend-alertstriper": "4.0.2", "react": "18.2.0", diff --git a/packages/behandling-pleiepenger-sluttfase/package.json b/packages/behandling-pleiepenger-sluttfase/package.json index 48b29007af..349ff40996 100644 --- a/packages/behandling-pleiepenger-sluttfase/package.json +++ b/packages/behandling-pleiepenger-sluttfase/package.json @@ -40,8 +40,8 @@ "@navikt/ft-fakta-fordel-beregningsgrunnlag": "7.3.20", "@navikt/ft-prosess-beregningsgrunnlag": "6.3.20", "@navikt/k9-fe-http-utils": "1.0.8", - "@navikt/k9-fe-inntektsmelding": "1.0.4", - "@navikt/k9-fe-medisinsk-vilkar": "1.0.3", + "@navikt/k9-fe-inntektsmelding": "1.0.5", + "@navikt/k9-fe-medisinsk-vilkar": "1.0.4", "axios": "1.6.2", "nav-frontend-alertstriper": "4.0.2", "react": "18.2.0", diff --git a/packages/behandling-pleiepenger/package.json b/packages/behandling-pleiepenger/package.json index e8d90a4c17..aa8c211f8c 100644 --- a/packages/behandling-pleiepenger/package.json +++ b/packages/behandling-pleiepenger/package.json @@ -44,12 +44,12 @@ "@navikt/ft-fakta-beregning-redesign": "1.0.17", "@navikt/ft-fakta-fordel-beregningsgrunnlag": "7.3.20", "@navikt/ft-prosess-beregningsgrunnlag": "6.3.20", - "@navikt/k9-fe-etablert-tilsyn": "1.0.3", + "@navikt/k9-fe-etablert-tilsyn": "1.0.4", "@navikt/k9-fe-http-utils": "1.0.8", - "@navikt/k9-fe-inntektsmelding": "1.0.4", - "@navikt/k9-fe-medisinsk-vilkar": "1.0.3", - "@navikt/k9-fe-om-barnet": "1.0.3", - "@navikt/k9-fe-omsorgen-for": "1.0.3", + "@navikt/k9-fe-inntektsmelding": "1.0.5", + "@navikt/k9-fe-medisinsk-vilkar": "1.0.4", + "@navikt/k9-fe-om-barnet": "1.0.4", + "@navikt/k9-fe-omsorgen-for": "1.0.4", "axios": "1.6.2", "nav-frontend-alertstriper": "4.0.2", "react": "18.2.0", diff --git a/packages/fakta-etablert-tilsyn/package.json b/packages/fakta-etablert-tilsyn/package.json index abef2d138b..19a19b77c0 100644 --- a/packages/fakta-etablert-tilsyn/package.json +++ b/packages/fakta-etablert-tilsyn/package.json @@ -20,7 +20,6 @@ "classnames": "2.3.2", "dayjs": "1.11.10", "lodash": "4.17.21", - "lodash.throttle": "4.1.1", "nav-frontend-alertstriper": "4.0.2", "nav-frontend-alertstriper-style": "3.0.2", "nav-frontend-chevron": "1.0.30", diff --git a/packages/fakta-etablert-tilsyn/src/ui/components/etablertTilsyn/EtablertTilsynMedSmoring.tsx b/packages/fakta-etablert-tilsyn/src/ui/components/etablertTilsyn/EtablertTilsynMedSmoring.tsx index ef51573e91..b01523f24f 100644 --- a/packages/fakta-etablert-tilsyn/src/ui/components/etablertTilsyn/EtablertTilsynMedSmoring.tsx +++ b/packages/fakta-etablert-tilsyn/src/ui/components/etablertTilsyn/EtablertTilsynMedSmoring.tsx @@ -1,7 +1,7 @@ import { isDayAfter, Period } from '@fpsak-frontend/utils'; import { Table } from '@navikt/ds-react'; import dayjs from 'dayjs'; -import { uniq } from 'lodash'; +import uniq from 'lodash/uniq'; import React from 'react'; import EtablertTilsynType from '../../../types/EtablertTilsynType'; import EtablertTilsynRowContent from './EtablertTilsynRowContent'; diff --git a/packages/fakta-inntektsmelding/package.json b/packages/fakta-inntektsmelding/package.json index 08b8bc0885..723acb793e 100644 --- a/packages/fakta-inntektsmelding/package.json +++ b/packages/fakta-inntektsmelding/package.json @@ -31,7 +31,7 @@ "date-fns": "2.30.0", "dayjs": "1.11.10", "express": "4.18.2", - "lodash.throttle": "4.1.1", + "lodash": "4.17.21", "msw": "1.3.2", "msw-storybook-addon": "1.10.0", "nav-frontend-alertstriper": "4.0.2", @@ -77,7 +77,7 @@ "classnames": "2.3.2", "date-fns": "2.30.0", "dayjs": "1.11.10", - "lodash.throttle": "4.1.1", + "lodash": "4.17.21", "msw-storybook-addon": "1.10.0", "nav-frontend-alertstriper": "4.0.2", "nav-frontend-alertstriper-style": "3.0.2", diff --git a/packages/fakta-institusjon/package.json b/packages/fakta-institusjon/package.json index 156d5ed4ea..0d5a574e0a 100644 --- a/packages/fakta-institusjon/package.json +++ b/packages/fakta-institusjon/package.json @@ -8,7 +8,7 @@ "@fpsak-frontend/form": "*", "@k9-sak-web/types": "*", "@navikt/ft-plattform-komponenter": "2.3.14", - "@navikt/k9-fe-form-utils": "1.0.17", + "@navikt/k9-fe-form-utils": "1.0.18", "@navikt/k9-fe-period-utils": "1.0.12", "formik": "2.4.5", "yup": "0.32.11" diff --git "a/packages/fakta-medisinsk-vilk\303\245r/package.json" "b/packages/fakta-medisinsk-vilk\303\245r/package.json" index 3f329fce78..adc41dcbaf 100644 --- "a/packages/fakta-medisinsk-vilk\303\245r/package.json" +++ "b/packages/fakta-medisinsk-vilk\303\245r/package.json" @@ -21,7 +21,7 @@ "axios": "1.6.2", "classnames": "2.3.2", "dayjs": "1.11.10", - "lodash.throttle": "4.1.1", + "lodash": "4.17.21", "react": "18.2.0", "react-collapse": "5.1.1", "react-dom": "18.2.0", diff --git a/packages/fakta-om-barnet/package.json b/packages/fakta-om-barnet/package.json index d86247a8e9..28ec9ff9b1 100644 --- a/packages/fakta-om-barnet/package.json +++ b/packages/fakta-om-barnet/package.json @@ -18,7 +18,7 @@ "axios": "1.6.2", "classnames": "2.3.2", "dayjs": "1.11.10", - "lodash.throttle": "4.1.1", + "lodash": "4.17.21", "react": "18.2.0", "react-collapse": "5.1.1", "react-dom": "18.2.0", diff --git a/packages/fakta-omsorgen-for/package.json b/packages/fakta-omsorgen-for/package.json index ba5eabca9c..9edec2f320 100644 --- a/packages/fakta-omsorgen-for/package.json +++ b/packages/fakta-omsorgen-for/package.json @@ -19,7 +19,7 @@ "axios": "1.6.2", "classnames": "2.3.2", "dayjs": "1.11.10", - "lodash.throttle": "4.1.1", + "lodash": "4.17.21", "nav-frontend-alertstriper": "4.0.2", "nav-frontend-alertstriper-style": "3.0.2", "nav-frontend-chevron": "1.0.30", diff --git a/packages/fakta-omsorgsdager/package.json b/packages/fakta-omsorgsdager/package.json index ccbd9108b3..7f63ccce7b 100644 --- a/packages/fakta-omsorgsdager/package.json +++ b/packages/fakta-omsorgsdager/package.json @@ -19,7 +19,6 @@ "classnames": "2.3.2", "dayjs": "1.11.10", "lodash": "4.17.21", - "lodash.throttle": "4.1.1", "nav-datovelger": "12.6.0", "nav-frontend-alertstriper": "4.0.2", "nav-frontend-alertstriper-style": "3.0.2", diff --git a/packages/fakta-omsorgsdager/src/util/useFormSessionStorageUtils.ts b/packages/fakta-omsorgsdager/src/util/useFormSessionStorageUtils.ts index efa43d8b02..34721639aa 100644 --- a/packages/fakta-omsorgsdager/src/util/useFormSessionStorageUtils.ts +++ b/packages/fakta-omsorgsdager/src/util/useFormSessionStorageUtils.ts @@ -1,5 +1,5 @@ import { useCallback, useEffect, useRef } from 'react'; -import throttle from 'lodash.throttle'; +import throttle from 'lodash/throttle'; // Brukes for midlertidig mellomlagring av input fra saksbehandlare som ett global objekt i k9-sak-web. export const BrukFormSesjonslagring = ( diff --git a/packages/fakta-opplaering/package.json b/packages/fakta-opplaering/package.json index b6cd32fae8..e50ec242a0 100644 --- a/packages/fakta-opplaering/package.json +++ b/packages/fakta-opplaering/package.json @@ -12,7 +12,7 @@ "@navikt/ds-react": "5.11.2", "@navikt/ft-plattform-komponenter": "2.3.14", "@navikt/k9-fe-date-utils": "1.0.9", - "@navikt/k9-fe-form-utils": "1.0.17", + "@navikt/k9-fe-form-utils": "1.0.18", "@navikt/k9-fe-period-utils": "1.0.12", "classnames": "2.3.2", "dayjs": "1.11.10", diff --git a/packages/form/package.json b/packages/form/package.json index ac36fb2037..5f55b0f0dc 100644 --- a/packages/form/package.json +++ b/packages/form/package.json @@ -11,7 +11,7 @@ "@navikt/ft-plattform-komponenter": "2.3.14", "classnames": "2.3.2", "formik": "2.4.5", - "lodash.throttle": "4.1.1", + "lodash": "4.17.21", "moment": "2.29.4", "nav-frontend-core": "6.0.1", "nav-frontend-etiketter": "3.0.3", diff --git a/packages/prosess-aarskvantum-oms/package.json b/packages/prosess-aarskvantum-oms/package.json index db7214b5bd..99ebd36dd8 100644 --- a/packages/prosess-aarskvantum-oms/package.json +++ b/packages/prosess-aarskvantum-oms/package.json @@ -14,7 +14,7 @@ "@k9-sak-web/konstanter": "1.0.0", "@k9-sak-web/types": "1.0.0", "classnames": "2.3.2", - "lodash.throttle": "4.1.1", + "lodash": "4.17.21", "moment": "2.29.4", "nav-frontend-alertstriper": "4.0.2", "nav-frontend-alertstriper-style": "3.0.2", diff --git a/packages/prosess-uttak/package.json b/packages/prosess-uttak/package.json index e33ceb8aea..f4e74587c8 100644 --- a/packages/prosess-uttak/package.json +++ b/packages/prosess-uttak/package.json @@ -38,7 +38,7 @@ "cors": "2.8.5", "dayjs": "1.11.10", "express": "4.18.2", - "lodash.throttle": "4.1.1", + "lodash": "4.17.21", "nav-frontend-alertstriper": "4.0.2", "nav-frontend-alertstriper-style": "3.0.2", "nav-frontend-chevron": "1.0.30", diff --git a/packages/prosess-vilkar-opptjening-oms/package.json b/packages/prosess-vilkar-opptjening-oms/package.json index 3369cc493b..45daf60815 100644 --- a/packages/prosess-vilkar-opptjening-oms/package.json +++ b/packages/prosess-vilkar-opptjening-oms/package.json @@ -15,7 +15,7 @@ "@navikt/ft-plattform-komponenter": "2.3.14", "classnames": "2.3.2", "dayjs": "1.11.10", - "lodash.isequal": "4.5.0", + "lodash": "4.17.21", "moment": "2.29.4", "nav-frontend-core": "6.0.1", "nav-frontend-grid": "2.0.2", diff --git a/packages/prosess-vilkar-opptjening-oms/src/OpptjeningVilkarProsessIndex.tsx b/packages/prosess-vilkar-opptjening-oms/src/OpptjeningVilkarProsessIndex.tsx index b130300c60..148ebaa308 100644 --- a/packages/prosess-vilkar-opptjening-oms/src/OpptjeningVilkarProsessIndex.tsx +++ b/packages/prosess-vilkar-opptjening-oms/src/OpptjeningVilkarProsessIndex.tsx @@ -5,7 +5,7 @@ import { dateFormat } from '@fpsak-frontend/utils'; import { Aksjonspunkt, Fagsak, Opptjening, OpptjeningBehandling, SubmitCallback, Vilkar } from '@k9-sak-web/types'; import { SideMenu } from '@navikt/ft-plattform-komponenter'; import classNames from 'classnames/bind'; -import isEqual from 'lodash.isequal'; +import isEqual from 'lodash/isEqual'; import React, { useEffect, useState } from 'react'; import { RawIntlProvider, createIntl, createIntlCache } from 'react-intl'; diff --git a/packages/prosess-vilkar-sykdom/package.json b/packages/prosess-vilkar-sykdom/package.json index f388af7dd6..c695347b53 100644 --- a/packages/prosess-vilkar-sykdom/package.json +++ b/packages/prosess-vilkar-sykdom/package.json @@ -11,7 +11,7 @@ "@fpsak-frontend/utils": "1.0.0", "@navikt/ft-plattform-komponenter": "2.3.14", "classnames": "2.3.2", - "lodash.isequal": "4.5.0", + "lodash": "4.17.21", "nav-frontend-core": "6.0.1", "nav-frontend-spinner": "3.0.1", "nav-frontend-spinner-style": "1.0.2", diff --git a/packages/prosess-vilkar-sykdom/src/SykdomProsessIndex.tsx b/packages/prosess-vilkar-sykdom/src/SykdomProsessIndex.tsx index 767887707a..73e5469507 100644 --- a/packages/prosess-vilkar-sykdom/src/SykdomProsessIndex.tsx +++ b/packages/prosess-vilkar-sykdom/src/SykdomProsessIndex.tsx @@ -9,7 +9,7 @@ import { dateFormat } from '@fpsak-frontend/utils'; import Vilkarperiode from '@k9-sak-web/types/src/vilkarperiode'; import { SideMenu } from '@navikt/ft-plattform-komponenter'; import classNames from 'classnames/bind'; -import isEqual from 'lodash.isequal'; +import isEqual from 'lodash/isEqual'; import { Element, Undertekst, Undertittel } from 'nav-frontend-typografi'; import React from 'react'; import { FormattedMessage, RawIntlProvider, createIntl, createIntlCache } from 'react-intl'; diff --git a/packages/sak-app/package.json b/packages/sak-app/package.json index af32564d6e..624545bd07 100644 --- a/packages/sak-app/package.json +++ b/packages/sak-app/package.json @@ -63,13 +63,13 @@ "@navikt/ft-plattform-komponenter": "2.3.14", "@navikt/ft-prosess-beregningsgrunnlag": "6.3.20", "@navikt/ft-ui-komponenter": "2.1.17", - "@navikt/k9-fe-etablert-tilsyn": "1.0.3", + "@navikt/k9-fe-etablert-tilsyn": "1.0.4", "@navikt/k9-fe-http-utils": "1.0.8", - "@navikt/k9-fe-inntektsmelding": "1.0.4", - "@navikt/k9-fe-medisinsk-vilkar": "1.0.3", - "@navikt/k9-fe-om-barnet": "1.0.3", - "@navikt/k9-fe-omsorgen-for": "1.0.3", - "@navikt/k9-fe-omsorgsdager": "1.0.2", + "@navikt/k9-fe-inntektsmelding": "1.0.5", + "@navikt/k9-fe-medisinsk-vilkar": "1.0.4", + "@navikt/k9-fe-om-barnet": "1.0.4", + "@navikt/k9-fe-omsorgen-for": "1.0.4", + "@navikt/k9-fe-omsorgsdager": "1.0.3", "@sentry/browser": "7.84.0", "axios": "1.6.2", "classnames": "2.3.2", diff --git a/yarn.lock b/yarn.lock index fb2326f3d6..dd2bfcd977 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2591,7 +2591,7 @@ __metadata: "@navikt/ft-plattform-komponenter": 2.3.14 classnames: 2.3.2 formik: 2.4.5 - lodash.throttle: 4.1.1 + lodash: 4.17.21 moment: 2.29.4 nav-frontend-core: 6.0.1 nav-frontend-etiketter: 3.0.3 @@ -3198,7 +3198,7 @@ __metadata: classnames: 2.3.2 dayjs: 1.11.10 enzyme: 3.11.0 - lodash.isequal: 4.5.0 + lodash: 4.17.21 moment: 2.29.4 nav-frontend-core: 6.0.1 nav-frontend-grid: 2.0.2 @@ -4442,12 +4442,12 @@ __metadata: "@navikt/ft-fakta-beregning-redesign": 1.0.17 "@navikt/ft-fakta-fordel-beregningsgrunnlag": 7.3.20 "@navikt/ft-prosess-beregningsgrunnlag": 6.3.20 - "@navikt/k9-fe-etablert-tilsyn": 1.0.3 + "@navikt/k9-fe-etablert-tilsyn": 1.0.4 "@navikt/k9-fe-http-utils": 1.0.8 - "@navikt/k9-fe-inntektsmelding": 1.0.4 - "@navikt/k9-fe-medisinsk-vilkar": 1.0.3 - "@navikt/k9-fe-om-barnet": 1.0.3 - "@navikt/k9-fe-omsorgen-for": 1.0.3 + "@navikt/k9-fe-inntektsmelding": 1.0.5 + "@navikt/k9-fe-medisinsk-vilkar": 1.0.4 + "@navikt/k9-fe-om-barnet": 1.0.4 + "@navikt/k9-fe-omsorgen-for": 1.0.4 axios: 1.6.2 axios-mock-adapter: 1.22.0 enzyme: 3.11.0 @@ -4502,8 +4502,8 @@ __metadata: "@navikt/ft-fakta-fordel-beregningsgrunnlag": 7.3.20 "@navikt/ft-prosess-beregningsgrunnlag": 6.3.20 "@navikt/k9-fe-http-utils": 1.0.8 - "@navikt/k9-fe-inntektsmelding": 1.0.4 - "@navikt/k9-fe-medisinsk-vilkar": 1.0.3 + "@navikt/k9-fe-inntektsmelding": 1.0.5 + "@navikt/k9-fe-medisinsk-vilkar": 1.0.4 axios: 1.6.2 axios-mock-adapter: 1.22.0 enzyme: 3.11.0 @@ -4563,12 +4563,12 @@ __metadata: "@navikt/ft-fakta-beregning-redesign": 1.0.17 "@navikt/ft-fakta-fordel-beregningsgrunnlag": 7.3.20 "@navikt/ft-prosess-beregningsgrunnlag": 6.3.20 - "@navikt/k9-fe-etablert-tilsyn": 1.0.3 + "@navikt/k9-fe-etablert-tilsyn": 1.0.4 "@navikt/k9-fe-http-utils": 1.0.8 - "@navikt/k9-fe-inntektsmelding": 1.0.4 - "@navikt/k9-fe-medisinsk-vilkar": 1.0.3 - "@navikt/k9-fe-om-barnet": 1.0.3 - "@navikt/k9-fe-omsorgen-for": 1.0.3 + "@navikt/k9-fe-inntektsmelding": 1.0.5 + "@navikt/k9-fe-medisinsk-vilkar": 1.0.4 + "@navikt/k9-fe-om-barnet": 1.0.4 + "@navikt/k9-fe-omsorgen-for": 1.0.4 axios: 1.6.2 axios-mock-adapter: 1.22.0 enzyme: 3.11.0 @@ -4783,7 +4783,6 @@ __metadata: classnames: 2.3.2 dayjs: 1.11.10 lodash: 4.17.21 - lodash.throttle: 4.1.1 nav-frontend-alertstriper: 4.0.2 nav-frontend-alertstriper-style: 3.0.2 nav-frontend-chevron: 1.0.30 @@ -4868,7 +4867,7 @@ __metadata: date-fns: 2.30.0 dayjs: 1.11.10 express: 4.18.2 - lodash.throttle: 4.1.1 + lodash: 4.17.21 msw: 1.3.2 msw-storybook-addon: 1.10.0 nav-frontend-alertstriper: 4.0.2 @@ -4913,7 +4912,7 @@ __metadata: classnames: 2.3.2 date-fns: 2.30.0 dayjs: 1.11.10 - lodash.throttle: 4.1.1 + lodash: 4.17.21 msw-storybook-addon: 1.10.0 nav-frontend-alertstriper: 4.0.2 nav-frontend-alertstriper-style: 3.0.2 @@ -4953,7 +4952,7 @@ __metadata: "@fpsak-frontend/form": "*" "@k9-sak-web/types": "*" "@navikt/ft-plattform-komponenter": 2.3.14 - "@navikt/k9-fe-form-utils": 1.0.17 + "@navikt/k9-fe-form-utils": 1.0.18 "@navikt/k9-fe-period-utils": 1.0.12 formik: 2.4.5 yup: 0.32.11 @@ -4975,7 +4974,7 @@ __metadata: axios: 1.6.2 classnames: 2.3.2 dayjs: 1.11.10 - lodash.throttle: 4.1.1 + lodash: 4.17.21 react: 18.2.0 react-collapse: 5.1.1 react-dom: 18.2.0 @@ -4999,7 +4998,7 @@ __metadata: axios: 1.6.2 classnames: 2.3.2 dayjs: 1.11.10 - lodash.throttle: 4.1.1 + lodash: 4.17.21 react: 18.2.0 react-collapse: 5.1.1 react-dom: 18.2.0 @@ -5022,7 +5021,7 @@ __metadata: axios: 1.6.2 classnames: 2.3.2 dayjs: 1.11.10 - lodash.throttle: 4.1.1 + lodash: 4.17.21 nav-frontend-alertstriper: 4.0.2 nav-frontend-alertstriper-style: 3.0.2 nav-frontend-chevron: 1.0.30 @@ -5064,7 +5063,6 @@ __metadata: dayjs: 1.11.10 jest-axe: ^8.0.0 lodash: 4.17.21 - lodash.throttle: 4.1.1 nav-datovelger: 12.6.0 nav-frontend-alertstriper: 4.0.2 nav-frontend-alertstriper-style: 3.0.2 @@ -5100,7 +5098,7 @@ __metadata: "@navikt/ds-react": 5.11.2 "@navikt/ft-plattform-komponenter": 2.3.14 "@navikt/k9-fe-date-utils": 1.0.9 - "@navikt/k9-fe-form-utils": 1.0.17 + "@navikt/k9-fe-form-utils": 1.0.18 "@navikt/k9-fe-period-utils": 1.0.12 classnames: 2.3.2 dayjs: 1.11.10 @@ -5205,7 +5203,7 @@ __metadata: "@k9-sak-web/types": 1.0.0 classnames: 2.3.2 enzyme: 3.11.0 - lodash.throttle: 4.1.1 + lodash: 4.17.21 moment: 2.29.4 nav-frontend-alertstriper: 4.0.2 nav-frontend-alertstriper-style: 3.0.2 @@ -5328,7 +5326,7 @@ __metadata: cors: 2.8.5 dayjs: 1.11.10 express: 4.18.2 - lodash.throttle: 4.1.1 + lodash: 4.17.21 nav-frontend-alertstriper: 4.0.2 nav-frontend-alertstriper-style: 3.0.2 nav-frontend-chevron: 1.0.30 @@ -5432,7 +5430,7 @@ __metadata: "@navikt/ft-plattform-komponenter": 2.3.14 classnames: 2.3.2 enzyme: 3.11.0 - lodash.isequal: 4.5.0 + lodash: 4.17.21 nav-frontend-core: 6.0.1 nav-frontend-spinner: 3.0.1 nav-frontend-spinner-style: 1.0.2 @@ -5542,13 +5540,13 @@ __metadata: "@navikt/ft-plattform-komponenter": 2.3.14 "@navikt/ft-prosess-beregningsgrunnlag": 6.3.20 "@navikt/ft-ui-komponenter": 2.1.17 - "@navikt/k9-fe-etablert-tilsyn": 1.0.3 + "@navikt/k9-fe-etablert-tilsyn": 1.0.4 "@navikt/k9-fe-http-utils": 1.0.8 - "@navikt/k9-fe-inntektsmelding": 1.0.4 - "@navikt/k9-fe-medisinsk-vilkar": 1.0.3 - "@navikt/k9-fe-om-barnet": 1.0.3 - "@navikt/k9-fe-omsorgen-for": 1.0.3 - "@navikt/k9-fe-omsorgsdager": 1.0.2 + "@navikt/k9-fe-inntektsmelding": 1.0.5 + "@navikt/k9-fe-medisinsk-vilkar": 1.0.4 + "@navikt/k9-fe-om-barnet": 1.0.4 + "@navikt/k9-fe-omsorgen-for": 1.0.4 + "@navikt/k9-fe-omsorgsdager": 1.0.3 "@sentry/browser": 7.84.0 axios: 1.6.2 classnames: 2.3.2 @@ -6318,9 +6316,9 @@ __metadata: languageName: node linkType: hard -"@navikt/k9-fe-etablert-tilsyn@npm:1.0.3": - version: 1.0.3 - resolution: "@navikt/k9-fe-etablert-tilsyn@npm:1.0.3::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-etablert-tilsyn%2F1.0.3%2Fabbdb795b1c59dfb435bcf53962165f5b1c28258" +"@navikt/k9-fe-etablert-tilsyn@npm:1.0.4": + version: 1.0.4 + resolution: "@navikt/k9-fe-etablert-tilsyn@npm:1.0.4::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-etablert-tilsyn%2F1.0.4%2Fbbe13706187128f565f1815a36c4de238e22ee99" peerDependencies: "@navikt/ds-css": 5.11.2 "@navikt/ds-icons": 3.4.3 @@ -6336,7 +6334,6 @@ __metadata: classnames: 2.x dayjs: 1.x lodash: 4.x - lodash.throttle: 4.x nav-frontend-alertstriper: 4.x nav-frontend-alertstriper-style: 3.x nav-frontend-chevron: 1.x @@ -6366,13 +6363,13 @@ __metadata: react-dom: 18.x react-hook-form: 7.48.2 react-popper: 2.x - checksum: 48c73f94433450b73766b39c55dcceb7599330f79d857a4534a431db24e5f76f65a987aafc4b89a529d8d9eb08f675c56cf6b97ee8ae4aceb92866c0e8ce432a + checksum: 5a3d6a9d4675227b3ef699144bc80b4799b1dc1b482b93f6d30bb300bcb3c9671e6d8ef8a65e38f94266c7cf7d85050ad26e9180bc3a4aa90db83061c7cab14e languageName: node linkType: hard -"@navikt/k9-fe-form-utils@npm:1.0.17": - version: 1.0.17 - resolution: "@navikt/k9-fe-form-utils@npm:1.0.17::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-form-utils%2F1.0.17%2Ff1b4c0a3390242f8ef7ccdc5795e46518e822f5a" +"@navikt/k9-fe-form-utils@npm:1.0.18": + version: 1.0.18 + resolution: "@navikt/k9-fe-form-utils@npm:1.0.18::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-form-utils%2F1.0.18%2Fb792b0de3d6ca82b165fc958e574e6918b552818" dependencies: "@navikt/k9-fe-bem-utils": ^1.0.4 "@navikt/k9-fe-period-utils": ^1.0.12 @@ -6386,13 +6383,12 @@ __metadata: "@storybook/react": 6.5.15 classnames: 2.3.2 dayjs: 1.11.7 - lodash.throttle: 4.1.1 react: 18.2.0 react-collapse: 5.1.1 react-dom: 18.2.0 react-hook-form: 7.43.0 react-popper: 2.3.0 - checksum: 5ad423a7dd42745824d23bd5728d8c56770b5b79e53b388832c0690f74f31d54824d4577951e71cf407e421d66937d211abab3fbd3ab1935606b1f8cbe973235 + checksum: c45bdbcf0a181ce858ea580fbc1d42f40abc8bddca13209e0f7c7c4c16ee3f6c46fdcbbd3e6c3338e23789ccab3c504f5b2667e3aa1ece12173e477c4c2703eb languageName: node linkType: hard @@ -6405,9 +6401,9 @@ __metadata: languageName: node linkType: hard -"@navikt/k9-fe-inntektsmelding@npm:1.0.4": - version: 1.0.4 - resolution: "@navikt/k9-fe-inntektsmelding@npm:1.0.4::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-inntektsmelding%2F1.0.4%2F429ee5d9b3fc2490254c2e89464a2571e8bd306b" +"@navikt/k9-fe-inntektsmelding@npm:1.0.5": + version: 1.0.5 + resolution: "@navikt/k9-fe-inntektsmelding@npm:1.0.5::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-inntektsmelding%2F1.0.5%2F6f3417210edad43cac3f025a40a9ab253ba1d929" peerDependencies: "@navikt/ds-css": 5.11.2 "@navikt/ds-icons": 3.4.3 @@ -6424,7 +6420,7 @@ __metadata: classnames: 2.x date-fns: 2.x dayjs: 1.x - lodash.throttle: 4.x + lodash: 4.x nav-frontend-alertstriper: 4.x nav-frontend-alertstriper-style: 3.x nav-frontend-chevron: 1.x @@ -6454,13 +6450,13 @@ __metadata: react-popper: 2.x tsconfig-paths-webpack-plugin: 4.x uuid: 9.x - checksum: fbfe16bc7b7795013229808760e30bca2374f26cfca1e449e325958edaef990b079ba0e669702d49aef79cb8b9a34c3bbacc43788a6b24e04d8ad094accfe32c + checksum: 9f27f017e39e0a35e985981ad48116021576f7e1e3dc2d01ac924c695d30dc852ee67b1532b7df39d98ded9cad016f954e7d815546b82c70a398007ce725c00b languageName: node linkType: hard -"@navikt/k9-fe-medisinsk-vilkar@npm:1.0.3": - version: 1.0.3 - resolution: "@navikt/k9-fe-medisinsk-vilkar@npm:1.0.3::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-medisinsk-vilkar%2F1.0.3%2Ff1f90595f9786210868c578773de5558daf36f04" +"@navikt/k9-fe-medisinsk-vilkar@npm:1.0.4": + version: 1.0.4 + resolution: "@navikt/k9-fe-medisinsk-vilkar@npm:1.0.4::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-medisinsk-vilkar%2F1.0.4%2Ff062b6590bf2ba6130c369e8ce85d04e4eebfc09" peerDependencies: "@navikt/diagnosekoder": ^1.2023.0 "@navikt/ds-css": 5.11.2 @@ -6477,7 +6473,7 @@ __metadata: axios: 1.x classnames: 2.x dayjs: 1.x - lodash.throttle: 4.x + lodash: 4.x react: 18.x react-collapse: 5.x react-dom: 18.x @@ -6486,13 +6482,13 @@ __metadata: react-outside-click-handler: 1.x react-popper: 2.x react-query: 3.x - checksum: cc0df8a1f1dee58eb8395515f7579e89657791eaec110707bdf2a3f67f94b11e83a125961381fd88ecbfb6995eb377bea7c975258c178f93adb575028eb4c7d8 + checksum: 2f6e6120f9266de663b96d83e9d92581ee1e5a825c031bad192df5d8cb7abb0a21f3dfb6ac73073ea7d4a2f8e4cca3f70402e0172d1dad078ae7d3136cea8506 languageName: node linkType: hard -"@navikt/k9-fe-om-barnet@npm:1.0.3": - version: 1.0.3 - resolution: "@navikt/k9-fe-om-barnet@npm:1.0.3::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-om-barnet%2F1.0.3%2F86226a2426286355ccbd0395b71ea84ade1c4dbd" +"@navikt/k9-fe-om-barnet@npm:1.0.4": + version: 1.0.4 + resolution: "@navikt/k9-fe-om-barnet@npm:1.0.4::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-om-barnet%2F1.0.4%2F46f770892332b9d849a35a13e054b244df46b545" peerDependencies: "@hookform/error-message": 2.x "@navikt/ds-css": 5.11.2 @@ -6508,20 +6504,20 @@ __metadata: axios: 1.x classnames: 2.x dayjs: 1.x - lodash.throttle: 4.x + lodash: 4.x react: 18.x react-collapse: 5.x react-dom: 18.x react-hook-form: 7.48.2 react-popper: 2.x tailwindcss: 3.x - checksum: d8e41ffb6bee94c10f647a1c1f7fe1a7553d55be3bbca72ab6a0a35ffe1d7cf82a628a7880a206d8f1078405882cf23f70bd178dbee30af8f61a93bfca276887 + checksum: c5e68982891a4aeb160d9e2f643d8486eb909692e0461875e3c3dd2988f8599bf0c19f09bf0e06d883943b21b2cc0b14591f7da5619101b16663b6e072ceb0c5 languageName: node linkType: hard -"@navikt/k9-fe-omsorgen-for@npm:1.0.3": - version: 1.0.3 - resolution: "@navikt/k9-fe-omsorgen-for@npm:1.0.3::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-omsorgen-for%2F1.0.3%2F2adf9c9e015587c32ba8b63e5a77b5ee571425ca" +"@navikt/k9-fe-omsorgen-for@npm:1.0.4": + version: 1.0.4 + resolution: "@navikt/k9-fe-omsorgen-for@npm:1.0.4::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-omsorgen-for%2F1.0.4%2Fecb77870e3f9a448b87c7844258170c1dfd860c6" peerDependencies: "@hookform/error-message": 2.x "@navikt/ds-css": 5.11.2 @@ -6538,7 +6534,7 @@ __metadata: axios: 1.x classnames: 2.x dayjs: 1.x - lodash.throttle: 4.x + lodash: 4.x nav-frontend-alertstriper: 4.x nav-frontend-alertstriper-style: 3.x nav-frontend-chevron: 1.x @@ -6566,13 +6562,13 @@ __metadata: react-hook-form: 7.48.2 react-intl: 6.5.5 react-popper: 2.x - checksum: 7848f3d1ddaae7b008de6f8e824b6a1aeed1cf2b1d3090fe7be05a89b454bb350908a0b609c511d3517df030f60120b6e4131f937eeab50bf7426dd6424f9443 + checksum: 835eef42e253bad2deb3772b0ed6c78bf654a889715af2dcede66c1acbf20b819737a38d22e8b533d4c7bdb7dea327e8e2f03c9151fbdc10438141953bc6a545 languageName: node linkType: hard -"@navikt/k9-fe-omsorgsdager@npm:1.0.2": - version: 1.0.2 - resolution: "@navikt/k9-fe-omsorgsdager@npm:1.0.2::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-omsorgsdager%2F1.0.2%2Fe9f000689d2226dd93dccb99b90704a86f29e729" +"@navikt/k9-fe-omsorgsdager@npm:1.0.3": + version: 1.0.3 + resolution: "@navikt/k9-fe-omsorgsdager@npm:1.0.3::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-fe-omsorgsdager%2F1.0.3%2F5167a934b035b71b85f49ee874ac981fa9526940" peerDependencies: "@navikt/ds-css": 5.11.2 "@navikt/ds-react": 5.11.2 @@ -6580,7 +6576,6 @@ __metadata: classnames: 2.x dayjs: 1.x lodash: 4.x - lodash.throttle: 4.x nav-datovelger: 12.x nav-frontend-alertstriper: 4.x nav-frontend-alertstriper-style: 3.x @@ -6602,7 +6597,7 @@ __metadata: react-day-picker: 7.x react-dom: 18.x react-hook-form: 7.47.0 - checksum: 694c23e2088be22d018273249c0e46a1310ac98853b9c01c960422f3dc404a4a5eb1fd2528746c8203dd61f4dfbcba60282a4ad690bf9eaaa73a9253fb39ff78 + checksum: 7dd989fa9ef936bb03569aff2801e236af4e6ccb12024829469cc86de264334d50916ca6170d911811bd4c92daafb496740078262c4c8c4700c72a3b35ad1e67 languageName: node linkType: hard @@ -19853,7 +19848,7 @@ __metadata: languageName: node linkType: hard -"lodash.isequal@npm:4.5.0, lodash.isequal@npm:^4.5.0": +"lodash.isequal@npm:^4.5.0": version: 4.5.0 resolution: "lodash.isequal@npm:4.5.0" checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644 From 46877b02996fd566930ec3706657bbdfb91dc231 Mon Sep 17 00:00:00 2001 From: Hallvard Andreas Stark <57254397+hallvardastark@users.noreply.github.com> Date: Mon, 11 Dec 2023 16:21:30 +0100 Subject: [PATCH 4/9] Bedre lesbarhet i behandlingsvelgeren (#5414) * Bedre lesbarhet i behandlingsvelgeren * fiks test * fix test --- .../fagsakprofile/FagsakProfileIndex.spec.tsx | 4 +- .../src/components/BehandlingPicker.tsx | 75 ++++++++++--------- .../BehandlingPickerItemContent.spec.tsx | 39 +++------- .../BehandlingPickerItemContent.tsx | 18 ++++- .../behandlingPickerItemContent.module.css | 10 +++ 5 files changed, 80 insertions(+), 66 deletions(-) diff --git a/packages/sak-app/src/fagsakprofile/FagsakProfileIndex.spec.tsx b/packages/sak-app/src/fagsakprofile/FagsakProfileIndex.spec.tsx index dc2d072ccd..fa12bd11d9 100644 --- a/packages/sak-app/src/fagsakprofile/FagsakProfileIndex.spec.tsx +++ b/packages/sak-app/src/fagsakprofile/FagsakProfileIndex.spec.tsx @@ -191,8 +191,8 @@ describe('', () => { expect(screen.queryAllByTestId('BehandlingPickerItem').length).toBe(2); expect(screen.getByTestId('BehandlingPicker')).toBeInTheDocument(); expect(screen.getByText('123 - Opprettet')).toBeInTheDocument(); - expect(screen.getByText('Førstegangsbehandling')).toBeInTheDocument(); - expect(screen.getByText('Viderebehandling')).toBeInTheDocument(); + expect(screen.getByText('1. Førstegangsbehandling')).toBeInTheDocument(); + expect(screen.getByText('2. Viderebehandling')).toBeInTheDocument(); }); it('skal ikke vise alle behandlinger når behandling er valgt', async () => { diff --git a/packages/sak-behandling-velger/src/components/BehandlingPicker.tsx b/packages/sak-behandling-velger/src/components/BehandlingPicker.tsx index bc6d5b80af..42e6dc0c40 100644 --- a/packages/sak-behandling-velger/src/components/BehandlingPicker.tsx +++ b/packages/sak-behandling-velger/src/components/BehandlingPicker.tsx @@ -54,42 +54,45 @@ const renderListItems = ({ intl: IntlShape; alleSøknadsperioder: UseQueryResult[]; activeFilters: string[]; -}): ReactElement[] => - sortBehandlinger(behandlinger) - .filter(behandling => { - if (activeFilters.length === 0) { - return true; - } - if (activeFilters.includes(automatiskBehandling)) { - return erAutomatiskBehandlet(behandling); - } - return activeFilters.includes(behandling.type.kode); - }) - .map(behandling => ( -
  • - setValgtBehandlingId(behandling.id)} - className={styles.linkToBehandling} - to={getBehandlingLocation(behandling.id)} - > - periode.data?.id === behandling.id)?.data?.perioder} - erFerdigstilt={!!behandling.avsluttet} - erUnntaksløype={behandling.type.kode === behandlingType.UNNTAK} - /> - -
  • - )); +}): ReactElement[] => { + const sorterteOgFiltrerteBehandlinger = sortBehandlinger(behandlinger).filter(behandling => { + if (activeFilters.length === 0) { + return true; + } + if (activeFilters.includes(automatiskBehandling)) { + return erAutomatiskBehandlet(behandling); + } + return activeFilters.includes(behandling.type.kode); + }); + + return sorterteOgFiltrerteBehandlinger.map((behandling, index) => ( +
  • + setValgtBehandlingId(behandling.id)} + className={styles.linkToBehandling} + to={getBehandlingLocation(behandling.id)} + > + periode.data?.id === behandling.id)?.data?.perioder} + erFerdigstilt={!!behandling.avsluttet} + erUnntaksløype={behandling.type.kode === behandlingType.UNNTAK} + index={sorterteOgFiltrerteBehandlinger.length - index} + opprettet={behandling.opprettet} + /> + +
  • + )); +}; const usePrevious = (value: number): number => { const ref = useRef(); diff --git a/packages/sak-behandling-velger/src/components/BehandlingPickerItemContent.spec.tsx b/packages/sak-behandling-velger/src/components/BehandlingPickerItemContent.spec.tsx index 2ca2f9e53a..e6f6312968 100644 --- a/packages/sak-behandling-velger/src/components/BehandlingPickerItemContent.spec.tsx +++ b/packages/sak-behandling-velger/src/components/BehandlingPickerItemContent.spec.tsx @@ -1,14 +1,12 @@ +import { renderWithIntl } from '@fpsak-frontend/utils-test/src/test-utils'; +import { screen } from '@testing-library/react'; import React from 'react'; -import { shallow } from 'enzyme'; -import Panel from 'nav-frontend-paneler'; - -import { DateLabel } from '@fpsak-frontend/shared-components'; - +import messages from '../../i18n/nb_NO.json'; import BehandlingPickerItemContent from './BehandlingPickerItemContent'; describe('', () => { it('skal rendre komponent', () => { - const wrapper = shallow( + renderWithIntl( ', () => { søknadsperioder={[{ fom: '2022-01-01', tom: '2022-01-18' }]} erFerdigstilt erUnntaksløype={false} + index={1} + opprettet="2021-12-20T09:21:41" />, + { + locale: 'nb-NO', + messages, + }, ); - expect(wrapper.find(Panel)).toHaveLength(1); - expect(wrapper.find(DateLabel)).toHaveLength(2); - }); - - it('skal vise avsluttet dato når denne finnes', () => { - const wrapper = shallow( - , - ); - - const labels = wrapper.find(DateLabel); - expect(labels).toHaveLength(2); - expect(labels.first().prop('dateString')).toEqual('2022-01-01'); - expect(labels.last().prop('dateString')).toEqual('2022-01-18'); + expect(screen.getByText('1. Viderebehandling')).toBeInTheDocument(); + expect(screen.getByText('20.12.2021')).toBeInTheDocument(); }); }); diff --git a/packages/sak-behandling-velger/src/components/BehandlingPickerItemContent.tsx b/packages/sak-behandling-velger/src/components/BehandlingPickerItemContent.tsx index 34c3f485a8..37990e798c 100644 --- a/packages/sak-behandling-velger/src/components/BehandlingPickerItemContent.tsx +++ b/packages/sak-behandling-velger/src/components/BehandlingPickerItemContent.tsx @@ -1,11 +1,12 @@ import calendarImg from '@fpsak-frontend/assets/images/calendar-2.svg'; import chevronBlueRightImg from '@fpsak-frontend/assets/images/chevron_blue_right.svg'; -import { Image } from '@fpsak-frontend/shared-components'; +import { DateLabel, Image } from '@fpsak-frontend/shared-components'; import { Periode } from '@k9-sak-web/types'; import Panel from 'nav-frontend-paneler'; import { Normaltekst, Undertittel } from 'nav-frontend-typografi'; import React from 'react'; import { FormattedMessage } from 'react-intl'; +import { BodyShort } from '@navikt/ds-react'; import styles from './behandlingPickerItemContent.module.css'; import { getFormattedSøknadserioder, getStatusIcon, getStatusText } from './behandlingVelgerUtils'; @@ -28,6 +29,8 @@ interface OwnProps { søknadsperioder: Periode[]; erFerdigstilt: boolean; erUnntaksløype: boolean; + index: number; + opprettet: string; } /** @@ -43,11 +46,14 @@ const BehandlingPickerItemContent: React.FC = ({ søknadsperioder, erFerdigstilt, erUnntaksløype, + index, + opprettet, }) => (
    + {`${index}. `} {behandlingTypeNavn} {erAutomatiskRevurdering ? getAutomatiskRevurderingText() : ''} {erUnntaksløype ? getUnntaksløypeText() : ''} @@ -69,6 +75,16 @@ const BehandlingPickerItemContent: React.FC = ({ {getStatusText(behandlingsresultatTypeKode, behandlingsresultatTypeNavn, erFerdigstilt)}
    + {opprettet && ( +
    + + Opprettet: + + + + +
    + )}
    diff --git a/packages/sak-behandling-velger/src/components/behandlingPickerItemContent.module.css b/packages/sak-behandling-velger/src/components/behandlingPickerItemContent.module.css index 225bf1bf51..d898e9595b 100644 --- a/packages/sak-behandling-velger/src/components/behandlingPickerItemContent.module.css +++ b/packages/sak-behandling-velger/src/components/behandlingPickerItemContent.module.css @@ -98,3 +98,13 @@ margin-left: 10%; width: 90%; } + +.opprettetDatoContainer { + align-items: center; + display: flex; + margin-top: 0.5rem; + + p:first-of-type { + margin-right: 0.25rem; + } +} From b646ac700362c2a2918c13e812569d0b0acbe414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vebj=C3=B8rn=20Nordby?= Date: Mon, 11 Dec 2023 16:34:56 +0100 Subject: [PATCH 5/9] =?UTF-8?q?M=C3=A5=20oppgi=20=C3=A5ret=20barnet=20blir?= =?UTF-8?q?=2018=20dersom=20aksjonspunkt=20er=20avsl=C3=A5tt=20tidligere,?= =?UTF-8?q?=20for=20da=20vil=20periode.tom=20v=C3=A6re=209999-12-31=20og?= =?UTF-8?q?=20utenfor=20s=C3=B8knadsperioden=20(#5415)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Hallvard Andreas Stark <57254397+hallvardastark@users.noreply.github.com> --- .../KroniskSykObjektTilMikrofrontend.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/behandling-utvidet-rett/src/panelDefinisjoner/prosessStegPaneler/utvidetRettPanel/utvidetRettMikrofrontend/formateringAvDataTilMikrofrontend/KroniskSykObjektTilMikrofrontend.ts b/packages/behandling-utvidet-rett/src/panelDefinisjoner/prosessStegPaneler/utvidetRettPanel/utvidetRettMikrofrontend/formateringAvDataTilMikrofrontend/KroniskSykObjektTilMikrofrontend.ts index f95bd4be08..af0cdbed98 100644 --- a/packages/behandling-utvidet-rett/src/panelDefinisjoner/prosessStegPaneler/utvidetRettPanel/utvidetRettMikrofrontend/formateringAvDataTilMikrofrontend/KroniskSykObjektTilMikrofrontend.ts +++ b/packages/behandling-utvidet-rett/src/panelDefinisjoner/prosessStegPaneler/utvidetRettPanel/utvidetRettMikrofrontend/formateringAvDataTilMikrofrontend/KroniskSykObjektTilMikrofrontend.ts @@ -27,7 +27,12 @@ const formatereLosAksjonspunktObjektForKroniskSyk = ( fraDato: string, vilkar: Vilkar, avslagsårsakKode: string, + soknad: UtvidetRettSoknad, ) => { + const angittBarn = soknad.angittePersoner.find(person => person.rolle === 'BARN'); + const barnetsFodselsdato = new Date(angittBarn.fødselsdato); + const åretBarnetFyller18 = `${barnetsFodselsdato.getFullYear() + 18}-12-31`; + const losAksjonspunktObjekt = { kode: aksjonspunktKode, begrunnelse, @@ -36,9 +41,9 @@ const formatereLosAksjonspunktObjektForKroniskSyk = ( periode: { fom: fraDato, tom: - typeof vilkar.perioder[0]?.periode.tom !== 'undefined' && vilkar.perioder[0]?.periode.tom !== null + typeof vilkar.perioder[0]?.periode.tom && vilkar.perioder[0]?.periode.tom !== '9999-12-31' ? vilkar.perioder[0]?.periode.tom - : '', + : åretBarnetFyller18, }, }; @@ -98,6 +103,7 @@ const KroniskSykObjektTilMikrofrontend = ({ fraDato || soknad.soknadsdato, vilkar, avslagsårsakKode, + soknad, ), ]); }, From dd025ddf7d8390d03fac09a79eb23c9a2aad7a94 Mon Sep 17 00:00:00 2001 From: "Thomas H. Wiberg" Date: Tue, 12 Dec 2023 08:56:57 +0100 Subject: [PATCH 6/9] Overstyring uttak overforing (#5408) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Bruk relevanteAksjonspunkter fra ProsessStegPanelDef * Relevante aksjonspunkter (#5383) * Unngå doble serverkall pga (#5380) Fikser nokon stader der sidekomponenter som laster data frå server vart rendra eit lite øyeblikk, før dei vart erstatta med visning av LoadingPanel pga datalasting frå server lenger ute i komponenthierarkiet. Slik rendering medføre at serverkall for datalasting frå komponenter lenger nede i hierarkiet skjer fleire ganger uten nokon god grunn. Det er sannsynlegvis fleire stader i koden der dette er eit problem. Sjå etter kode som sjekker på xxx === RestApiState.LOADING uten å sjekke xxx === RestApiState.NOT_STARTED. * relevanteAksjonspunkter --------- Co-authored-by: Jostein Stuhaug <135307852+josstn@users.noreply.github.com> * Klargjøring for overstyring i uttak * Omstrukturering av types og constants, og nye types og constants * Nye Utils * Create OverstyrUttakContext.tsx * Oppdater ContainerContract * Legg til OverstyrUttakForm * Feature toggle overstyring uttak * Overstyring oiverført * Rydde * Overflødig komponent * Ikke påkrevde props * Button istedenfor lenke * Forhindre potensiell visning av spinner før kall er initiert * Rydde i types * Rydde opp * Import type * erOverstyrer fra rettigheter * erOVerstyrer * Update PleiepengerProsess.spec.tsx * CSS-lint --------- Co-authored-by: Jostein Stuhaug <135307852+josstn@users.noreply.github.com> --- deploy/dev-fss-k9saksbehandling.yml | 2 + deploy/prod-fss-k9saksbehandling.yml | 2 + feature-toggles.json | 4 + package.json | 4 +- .../src/components/ProsessStegPanel.tsx | 6 + .../src/components/Uttak.tsx | 7 +- .../src/components/Uttak.tsx | 7 +- .../src/BehandlingPleiepengerIndex.tsx | 18 +- .../ArbeidsgiverMedManglendePerioderListe.tsx | 2 +- .../src/components/PleiepengerFakta.spec.tsx | 4 +- .../src/components/PleiepengerFakta.tsx | 2 +- .../src/components/PleiepengerPaneler.tsx | 8 +- .../components/PleiepengerProsess.spec.tsx | 10 +- .../src/components/PleiepengerProsess.tsx | 157 +++++++++--------- .../src/components/Uttak.tsx | 42 ++++- .../UttakProsessStegPanelDef.tsx | 21 ++- .../{fetchedDataTsType.ts => FetchedData.ts} | 2 +- .../src/types/OverstyringUttakRequest.ts | 32 ++++ .../behandling-pleiepenger/src/types/index.ts | 3 + packages/kodeverk/src/aksjonspunktCodes.ts | 1 + .../prosess-uttak/src/constants/AnnenPart.ts | 2 +- .../src/constants/Arbeidstype.ts | 2 +- .../IkkeOppfylte\303\205rsakerMedTekst.ts" | 2 +- .../OverseEtablertTilsyn\303\205rsak.ts" | 2 +- .../constants/OverstyrUttakFormFieldName.ts | 17 ++ .../prosess-uttak/src/constants/Parter.ts | 2 +- .../prosess-uttak/src/constants/Utfall.ts | 2 +- packages/prosess-uttak/src/constants/index.ts | 8 + .../src/constants/\303\205rsaker.ts" | 2 +- .../prosess-uttak/src/types/Arbeidsforhold.ts | 3 +- .../src/types/ArbeidsgiverOpplysninger.ts | 2 +- .../src/types/ContainerContract.ts | 26 ++- .../prosess-uttak/src/types/Endringsstatus.ts | 2 +- .../src/types/FormatertOverstyring.ts | 18 ++ .../src/types/OverstyrUttakFormData.ts | 10 ++ .../OverstyrUttakFormDataUtbetalingsgrad.ts | 11 ++ .../types/OverstyrbareAktiviteterRequest.ts | 6 + .../types/OverstyrbareAktiviteterResponse.ts | 5 + .../src/types/OverstyringUttak.ts | 18 ++ .../src/types/OverstyrtUttakResponse.ts | 19 +++ .../src/types/Utbetalingsgrad.ts | 2 +- .../src/types/UttakOverstyring.ts | 8 + .../prosess-uttak/src/types/Uttaksperioder.ts | 2 +- packages/prosess-uttak/src/types/index.ts | 21 +++ .../prosess-uttak/src/ui/MainComponent.tsx | 27 ++- .../components/icons/key-1-rotert-utgraet.svg | 12 ++ .../src/ui/components/icons/key-1-rotert.svg | 12 ++ .../overstyrUttakForm/AktivitetRad.tsx | 76 +++++++++ .../OverstyrAktivitetListe.css | 26 +++ .../OverstyrAktivitetListe.tsx | 69 ++++++++ .../overstyrUttakForm/OverstyrUttakForm.tsx | 145 ++++++++++++++++ .../OverstyringUttakForm.css | 48 ++++++ .../OverstyringUttakForm.tsx | 156 +++++++++++++++++ .../overstyrUttakForm/aktivitetRad.css | 3 + .../components/AddButton.tsx | 26 +++ .../components/BegrunnelseBoks.tsx | 32 ++++ .../components/OverstyringIkon.tsx | 24 +++ .../components/addButton.css | 15 ++ .../components/begrunnelseBoks.css | 26 +++ .../components/overstyringIkon.css | 13 ++ .../components/overstyrUttakForm/overstyr.css | 3 + .../overstyrUttakForm/overstyrUttakForm.css | 20 +++ .../src/ui/context/OverstyrUttakContext.tsx | 80 +++++++++ packages/prosess-uttak/src/util/dateUtils.ts | 12 ++ .../src/util/overstyringUtils.ts | 51 ++++++ packages/rest-api-hooks/src/RestApiState.ts | 3 + .../historikk/HistorikkIndex.tsx | 8 +- packages/sak-app/src/fagsak/FagsakIndex.tsx | 11 +- webpack/mocks/feature-toggles.js | 4 + 69 files changed, 1292 insertions(+), 136 deletions(-) rename packages/behandling-pleiepenger/src/types/{fetchedDataTsType.ts => FetchedData.ts} (93%) create mode 100644 packages/behandling-pleiepenger/src/types/OverstyringUttakRequest.ts create mode 100644 packages/behandling-pleiepenger/src/types/index.ts create mode 100644 packages/prosess-uttak/src/constants/OverstyrUttakFormFieldName.ts create mode 100644 packages/prosess-uttak/src/constants/index.ts create mode 100644 packages/prosess-uttak/src/types/FormatertOverstyring.ts create mode 100644 packages/prosess-uttak/src/types/OverstyrUttakFormData.ts create mode 100644 packages/prosess-uttak/src/types/OverstyrUttakFormDataUtbetalingsgrad.ts create mode 100644 packages/prosess-uttak/src/types/OverstyrbareAktiviteterRequest.ts create mode 100644 packages/prosess-uttak/src/types/OverstyrbareAktiviteterResponse.ts create mode 100644 packages/prosess-uttak/src/types/OverstyringUttak.ts create mode 100644 packages/prosess-uttak/src/types/OverstyrtUttakResponse.ts create mode 100644 packages/prosess-uttak/src/types/UttakOverstyring.ts create mode 100644 packages/prosess-uttak/src/types/index.ts create mode 100644 packages/prosess-uttak/src/ui/components/icons/key-1-rotert-utgraet.svg create mode 100644 packages/prosess-uttak/src/ui/components/icons/key-1-rotert.svg create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/AktivitetRad.tsx create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyrAktivitetListe.css create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyrAktivitetListe.tsx create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyrUttakForm.tsx create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyringUttakForm.css create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyringUttakForm.tsx create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/aktivitetRad.css create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/components/AddButton.tsx create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/components/BegrunnelseBoks.tsx create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/components/OverstyringIkon.tsx create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/components/addButton.css create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/components/begrunnelseBoks.css create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/components/overstyringIkon.css create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/overstyr.css create mode 100644 packages/prosess-uttak/src/ui/components/overstyrUttakForm/overstyrUttakForm.css create mode 100644 packages/prosess-uttak/src/ui/context/OverstyrUttakContext.tsx create mode 100644 packages/prosess-uttak/src/util/overstyringUtils.ts diff --git a/deploy/dev-fss-k9saksbehandling.yml b/deploy/dev-fss-k9saksbehandling.yml index fdee5a7e8e..88d918e3fd 100644 --- a/deploy/dev-fss-k9saksbehandling.yml +++ b/deploy/dev-fss-k9saksbehandling.yml @@ -101,3 +101,5 @@ spec: value: "true" - name: LOKALE_PAKKER value: "true" + - name: "OVERSTYRING_UTTAK" + value: "true" diff --git a/deploy/prod-fss-k9saksbehandling.yml b/deploy/prod-fss-k9saksbehandling.yml index a9e66fb953..8bde4761fb 100644 --- a/deploy/prod-fss-k9saksbehandling.yml +++ b/deploy/prod-fss-k9saksbehandling.yml @@ -101,3 +101,5 @@ spec: value: "true" - name: LOKALE_PAKKER value: "false" + - name: "OVERSTYRING_UTTAK" + value: "false" diff --git a/feature-toggles.json b/feature-toggles.json index 592deff7fa..0f7a800095 100644 --- a/feature-toggles.json +++ b/feature-toggles.json @@ -74,5 +74,9 @@ { "key": "LOKALE_PAKKER", "value": "${LOKALE_PAKKER}" + }, + { + "key": "OVERSTYRING_UTTAK", + "value": "${OVERSTYRING_UTTAK}" } ] diff --git a/package.json b/package.json index d09f27ba4f..a02a7f3652 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,9 @@ "lint:fix": "eslint --fix --cache packages --ext .ts,.tsx,.js,.jsx", "css:lint": "stylelint \"packages/**/*.css\"", "dev": "yarn dev-env-variables cross-env NODE_ENV=development APP_URL_K9FORMIDLING=http://localhost:8060/rest/dummy webpack serve --config webpack/webpack.dev.ts", - "dev-env-variables": "cross-env KLAGE_KABAL=true VARSELTEKST=true DOKUMENTDATA=true UNNTAKSBEHANDLING=true UTENLANDSOPPHOLD=true SOKNADPERIODESTRIPE=false TYPE_MEDISINSKE_OPPLYSNINGER_BREV=true LOS_MARKER_BEHANDLING=true LOS_MARKER_BEHANDLING_SUBMIT=true AKSJONSPUNKT_9014=true AKSJONSPUNKT_9015=true FRITEKST_REDIGERING=true FIX_SOKNADSFRIST_KALENDER_OG_READONLY=true INKLUDER_KALENDER_PILS=true FAKTA_BEREGNING_REDESIGN=true LOKALE_PAKKER=true", + "dev-env-variables": "cross-env OVERSTYRING_UTTAK=true KLAGE_KABAL=true VARSELTEKST=true DOKUMENTDATA=true UNNTAKSBEHANDLING=true UTENLANDSOPPHOLD=true SOKNADPERIODESTRIPE=false TYPE_MEDISINSKE_OPPLYSNINGER_BREV=true LOS_MARKER_BEHANDLING=true LOS_MARKER_BEHANDLING_SUBMIT=true AKSJONSPUNKT_9014=true AKSJONSPUNKT_9015=true FRITEKST_REDIGERING=true FIX_SOKNADSFRIST_KALENDER_OG_READONLY=true INKLUDER_KALENDER_PILS=true FAKTA_BEREGNING_REDESIGN=true LOKALE_PAKKER=true", "dev-lokal": "cross-env NODE_ENV=development APP_URL_SAK=http://k9-sak:8080 APP_URL_K9OPPDRAG=http://k9-oppdrag:8070 APP_URL_K9FORMIDLING_DD=http://k9-formidling-dokumentdata:8294 APP_URL_K9FORMIDLING=http://k9-formidling:8290 SPLITTET_SAMMENLINGNING_BEREGNING=true webpack serve --config webpack/webpack.dev.ts", - "dev-med-formidling": "cross-env NODE_ENV=development webpack serve --config webpack/webpack.dev.ts", + "dev-med-formidling": "yarn dev-env-variables cross-env NODE_ENV=development webpack serve --config webpack/webpack.dev.ts", "build": "cross-env NODE_ENV=production SENTRY_RELEASE=$(git rev-parse --short HEAD) webpack --config webpack/webpack.prod.ts", "build-ci": "cross-env NODE_ENV=development webpack --env ci='true' --config webpack/webpack.dev.ts", "lerna": "lerna", diff --git a/packages/behandling-felles/src/components/ProsessStegPanel.tsx b/packages/behandling-felles/src/components/ProsessStegPanel.tsx index 412cefba28..a8b3ceb909 100644 --- a/packages/behandling-felles/src/components/ProsessStegPanel.tsx +++ b/packages/behandling-felles/src/components/ProsessStegPanel.tsx @@ -28,6 +28,8 @@ interface OwnProps { lagreOverstyrteAksjonspunkter?: (params: any, keepData?: boolean) => Promise; useMultipleRestApi: (endpoints: EndpointData[], options: Options) => RestApiData; featureToggles?: FeatureToggles; + lagreOverstyringUttak?: (params: any) => void; + erOverstyrer?: boolean; } const ProsessStegPanel = ({ @@ -42,6 +44,8 @@ const ProsessStegPanel = ({ lagreOverstyrteAksjonspunkter, useMultipleRestApi, featureToggles, + lagreOverstyringUttak, + erOverstyrer = false, }: OwnProps) => { const erHenlagtOgVedtakStegValgt = behandling.behandlingHenlagt && valgtProsessSteg && valgtProsessSteg.getUrlKode() === prosessStegCodes.VEDTAK; @@ -119,6 +123,8 @@ const ProsessStegPanel = ({ formData, setFormData, submitCallback: bekreftAksjonspunktCallback, + lagreOverstyringUttak, + erOverstyrer, ...delPaneler[0].getKomponentData(), ...data, })} diff --git a/packages/behandling-opplaeringspenger/src/components/Uttak.tsx b/packages/behandling-opplaeringspenger/src/components/Uttak.tsx index bf17d574a3..23a16e1ea2 100644 --- a/packages/behandling-opplaeringspenger/src/components/Uttak.tsx +++ b/packages/behandling-opplaeringspenger/src/components/Uttak.tsx @@ -1,8 +1,10 @@ +import React from 'react'; + import aksjonspunktCodes from '@fpsak-frontend/kodeverk/src/aksjonspunktCodes'; import aksjonspunktStatus from '@fpsak-frontend/kodeverk/src/aksjonspunktStatus'; import { Aksjonspunkt, AlleKodeverk, ArbeidsgiverOpplysningerPerId } from '@k9-sak-web/types'; import { Uttak } from '@k9-sak-web/prosess-uttak'; -import React from 'react'; +import { useFeatureToggles } from '@fpsak-frontend/shared-components'; interface UttakProps { uuid: string; @@ -25,6 +27,7 @@ export default ({ submitCallback, virkningsdatoUttakNyeRegler, }: UttakProps) => { + const [featureToggles] = useFeatureToggles(); const relevanteAksjonspunkter = [aksjonspunktCodes.VENT_ANNEN_PSB_SAK, aksjonspunktCodes.VURDER_DATO_NY_REGEL_UTTAK]; const funnedeRelevanteAksjonspunkter = aksjonspunkter.filter(aksjonspunkt => relevanteAksjonspunkter.some(relevantAksjonspunkt => relevantAksjonspunkt === aksjonspunkt.definisjon.kode), @@ -48,6 +51,8 @@ export default ({ kodeverkUtenlandsoppholdÅrsak: alleKodeverk?.UtenlandsoppholdÅrsak, løsAksjonspunktVurderDatoNyRegelUttak, virkningsdatoUttakNyeRegler, + featureToggles, + erOverstyrer: false, // Overstyring er ikke implementert for Pleiepenger }} /> ); diff --git a/packages/behandling-pleiepenger-sluttfase/src/components/Uttak.tsx b/packages/behandling-pleiepenger-sluttfase/src/components/Uttak.tsx index c5ebb0fa91..c58e06789e 100644 --- a/packages/behandling-pleiepenger-sluttfase/src/components/Uttak.tsx +++ b/packages/behandling-pleiepenger-sluttfase/src/components/Uttak.tsx @@ -1,8 +1,10 @@ +import React from 'react'; + import aksjonspunktCodes from '@fpsak-frontend/kodeverk/src/aksjonspunktCodes'; import aksjonspunktStatus from '@fpsak-frontend/kodeverk/src/aksjonspunktStatus'; import { Aksjonspunkt, AlleKodeverk, ArbeidsgiverOpplysningerPerId } from '@k9-sak-web/types'; import { Uttak } from '@k9-sak-web/prosess-uttak'; -import React from 'react'; +import { useFeatureToggles } from '@fpsak-frontend/shared-components'; interface UttakProps { uuid: string; @@ -27,6 +29,7 @@ export default ({ submitCallback, virkningsdatoUttakNyeRegler, }: UttakProps) => { + const [featureToggles] = useFeatureToggles(); const relevanteAksjonspunkter = [aksjonspunktCodes.VENT_ANNEN_PSB_SAK, aksjonspunktCodes.VURDER_DATO_NY_REGEL_UTTAK]; const funnedeRelevanteAksjonspunkter = aksjonspunkter.filter(aksjonspunkt => relevanteAksjonspunkter.some(relevantAksjonspunkt => relevantAksjonspunkt === aksjonspunkt.definisjon.kode), @@ -51,6 +54,8 @@ export default ({ løsAksjonspunktVurderDatoNyRegelUttak, virkningsdatoUttakNyeRegler, aksjonspunkter: funnedeRelevanteAksjonspunkter, + featureToggles, + erOverstyrer: false, // Overstyring er ikke implementert for PILS }} /> ); diff --git a/packages/behandling-pleiepenger/src/BehandlingPleiepengerIndex.tsx b/packages/behandling-pleiepenger/src/BehandlingPleiepengerIndex.tsx index 7c703b3431..4fb193aca8 100644 --- a/packages/behandling-pleiepenger/src/BehandlingPleiepengerIndex.tsx +++ b/packages/behandling-pleiepenger/src/BehandlingPleiepengerIndex.tsx @@ -21,7 +21,7 @@ import { requestPleiepengerApi, restApiPleiepengerHooks, } from './data/pleiepengerBehandlingApi'; -import FetchedData from './types/fetchedDataTsType'; +import { OverstyringUttakRequest, FetchedData } from './types'; const pleiepengerData = [ { key: PleiepengerBehandlingApiKeys.AKSJONSPUNKTER }, @@ -133,6 +133,21 @@ const BehandlingPleiepengerIndex = ({ PleiepengerBehandlingApiKeys.SAVE_AKSJONSPUNKT, ); + const { startRequest: lagreOverstyringUttakRequest } = restApiPleiepengerHooks.useRestApiRunner( + PleiepengerBehandlingApiKeys.SAVE_OVERSTYRT_AKSJONSPUNKT, + ); + + const lagreOverstyringUttak = async (values: OverstyringUttakRequest): Promise => { + lagreOverstyringUttakRequest({ + saksnummer: fagsak.saksnummer, + behandlingId: behandling.id, + behandlingVersjon: behandling.versjon, + overstyrteAksjonspunktDtoer: [values], + }) + .then(() => hentBehandling({ behandlingId }, true)) + .then(() => window.scroll(0, 0)); + }; + useEffect(() => { behandlingEventHandler.setHandler({ endreBehandlendeEnhet: params => nyBehandlendeEnhet(params).then(() => hentBehandling({ behandlingId }, true)), @@ -191,6 +206,7 @@ const BehandlingPleiepengerIndex = ({ arbeidsgiverOpplysningerPerId={arbeidsgiverOpplysninger ? arbeidsgiverOpplysninger.arbeidsgivere : {}} featureToggles={featureToggles} dokumenter={alleDokumenter} + lagreOverstyringUttak={lagreOverstyringUttak} /> ); diff --git a/packages/behandling-pleiepenger/src/components/ArbeidsgiverMedManglendePerioderListe.tsx b/packages/behandling-pleiepenger/src/components/ArbeidsgiverMedManglendePerioderListe.tsx index 74c16f209e..4d1f619e53 100644 --- a/packages/behandling-pleiepenger/src/components/ArbeidsgiverMedManglendePerioderListe.tsx +++ b/packages/behandling-pleiepenger/src/components/ArbeidsgiverMedManglendePerioderListe.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { arbeidstypeTilVisning, Arbeidstype } from '../types/Arbeidstype'; +import { arbeidstypeTilVisning, Arbeidstype } from '../types'; interface ArbeidsgiverMedPerioder { arbeidsgiverNavn: string; diff --git a/packages/behandling-pleiepenger/src/components/PleiepengerFakta.spec.tsx b/packages/behandling-pleiepenger/src/components/PleiepengerFakta.spec.tsx index 6e9d4e3ed1..a89640cc8e 100644 --- a/packages/behandling-pleiepenger/src/components/PleiepengerFakta.spec.tsx +++ b/packages/behandling-pleiepenger/src/components/PleiepengerFakta.spec.tsx @@ -16,7 +16,7 @@ import { Behandling, Fagsak } from '@k9-sak-web/types'; import sivilstandType from '@fpsak-frontend/kodeverk/src/sivilstandType'; import opplysningAdresseType from '@fpsak-frontend/kodeverk/src/opplysningAdresseType'; import ForeldrepengerFakta from './PleiepengerFakta'; -import FetchedData from '../types/fetchedDataTsType'; +import FetchedData from '../types/FetchedData'; import { PleiepengerBehandlingApiKeys, requestPleiepengerApi } from '../data/pleiepengerBehandlingApi'; describe('', () => { @@ -99,7 +99,7 @@ describe('', () => { statsborgerskap: { kode: '', kodeverk: '', - navn: '' + navn: '', }, diskresjonskode: { kode: '', diff --git a/packages/behandling-pleiepenger/src/components/PleiepengerFakta.tsx b/packages/behandling-pleiepenger/src/components/PleiepengerFakta.tsx index d50f56533f..ddb676413b 100644 --- a/packages/behandling-pleiepenger/src/components/PleiepengerFakta.tsx +++ b/packages/behandling-pleiepenger/src/components/PleiepengerFakta.tsx @@ -16,7 +16,7 @@ import { LoadingPanel } from '@fpsak-frontend/shared-components'; import { RestApiState, useRestApiErrorDispatcher } from '@k9-sak-web/rest-api-hooks'; import faktaPanelDefinisjoner from '../panelDefinisjoner/faktaPleiepengerPanelDefinisjoner'; -import FetchedData from '../types/fetchedDataTsType'; +import FetchedData from '../types/FetchedData'; import { restApiPleiepengerHooks, PleiepengerBehandlingApiKeys } from '../data/pleiepengerBehandlingApi'; const overstyringApCodes = [ac.OVERSTYRING_AV_BEREGNINGSAKTIVITETER, ac.OVERSTYRING_AV_BEREGNINGSGRUNNLAG]; diff --git a/packages/behandling-pleiepenger/src/components/PleiepengerPaneler.tsx b/packages/behandling-pleiepenger/src/components/PleiepengerPaneler.tsx index c97d673f85..6aad908326 100644 --- a/packages/behandling-pleiepenger/src/components/PleiepengerPaneler.tsx +++ b/packages/behandling-pleiepenger/src/components/PleiepengerPaneler.tsx @@ -18,12 +18,13 @@ import { } from '@k9-sak-web/types'; import moment from 'moment'; import React, { useState } from 'react'; -import { Arbeidstype } from '../types/Arbeidstype'; -import FetchedData from '../types/fetchedDataTsType'; +import { Arbeidstype } from '../types'; +import FetchedData from '../types/FetchedData'; import ArbeidsgiverMedManglendePerioderListe from './ArbeidsgiverMedManglendePerioderListe'; import DataFetcher from './DataFetcher'; import PleiepengerFakta from './PleiepengerFakta'; import PleiepengerProsess from './PleiepengerProsess'; +import { OverstyringUttakRequest } from '../types/OverstyringUttakRequest'; interface OwnProps { fetchedData: FetchedData; @@ -43,6 +44,7 @@ interface OwnProps { arbeidsgiverOpplysningerPerId: ArbeidsgiverOpplysningerPerId; featureToggles: FeatureToggles; dokumenter: Dokument[]; + lagreOverstyringUttak: (values: OverstyringUttakRequest) => void; } interface FaktaPanelInfo { @@ -79,6 +81,7 @@ const PleiepengerPaneler = ({ arbeidsgiverOpplysningerPerId, featureToggles, dokumenter, + lagreOverstyringUttak, }: OwnProps) => { const [apentFaktaPanelInfo, setApentFaktaPanel] = useState(); const [beregningErBehandlet, setBeregningErBehandlet] = useState(false); @@ -152,6 +155,7 @@ const PleiepengerPaneler = ({ arbeidsgiverOpplysningerPerId={arbeidsgiverOpplysningerPerId} featureToggles={featureToggles} setBeregningErBehandlet={setBeregningErBehandlet} + lagreOverstyringUttak={lagreOverstyringUttak} /> ', () => { @@ -199,6 +199,7 @@ describe('', () => { arbeidsgiverOpplysningerPerId={arbeidsgiverOpplysningerPerId} featureToggles={{}} setBeregningErBehandlet={() => {}} + lagreOverstyringUttak={sinon.spy()} />, ); @@ -294,6 +295,7 @@ describe('', () => { arbeidsgiverOpplysningerPerId={arbeidsgiverOpplysningerPerId} featureToggles={{}} setBeregningErBehandlet={() => {}} + lagreOverstyringUttak={sinon.spy()} />, ); @@ -353,6 +355,7 @@ describe('', () => { arbeidsgiverOpplysningerPerId={arbeidsgiverOpplysningerPerId} featureToggles={{}} setBeregningErBehandlet={() => {}} + lagreOverstyringUttak={sinon.spy()} />, ); @@ -416,6 +419,7 @@ describe('', () => { arbeidsgiverOpplysningerPerId={arbeidsgiverOpplysningerPerId} featureToggles={{}} setBeregningErBehandlet={() => {}} + lagreOverstyringUttak={sinon.spy()} />, ); @@ -477,6 +481,7 @@ describe('', () => { arbeidsgiverOpplysningerPerId={arbeidsgiverOpplysningerPerId} featureToggles={{}} setBeregningErBehandlet={() => {}} + lagreOverstyringUttak={sinon.spy()} />, ); @@ -514,6 +519,7 @@ describe('', () => { arbeidsgiverOpplysningerPerId={arbeidsgiverOpplysningerPerId} featureToggles={{}} setBeregningErBehandlet={() => {}} + lagreOverstyringUttak={sinon.spy()} />, ); @@ -554,6 +560,7 @@ describe('', () => { arbeidsgiverOpplysningerPerId={arbeidsgiverOpplysningerPerId} featureToggles={{}} setBeregningErBehandlet={() => {}} + lagreOverstyringUttak={sinon.spy()} />, ); @@ -599,6 +606,7 @@ describe('', () => { arbeidsgiverOpplysningerPerId={arbeidsgiverOpplysningerPerId} featureToggles={{}} setBeregningErBehandlet={() => {}} + lagreOverstyringUttak={sinon.spy()} />, ); diff --git a/packages/behandling-pleiepenger/src/components/PleiepengerProsess.tsx b/packages/behandling-pleiepenger/src/components/PleiepengerProsess.tsx index 67c7faf6ab..8be02907b0 100644 --- a/packages/behandling-pleiepenger/src/components/PleiepengerProsess.tsx +++ b/packages/behandling-pleiepenger/src/components/PleiepengerProsess.tsx @@ -24,7 +24,7 @@ import { import { PleiepengerBehandlingApiKeys, restApiPleiepengerHooks } from '../data/pleiepengerBehandlingApi'; import prosessStegPanelDefinisjoner from '../panelDefinisjoner/prosessStegPleiepengerPanelDefinisjoner'; -import FetchedData from '../types/fetchedDataTsType'; +import FetchedData from '../types/FetchedData'; interface OwnProps { data: FetchedData; @@ -44,84 +44,87 @@ interface OwnProps { arbeidsgiverOpplysningerPerId: ArbeidsgiverOpplysningerPerId; featureToggles: FeatureToggles; setBeregningErBehandlet: (value: boolean) => void; + lagreOverstyringUttak: (values: any) => void; } -const getForhandsvisFptilbakeCallback = ( - forhandsvisTilbakekrevingMelding: (data: any) => Promise, - fagsak: Fagsak, - behandling: Behandling, -) => (mottaker: string, brevmalkode: string, fritekst: string, saksnummer: string) => { - const data = { - behandlingUuid: behandling.uuid, - fagsakYtelseType: fagsak.sakstype, - varseltekst: fritekst || '', - mottaker, - brevmalkode, - saksnummer, +const getForhandsvisFptilbakeCallback = + (forhandsvisTilbakekrevingMelding: (data: any) => Promise, fagsak: Fagsak, behandling: Behandling) => + (mottaker: string, brevmalkode: string, fritekst: string, saksnummer: string) => { + const data = { + behandlingUuid: behandling.uuid, + fagsakYtelseType: fagsak.sakstype, + varseltekst: fritekst || '', + mottaker, + brevmalkode, + saksnummer, + }; + return forhandsvisTilbakekrevingMelding(data).then(response => forhandsvis(response)); }; - return forhandsvisTilbakekrevingMelding(data).then(response => forhandsvis(response)); -}; - -const getLagringSideeffekter = ( - toggleIverksetterVedtakModal, - toggleFatterVedtakModal, - oppdaterProsessStegOgFaktaPanelIUrl, - opneSokeside, - lagreDokumentdata, -) => async aksjonspunktModels => { - const erRevurderingsaksjonspunkt = aksjonspunktModels.some( - apModel => - (apModel.kode === aksjonspunktCodes.VARSEL_REVURDERING_MANUELL || - apModel.kode === aksjonspunktCodes.VARSEL_REVURDERING_ETTERKONTROLL) && - apModel.sendVarsel, - ); - const visIverksetterVedtakModal = aksjonspunktModels.some( - aksjonspunkt => - aksjonspunkt.isVedtakSubmission && - [ - aksjonspunktCodes.VEDTAK_UTEN_TOTRINNSKONTROLL, - aksjonspunktCodes.FATTER_VEDTAK, - aksjonspunktCodes.FORESLA_VEDTAK_MANUELT, - ].includes(aksjonspunkt.kode), - ); +const getLagringSideeffekter = + ( + toggleIverksetterVedtakModal, + toggleFatterVedtakModal, + oppdaterProsessStegOgFaktaPanelIUrl, + opneSokeside, + lagreDokumentdata, + ) => + async aksjonspunktModels => { + const erRevurderingsaksjonspunkt = aksjonspunktModels.some( + apModel => + (apModel.kode === aksjonspunktCodes.VARSEL_REVURDERING_MANUELL || + apModel.kode === aksjonspunktCodes.VARSEL_REVURDERING_ETTERKONTROLL) && + apModel.sendVarsel, + ); - const visFatterVedtakModal = - aksjonspunktModels[0].isVedtakSubmission && aksjonspunktModels[0].kode === aksjonspunktCodes.FORESLA_VEDTAK; + const visIverksetterVedtakModal = aksjonspunktModels.some( + aksjonspunkt => + aksjonspunkt.isVedtakSubmission && + [ + aksjonspunktCodes.VEDTAK_UTEN_TOTRINNSKONTROLL, + aksjonspunktCodes.FATTER_VEDTAK, + aksjonspunktCodes.FORESLA_VEDTAK_MANUELT, + ].includes(aksjonspunkt.kode), + ); - if (aksjonspunktModels[0].isVedtakSubmission) { - const dokumentdata = lagDokumentdata(aksjonspunktModels[0]); - if (dokumentdata) await lagreDokumentdata(dokumentdata); - } + const visFatterVedtakModal = + aksjonspunktModels[0].isVedtakSubmission && aksjonspunktModels[0].kode === aksjonspunktCodes.FORESLA_VEDTAK; - // Returner funksjon som blir kjørt etter lagring av aksjonspunkt(er) - return () => { - if (visFatterVedtakModal) { - toggleFatterVedtakModal(true); - } else if (visIverksetterVedtakModal) { - toggleIverksetterVedtakModal(true); - } else if (erRevurderingsaksjonspunkt) { - opneSokeside(); - } else { - oppdaterProsessStegOgFaktaPanelIUrl('default', 'default'); + if (aksjonspunktModels[0].isVedtakSubmission) { + const dokumentdata = lagDokumentdata(aksjonspunktModels[0]); + if (dokumentdata) await lagreDokumentdata(dokumentdata); } + + // Returner funksjon som blir kjørt etter lagring av aksjonspunkt(er) + return () => { + if (visFatterVedtakModal) { + toggleFatterVedtakModal(true); + } else if (visIverksetterVedtakModal) { + toggleIverksetterVedtakModal(true); + } else if (erRevurderingsaksjonspunkt) { + opneSokeside(); + } else { + oppdaterProsessStegOgFaktaPanelIUrl('default', 'default'); + } + }; }; -}; -const getHentFritekstbrevHtmlCallback = ( - hentFriteksbrevHtml: (data: any) => Promise, - behandling: Behandling, - fagsak: Fagsak, - fagsakPerson: FagsakPerson, -) => (parameters: any) => - hentFriteksbrevHtml({ - ...parameters, - eksternReferanse: behandling.uuid, - ytelseType: fagsak.sakstype, - saksnummer: fagsak.saksnummer, - aktørId: fagsakPerson.aktørId, - avsenderApplikasjon: bestemAvsenderApp(behandling.type.kode), - }); +const getHentFritekstbrevHtmlCallback = + ( + hentFriteksbrevHtml: (data: any) => Promise, + behandling: Behandling, + fagsak: Fagsak, + fagsakPerson: FagsakPerson, + ) => + (parameters: any) => + hentFriteksbrevHtml({ + ...parameters, + eksternReferanse: behandling.uuid, + ytelseType: fagsak.sakstype, + saksnummer: fagsak.saksnummer, + aktørId: fagsakPerson.aktørId, + avsenderApplikasjon: bestemAvsenderApp(behandling.type.kode), + }); const PleiepengerProsess = ({ data, @@ -141,16 +144,16 @@ const PleiepengerProsess = ({ arbeidsgiverOpplysningerPerId, featureToggles, setBeregningErBehandlet, + lagreOverstyringUttak, }: OwnProps) => { prosessStegHooks.useOppdateringAvBehandlingsversjon(behandling.versjon, oppdaterBehandlingVersjon); - const { startRequest: lagreAksjonspunkter, data: apBehandlingRes } = restApiPleiepengerHooks.useRestApiRunner< - Behandling - >(PleiepengerBehandlingApiKeys.SAVE_AKSJONSPUNKT); - const { - startRequest: lagreOverstyrteAksjonspunkter, - data: apOverstyrtBehandlingRes, - } = restApiPleiepengerHooks.useRestApiRunner(PleiepengerBehandlingApiKeys.SAVE_OVERSTYRT_AKSJONSPUNKT); + const { startRequest: lagreAksjonspunkter, data: apBehandlingRes } = + restApiPleiepengerHooks.useRestApiRunner(PleiepengerBehandlingApiKeys.SAVE_AKSJONSPUNKT); + + const { startRequest: lagreOverstyrteAksjonspunkter, data: apOverstyrtBehandlingRes } = + restApiPleiepengerHooks.useRestApiRunner(PleiepengerBehandlingApiKeys.SAVE_OVERSTYRT_AKSJONSPUNKT); + const { startRequest: forhandsvisMelding } = restApiPleiepengerHooks.useRestApiRunner( PleiepengerBehandlingApiKeys.PREVIEW_MESSAGE, ); @@ -257,6 +260,8 @@ const PleiepengerProsess = ({ lagreOverstyrteAksjonspunkter={lagreOverstyrteAksjonspunkter} useMultipleRestApi={restApiPleiepengerHooks.useMultipleRestApi} featureToggles={featureToggles} + lagreOverstyringUttak={lagreOverstyringUttak} + erOverstyrer={rettigheter.kanOverstyreAccess.isEnabled} /> diff --git a/packages/behandling-pleiepenger/src/components/Uttak.tsx b/packages/behandling-pleiepenger/src/components/Uttak.tsx index 5ef8d9e4a3..6c8ff8658e 100644 --- a/packages/behandling-pleiepenger/src/components/Uttak.tsx +++ b/packages/behandling-pleiepenger/src/components/Uttak.tsx @@ -1,11 +1,17 @@ +import React from 'react'; + +import { useFeatureToggles } from '@fpsak-frontend/shared-components'; import aksjonspunktCodes from '@fpsak-frontend/kodeverk/src/aksjonspunktCodes'; import aksjonspunktStatus from '@fpsak-frontend/kodeverk/src/aksjonspunktStatus'; -import { Aksjonspunkt, AlleKodeverk, ArbeidsgiverOpplysningerPerId } from '@k9-sak-web/types'; +import { Aksjonspunkt, AlleKodeverk, ArbeidsgiverOpplysningerPerId, Behandling } from '@k9-sak-web/types'; import { Uttak } from '@k9-sak-web/prosess-uttak'; -import React from 'react'; +import { useRestApiErrorDispatcher } from '@k9-sak-web/rest-api-hooks'; +import { findEndpointsForMicrofrontend, httpErrorHandler } from '@fpsak-frontend/utils'; +import { VilkarResultPicker } from '@k9-sak-web/prosess-felles'; interface UttakProps { uuid: string; + behandling: Behandling; uttaksperioder: any; utsattePerioder: string[]; virkningsdatoUttakNyeRegler?: string; @@ -13,9 +19,14 @@ interface UttakProps { aksjonspunkter: Aksjonspunkt[]; alleKodeverk: AlleKodeverk; submitCallback: (data: { kode: string; begrunnelse: string; virkningsdato: string }[]) => void; + lagreOverstyringUttak: (values: any) => void; + relevanteAksjonspunkter: string[]; + erOverstyrer: boolean; } + export default ({ uuid, + behandling, uttaksperioder, utsattePerioder, arbeidsgiverOpplysningerPerId, @@ -23,8 +34,16 @@ export default ({ alleKodeverk, submitCallback, virkningsdatoUttakNyeRegler, + lagreOverstyringUttak, + relevanteAksjonspunkter, + erOverstyrer, }: UttakProps) => { - const relevanteAksjonspunkter = [aksjonspunktCodes.VENT_ANNEN_PSB_SAK, aksjonspunktCodes.VURDER_DATO_NY_REGEL_UTTAK]; + const [featureToggles] = useFeatureToggles(); + const { versjon, links } = behandling; + const { addErrorMessage } = useRestApiErrorDispatcher(); + const httpErrorHandlerCaller = (status: number, locationHeader?: string) => + httpErrorHandler(status, addErrorMessage, locationHeader); + const funnedeRelevanteAksjonspunkter = aksjonspunkter.filter(aksjonspunkt => relevanteAksjonspunkter.some(relevantAksjonspunkt => relevantAksjonspunkt === aksjonspunkt.definisjon.kode), ); @@ -35,9 +54,22 @@ export default ({ const løsAksjonspunktVurderDatoNyRegelUttak = ({ begrunnelse, virkningsdato }) => submitCallback([{ kode: aksjonspunktCodes.VURDER_DATO_NY_REGEL_UTTAK, begrunnelse, virkningsdato }]); + const handleOverstyringAksjonspunkt = async values => { + lagreOverstyringUttak({ + '@type': aksjonspunktCodes.OVERSTYRING_AV_UTTAK_KODE, + ...VilkarResultPicker.transformValues(values), + ...values, + }); + }; + return ( ); diff --git a/packages/behandling-pleiepenger/src/panelDefinisjoner/prosessStegPaneler/UttakProsessStegPanelDef.tsx b/packages/behandling-pleiepenger/src/panelDefinisjoner/prosessStegPaneler/UttakProsessStegPanelDef.tsx index e10c723d50..04a99b395c 100644 --- a/packages/behandling-pleiepenger/src/panelDefinisjoner/prosessStegPaneler/UttakProsessStegPanelDef.tsx +++ b/packages/behandling-pleiepenger/src/panelDefinisjoner/prosessStegPaneler/UttakProsessStegPanelDef.tsx @@ -15,21 +15,32 @@ class PanelDef extends ProsessStegPanelDef { aksjonspunkter, alleKodeverk, submitCallback, - virkningsdatoUttakNyeRegler, + lagreOverstyringUttak, + virkningsDatoUttakNyeRegler, + relevanteAksjonspunkter, + erOverstyrer, }) => ( ); - getAksjonspunktKoder = () => [aksjonspunktCodes.VENT_ANNEN_PSB_SAK, aksjonspunktCodes.VURDER_DATO_NY_REGEL_UTTAK]; + getAksjonspunktKoder = () => [ + aksjonspunktCodes.VENT_ANNEN_PSB_SAK, + aksjonspunktCodes.VURDER_DATO_NY_REGEL_UTTAK, + aksjonspunktCodes.OVERSTYRING_AV_UTTAK_KODE, + ]; getOverstyrVisningAvKomponent = () => true; @@ -55,12 +66,12 @@ class PanelDef extends ProsessStegPanelDef { getEndepunkter = () => [PleiepengerBehandlingApiKeys.ARBEIDSFORHOLD]; getData = ({ uttak, arbeidsgiverOpplysningerPerId, alleKodeverk }) => ({ - uttaksperioder: - uttak?.uttaksplan != null ? uttak?.uttaksplan?.perioder : uttak?.simulertUttaksplan?.perioder, + uttaksperioder: uttak?.uttaksplan != null ? uttak?.uttaksplan?.perioder : uttak?.simulertUttaksplan?.perioder, utsattePerioder: uttak?.utsattePerioder, virkningsdatoUttakNyeRegler: uttak?.virkningsdatoUttakNyeRegler, arbeidsgiverOpplysningerPerId, alleKodeverk, + relevanteAksjonspunkter: this.getAksjonspunktKoder(), }); } diff --git a/packages/behandling-pleiepenger/src/types/fetchedDataTsType.ts b/packages/behandling-pleiepenger/src/types/FetchedData.ts similarity index 93% rename from packages/behandling-pleiepenger/src/types/fetchedDataTsType.ts rename to packages/behandling-pleiepenger/src/types/FetchedData.ts index f9f2704ec3..5de619b41b 100644 --- a/packages/behandling-pleiepenger/src/types/fetchedDataTsType.ts +++ b/packages/behandling-pleiepenger/src/types/FetchedData.ts @@ -8,7 +8,7 @@ import { BeregningsresultatUtbetalt, } from '@k9-sak-web/types'; -interface FetchedData { +export interface FetchedData { aksjonspunkter: Aksjonspunkt[]; vilkar: Vilkar[]; personopplysninger: Personopplysninger; diff --git a/packages/behandling-pleiepenger/src/types/OverstyringUttakRequest.ts b/packages/behandling-pleiepenger/src/types/OverstyringUttakRequest.ts new file mode 100644 index 0000000000..8fc2dffb9c --- /dev/null +++ b/packages/behandling-pleiepenger/src/types/OverstyringUttakRequest.ts @@ -0,0 +1,32 @@ +export type OverstyringUttakArbeidsforhold = { + type: string | null; + organisasjonsnummer: string | null; + aktørId: string | null; + arbeidsforholdId: string | null; +}; + +export type OverstyringUttakUtbetalingsgrad = { + arbeidsforhold: OverstyringUttakArbeidsforhold; + utbetalingsgrad: string; +}; + +export type EnkeltOverstyringUttak = { + periode: { fom: string; tom: string }; + lagreEllerOppdater: { + erVilkarOk: boolean; + begrunnelse: string; + periode: { fom: string; tom: string }; + søkersUttaksgrad: string; + utbetalingsgrader: OverstyringUttakUtbetalingsgrad[]; + }; +}; + +export type OverstyringUttakRequest = { + '@type@': string; + periode: { fom?: string; tom?: string }; + erVilkarOk: boolean | undefined; + avslagsDato: string | undefined; + avslagskode: string | undefined; + lagreEllerOppdater: EnkeltOverstyringUttak[]; + slett: [{ id: number | string }][]; +}; diff --git a/packages/behandling-pleiepenger/src/types/index.ts b/packages/behandling-pleiepenger/src/types/index.ts new file mode 100644 index 0000000000..6beb0494e4 --- /dev/null +++ b/packages/behandling-pleiepenger/src/types/index.ts @@ -0,0 +1,3 @@ +export * from './Arbeidstype'; +export * from './FetchedData'; +export * from './OverstyringUttakRequest'; diff --git a/packages/kodeverk/src/aksjonspunktCodes.ts b/packages/kodeverk/src/aksjonspunktCodes.ts index 65b3d862f8..90c026279a 100644 --- a/packages/kodeverk/src/aksjonspunktCodes.ts +++ b/packages/kodeverk/src/aksjonspunktCodes.ts @@ -62,6 +62,7 @@ const aksjonspunktCodes = { OVERSTYR_BEREGNING: '6007', OVERSTYRING_AV_UTTAKPERIODER: '6008', OVERSTYRING_AV_OPPTJENINGSVILKARET: '6011', + OVERSTYRING_AV_UTTAK_KODE: '6017', VURDER_OPPTJENINGSVILKARET: '5089', OVERSTYR_LØPENDE_MEDLEMSKAPSVILKAR: '6012', OVERSTYRING_AV_BEREGNINGSAKTIVITETER: '6014', diff --git a/packages/prosess-uttak/src/constants/AnnenPart.ts b/packages/prosess-uttak/src/constants/AnnenPart.ts index accbce7932..9c738b85b4 100644 --- a/packages/prosess-uttak/src/constants/AnnenPart.ts +++ b/packages/prosess-uttak/src/constants/AnnenPart.ts @@ -1,4 +1,4 @@ -enum AnnenPart { +export enum AnnenPart { ALENE = 'ALENE', MED_ANDRE = 'MED_ANDRE', VENTER_ANDRE = 'VENTER_ANDRE', diff --git a/packages/prosess-uttak/src/constants/Arbeidstype.ts b/packages/prosess-uttak/src/constants/Arbeidstype.ts index 6d07102eeb..0b4c2c33ea 100644 --- a/packages/prosess-uttak/src/constants/Arbeidstype.ts +++ b/packages/prosess-uttak/src/constants/Arbeidstype.ts @@ -1,4 +1,4 @@ -enum Arbeidstype { +export enum Arbeidstype { AT = 'ARBEIDSTAKER', FL = 'FRILANSER', DP = 'DAGPENGER', diff --git "a/packages/prosess-uttak/src/constants/IkkeOppfylte\303\205rsakerMedTekst.ts" "b/packages/prosess-uttak/src/constants/IkkeOppfylte\303\205rsakerMedTekst.ts" index a70bd77463..9a998ac643 100644 --- "a/packages/prosess-uttak/src/constants/IkkeOppfylte\303\205rsakerMedTekst.ts" +++ "b/packages/prosess-uttak/src/constants/IkkeOppfylte\303\205rsakerMedTekst.ts" @@ -1,6 +1,6 @@ import Årsaker from './Årsaker'; -const IkkeOppfylteÅrsakerMedTekst = [ +export const IkkeOppfylteÅrsakerMedTekst = [ { årsak: Årsaker.LOVBESTEMT_FERIE, tekst: 'Årsak for 0 % uttak: Søker avvikler lovbestemt ferie', diff --git "a/packages/prosess-uttak/src/constants/OverseEtablertTilsyn\303\205rsak.ts" "b/packages/prosess-uttak/src/constants/OverseEtablertTilsyn\303\205rsak.ts" index d9960c4df2..8ce49e77a8 100644 --- "a/packages/prosess-uttak/src/constants/OverseEtablertTilsyn\303\205rsak.ts" +++ "b/packages/prosess-uttak/src/constants/OverseEtablertTilsyn\303\205rsak.ts" @@ -1,4 +1,4 @@ -enum OverseEtablertTilsynÅrsak { +export enum OverseEtablertTilsynÅrsak { FOR_LAVT = 'FOR_LAVT', NATTEVÅK = 'NATTEVÅK', BEREDSKAP = 'BEREDSKAP', diff --git a/packages/prosess-uttak/src/constants/OverstyrUttakFormFieldName.ts b/packages/prosess-uttak/src/constants/OverstyrUttakFormFieldName.ts new file mode 100644 index 0000000000..d25827a300 --- /dev/null +++ b/packages/prosess-uttak/src/constants/OverstyrUttakFormFieldName.ts @@ -0,0 +1,17 @@ +export enum OverstyrUttakFormFieldName { + FOM = 'fom', + TOM = 'tom', + UTTAKSGRAD = 'søkersUttaksgrad', + OVERSTYRING = 'overstyring', + BEGRUNNELSE = 'begrunnelse', + UTBETALINGSGRADER = 'utbetalingsgrader', + UTBETALINGSGRAD = 'utbetalingsgrad', + AKTIVITET_ID = 'aktivitetId', + AKTIVITET_NAVN = 'aktivitetNavn', + AKTIVITET_UTBETALINGSGRAD = 'aktivitetUtbetalingsgrad', + ARBEIDSFORHOLD = 'arbeidsforhold', + TYPE = 'type', + ORGANISASJONSNUMMER = 'organisasjonsnummer', + AKTØR_ID = 'aktørId', + ARBEIDSFORHOLD_ID = 'arbeidsforholdId', +} diff --git a/packages/prosess-uttak/src/constants/Parter.ts b/packages/prosess-uttak/src/constants/Parter.ts index 09396337a3..ce3fa64e83 100644 --- a/packages/prosess-uttak/src/constants/Parter.ts +++ b/packages/prosess-uttak/src/constants/Parter.ts @@ -1,4 +1,4 @@ -enum Parter { +export enum Parter { SØKER = 'Søker', } diff --git a/packages/prosess-uttak/src/constants/Utfall.ts b/packages/prosess-uttak/src/constants/Utfall.ts index 2606a69692..a5d293c032 100644 --- a/packages/prosess-uttak/src/constants/Utfall.ts +++ b/packages/prosess-uttak/src/constants/Utfall.ts @@ -1,4 +1,4 @@ -enum Utfall { +export enum Utfall { OPPFYLT = 'OPPFYLT', IKKE_OPPFYLT = 'IKKE_OPPFYLT', } diff --git a/packages/prosess-uttak/src/constants/index.ts b/packages/prosess-uttak/src/constants/index.ts new file mode 100644 index 0000000000..fcbc782c6a --- /dev/null +++ b/packages/prosess-uttak/src/constants/index.ts @@ -0,0 +1,8 @@ +export * from './AnnenPart'; +export * from './Arbeidstype'; +export * from './BarnetsDødsfallÅrsakerMedTekst'; +export * from './IkkeOppfylteÅrsakerMedTekst'; +export * from './OverseEtablertTilsynÅrsak'; +export * from './OverstyrUttakFormFieldName'; +export * from './Parter'; +export * from './Utfall'; diff --git "a/packages/prosess-uttak/src/constants/\303\205rsaker.ts" "b/packages/prosess-uttak/src/constants/\303\205rsaker.ts" index 59fb0b8bda..a143838743 100644 --- "a/packages/prosess-uttak/src/constants/\303\205rsaker.ts" +++ "b/packages/prosess-uttak/src/constants/\303\205rsaker.ts" @@ -1,4 +1,4 @@ -enum Årsaker { +export enum Årsaker { // Oppfylt årsaker GRADERT_MOT_TILSYN = 'GRADERT_MOT_TILSYN', AVKORTET_MOT_INNTEKT = 'AVKORTET_MOT_INNTEKT', diff --git a/packages/prosess-uttak/src/types/Arbeidsforhold.ts b/packages/prosess-uttak/src/types/Arbeidsforhold.ts index 7f3150eddf..7e0551fbf7 100644 --- a/packages/prosess-uttak/src/types/Arbeidsforhold.ts +++ b/packages/prosess-uttak/src/types/Arbeidsforhold.ts @@ -1,6 +1,7 @@ export interface Arbeidsforhold { type: string; - organisasjonsnummer: string; + organisasjonsnummer?: string; + orgnr?: string; aktørId?: string; arbeidsforholdId?: string; } diff --git a/packages/prosess-uttak/src/types/ArbeidsgiverOpplysninger.ts b/packages/prosess-uttak/src/types/ArbeidsgiverOpplysninger.ts index 9f7fed270d..2af25079a5 100644 --- a/packages/prosess-uttak/src/types/ArbeidsgiverOpplysninger.ts +++ b/packages/prosess-uttak/src/types/ArbeidsgiverOpplysninger.ts @@ -1,4 +1,4 @@ -type ArbeidsgiverOpplysninger = Readonly<{ +export type ArbeidsgiverOpplysninger = Readonly<{ navn: string; fødselsdato?: string; identifikator?: string; diff --git a/packages/prosess-uttak/src/types/ContainerContract.ts b/packages/prosess-uttak/src/types/ContainerContract.ts index 05f29fab28..1feecf69a8 100644 --- a/packages/prosess-uttak/src/types/ContainerContract.ts +++ b/packages/prosess-uttak/src/types/ContainerContract.ts @@ -1,24 +1,14 @@ +import { Aksjonspunkt } from '@k9-sak-web/types'; import Uttaksperioder from './Uttaksperioder'; import ArbeidsgiverOpplysninger from './ArbeidsgiverOpplysninger'; import KodeverkMedNavn from './kodeverkMedNavnTsType'; -import Kodeverk from './kodeverkTsType'; - -export type Aksjonspunkt = Readonly<{ - definisjon: Kodeverk; - status: Kodeverk; - begrunnelse?: string; - vilkarType?: Kodeverk; - toTrinnsBehandling?: boolean; - toTrinnsBehandlingGodkjent?: boolean; - vurderPaNyttArsaker?: Kodeverk[]; - besluttersBegrunnelse?: string; - aksjonspunktType?: Kodeverk; - kanLoses: boolean; - erAktivt: boolean; - venteårsakVariant?: string; -}>; interface ContainerContract { + httpErrorHandler?: (status: number, locationHeader?: string) => void; + endpoints?: { + behandlingUttakOverstyrbareAktiviteter: string; + behandlingUttakOverstyrt: string; + }; uttaksperioder: Uttaksperioder; utsattePerioder: string[]; aktivBehandlingUuid: string; @@ -26,6 +16,7 @@ interface ContainerContract { aksjonspunktkoder: string[]; erFagytelsetypeLivetsSluttfase: boolean; kodeverkUtenlandsoppholdÅrsak: KodeverkMedNavn[]; + handleOverstyringAksjonspunkt?: (data: any) => Promise; løsAksjonspunktVurderDatoNyRegelUttak: ({ begrunnelse, virkningsdato, @@ -35,6 +26,9 @@ interface ContainerContract { }) => void; virkningsdatoUttakNyeRegler: string; aksjonspunkter?: Aksjonspunkt[]; + versjon?: number; + featureToggles: { [key: string]: boolean }; + erOverstyrer?: boolean; } export default ContainerContract; diff --git a/packages/prosess-uttak/src/types/Endringsstatus.ts b/packages/prosess-uttak/src/types/Endringsstatus.ts index 98450b8100..dd38836f1a 100644 --- a/packages/prosess-uttak/src/types/Endringsstatus.ts +++ b/packages/prosess-uttak/src/types/Endringsstatus.ts @@ -1,3 +1,3 @@ -type Endringsstatus = 'NY' | 'ENDRET' | 'UENDRET' | 'UENDRET_RESULTAT' | null; +export type Endringsstatus = 'NY' | 'ENDRET' | 'UENDRET' | 'UENDRET_RESULTAT' | null; export default Endringsstatus; diff --git a/packages/prosess-uttak/src/types/FormatertOverstyring.ts b/packages/prosess-uttak/src/types/FormatertOverstyring.ts new file mode 100644 index 0000000000..40908d8e7f --- /dev/null +++ b/packages/prosess-uttak/src/types/FormatertOverstyring.ts @@ -0,0 +1,18 @@ +export type FormatertOverstyring = { + id?: string; + begrunnelse?: string; + periode: { + fom: string; + tom: string; + }; + søkersUttaksgrad: number; + utbetalingsgrader: { + arbeidsforhold: { + type: string; + organisasjonsnummer: string; + aktørId: string; + arbeidsforholdId: string; + }; + utbetalingsgrad: number; + }[]; +}; diff --git a/packages/prosess-uttak/src/types/OverstyrUttakFormData.ts b/packages/prosess-uttak/src/types/OverstyrUttakFormData.ts new file mode 100644 index 0000000000..9df1a9e16f --- /dev/null +++ b/packages/prosess-uttak/src/types/OverstyrUttakFormData.ts @@ -0,0 +1,10 @@ +import { OverstyrUttakFormFieldName } from '../constants/OverstyrUttakFormFieldName'; +import { OverstyrUttakFormDataUtbetalingsgrad } from '.'; + +export type OverstyrUttakFormData = { + [OverstyrUttakFormFieldName.FOM]: Date | undefined; + [OverstyrUttakFormFieldName.TOM]: Date | undefined; + [OverstyrUttakFormFieldName.UTTAKSGRAD]: number; + [OverstyrUttakFormFieldName.BEGRUNNELSE]: string; + [OverstyrUttakFormFieldName.UTBETALINGSGRADER]: OverstyrUttakFormDataUtbetalingsgrad[]; +}; diff --git a/packages/prosess-uttak/src/types/OverstyrUttakFormDataUtbetalingsgrad.ts b/packages/prosess-uttak/src/types/OverstyrUttakFormDataUtbetalingsgrad.ts new file mode 100644 index 0000000000..5ffacbae1a --- /dev/null +++ b/packages/prosess-uttak/src/types/OverstyrUttakFormDataUtbetalingsgrad.ts @@ -0,0 +1,11 @@ +import { OverstyrUttakFormFieldName } from '../constants/OverstyrUttakFormFieldName'; + +export type OverstyrUttakFormDataUtbetalingsgrad = { + [OverstyrUttakFormFieldName.ARBEIDSFORHOLD]: { + [OverstyrUttakFormFieldName.TYPE]: string; + [OverstyrUttakFormFieldName.ORGANISASJONSNUMMER]: string; + [OverstyrUttakFormFieldName.AKTØR_ID]: string; + [OverstyrUttakFormFieldName.ARBEIDSFORHOLD_ID]: string; + }; + [OverstyrUttakFormFieldName.AKTIVITET_UTBETALINGSGRAD]: number; +}; diff --git a/packages/prosess-uttak/src/types/OverstyrbareAktiviteterRequest.ts b/packages/prosess-uttak/src/types/OverstyrbareAktiviteterRequest.ts new file mode 100644 index 0000000000..ea5717b30a --- /dev/null +++ b/packages/prosess-uttak/src/types/OverstyrbareAktiviteterRequest.ts @@ -0,0 +1,6 @@ +export interface OverstyrbareAktiviteterRequest { + behandlingIdDto: string; + fom: string; + tom: string; +} +export default OverstyrbareAktiviteterRequest; diff --git a/packages/prosess-uttak/src/types/OverstyrbareAktiviteterResponse.ts b/packages/prosess-uttak/src/types/OverstyrbareAktiviteterResponse.ts new file mode 100644 index 0000000000..03912fe0e4 --- /dev/null +++ b/packages/prosess-uttak/src/types/OverstyrbareAktiviteterResponse.ts @@ -0,0 +1,5 @@ +import { Arbeidsforhold } from './Arbeidsforhold'; + +export interface OverstyrbareAktiviteterResponse { + arbeidsforholdsperioder: Arbeidsforhold[]; +} diff --git a/packages/prosess-uttak/src/types/OverstyringUttak.ts b/packages/prosess-uttak/src/types/OverstyringUttak.ts new file mode 100644 index 0000000000..93d8d99fe2 --- /dev/null +++ b/packages/prosess-uttak/src/types/OverstyringUttak.ts @@ -0,0 +1,18 @@ +export type OverstyringUttak = { + id: string; + periode: { + fom: Date; + tom: Date; + }; + søkersUttaksgrad: number; + utbetalingsgrader: { + arbeidsforhold: { + type: string; + organisasjonsnummer: string | null; + aktørId: string | null; + arbeidsforholdId: string | null; + }; + utbetalingsgrad: number; + }[]; + begrunnelse: string; +}; diff --git a/packages/prosess-uttak/src/types/OverstyrtUttakResponse.ts b/packages/prosess-uttak/src/types/OverstyrtUttakResponse.ts new file mode 100644 index 0000000000..0bda54b742 --- /dev/null +++ b/packages/prosess-uttak/src/types/OverstyrtUttakResponse.ts @@ -0,0 +1,19 @@ +import { OverstyringUttak } from './OverstyringUttak'; + +export interface OverstyrtUttakResponse { + overstyringer: OverstyringUttak[]; + arbeidsgiverOversikt: { + arbeidsgivere: { + [key: string]: { + identifikator: string; + personIdentifikator: string; + navn: string; + fødselsdato: string; + arbeidsforholdreferanser: { + internArbeidsforholdId: string; + eksternArbeidsforholdId: string; + }[]; + }; + }; + }; +} diff --git a/packages/prosess-uttak/src/types/Utbetalingsgrad.ts b/packages/prosess-uttak/src/types/Utbetalingsgrad.ts index 8c0f4bdaf8..a311fcbb6c 100644 --- a/packages/prosess-uttak/src/types/Utbetalingsgrad.ts +++ b/packages/prosess-uttak/src/types/Utbetalingsgrad.ts @@ -1,6 +1,6 @@ import { Arbeidsforhold } from './Arbeidsforhold'; -interface Utbetalingsgrad { +export interface Utbetalingsgrad { arbeidsforhold: Arbeidsforhold; normalArbeidstid: string; faktiskArbeidstid: string; diff --git a/packages/prosess-uttak/src/types/UttakOverstyring.ts b/packages/prosess-uttak/src/types/UttakOverstyring.ts new file mode 100644 index 0000000000..4805daa7a3 --- /dev/null +++ b/packages/prosess-uttak/src/types/UttakOverstyring.ts @@ -0,0 +1,8 @@ +export type UttakOverstyring = { + id: string; + navn: string; + fraDato: string; + tilDato: string; + uttaksgrad: number; + begrunnelse: string; +}; diff --git a/packages/prosess-uttak/src/types/Uttaksperioder.ts b/packages/prosess-uttak/src/types/Uttaksperioder.ts index 4dccc9b7a8..a9a7ad0594 100644 --- a/packages/prosess-uttak/src/types/Uttaksperioder.ts +++ b/packages/prosess-uttak/src/types/Uttaksperioder.ts @@ -1,6 +1,6 @@ import { Uttaksperiodeelement } from './Uttaksperiode'; -interface Uttaksperioder { +export interface Uttaksperioder { [key: string]: Uttaksperiodeelement; } diff --git a/packages/prosess-uttak/src/types/index.ts b/packages/prosess-uttak/src/types/index.ts new file mode 100644 index 0000000000..42a556087e --- /dev/null +++ b/packages/prosess-uttak/src/types/index.ts @@ -0,0 +1,21 @@ +export * from './Arbeidsforhold'; +export * from './ArbeidsgiverOpplysninger'; +export * from './ContainerContract'; +export * from './Endringsstatus'; +export * from './FormatertOverstyring'; +export * from './GraderingMotTilsyn'; +export * from './HttpErrorHandler'; +export * from './Inngangsvilkår'; +export * from './kodeverkMedNavnTsType'; +export * from './kodeverkTsType'; +export * from './OverstyrbareAktiviteterRequest'; +export * from './OverstyrbareAktiviteterResponse'; +export * from './OverstyringUttak'; +export * from './OverstyrtUttakResponse'; +export * from './OverstyrUttakFormData'; +export * from './OverstyrUttakFormDataUtbetalingsgrad'; +export * from './Period'; +export * from './Utbetalingsgrad'; +export * from './UttakOverstyring'; +export * from './Uttaksperiode'; +export * from './Uttaksperioder'; diff --git a/packages/prosess-uttak/src/ui/MainComponent.tsx b/packages/prosess-uttak/src/ui/MainComponent.tsx index f0806d15d2..a65833011a 100644 --- a/packages/prosess-uttak/src/ui/MainComponent.tsx +++ b/packages/prosess-uttak/src/ui/MainComponent.tsx @@ -1,5 +1,7 @@ import React from 'react'; + import { Heading } from '@navikt/ds-react'; + import ContainerContract from '../types/ContainerContract'; import lagUttaksperiodeliste from '../util/uttaksperioder'; import UttaksperiodeListe from './components/uttaksperiode-liste/UttaksperiodeListe'; @@ -8,28 +10,51 @@ import Infostripe from './components/infostripe/Infostripe'; import UtsattePerioderStripe from './components/utsattePerioderStripe/UtsattePerioderStripe'; import VurderDato from './components/vurderDato/VurderDato'; import { aksjonspunktVurderDatoKode, aksjonspunktkodeVentAnnenPSBSakKode } from '../constants/Aksjonspunkter'; +import OverstyringIkon from './components/overstyrUttakForm/components/OverstyringIkon'; +import { OverstyrUttakContextProvider } from './context/OverstyrUttakContext'; +import OverstyrUttakForm from './components/overstyrUttakForm/OverstyrUttakForm'; interface MainComponentProps { containerData: ContainerContract; } const MainComponent = ({ containerData }: MainComponentProps): JSX.Element => { - const { uttaksperioder, aksjonspunktkoder, aksjonspunkter, virkningsdatoUttakNyeRegler } = containerData; + const { + featureToggles, + uttaksperioder, + aksjonspunktkoder, + aksjonspunkter, + virkningsdatoUttakNyeRegler, + erOverstyrer, + } = containerData; const [redigerVirkningsdato, setRedigervirkningsdato] = React.useState(false); const aksjonspunktVurderDato = aksjonspunkter?.find(ap => ap.definisjon.kode === aksjonspunktVurderDatoKode); + const [overstyringAktiv, setOverstyringAktiv] = React.useState(aksjonspunktkoder.includes('6017')); + const toggleOverstyring = () => setOverstyringAktiv(!overstyringAktiv); + const harVentAnnenPSBSakAksjonspunkt = aksjonspunktkoder?.some( aksjonspunktkode => aksjonspunktkode === aksjonspunktkodeVentAnnenPSBSakKode, ); const harAksjonspunktVurderDatoMedStatusOpprettet = aksjonspunktkoder?.some( aksjonspunktkode => aksjonspunktkode === aksjonspunktVurderDatoKode, ); + return ( Uttak + {featureToggles?.OVERSTYRING_UTTAK && ( + + )} + + + + {erOverstyrer && overstyringAktiv && } + + {harAksjonspunktVurderDatoMedStatusOpprettet && } {virkningsdatoUttakNyeRegler && redigerVirkningsdato && ( diff --git a/packages/prosess-uttak/src/ui/components/icons/key-1-rotert-utgraet.svg b/packages/prosess-uttak/src/ui/components/icons/key-1-rotert-utgraet.svg new file mode 100644 index 0000000000..da254eeb6a --- /dev/null +++ b/packages/prosess-uttak/src/ui/components/icons/key-1-rotert-utgraet.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/prosess-uttak/src/ui/components/icons/key-1-rotert.svg b/packages/prosess-uttak/src/ui/components/icons/key-1-rotert.svg new file mode 100644 index 0000000000..82aed8ce87 --- /dev/null +++ b/packages/prosess-uttak/src/ui/components/icons/key-1-rotert.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/prosess-uttak/src/ui/components/overstyrUttakForm/AktivitetRad.tsx b/packages/prosess-uttak/src/ui/components/overstyrUttakForm/AktivitetRad.tsx new file mode 100644 index 0000000000..6f6dc563c2 --- /dev/null +++ b/packages/prosess-uttak/src/ui/components/overstyrUttakForm/AktivitetRad.tsx @@ -0,0 +1,76 @@ +import React from 'react'; + +import { Table, Button } from '@navikt/ds-react'; +import { Edit, Delete } from '@navikt/ds-icons'; + +import dayjs from 'dayjs'; + +import styles from './aktivitetRad.css'; +import BegrunnelseBoks from './components/BegrunnelseBoks'; +import { OverstyringUttak } from '../../../types'; + +interface ownProps { + index: number; + overstyring: OverstyringUttak; + handleRediger: (index: number) => void; + visOverstyringSkjema: boolean; + handleSlett: (id: string) => void; + loading: boolean; + setLoading: (loading: boolean) => void; +} + +const AktivitetRad: React.FC = ({ + overstyring, + index, + handleRediger, + visOverstyringSkjema, + handleSlett, + loading, +}) => { + const [ekspandert, setEkspandert] = React.useState(false); + const { id, periode, søkersUttaksgrad, begrunnelse } = overstyring; + const { fom, tom } = periode; + + return ( + + +
    + } + open={ekspandert} + > + setEkspandert(!ekspandert)}>{dayjs(fom).format('DD.MM.YYYY')} + setEkspandert(!ekspandert)}>{dayjs(tom).format('DD.MM.YYYY')} + setEkspandert(!ekspandert)}>{søkersUttaksgrad} + + + + + + + ); +}; + +export default AktivitetRad; diff --git a/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyrAktivitetListe.css b/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyrAktivitetListe.css new file mode 100644 index 0000000000..24940d76fd --- /dev/null +++ b/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyrAktivitetListe.css @@ -0,0 +1,26 @@ +.overstyringSkjemaAktiviteter { + display: table; + margin-top: var(--a-spacing-4); +} + +.overstyringSkjemaAktivitet { + display: table-row; +} + +.overstyringSkjemaAktivitet > div { + display: table-cell; + padding: var(--a-spacing-2) var(--a-spacing-8); +} + +.overstyringSkjemaAktivitet > div:first-child { + padding-left: 0; +} + +.overstyringSkjemaAktivitet > div:last-child { + padding-right: 0; +} + +.overstyringSkjemaAktivitet > div > div { + display: inline-block; + margin-right: var(--a-spacing-2); +} diff --git a/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyrAktivitetListe.tsx b/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyrAktivitetListe.tsx new file mode 100644 index 0000000000..49ab822bac --- /dev/null +++ b/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyrAktivitetListe.tsx @@ -0,0 +1,69 @@ +import React from 'react'; +import { useFormContext, FieldArrayWithId } from 'react-hook-form'; + +import { Label, TextField } from '@navikt/ds-react'; +import { OverstyrUttakFormFieldName } from '../../../constants'; + +import styles from './OverstyrAktivitetListe.css'; +import { OverstyrUttakFormData } from '../../../types'; + +type ownProps = { + fields: FieldArrayWithId[]; + loading: boolean; +}; + +const OverstyrAktivitetListe: React.FC = ({ fields, loading }) => { + const { register } = useFormContext(); + + const utledAtkivitetNavn = ( + field: FieldArrayWithId, + ): string => { + const arbeidsforhold = field[OverstyrUttakFormFieldName.ARBEIDSFORHOLD]; + if (arbeidsforhold[OverstyrUttakFormFieldName.AKTØR_ID]) + return `${arbeidsforhold[OverstyrUttakFormFieldName.TYPE]} ${ + arbeidsforhold[OverstyrUttakFormFieldName.AKTØR_ID] + }`; + if (arbeidsforhold[OverstyrUttakFormFieldName.ORGANISASJONSNUMMER]) + return `${arbeidsforhold[OverstyrUttakFormFieldName.TYPE]} ${ + arbeidsforhold[OverstyrUttakFormFieldName.ORGANISASJONSNUMMER] + }`; + if (arbeidsforhold[OverstyrUttakFormFieldName.ARBEIDSFORHOLD_ID]) + return `${arbeidsforhold[OverstyrUttakFormFieldName.TYPE]} ${ + arbeidsforhold[OverstyrUttakFormFieldName.ARBEIDSFORHOLD_ID] + }`; + + return `${arbeidsforhold[OverstyrUttakFormFieldName.TYPE]}`; + }; + + return ( + <> + +
    + {fields.map((field, index) => ( +
    +
    {utledAtkivitetNavn(field)}
    +
    + + % +
    +
    + ))} +
    + + ); +}; + +export default OverstyrAktivitetListe; diff --git a/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyrUttakForm.tsx b/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyrUttakForm.tsx new file mode 100644 index 0000000000..d91a3f87a3 --- /dev/null +++ b/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyrUttakForm.tsx @@ -0,0 +1,145 @@ +import React, { useState } from 'react'; + +import { Button, Heading, Table } from '@navikt/ds-react'; +import { PlusIcon } from '@navikt/ft-plattform-komponenter'; + +import NavFrontendSpinner from 'nav-frontend-spinner'; +import ContainerContext from '../../context/ContainerContext'; +import OverstyringUttakForm from './OverstyringUttakForm'; +import AktivitetRad from './AktivitetRad'; + +import styles from './overstyrUttakForm.css'; +import { useOverstyrUttak } from '../../context/OverstyrUttakContext'; +import { UttakOverstyring } from '../../../types/UttakOverstyring'; +import { formaterOverstyringTilFormData } from '../../../util/overstyringUtils'; + +const tableHeaders = ( + + + + Fra og med + Til og med + Ny uttaksgrad + Valg for overstyring + + +); + +const nyOverstyring: UttakOverstyring = { + id: '', + navn: '', + fraDato: '', + tilDato: '', + uttaksgrad: 0, + begrunnelse: '', +}; + +const OverstyrUttakForm: React.FC = () => { + const [loading, setLoading] = useState(false); + const { handleOverstyringAksjonspunkt } = React.useContext(ContainerContext); + const [visOverstyringSkjema, setVisOverstyringSkjema] = React.useState(false); + const { lasterOverstyringer, overstyrte } = useOverstyrUttak(); + const [redigerOverstyring, setRedigerOverstyring] = React.useState(false); + const handleSubmit = () => { + setLoading(true); + handleOverstyringAksjonspunkt({ + gåVidere: true, + lagreEllerOppdater: [], + slett: [], + periode: {}, + }); + }; + + const handleSlett = (id: string): void => { + setLoading(true); + handleOverstyringAksjonspunkt({ + gåVidere: false, + lagreEllerOppdater: [], + slett: [{ id }], + periode: {}, + }); + }; + + const handleAvbrytOverstyringForm = () => { + setVisOverstyringSkjema(false); + setRedigerOverstyring(false); + }; + + const handleRediger = (index: number) => { + setRedigerOverstyring(index); + setVisOverstyringSkjema(true); + }; + + return ( +
    + {lasterOverstyringer && } + {!lasterOverstyringer && ( + <> + {overstyrte?.length === 0 && !visOverstyringSkjema && <>Det er ingen overstyrte aktiviteter i denne saken} + {overstyrte?.length > 0 && ( + <> + Overstyrte perioder + + {tableHeaders} + + {overstyrte.map((overstyring, index) => ( + + ))} + +
    + + )} + + )} + + {!visOverstyringSkjema && ( +
    + +
    + )} + + {!visOverstyringSkjema && overstyrte?.length > 0 && ( +
    + +
    + )} + {visOverstyringSkjema && redigerOverstyring === false && ( + + )} + {visOverstyringSkjema && typeof redigerOverstyring === 'number' && ( + + )} +
    + ); +}; + +export default OverstyrUttakForm; diff --git a/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyringUttakForm.css b/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyringUttakForm.css new file mode 100644 index 0000000000..b90ff4c31d --- /dev/null +++ b/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyringUttakForm.css @@ -0,0 +1,48 @@ +@import '@navikt/ds-tokens'; + +.overstyringSkjemaWrapper { + border: 1px solid var(--a-border-divider); + background-color: var(--a-deepblue-50); + padding: var(--a-spacing-6); + border-radius: 3px; + max-width: 800px; + margin-top: var(--a-spacing-8); + margin-bottom: var(--a-spacing-8); +} + +.overstyringDatoOgUttaksgrad { + display: flex; + justify-content: left; + flex-wrap: wrap; + gap: var(--a-spacing-4); + margin-bottom: var(--a-spacing-4); + margin-top: var(--a-spacing-4); +} + +.overstyringDatoVelger { + display: flex; + justify-content: left; + flex-wrap: wrap; + gap: var(--a-spacing-4); +} + +.overstyringDatoVelger > div { + justify-items: start; + display: grid; +} + +.overstyringKnapperad { + margin-top: var(--a-spacing-4); + display: flex; + justify-content: left; + flex-wrap: wrap; + gap: var(--a-spacing-4); +} + +.overstyringBegrunnelse > div { + margin-top: var(--a-spacing-4); +} + +.overstyringAktivitetListe { + margin-top: var(--a-spacing-4); +} diff --git a/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyringUttakForm.tsx b/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyringUttakForm.tsx new file mode 100644 index 0000000000..17390ae8a7 --- /dev/null +++ b/packages/prosess-uttak/src/ui/components/overstyrUttakForm/OverstyringUttakForm.tsx @@ -0,0 +1,156 @@ +import React, { useContext, useState } from 'react'; +import { FormProvider, useForm, useFieldArray } from 'react-hook-form'; +import dayjs from 'dayjs'; + +import DatePicker from '@navikt/ds-react/esm/date/datepicker/DatePicker'; +import { useRangeDatepicker } from '@navikt/ds-react/esm/date/hooks/useRangeDatepicker'; +import { Alert, Button, Heading, Loader, TextField, Textarea } from '@navikt/ds-react'; +import { Form } from '@navikt/ft-form-hooks'; + +import OverstyrAktivitetListe from './OverstyrAktivitetListe'; +import ContainerContext from '../../context/ContainerContext'; +import { useOverstyrUttak } from '../../context/OverstyrUttakContext'; +import { formaterOverstyring, formaterOverstyringAktiviteter } from '../../../util/overstyringUtils'; +import { OverstyrUttakFormFieldName } from '../../../constants/OverstyrUttakFormFieldName'; +import { OverstyrUttakFormData } from '../../../types'; +import { finnSisteSluttDatoFraUttaksperioder, finnTidligsteStartDatoFraUttaksperioder } from '../../../util/dateUtils'; + +import styles from './OverstyringUttakForm.css'; + +type OwnProps = { + handleAvbrytOverstyringForm: () => void; + overstyring?: OverstyrUttakFormData; + loading: boolean; + setLoading: (loading: boolean) => void; +}; + +const OverstyringUttakForm: React.FC = ({ + handleAvbrytOverstyringForm, + overstyring, + loading, + setLoading, +}) => { + const erNyOverstyring = overstyring === undefined; + const { handleOverstyringAksjonspunkt, uttaksperioder } = useContext(ContainerContext); + const { lasterAktiviteter, hentAktuelleAktiviteter } = useOverstyrUttak(); + const [deaktiverLeggTil, setDeaktiverLeggTil] = useState(true); + + const formMethods = useForm({ + reValidateMode: 'onSubmit', + defaultValues: overstyring || { + [OverstyrUttakFormFieldName.FOM]: undefined, + [OverstyrUttakFormFieldName.TOM]: undefined, + [OverstyrUttakFormFieldName.UTTAKSGRAD]: 0, + [OverstyrUttakFormFieldName.BEGRUNNELSE]: '', + [OverstyrUttakFormFieldName.UTBETALINGSGRADER]: [], + }, + mode: 'onChange', + }); + + const tidligesteStartDato = finnTidligsteStartDatoFraUttaksperioder(uttaksperioder); + const { control, setValue, watch, register } = formMethods; + + const { fields, replace: replaceAktiviteter } = useFieldArray({ + control, + name: OverstyrUttakFormFieldName.UTBETALINGSGRADER, + }); + + const { datepickerProps, toInputProps, fromInputProps } = useRangeDatepicker({ + onRangeChange: values => { + setValue(OverstyrUttakFormFieldName.FOM, values.from); + setValue(OverstyrUttakFormFieldName.TOM, values.to); + }, + defaultSelected: erNyOverstyring + ? undefined + : { from: dayjs(overstyring.fom).toDate(), to: dayjs(overstyring.tom).toDate() }, + defaultMonth: dayjs(tidligesteStartDato).toDate(), + }); + + const watchFraDato = watch(OverstyrUttakFormFieldName.FOM, undefined); + const watchTilDato = watch(OverstyrUttakFormFieldName.TOM, undefined); + + React.useEffect(() => { + const handleHentAktuelleAktiviteter = async (fom: Date, tom: Date) => { + const aktiviteter = await hentAktuelleAktiviteter(fom, tom); + replaceAktiviteter(formaterOverstyringAktiviteter(aktiviteter)); + }; + + if (watchFraDato && watchTilDato) { + handleHentAktuelleAktiviteter(watchFraDato, watchTilDato); + setDeaktiverLeggTil(false); + } + }, [watchFraDato, watchTilDato]); + + const disabledDays = [ + date => dayjs(date).isBefore(tidligesteStartDato), + date => dayjs(date).isAfter(finnSisteSluttDatoFraUttaksperioder(uttaksperioder)), + ]; + + const handleSubmit = (values: OverstyrUttakFormData) => { + setLoading(true); + handleOverstyringAksjonspunkt({ + periode: {}, // MÅ legge til denne inntill videre, hack, for å komme rundt validering i backen + lagreEllerOppdater: [{ erVilkarOk: false, ...formaterOverstyring(values) }], + slett: [], + }); + }; + + return ( +
    + Overstyr periode + +
    +
    + +
    + + +
    +
    + +
    + + {lasterAktiviteter !== null && ( +
    + {lasterAktiviteter && } + {!lasterAktiviteter && ( + <> + {fields.length > 0 && } + {fields.length === 0 && <>Kunne ikke finne noen aktiviteter i den angitte perioden} + + )} +
    + )} + +
    +