From 2e00bbca667a76d7607330a719e7df8c93cf7c9c Mon Sep 17 00:00:00 2001 From: Jostein Stuhaug <135307852+josstn@users.noreply.github.com> Date: Tue, 9 Jul 2024 12:10:23 +0200 Subject: [PATCH] =?UTF-8?q?Oppdateringer=20fr=C3=A5=20master=20(#6365)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Dev-next1 branch deployment til k9-next.dev.intern.nav.no (#6340) * nais deploy konfigurasjon for dev-next1 oppretta. name, ingress og replicas konfigurasjon for nais dev deploy trekt ut i separate filer. dev.yaml inneheld samme konfigurasjonsverdier som før var hardkoda i dev-fss-k9saksbehandling.yml, for normal utrulling til Q dev-next1.yaml inneheld konfigurasjonsverdier for utrulling til ny dev-next1 instans. * Build and deploy dev-next1 workflow oppretta. Denne vil ved push til dev-next1 branch bygge og rulle ut instans av k9-sak-web til k9.dev-next1.intern.navn.no, slik at meir eksperimentelle ting kan testast der før det går til master. * Fiks ingress url til gyldig verdi. * Bumper ft-pakke (#6346) * Fjerner gammal proxy referanse til diagnosekoder service. (#6351) Ikkje i bruk lenger. * Aktiverer det nye meldingspanelet i testmiljø. (#6336) * Fiks maks lengde på brevtekst. (#6354) Hadde brukt makslengde verdi frå FritekstbrevinnholdDto server har, men maks lengde er faktisk ulik alt etter om malen som er valgt er av type som større fritekst og tittel, eller berre fritekst. Endre til å bruke BestillBrevDto makslengde når mal ikkje støtter tittel,og FritekstbrevinnholdDto sin makslengde når mal støtter tittel. Endre også slik at fritekst prop ikkje blir satt (sendt til server) når det er brev med tittel og tekst, sidan den då vil kunne bli for lang. * Sjekker om exception er definert før bruk (#6355) * Bump @navikt/k9-sak-typescript-client (#6359) Bumps [@navikt/k9-sak-typescript-client](https://github.com/navikt/k9-sak) from 1.0.20240620093339 to 1.0.20240708134619. - [Commits](https://github.com/navikt/k9-sak/commits) --- updated-dependencies: - dependency-name: "@navikt/k9-sak-typescript-client" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump the patch group across 1 directory with 6 updates (#6350) Bumps the patch group with 6 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@playwright/test](https://github.com/microsoft/playwright) | `1.45.0` | `1.45.1` | | [postcss](https://github.com/postcss/postcss) | `8.4.38` | `8.4.39` | | [typescript](https://github.com/Microsoft/TypeScript) | `5.5.2` | `5.5.3` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `5.3.2` | `5.3.3` | | [@editorjs/header](https://github.com/editor-js/header) | `2.8.1` | `2.8.5` | | [@editorjs/paragraph](https://github.com/editor-js/paragraph) | `2.11.5` | `2.11.6` | Updates `@playwright/test` from 1.45.0 to 1.45.1 - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](https://github.com/microsoft/playwright/compare/v1.45.0...v1.45.1) Updates `postcss` from 8.4.38 to 8.4.39 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.38...8.4.39) Updates `typescript` from 5.5.2 to 5.5.3 - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.5.2...v5.5.3) Updates `vite` from 5.3.2 to 5.3.3 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.3.3/packages/vite) Updates `@editorjs/header` from 2.8.1 to 2.8.5 - [Commits](https://github.com/editor-js/header/commits) Updates `@editorjs/paragraph` from 2.11.5 to 2.11.6 - [Commits](https://github.com/editor-js/paragraph/commits) --- updated-dependencies: - dependency-name: "@playwright/test" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: patch - dependency-name: postcss dependency-type: direct:development update-type: version-update:semver-patch dependency-group: patch - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch dependency-group: patch - dependency-name: vite dependency-type: direct:development update-type: version-update:semver-patch dependency-group: patch - dependency-name: "@editorjs/header" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch - dependency-name: "@editorjs/paragraph" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jostein Stuhaug <135307852+josstn@users.noreply.github.com> * Advarsel om søker ikke er sammen med barnet i sykdomssteget. (#6360) --------- Signed-off-by: dependabot[bot] Co-authored-by: Hallvard Andreas Stark <57254397+hallvardastark@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ramin Esfandiari --- deploy/dev-fss-k9saksbehandling.yml | 2 +- package.json | 8 +- packages/behandling-frisinn/package.json | 2 +- .../behandling-omsorgspenger/package.json | 2 +- .../behandling-opplaeringspenger/package.json | 2 +- .../package.json | 2 +- packages/behandling-pleiepenger/package.json | 2 +- packages/fakta-etablert-tilsyn/package.json | 2 +- packages/fakta-inntektsmelding/package.json | 2 +- .../package.json" | 2 +- .../src/types/SykdomsstegStatusResponse.ts" | 1 + .../MedisinskVilk\303\245r.tsx" | 13 +- packages/fakta-om-barnet/package.json | 2 +- packages/fakta-omsorgen-for/package.json | 2 +- packages/prosess-omsorgsdager/package.json | 2 +- packages/prosess-uttak/package.json | 2 +- packages/prosess-vedtak/package.json | 4 +- packages/sak-app/package.json | 2 +- packages/sak-app/src/bootstrap.tsx | 2 +- packages/v2/backend/package.json | 2 +- .../sak/meldinger/FritekstInput.stories.tsx | 2 +- .../gui/src/sak/meldinger/FritekstInput.tsx | 40 +++--- .../v2/gui/src/sak/meldinger/Messages.tsx | 13 +- vite.config.js | 3 - yarn.lock | 135 +++++++++--------- 25 files changed, 137 insertions(+), 114 deletions(-) diff --git a/deploy/dev-fss-k9saksbehandling.yml b/deploy/dev-fss-k9saksbehandling.yml index 5faa7e7960..fa7c0d3c1f 100644 --- a/deploy/dev-fss-k9saksbehandling.yml +++ b/deploy/dev-fss-k9saksbehandling.yml @@ -99,6 +99,6 @@ spec: - name: "OVERSTYRING_UTTAK" value: "true" - name: "BRUK_V2_MELDINGER" - value: "false" + value: "true" - name: NYE_NOKKELTALL value: "true" diff --git a/package.json b/package.json index b6d43bf1ee..56d6b68c63 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "vite-plugin-svgr": "4.2.0" }, "devDependencies": { - "@playwright/test": "^1.45.0", + "@playwright/test": "^1.45.1", "@sentry/cli": "2.32.1", "@storybook/addon-a11y": "^8.1.11", "@storybook/addon-actions": "^8.1.11", @@ -119,15 +119,15 @@ "stylelint-order": "6.0.4", "tailwindcss": "^3.4.4", "typed-css-modules": "^0.9.1", - "typescript": "5.5.2", - "vite": "^5.3.2", + "typescript": "5.5.3", + "vite": "^5.3.3", "vite-plugin-html": "^3.2.2", "vitest": "1.6.0", "vitest-axe": "0.1.0", "webpack-merge": "5.10.0" }, "resolutions": { - "postcss": "8.4.38", + "postcss": "8.4.39", "parse-url": "8.1.0", "@types/react": "17", "@editorjs/editorjs": "2.27.2" diff --git a/packages/behandling-frisinn/package.json b/packages/behandling-frisinn/package.json index ccd5fdb978..0076748965 100644 --- a/packages/behandling-frisinn/package.json +++ b/packages/behandling-frisinn/package.json @@ -19,7 +19,7 @@ "@k9-sak-web/rest-api-hooks": "1.0.0", "@k9-sak-web/types": "1.0.0", "@navikt/ft-fakta-beregning-redesign": "1.2.17", - "@navikt/ft-prosess-beregningsgrunnlag": "6.5.21", + "@navikt/ft-prosess-beregningsgrunnlag": "6.5.22", "react": "18.3.1", "react-intl": "6.6.8" } diff --git a/packages/behandling-omsorgspenger/package.json b/packages/behandling-omsorgspenger/package.json index a39206d7d9..9352971b54 100644 --- a/packages/behandling-omsorgspenger/package.json +++ b/packages/behandling-omsorgspenger/package.json @@ -33,7 +33,7 @@ "@k9-sak-web/types": "1.0.0", "@navikt/ft-fakta-beregning-redesign": "1.2.17", "@navikt/ft-fakta-fordel-beregningsgrunnlag": "7.5.18", - "@navikt/ft-prosess-beregningsgrunnlag": "6.5.21", + "@navikt/ft-prosess-beregningsgrunnlag": "6.5.22", "react": "18.3.1", "react-intl": "6.6.8" } diff --git a/packages/behandling-opplaeringspenger/package.json b/packages/behandling-opplaeringspenger/package.json index f6692fb136..4a385a755b 100644 --- a/packages/behandling-opplaeringspenger/package.json +++ b/packages/behandling-opplaeringspenger/package.json @@ -37,7 +37,7 @@ "@k9-sak-web/types": "1.0.0", "@navikt/ft-fakta-beregning-redesign": "1.2.17", "@navikt/ft-fakta-fordel-beregningsgrunnlag": "7.5.18", - "@navikt/ft-prosess-beregningsgrunnlag": "6.5.21", + "@navikt/ft-prosess-beregningsgrunnlag": "6.5.22", "axios": "1.7.2", "react": "18.3.1", "react-intl": "6.6.8" diff --git a/packages/behandling-pleiepenger-sluttfase/package.json b/packages/behandling-pleiepenger-sluttfase/package.json index 1b9b357b69..cf9c3de3f7 100644 --- a/packages/behandling-pleiepenger-sluttfase/package.json +++ b/packages/behandling-pleiepenger-sluttfase/package.json @@ -33,7 +33,7 @@ "@k9-sak-web/types": "1.0.0", "@navikt/ft-fakta-beregning-redesign": "1.2.17", "@navikt/ft-fakta-fordel-beregningsgrunnlag": "7.5.18", - "@navikt/ft-prosess-beregningsgrunnlag": "6.5.21", + "@navikt/ft-prosess-beregningsgrunnlag": "6.5.22", "axios": "1.7.2", "react": "18.3.1", "react-intl": "6.6.8" diff --git a/packages/behandling-pleiepenger/package.json b/packages/behandling-pleiepenger/package.json index 467a010460..4b0451d57b 100644 --- a/packages/behandling-pleiepenger/package.json +++ b/packages/behandling-pleiepenger/package.json @@ -38,7 +38,7 @@ "@navikt/diagnosekoder": "^1.2024.0", "@navikt/ft-fakta-beregning-redesign": "1.2.17", "@navikt/ft-fakta-fordel-beregningsgrunnlag": "7.5.18", - "@navikt/ft-prosess-beregningsgrunnlag": "6.5.21", + "@navikt/ft-prosess-beregningsgrunnlag": "6.5.22", "axios": "1.7.2", "react": "18.3.1", "react-intl": "6.6.8" diff --git a/packages/fakta-etablert-tilsyn/package.json b/packages/fakta-etablert-tilsyn/package.json index 47625e2c33..e112c3ff59 100644 --- a/packages/fakta-etablert-tilsyn/package.json +++ b/packages/fakta-etablert-tilsyn/package.json @@ -10,7 +10,7 @@ "dev": "vite serve" }, "devDependencies": { - "vite": "^5.3.2", + "vite": "^5.3.3", "vite-plugin-node-polyfills": "^0.22.0" }, "dependencies": { diff --git a/packages/fakta-inntektsmelding/package.json b/packages/fakta-inntektsmelding/package.json index b88c38e823..2b5ba1705f 100644 --- a/packages/fakta-inntektsmelding/package.json +++ b/packages/fakta-inntektsmelding/package.json @@ -11,7 +11,7 @@ "license": "MIT", "devDependencies": { "msw": "2.3.1", - "vite": "^5.3.2", + "vite": "^5.3.3", "vite-plugin-node-polyfills": "^0.22.0" }, "dependencies": { diff --git "a/packages/fakta-medisinsk-vilk\303\245r/package.json" "b/packages/fakta-medisinsk-vilk\303\245r/package.json" index f77f8e5d92..dafd245aba 100644 --- "a/packages/fakta-medisinsk-vilk\303\245r/package.json" +++ "b/packages/fakta-medisinsk-vilk\303\245r/package.json" @@ -12,7 +12,7 @@ "devDependencies": { "cors": "^2.8.5", "msw": "2.3.1", - "vite": "^5.3.2", + "vite": "^5.3.3", "vite-plugin-node-polyfills": "^0.22.0" }, "dependencies": { diff --git "a/packages/fakta-medisinsk-vilk\303\245r/src/types/SykdomsstegStatusResponse.ts" "b/packages/fakta-medisinsk-vilk\303\245r/src/types/SykdomsstegStatusResponse.ts" index bde42ed895..7707f583f4 100644 --- "a/packages/fakta-medisinsk-vilk\303\245r/src/types/SykdomsstegStatusResponse.ts" +++ "b/packages/fakta-medisinsk-vilk\303\245r/src/types/SykdomsstegStatusResponse.ts" @@ -9,6 +9,7 @@ interface SykdomsstegStatusResponse { nyttDokumentHarIkkekontrollertEksisterendeVurderinger: boolean; manglerVurderingAvILivetsSluttfase?: true; manglerVurderingAvLangvarigSykdom?: boolean; + ikkeSammenMedBarnet: boolean; } export default SykdomsstegStatusResponse; diff --git "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/medisinsk-vilk\303\245r/MedisinskVilk\303\245r.tsx" "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/medisinsk-vilk\303\245r/MedisinskVilk\303\245r.tsx" index 206a3cabd8..606e32b447 100644 --- "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/medisinsk-vilk\303\245r/MedisinskVilk\303\245r.tsx" +++ "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/medisinsk-vilk\303\245r/MedisinskVilk\303\245r.tsx" @@ -1,6 +1,6 @@ import { httpUtils } from '@fpsak-frontend/utils'; import { ExclamationmarkTriangleFillIcon } from '@navikt/aksel-icons'; -import { Tabs } from '@navikt/ds-react'; +import { Alert, HStack, Tabs } from '@navikt/ds-react'; import { Box, ChildIcon, Infostripe, Margin, PageContainer } from '@navikt/ft-plattform-komponenter'; import { useQuery } from '@tanstack/react-query'; import classnames from 'classnames'; @@ -216,6 +216,7 @@ const MedisinskVilkår = (): JSX.Element => { }; const kanLøseAksjonspunkt = sykdomsstegStatus?.kanLøseAksjonspunkt; + const ikkeSammenMedBarnet = sykdomsstegStatus?.ikkeSammenMedBarnet; const harDataSomIkkeHarBlittTattMedIBehandling = sykdomsstegStatus?.harDataSomIkkeHarBlittTattMedIBehandling; const manglerVurderingAvNyeDokumenter = sykdomsstegStatus?.nyttDokumentHarIkkekontrollertEksisterendeVurderinger; @@ -256,7 +257,15 @@ const MedisinskVilkår = (): JSX.Element => { />
-

{sykdomTittel(fagsakYtelseType)}

+ +

{sykdomTittel(fagsakYtelseType)}

+ {ikkeSammenMedBarnet === true && ( + + Søker har opplyst om utenlandsopphold uten barnet i søknadsperioden. Sjekk søknaden og korriger den + aktuelle perioden via punsj, slik at det ikke utbetales pleiepenger for perioden søker ikke pleier barnet. + + )} +
( diff --git a/packages/fakta-om-barnet/package.json b/packages/fakta-om-barnet/package.json index 4a81db0bc7..71cd9ed847 100644 --- a/packages/fakta-om-barnet/package.json +++ b/packages/fakta-om-barnet/package.json @@ -11,7 +11,7 @@ }, "devDependencies": { "msw": "2.3.1", - "vite": "^5.3.2", + "vite": "^5.3.3", "vite-plugin-node-polyfills": "^0.22.0" }, "dependencies": { diff --git a/packages/fakta-omsorgen-for/package.json b/packages/fakta-omsorgen-for/package.json index 9c9cbd81ed..dd65843e67 100644 --- a/packages/fakta-omsorgen-for/package.json +++ b/packages/fakta-omsorgen-for/package.json @@ -11,7 +11,7 @@ }, "devDependencies": { "msw": "2.3.1", - "vite": "^5.3.2", + "vite": "^5.3.3", "vite-plugin-node-polyfills": "^0.22.0" }, "dependencies": { diff --git a/packages/prosess-omsorgsdager/package.json b/packages/prosess-omsorgsdager/package.json index 96242d77b4..08e1e54433 100644 --- a/packages/prosess-omsorgsdager/package.json +++ b/packages/prosess-omsorgsdager/package.json @@ -10,7 +10,7 @@ "dev": "vite serve" }, "devDependencies": { - "vite": "^5.3.2", + "vite": "^5.3.3", "vite-plugin-node-polyfills": "^0.22.0", "vitest-axe": "^0.1.0" }, diff --git a/packages/prosess-uttak/package.json b/packages/prosess-uttak/package.json index f37636d95b..7699c02190 100644 --- a/packages/prosess-uttak/package.json +++ b/packages/prosess-uttak/package.json @@ -10,7 +10,7 @@ "author": "NAV IT", "license": "MIT", "devDependencies": { - "vite": "^5.3.2", + "vite": "^5.3.3", "vite-plugin-node-polyfills": "^0.22.0" }, "dependencies": { diff --git a/packages/prosess-vedtak/package.json b/packages/prosess-vedtak/package.json index 8fb90beb9f..af3841ac12 100644 --- a/packages/prosess-vedtak/package.json +++ b/packages/prosess-vedtak/package.json @@ -6,9 +6,9 @@ "private": true, "dependencies": { "@editorjs/editorjs": "2.29.1", - "@editorjs/header": "2.8.1", + "@editorjs/header": "2.8.5", "@editorjs/list": "1.9.0", - "@editorjs/paragraph": "2.11.5", + "@editorjs/paragraph": "2.11.6", "@fpsak-frontend/form": "1.0.0", "@fpsak-frontend/kodeverk": "1.0.0", "@fpsak-frontend/prop-types": "1.0.0", diff --git a/packages/sak-app/package.json b/packages/sak-app/package.json index ad25ba33de..fe32fce857 100644 --- a/packages/sak-app/package.json +++ b/packages/sak-app/package.json @@ -49,7 +49,7 @@ "@navikt/ft-fakta-beregning-redesign": "1.2.17", "@navikt/ft-form-hooks": "4.4.16", "@navikt/ft-plattform-komponenter": "3.0.1", - "@navikt/ft-prosess-beregningsgrunnlag": "6.5.21", + "@navikt/ft-prosess-beregningsgrunnlag": "6.5.22", "@navikt/ft-ui-komponenter": "2.3.16", "@sentry/browser": "8.13.0", "@sentry/react": "^8.13.0", diff --git a/packages/sak-app/src/bootstrap.tsx b/packages/sak-app/src/bootstrap.tsx index 7dcf35f317..d8f851bcb0 100644 --- a/packages/sak-app/src/bootstrap.tsx +++ b/packages/sak-app/src/bootstrap.tsx @@ -35,7 +35,7 @@ init({ beforeSend: (event, hint) => { const exception = hint.originalException; // @ts-ignore - if (exception.isAxiosError) { + if (exception?.isAxiosError) { // @ts-ignore const requestUrl = new URL(exception.request.responseURL); // eslint-disable-next-line no-param-reassign diff --git a/packages/v2/backend/package.json b/packages/v2/backend/package.json index 092219a103..34e37e57d1 100644 --- a/packages/v2/backend/package.json +++ b/packages/v2/backend/package.json @@ -15,6 +15,6 @@ }, "dependencies": { "@navikt/k9-klage-typescript-client": "1.0.20240513162434-997f3da", - "@navikt/k9-sak-typescript-client": "1.0.20240620093339" + "@navikt/k9-sak-typescript-client": "1.0.20240708134619" } } diff --git a/packages/v2/gui/src/sak/meldinger/FritekstInput.stories.tsx b/packages/v2/gui/src/sak/meldinger/FritekstInput.stories.tsx index 15ee8bfe4f..709871c1f3 100644 --- a/packages/v2/gui/src/sak/meldinger/FritekstInput.stories.tsx +++ b/packages/v2/gui/src/sak/meldinger/FritekstInput.stories.tsx @@ -19,7 +19,7 @@ export const Default: StoryObj = { args: { språk: 'NB', // SPRAAK_KODE show: true, - showTitle: true, + fritekstModus: 'EnkelFritekst', showValidation: true, }, }; diff --git a/packages/v2/gui/src/sak/meldinger/FritekstInput.tsx b/packages/v2/gui/src/sak/meldinger/FritekstInput.tsx index dbc19b5809..ffda619d5a 100644 --- a/packages/v2/gui/src/sak/meldinger/FritekstInput.tsx +++ b/packages/v2/gui/src/sak/meldinger/FritekstInput.tsx @@ -1,6 +1,6 @@ import React, { type ForwardedRef, forwardRef, useEffect, useImperativeHandle, useReducer } from 'react'; import { Tag, type TagProps, Textarea, TextField } from '@navikt/ds-react'; -import { $FritekstbrevinnholdDto } from '@k9-sak-web/backend/k9sak/generated'; +import { $BestillBrevDto, $FritekstbrevinnholdDto } from '@k9-sak-web/backend/k9sak/generated'; import { validateTextCharacters } from '../../utils/validation/validateTextCharacters.js'; type Valid = { @@ -25,10 +25,13 @@ export interface FritekstInputInvalid { readonly tekst?: never; } +// Sending av brev med fritekst har to ulike varianter. Ein kort enkel fritekst eller lengre tekst med tittel. +export type FritekstModus = 'EnkelFritekst' | 'StørreFritekstOgTittel'; + type FritekstInputProps = { readonly språk: string; readonly show: boolean; - readonly showTitle: boolean; + readonly fritekstModus: FritekstModus; readonly showValidation: boolean; readonly defaultValue?: FritekstInputValue; readonly onChange?: (value: FritekstInputValue | FritekstInputInvalid) => void; @@ -40,8 +43,9 @@ export interface FritekstInputMethods { setValue(value: FritekstInputValue): void; } -const fritekstMaxLength = $FritekstbrevinnholdDto.properties.brødtekst.maxLength; const tittelMaxLength = $FritekstbrevinnholdDto.properties.overskrift.maxLength; +const storFritekstMaxLength = $FritekstbrevinnholdDto.properties.brødtekst.maxLength; +const litenFritekstMaxLength = $BestillBrevDto.properties.fritekst.maxLength; const validateTittel = (newValue: string | undefined): Valid | Error => { const input = newValue || ''; @@ -57,11 +61,12 @@ const validateTittel = (newValue: string | undefined): Valid | Error => { const tittelReducer = (_: Valid | Error, newValue: string | undefined): Valid | Error => validateTittel(newValue); -const validateTekst = (newValue: string | undefined): Valid | Error => { - const input = newValue || ''; - const len = newValue?.trim().length || 0; - if (newValue !== undefined && len > 0 && len <= fritekstMaxLength) { - const charValidationResult = validateTextCharacters(newValue); +const validateTekst = (tekst: string | undefined, fritekstModus: FritekstModus): Valid | Error => { + const input = tekst || ''; + const fritekstMaxLength = fritekstModus === 'StørreFritekstOgTittel' ? storFritekstMaxLength : litenFritekstMaxLength; + const len = tekst?.trim().length || 0; + if (tekst !== undefined && len > 0 && len <= fritekstMaxLength) { + const charValidationResult = validateTextCharacters(tekst); if (charValidationResult.ok) { // validation ok return { valid: true, input }; @@ -76,7 +81,8 @@ const validateTekst = (newValue: string | undefined): Valid | Error => { return { valid: false, input, error: `Fritekst kan være maks ${fritekstMaxLength} tegn` }; }; -const tekstReducer = (_: Valid | Error, newValue: string | undefined): Valid | Error => validateTekst(newValue); +const tekstReducer = (_: Valid | Error, newValue: { tekst: string | undefined; modus: FritekstModus }): Valid | Error => + validateTekst(newValue.tekst, newValue.modus); const resolveLanguageName = (språk: string): string => { switch (språk.toUpperCase()) { @@ -106,15 +112,15 @@ const resolveLanguageTagVariant = (språk: string): TagProps['variant'] => */ const FritekstInput = forwardRef( ( - { språk, show, showTitle, showValidation = false, defaultValue, onChange }: FritekstInputProps, + { språk, show, fritekstModus, showValidation = false, defaultValue, onChange }: FritekstInputProps, ref: ForwardedRef, ) => { const [tittel, setTittel] = useReducer(tittelReducer, validateTittel(defaultValue?.tittel)); - const [tekst, setTekst] = useReducer(tekstReducer, validateTekst(defaultValue?.tekst)); + const [tekst, setTekst] = useReducer(tekstReducer, validateTekst(defaultValue?.tekst, fritekstModus)); const getValue = (): FritekstInputValue | FritekstInputInvalid => { if (tekst.valid) { - if (!showTitle) { + if (fritekstModus === 'EnkelFritekst') { return { tittel: undefined, tekst: tekst.input }; } if (tittel.valid) { @@ -125,24 +131,26 @@ const FritekstInput = forwardRef( }; const setValue = (value: FritekstInputValue | undefined) => { setTittel(value?.tekst); - setTekst(value?.tekst); + setTekst({ tekst: value?.tekst, modus: fritekstModus }); }; useEffect(() => { if (onChange !== undefined) { onChange(getValue()); } - }, [tittel, tekst, showTitle, onChange]); + }, [tittel, tekst, fritekstModus, onChange]); useImperativeHandle(ref, () => { const reset = () => setValue(defaultValue); return { reset, getValue, setValue }; }); if (show) { + const fritekstMaxLength = + fritekstModus === 'StørreFritekstOgTittel' ? storFritekstMaxLength : litenFritekstMaxLength; return ( <> { - showTitle ? ( + fritekstModus === 'StørreFritekstOgTittel' ? ( setTekst(ev.target.value)} + onChange={ev => setTekst({ tekst: ev.target.value, modus: fritekstModus })} /> ); diff --git a/packages/v2/gui/src/sak/meldinger/Messages.tsx b/packages/v2/gui/src/sak/meldinger/Messages.tsx index 47d7e30109..bc8504882b 100644 --- a/packages/v2/gui/src/sak/meldinger/Messages.tsx +++ b/packages/v2/gui/src/sak/meldinger/Messages.tsx @@ -23,6 +23,7 @@ import FritekstInput, { type FritekstInputInvalid, type FritekstInputMethods, type FritekstInputValue, + type FritekstModus, } from './FritekstInput.js'; import MalSelect from './MalSelect.jsx'; import type { BehandlingInfo } from '../BehandlingInfo.js'; @@ -238,13 +239,19 @@ const Messages = ({ onValgtMalChanged(valgtMal); }, [valgtMal]); + const fritekstModus: FritekstModus = valgtMal?.støtterTittelOgFritekst ? 'StørreFritekstOgTittel' : 'EnkelFritekst'; + const showFritekstInput = (valgtMal?.støtterFritekst || valgtMal?.støtterTittelOgFritekst) ?? false; // FritekstbrevinnholdDto must be undefined or have props set with string value const resolveFritekstbrevinnholdDto = ( fritekstInputValue: FritekstInputValue | FritekstInputInvalid | undefined, ): FritekstbrevinnholdDto | undefined => { - if (fritekstInputValue?.tittel !== undefined && fritekstInputValue?.tekst !== undefined) { + if ( + fritekstModus === 'StørreFritekstOgTittel' && + fritekstInputValue?.tittel !== undefined && + fritekstInputValue?.tekst !== undefined + ) { return { overskrift: fritekstInputValue.tittel, brødtekst: fritekstInputValue.tekst, @@ -280,7 +287,7 @@ const Messages = ({ const fritekstbrev = resolveFritekstbrevinnholdDto(fritekstInputValue); // Ut frå oppførsel til gammal kode ser det ut til at fritekst skal settast når valgt mal ikkje støtter tittel. // Ellers skal fritekstbrev prop settast. - const fritekst = fritekstInputValue?.tekst; + const fritekst = fritekstModus === 'EnkelFritekst' ? fritekstInputValue?.tekst : undefined; const overstyrtMottaker = resolveOvertyrtMottaker(); // Viss valg for sending til tredjepartsmottaker er aktivt må overstyrtMottaker vere definert if (tredjepartsmottakerAktivert && overstyrtMottaker === undefined) { @@ -386,7 +393,7 @@ const Messages = ({ defaultValue={valgtFritekstInputValue} ref={fritekstInputRef} show={showFritekstInput} - showTitle={valgtMal?.støtterTittelOgFritekst === true} + fritekstModus={fritekstModus} showValidation={showValidation} /> diff --git a/vite.config.js b/vite.config.js index 1aacd5ddc2..4d091be011 100644 --- a/vite.config.js +++ b/vite.config.js @@ -69,9 +69,6 @@ export default ({ mode }) => { '/k9/oppdrag': createProxy(process.env.APP_URL_K9OPPDRAG || 'http://localhost:8070'), '/k9/klage': createProxy(process.env.APP_URL_KLAGE || 'http://localhost:8701'), '/k9/tilbake': createProxy(process.env.APP_URL_K9TILBAKE || 'http://localhost:8030'), - 'k9/diagnosekoder/': createProxy(process.env.APP_URL_DIAGNOSEKODER || 'http://localhost:8300', { - '^/k9/diagnosekoder/': '/diagnosekoder', - }), 'k9/endringslogg': createProxy( process.env.ENDRINGSLOGG_URL || 'https://familie-endringslogg.intern.dev.nav.no', { diff --git a/yarn.lock b/yarn.lock index 2901ac9bf9..2df9aa3e0a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1607,12 +1607,13 @@ __metadata: languageName: node linkType: hard -"@editorjs/header@npm:2.8.1": - version: 2.8.1 - resolution: "@editorjs/header@npm:2.8.1" +"@editorjs/header@npm:2.8.5": + version: 2.8.5 + resolution: "@editorjs/header@npm:2.8.5" dependencies: "@codexteam/icons": ^0.0.5 - checksum: d27cb82e63cdaa5be314c102b55b835b326a75e5a40b32c6e41728c26afcbb301dbac78c185e41e8b9a502698f2ab240fce5ff2ccae0114d2368eac1ffdea067 + "@editorjs/editorjs": ^2.29.1 + checksum: 7055497b1ffa33d170eeeb50f98a4b44371219a9e01904dfb763c7cabe5a667e20bc127d79c3730139f3a00b4b8c56a9356fcf21de99957658985c2fe152bc78 languageName: node linkType: hard @@ -1625,12 +1626,12 @@ __metadata: languageName: node linkType: hard -"@editorjs/paragraph@npm:2.11.5": - version: 2.11.5 - resolution: "@editorjs/paragraph@npm:2.11.5" +"@editorjs/paragraph@npm:2.11.6": + version: 2.11.6 + resolution: "@editorjs/paragraph@npm:2.11.6" dependencies: "@codexteam/icons": ^0.0.4 - checksum: 7159c555fbfbc8fab1716a838a9b273d2c6d58d1a6e89b54fc38dde65f6c956a5e2426d1d47afff80d4286888e37597d0badbdffe7afeefea04a12a0b86a1181 + checksum: 01ee0aae3eb51acd6d6907fb46d5ab5bca8d766c9108f4c13f09822f776a895a7245c68613a0fab8214331ab7c6e4afb19cf305622523b247db013c3318984cc languageName: node linkType: hard @@ -2694,9 +2695,9 @@ __metadata: resolution: "@fpsak-frontend/prosess-vedtak@workspace:packages/prosess-vedtak" dependencies: "@editorjs/editorjs": 2.29.1 - "@editorjs/header": 2.8.1 + "@editorjs/header": 2.8.5 "@editorjs/list": 1.9.0 - "@editorjs/paragraph": 2.11.5 + "@editorjs/paragraph": 2.11.6 "@fpsak-frontend/form": 1.0.0 "@fpsak-frontend/kodeverk": 1.0.0 "@fpsak-frontend/prop-types": 1.0.0 @@ -3560,7 +3561,7 @@ __metadata: resolution: "@k9-sak-web/backend@workspace:packages/v2/backend" dependencies: "@navikt/k9-klage-typescript-client": 1.0.20240513162434-997f3da - "@navikt/k9-sak-typescript-client": 1.0.20240620093339 + "@navikt/k9-sak-typescript-client": 1.0.20240708134619 languageName: unknown linkType: soft @@ -3627,7 +3628,7 @@ __metadata: "@k9-sak-web/rest-api-hooks": 1.0.0 "@k9-sak-web/types": 1.0.0 "@navikt/ft-fakta-beregning-redesign": 1.2.17 - "@navikt/ft-prosess-beregningsgrunnlag": 6.5.21 + "@navikt/ft-prosess-beregningsgrunnlag": 6.5.22 react: 18.3.1 react-intl: 6.6.8 languageName: unknown @@ -3686,7 +3687,7 @@ __metadata: "@k9-sak-web/types": 1.0.0 "@navikt/ft-fakta-beregning-redesign": 1.2.17 "@navikt/ft-fakta-fordel-beregningsgrunnlag": 7.5.18 - "@navikt/ft-prosess-beregningsgrunnlag": 6.5.21 + "@navikt/ft-prosess-beregningsgrunnlag": 6.5.22 react: 18.3.1 react-intl: 6.6.8 languageName: unknown @@ -3728,7 +3729,7 @@ __metadata: "@k9-sak-web/types": 1.0.0 "@navikt/ft-fakta-beregning-redesign": 1.2.17 "@navikt/ft-fakta-fordel-beregningsgrunnlag": 7.5.18 - "@navikt/ft-prosess-beregningsgrunnlag": 6.5.21 + "@navikt/ft-prosess-beregningsgrunnlag": 6.5.22 axios: 1.7.2 react: 18.3.1 react-intl: 6.6.8 @@ -3767,7 +3768,7 @@ __metadata: "@k9-sak-web/types": 1.0.0 "@navikt/ft-fakta-beregning-redesign": 1.2.17 "@navikt/ft-fakta-fordel-beregningsgrunnlag": 7.5.18 - "@navikt/ft-prosess-beregningsgrunnlag": 6.5.21 + "@navikt/ft-prosess-beregningsgrunnlag": 6.5.22 axios: 1.7.2 react: 18.3.1 react-intl: 6.6.8 @@ -3811,7 +3812,7 @@ __metadata: "@navikt/diagnosekoder": ^1.2024.0 "@navikt/ft-fakta-beregning-redesign": 1.2.17 "@navikt/ft-fakta-fordel-beregningsgrunnlag": 7.5.18 - "@navikt/ft-prosess-beregningsgrunnlag": 6.5.21 + "@navikt/ft-prosess-beregningsgrunnlag": 6.5.22 axios: 1.7.2 react: 18.3.1 react-intl: 6.6.8 @@ -3955,7 +3956,7 @@ __metadata: react-dom: 18.3.1 react-hook-form: 7.52.0 react-popper: 2.3.0 - vite: ^5.3.2 + vite: ^5.3.3 vite-plugin-node-polyfills: ^0.22.0 languageName: unknown linkType: soft @@ -3993,7 +3994,7 @@ __metadata: react-dom: 18.3.1 react-hook-form: 7.52.0 react-popper: 2.3.0 - vite: ^5.3.2 + vite: ^5.3.3 vite-plugin-node-polyfills: ^0.22.0 languageName: unknown linkType: soft @@ -4032,7 +4033,7 @@ __metadata: react-hook-form: 7.52.0 react-outside-click-handler: 1.3.0 react-popper: 2.3.0 - vite: ^5.3.2 + vite: ^5.3.3 vite-plugin-node-polyfills: ^0.22.0 languageName: unknown linkType: soft @@ -4053,7 +4054,7 @@ __metadata: react-hook-form: 7.52.0 react-popper: 2.3.0 tailwindcss: ^3.4.4 - vite: ^5.3.2 + vite: ^5.3.3 vite-plugin-node-polyfills: ^0.22.0 languageName: unknown linkType: soft @@ -4078,7 +4079,7 @@ __metadata: react-hook-form: 7.52.0 react-intl: 6.6.8 react-popper: 2.3.0 - vite: ^5.3.2 + vite: ^5.3.3 vite-plugin-node-polyfills: ^0.22.0 languageName: unknown linkType: soft @@ -4230,7 +4231,7 @@ __metadata: react: 18.3.1 react-dom: 18.3.1 react-hook-form: 7.52.0 - vite: ^5.3.2 + vite: ^5.3.3 vite-plugin-node-polyfills: ^0.22.0 vitest-axe: ^0.1.0 languageName: unknown @@ -4288,7 +4289,7 @@ __metadata: react-dom: 18.3.1 react-hook-form: 7.52.0 react-popper: 2.3.0 - vite: ^5.3.2 + vite: ^5.3.3 vite-plugin-node-polyfills: ^0.22.0 yup: 1.4.0 languageName: unknown @@ -4432,7 +4433,7 @@ __metadata: "@navikt/ft-fakta-beregning-redesign": 1.2.17 "@navikt/ft-form-hooks": 4.4.16 "@navikt/ft-plattform-komponenter": 3.0.1 - "@navikt/ft-prosess-beregningsgrunnlag": 6.5.21 + "@navikt/ft-prosess-beregningsgrunnlag": 6.5.22 "@navikt/ft-ui-komponenter": 2.3.16 "@sentry/browser": 8.13.0 "@sentry/react": ^8.13.0 @@ -4850,9 +4851,9 @@ __metadata: languageName: node linkType: hard -"@navikt/ft-prosess-beregningsgrunnlag@npm:6.5.21": - version: 6.5.21 - resolution: "@navikt/ft-prosess-beregningsgrunnlag@npm:6.5.21::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fft-prosess-beregningsgrunnlag%2F6.5.21%2F96c16995cd8af8da7a63b35c53bc720c73cfa5f0" +"@navikt/ft-prosess-beregningsgrunnlag@npm:6.5.22": + version: 6.5.22 + resolution: "@navikt/ft-prosess-beregningsgrunnlag@npm:6.5.22::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fft-prosess-beregningsgrunnlag%2F6.5.22%2F9e7134ab81153c6baeb4562d0e234ff1c72abe05" dependencies: "@navikt/aksel-icons": 6.12.0 "@navikt/ds-css": 6.12.0 @@ -4887,7 +4888,7 @@ __metadata: react: 18.3.1 react-hook-form: 7.52.0 react-intl: 6.6.8 - checksum: b660c351b82d1655abc36f1e2ab49a888920aaf0c3a4ce35d46ae252ee89096047ef916d6c5ec0727383586f6bcaaf305a6ca64597621ac88e4692ffd1d060b3 + checksum: 0b3ddc412a6c9639d3d63bbd632f94a37468ee0ad61848e8915f5d47b5109694d6fed81bc4ec9a1faf81e24ff9f8cd2974a146244b388d34807e2ba0c91246d8 languageName: node linkType: hard @@ -4988,10 +4989,10 @@ __metadata: languageName: node linkType: hard -"@navikt/k9-sak-typescript-client@npm:1.0.20240620093339": - version: 1.0.20240620093339 - resolution: "@navikt/k9-sak-typescript-client@npm:1.0.20240620093339::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-sak-typescript-client%2F1.0.20240620093339%2F5b3fd97d64b14200088a6cce51a7cd2ae7ef1f76" - checksum: 2b4f9bd7ecc1e6513804940937126a239f4275b45cb4e11ead3a3c8d8010f6f9947c4d583c56e9b6a1563fca7f4825cdafaa45fe5b8231041b17853095719e5f +"@navikt/k9-sak-typescript-client@npm:1.0.20240708134619": + version: 1.0.20240708134619 + resolution: "@navikt/k9-sak-typescript-client@npm:1.0.20240708134619::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40navikt%2Fk9-sak-typescript-client%2F1.0.20240708134619%2F2fa329d145b278506879f5601cf0b45c050eaabe" + checksum: 64bdab709d2668a79699a66b24412e9e6202abad9b4204ba274aaf7c0835037e7f3659843fc0a0dc6e61a3cbbc150db8492ebeaf6e85465096ac991094e85edc languageName: node linkType: hard @@ -5086,14 +5087,14 @@ __metadata: languageName: node linkType: hard -"@playwright/test@npm:^1.45.0": - version: 1.45.0 - resolution: "@playwright/test@npm:1.45.0" +"@playwright/test@npm:^1.45.1": + version: 1.45.1 + resolution: "@playwright/test@npm:1.45.1" dependencies: - playwright: 1.45.0 + playwright: 1.45.1 bin: playwright: cli.js - checksum: 55fb72f393b05f6684b5098e0681712f71e1fe25aa6a00bd636133f9ccc26d096d61ee30f569b83368e4bf6a1288d2f8f6fd5364da5d396eab180f89f61b7164 + checksum: 43ae29946d44adc6d855af233cfa59dd145b116b9341fb7758c723ec029d506982e69e230bdd06291bee2d373a53de1833cf5279cf33bef74efcd0f1ea90fd34 languageName: node linkType: hard @@ -14335,7 +14336,7 @@ __metadata: "@navikt/ds-tailwind": ^6.12.0 "@navikt/familie-endringslogg": 12.0.2 "@navikt/ft-plattform-komponenter": 3.0.1 - "@playwright/test": ^1.45.0 + "@playwright/test": ^1.45.1 "@popperjs/core": 2.11.8 "@sentry/browser": 8.13.0 "@sentry/cli": 2.32.1 @@ -14402,8 +14403,8 @@ __metadata: stylelint-order: 6.0.4 tailwindcss: ^3.4.4 typed-css-modules: ^0.9.1 - typescript: 5.5.2 - vite: ^5.3.2 + typescript: 5.5.3 + vite: ^5.3.3 vite-plugin-html: ^3.2.2 vite-plugin-svgr: 4.2.0 vitest: 1.6.0 @@ -16120,27 +16121,27 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:1.45.0": - version: 1.45.0 - resolution: "playwright-core@npm:1.45.0" +"playwright-core@npm:1.45.1": + version: 1.45.1 + resolution: "playwright-core@npm:1.45.1" bin: playwright-core: cli.js - checksum: e81a55eeefa997fcb559527127c9cefbbabe81f196de486224e6c2a3a66852dab883379ff28a05b8008fb0ad4992840ad53c2415cee27e2d1778836210d9248e + checksum: 1279cbf33d70a16f0451b590723a4b56bf3a96a9196f1d7bd76444fdd8c976bb7671698199ab4e0acaeb800c7aac48a62036e30f27fd37a74925b53b80f2e85f languageName: node linkType: hard -"playwright@npm:1.45.0": - version: 1.45.0 - resolution: "playwright@npm:1.45.0" +"playwright@npm:1.45.1": + version: 1.45.1 + resolution: "playwright@npm:1.45.1" dependencies: fsevents: 2.3.2 - playwright-core: 1.45.0 + playwright-core: 1.45.1 dependenciesMeta: fsevents: optional: true bin: playwright: cli.js - checksum: 2a5f827fdcc90f1ec0ea4d9e4f2021ae894df88d3c0577677a81f72a09d91fb15584346e63ec2f85bfc24f872976ff2a76cee6ca7d7f29a8cc3159ced4f25b50 + checksum: 34c589b3e7ef4d54782336167f8f3d1b456178b04b98eb8c944eaf21fd66cf5480e5f0c0ec8b846a69659b6fc31764283598aac5bb9307f7413f8fca81d40751 languageName: node linkType: hard @@ -16327,14 +16328,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.38": - version: 8.4.38 - resolution: "postcss@npm:8.4.38" +"postcss@npm:8.4.39": + version: 8.4.39 + resolution: "postcss@npm:8.4.39" dependencies: nanoid: ^3.3.7 - picocolors: ^1.0.0 + picocolors: ^1.0.1 source-map-js: ^1.2.0 - checksum: 649f9e60a763ca4b5a7bbec446a069edf07f057f6d780a5a0070576b841538d1ecf7dd888f2fbfd1f76200e26c969e405aeeae66332e6927dbdc8bdcb90b9451 + checksum: 14b130c90f165961772bdaf99c67f907f3d16494adf0868e57ef68baa67e0d1f6762db9d41ab0f4d09bab6fb7888588dba3596afd1a235fd5c2d43fba7006ac6 languageName: node linkType: hard @@ -19098,23 +19099,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:5.5.2": - version: 5.5.2 - resolution: "typescript@npm:5.5.2" +"typescript@npm:5.5.3": + version: 5.5.3 + resolution: "typescript@npm:5.5.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 9c5a7982dadcb2d38d129c575dd38645ae11588ae0d4a12852fb04482bbc5a1660b2371e48fd5b33b6b605cc57cefe777670054546856945a05e77bd22c8c2cd + checksum: 4b4f14313484d5c86064d04ba892544801fa551f5cf72719b540b498056fec7fc192d0bbdb2ba1448e759b1548769956da9e43e7c16781e8d8856787b0575004 languageName: node linkType: hard -"typescript@patch:typescript@5.5.2#~builtin": - version: 5.5.2 - resolution: "typescript@patch:typescript@npm%3A5.5.2#~builtin::version=5.5.2&hash=1f5320" +"typescript@patch:typescript@5.5.3#~builtin": + version: 5.5.3 + resolution: "typescript@patch:typescript@npm%3A5.5.3#~builtin::version=5.5.3&hash=1f5320" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 9d89bac0de650e15d6846485f238d1e65f1013f2c260d9e53e86a1da6ecf8109d9fad9402575c5c36a6592dc5d4370db090e12971c8630ae84453654baabb6b4 + checksum: 6853be4607706cc1ad2f16047cf1cd72d39f79acd5f9716e1d23bc0e462c7f59be7458fe58a21665e7657a05433d7ab8419d093a5a4bd5f3a33f879b35d2769b languageName: node linkType: hard @@ -19573,13 +19574,13 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.3.2": - version: 5.3.2 - resolution: "vite@npm:5.3.2" +"vite@npm:^5.3.3": + version: 5.3.3 + resolution: "vite@npm:5.3.3" dependencies: esbuild: ^0.21.3 fsevents: ~2.3.3 - postcss: ^8.4.38 + postcss: ^8.4.39 rollup: ^4.13.0 peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 @@ -19609,7 +19610,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: d6872cb72701ec4b8d8dbccc5deacb5af03c3f247df02750787d6dcf4e49e207effed7a06e4f103008a918188cdf0789ff7348db451ebd0d59ef1a22ae4a267d + checksum: 1a54b678c03b52be934b0db95295aa573819063fad9e13f148936cfc4006d081a6790fdd2dbe111b09b75b9a8d49f15e0788c58b86156d238ab3a0c1cc1a941f languageName: node linkType: hard