diff --git a/.github/workflows/.deploy-app-to-dev.yml b/.github/workflows/.deploy-app-to-dev.yml index a0a5c33f4a..5783247fba 100644 --- a/.github/workflows/.deploy-app-to-dev.yml +++ b/.github/workflows/.deploy-app-to-dev.yml @@ -9,6 +9,9 @@ on: app-name: type: string required: true + is-next-app: + type: boolean + required: false jobs: deploy-to-dev: @@ -20,6 +23,14 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: @@ -27,10 +38,19 @@ jobs: cache: 'yarn' - name: Install dependencies (yarn) - run: yarn + run: yarn install + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + + - name: Copy .env.dev for next.js build + if: ${{ inputs.is-next-app == true }} + shell: bash + run: | + echo "Copying .env.dev to app root" + cp apps/${{inputs.app-name}}/nais/envs/.env.dev apps/${{inputs.app-name}}/.env.production - name: Build application - run: yarn build-${{ inputs.app-name }} + run: yarn turbo run build-app --filter=@navikt/${{ inputs.app-name }} - name: Build and publish docker image uses: nais/docker-build-push@v0 @@ -54,3 +74,4 @@ jobs: VAR: GITHUB_REF_NAME=${{ github.ref_name }} # brukes i applikasjonerna APIKEY: ${{ secrets.NAIS_DEPLOY_APIKEY }} IMAGE: ${{ steps.docker-push.outputs.image }} + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} diff --git a/.github/workflows/.deploy-app-to-prod.yml b/.github/workflows/.deploy-app-to-prod.yml index 7895baeb1b..7122d19a07 100644 --- a/.github/workflows/.deploy-app-to-prod.yml +++ b/.github/workflows/.deploy-app-to-prod.yml @@ -9,6 +9,9 @@ on: app-name: type: string required: true + is-next-app: + type: boolean + required: false jobs: deploy-to-prod: @@ -22,6 +25,14 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: @@ -31,8 +42,15 @@ jobs: - name: Install dependencies (yarn) run: yarn + - name: Copy .env.prod for next.js build + if: ${{ inputs.is-next-app == true }} + shell: bash + run: | + echo "Copying .env.prod to app root" + cp apps/${{inputs.app-name}}/nais/envs/.env.prod apps/${{inputs.app-name}}/.env.production + - name: Build application - run: yarn build-${{ inputs.app-name }} + run: yarn turbo run build-app --filter=@navikt/${{ inputs.app-name }} - name: Build and publish docker image uses: nais/docker-build-push@v0 diff --git a/.github/workflows/.test-deploy-omssoknad-distroless.yml b/.github/workflows/.test-deploy-omssoknad-distroless.yml deleted file mode 100644 index fb9522d13f..0000000000 --- a/.github/workflows/.test-deploy-omssoknad-distroless.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: .Test-Deploy omssoknad distroless - -on: - workflow_dispatch: - - -jobs: - deploy-to-dev: - runs-on: ubuntu-latest - permissions: - id-token: write # required: nais/docker-build-push - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: 'yarn' - - - name: Install dependencies (yarn) - run: yarn - - - name: Build application - run: yarn build-omsorgspengesoknad - - - name: Build with turbo - run: yarn turbo run build-app --filter=@navikt/omsorgspengesoknad - - - name: Build and publish docker image - uses: nais/docker-build-push@v0 - id: docker-push - with: - team: dusseldorf - push_image: true - pull: true - dockerfile: Dockerfile - docker_context: . - build_args: APP_NAME=omsorgspengesoknad - image_suffix: omsorgspengesoknad-test-mono - project_id: ${{ vars.NAIS_MANAGEMENT_PROJECT_ID }} - identity_provider: ${{ secrets.NAIS_WORKLOAD_IDENTITY_PROVIDER }} - - - name: Deploy to dev - uses: nais/deploy/actions/deploy@v1 - env: - CLUSTER: dev-gcp - RESOURCE: nais-config/nais.yml - VARS: apps/omsorgspengesoknad/nais/dev-gcp.json - VAR: GITHUB_REF_NAME=${{ github.ref_name }} # brukes i applikasjonerna - APIKEY: ${{ secrets.NAIS_DEPLOY_APIKEY }} - IMAGE: ${{ steps.docker-push.outputs.image }} diff --git a/.github/workflows/dispatch.deploy-dine-pleiepenger-to-prod.yml b/.github/workflows/dispatch.deploy-dine-pleiepenger-to-prod.yml new file mode 100644 index 0000000000..92846eac1c --- /dev/null +++ b/.github/workflows/dispatch.deploy-dine-pleiepenger-to-prod.yml @@ -0,0 +1,30 @@ +name: Deploy dine-pleiepenger to prod +run-name: Deploy dine-pleiepenger to prod + +on: + push: + branches: + - main + paths: + - 'apps/dine-pleiepenger/**/*' + workflow_dispatch: + +jobs: + run-tests: + uses: ./.github/workflows/test.dine-pleiepenger.yml + secrets: inherit + + deploy-to-prod: + name: Deploy dine-pleiepenger to prod + needs: [run-tests] + uses: ./.github/workflows/.deploy-app-to-prod.yml + secrets: inherit + permissions: + contents: write + security-events: write + id-token: write + actions: read + with: + app-name: 'dine-pleiepenger' + working-directory: 'apps/dine-pleiepenger' + is-next-app: true diff --git a/.github/workflows/dispatch.deploy-ekstra-omsorgsdager-andre-forelder-ikke-tilsyn-to-prod.yml b/.github/workflows/dispatch.deploy-ekstra-omsorgsdager-andre-forelder-ikke-tilsyn-to-prod.yml index 63d0dd4099..c6eb9c256f 100644 --- a/.github/workflows/dispatch.deploy-ekstra-omsorgsdager-andre-forelder-ikke-tilsyn-to-prod.yml +++ b/.github/workflows/dispatch.deploy-ekstra-omsorgsdager-andre-forelder-ikke-tilsyn-to-prod.yml @@ -12,11 +12,12 @@ on: jobs: run-tests: uses: ./.github/workflows/test.ekstra-omsorgsdager-andre-forelder-ikke-tilsyn.yml + secrets: inherit deploy-to-prod: name: Deploy ekstra-omsorgsdager-andre-forelder-ikke-tilsyn to prod needs: [run-tests] - uses: navikt/sif-brukerdialog/.github/workflows/.deploy-app-to-prod.yml@main + uses: ./.github/workflows/.deploy-app-to-prod.yml secrets: inherit permissions: contents: write diff --git a/.github/workflows/dispatch.deploy-endringsmelding-pleiepenger-to-prod.yml b/.github/workflows/dispatch.deploy-endringsmelding-pleiepenger-to-prod.yml index 5fb1c9344f..04a9c2d59f 100644 --- a/.github/workflows/dispatch.deploy-endringsmelding-pleiepenger-to-prod.yml +++ b/.github/workflows/dispatch.deploy-endringsmelding-pleiepenger-to-prod.yml @@ -12,11 +12,12 @@ on: jobs: run-tests: uses: ./.github/workflows/test.endringsmelding-pleiepenger.yml + secrets: inherit deploy-to-prod: name: Deploy endringsmelding-pleiepenger to prod needs: [run-tests] - uses: navikt/sif-brukerdialog/.github/workflows/.deploy-app-to-prod.yml@main + uses: ./.github/workflows/.deploy-app-to-prod.yml secrets: inherit permissions: contents: write diff --git a/.github/workflows/dispatch.deploy-ettersending-to-prod.yml b/.github/workflows/dispatch.deploy-ettersending-to-prod.yml index 099d742556..5fae86315d 100644 --- a/.github/workflows/dispatch.deploy-ettersending-to-prod.yml +++ b/.github/workflows/dispatch.deploy-ettersending-to-prod.yml @@ -12,11 +12,12 @@ on: jobs: run-tests: uses: ./.github/workflows/test.sif-ettersending.yml + secrets: inherit deploy-to-prod: name: Deploy sif-ettersending to prod needs: [run-tests] - uses: navikt/sif-brukerdialog/.github/workflows/.deploy-app-to-prod.yml@main + uses: ./.github/workflows/.deploy-app-to-prod.yml secrets: inherit permissions: contents: write diff --git a/.github/workflows/dispatch.deploy-omsorgsdager-aleneomsorg-dialog-to-prod.yml b/.github/workflows/dispatch.deploy-omsorgsdager-aleneomsorg-dialog-to-prod.yml index ad012eb073..aa984ca6a8 100644 --- a/.github/workflows/dispatch.deploy-omsorgsdager-aleneomsorg-dialog-to-prod.yml +++ b/.github/workflows/dispatch.deploy-omsorgsdager-aleneomsorg-dialog-to-prod.yml @@ -12,11 +12,12 @@ on: jobs: run-tests: uses: ./.github/workflows/test.omsorgsdager-aleneomsorg-dialog.yml + secrets: inherit deploy-to-prod: name: Deploy omsorgsdager-aleneomsorg-dialog to prod needs: [run-tests] - uses: navikt/sif-brukerdialog/.github/workflows/.deploy-app-to-prod.yml@main + uses: ./.github/workflows/.deploy-app-to-prod.yml secrets: inherit permissions: contents: write diff --git a/.github/workflows/dispatch.deploy-omsorgsdager-kalkulator-to-prod.yml b/.github/workflows/dispatch.deploy-omsorgsdager-kalkulator-to-prod.yml new file mode 100644 index 0000000000..e3c9a1dfa0 --- /dev/null +++ b/.github/workflows/dispatch.deploy-omsorgsdager-kalkulator-to-prod.yml @@ -0,0 +1,29 @@ +name: Deploy omsorgsdager kalkulator to prod +run-name: Deploy omsorgsdager kalkulator to prod + +on: + push: + branches: + - main + paths: + - 'apps/omsorgsdager-kalkulator/**/*' + workflow_dispatch: + +jobs: + run-tests: + uses: ./.github/workflows/test.omsorgsdager-kalkulator.yml + secrets: inherit + + deploy-to-prod: + name: Deploy omsorgsdager kalkulator to prod + needs: [run-tests] + uses: ./.github/workflows/.deploy-app-to-prod.yml + secrets: inherit + permissions: + contents: write + security-events: write + id-token: write + actions: read + with: + app-name: 'omsorgsdager-kalkulator' + working-directory: 'apps/omsorgsdager-kalkulator' diff --git a/.github/workflows/dispatch.deploy-omsorgspengerutbetaling-soknad-to-prod.yml b/.github/workflows/dispatch.deploy-omsorgspengerutbetaling-soknad-to-prod.yml index 23a803175f..3414e2a28f 100644 --- a/.github/workflows/dispatch.deploy-omsorgspengerutbetaling-soknad-to-prod.yml +++ b/.github/workflows/dispatch.deploy-omsorgspengerutbetaling-soknad-to-prod.yml @@ -12,11 +12,12 @@ on: jobs: run-tests: uses: ./.github/workflows/test.omsorgspengerutbetaling-soknad.yml + secrets: inherit deploy-to-prod: name: Deploy omsorgspengerutbetaling-soknad to prod needs: [run-tests] - uses: navikt/sif-brukerdialog/.github/workflows/.deploy-app-to-prod.yml@main + uses: ./.github/workflows/.deploy-app-to-prod.yml secrets: inherit permissions: contents: write diff --git "a/.github/workflows/dispatch.deploy-omsorgspenges\303\270knad-to-prod.yml" "b/.github/workflows/dispatch.deploy-omsorgspenges\303\270knad-to-prod.yml" index a596c1cbe4..6c7cde39bc 100644 --- "a/.github/workflows/dispatch.deploy-omsorgspenges\303\270knad-to-prod.yml" +++ "b/.github/workflows/dispatch.deploy-omsorgspenges\303\270knad-to-prod.yml" @@ -12,11 +12,12 @@ on: jobs: run-tests: uses: ./.github/workflows/test.omsorgspengesøknad.yml + secrets: inherit deploy-to-prod: name: Deploy omsorgspengesøknad to prod needs: [run-tests] - uses: navikt/sif-brukerdialog/.github/workflows/.deploy-app-to-prod.yml@main + uses: ./.github/workflows/.deploy-app-to-prod.yml secrets: inherit permissions: contents: write diff --git a/.github/workflows/dispatch.deploy-pleiepenger-i-livets-sluttfase-soknad-to-prod.yml b/.github/workflows/dispatch.deploy-pleiepenger-i-livets-sluttfase-soknad-to-prod.yml index 5a6b74ec32..bd264b3a45 100644 --- a/.github/workflows/dispatch.deploy-pleiepenger-i-livets-sluttfase-soknad-to-prod.yml +++ b/.github/workflows/dispatch.deploy-pleiepenger-i-livets-sluttfase-soknad-to-prod.yml @@ -12,17 +12,18 @@ on: jobs: run-tests: uses: ./.github/workflows/test.pleiepenger-i-livets-sluttfase-soknad.yml + secrets: inherit - # deploy-to-prod: - # name: Deploy pleiepenger-i-livets-sluttfase-soknad to prod - # needs: [run-tests] - # uses: navikt/sif-brukerdialog/.github/workflows/.deploy-app-to-prod.yml@main - # secrets: inherit - # permissions: - # contents: write - # security-events: write - # id-token: write - # actions: read - # with: - # app-name: 'pleiepenger-i-livets-sluttfase-soknad' - # working-directory: 'apps/pleiepenger-i-livets-sluttfase-soknad' + deploy-to-prod: + name: Deploy pleiepenger-i-livets-sluttfase-soknad to prod + needs: [run-tests] + uses: ./.github/workflows/.deploy-app-to-prod.yml + secrets: inherit + permissions: + contents: write + security-events: write + id-token: write + actions: read + with: + app-name: 'pleiepenger-i-livets-sluttfase-soknad' + working-directory: 'apps/pleiepenger-i-livets-sluttfase-soknad' diff --git a/.github/workflows/dispatch.deploy-pleiepenger-sykt-barn-to-prod.yml b/.github/workflows/dispatch.deploy-pleiepenger-sykt-barn-to-prod.yml index b3a5e46622..78922cb825 100644 --- a/.github/workflows/dispatch.deploy-pleiepenger-sykt-barn-to-prod.yml +++ b/.github/workflows/dispatch.deploy-pleiepenger-sykt-barn-to-prod.yml @@ -10,53 +10,20 @@ on: workflow_dispatch: jobs: - run-tests: - name: Run tests - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: 'yarn' - - - name: Install dependencies (yarn) - run: yarn - - - name: Run code tests - run: yarn test --filter=pleiepenger-sykt-barn - - - name: Build and start e2e server - uses: cypress-io/github-action@v6.6.0 - env: - DEKORATOR_URL: https://www.nav.no/dekoratoren/?simple=true&chatbot=false - PUBLIC_PATH: /familie/sykdom-i-familien/soknad/pleiepenger - FRONTEND_API_PATH: http://localhost:8082/ - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - project: ./apps/pleiepenger-sykt-barn/e2e - build: yarn build-pleiepenger-sykt-barn - start: yarn turbo start-e2e-server --filter=pleiepenger-sykt-barn - wait-on: 'http://localhost:8080' - wait-on-timeout: 60 - runTests: false - - - name: Run cypress tests - run: yarn turbo cypress-run --filter=pleiepenger-sykt-barn - - deploy-to-prod: - name: Deploy pleiepenger-sykt-barn to prod - needs: [run-tests] - uses: navikt/sif-brukerdialog/.github/workflows/.deploy-app-to-prod.yml@main - secrets: inherit - permissions: - contents: write - security-events: write - id-token: write - actions: read - with: - app-name: 'pleiepenger-sykt-barn' - working-directory: 'apps/pleiepenger-sykt-barn' + run-tests: + uses: ./.github/workflows/test.pleiepenger-sykt-barn.yml + secrets: inherit + + deploy-to-prod: + name: Deploy pleiepenger-sykt-barn to prod + needs: [run-tests] + uses: ./.github/workflows/.deploy-app-to-prod.yml + secrets: inherit + permissions: + contents: write + security-events: write + id-token: write + actions: read + with: + app-name: 'pleiepenger-sykt-barn' + working-directory: 'apps/pleiepenger-sykt-barn' diff --git a/.github/workflows/dispatch.deploy-to-dev-next.yml b/.github/workflows/dispatch.deploy-to-dev-next.yml new file mode 100644 index 0000000000..1eef3f351e --- /dev/null +++ b/.github/workflows/dispatch.deploy-to-dev-next.yml @@ -0,0 +1,24 @@ +name: Deploy app to dev (next.js) +run-name: Deploy ${{ inputs.app-name }} to dev (${{github.ref_name}}) + +on: + workflow_dispatch: + inputs: + app-name: + description: Choose application + type: choice + options: + - dine-pleiepenger + required: true + +jobs: + deploy-to-dev: + name: Deploy ${{ inputs.app-name }} to dev + uses: navikt/sif-brukerdialog/.github/workflows/.deploy-app-to-dev.yml@main + secrets: inherit + permissions: + id-token: write + with: + app-name: '${{ inputs.app-name }}' + working-directory: 'apps/${{ inputs.app-name }}' + is-next-app: true diff --git a/.github/workflows/dispatch.deploy-to-dev.yml b/.github/workflows/dispatch.deploy-to-dev.yml index edc8392b6c..126a9a9c4b 100644 --- a/.github/workflows/dispatch.deploy-to-dev.yml +++ b/.github/workflows/dispatch.deploy-to-dev.yml @@ -16,6 +16,7 @@ on: - pleiepenger-i-livets-sluttfase-soknad - pleiepenger-sykt-barn - sif-ettersending + - omsorgsdager-kalkulator required: true jobs: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 19faabbdb6..19eee2ffd4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,6 +16,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js 18.x uses: actions/setup-node@v4 with: diff --git a/.github/workflows/test.dine-pleiepenger.yml b/.github/workflows/test.dine-pleiepenger.yml new file mode 100644 index 0000000000..8fa269c733 --- /dev/null +++ b/.github/workflows/test.dine-pleiepenger.yml @@ -0,0 +1,80 @@ +# This workflow trigger on push to apps/dine-pleiepenger +name: test.dine-pleiepenger +on: + push: + branches-ignore: + - 'main' + paths: + - 'apps/dine-pleiepenger/**/*' + - 'nais-config/**/*' + - 'packages/**/*' + - .github/workflows/app.dine-pleiepenger.yml + - .github/workflows/test.dine-pleiepenger.yml + - yarn.lock + workflow_call: + +env: + APP_NAME: 'dine-pleiepenger' + +jobs: + run-script-tests: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + + - name: Setup Node.js environment + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: 'yarn' + + - name: Install dependencies (yarn) + run: yarn + + - name: Run code tests + run: yarn test --filter=dine-pleiepenger + + run-playwright-test: + timeout-minutes: 60 + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + + - name: Setup Node.js environment + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: 'yarn' + + - name: Install dependencies + run: yarn + + - name: Install Playwright Browsers + run: npx playwright install chromium + + - name: Copy .env.dev for next.js build + shell: bash + run: | + echo "Copying .env.dev to app root" + cp apps/dine-pleiepenger/nais/envs/.env.dev apps/dine-pleiepenger/.env.production + + - name: Run tests + run: yarn turbo playwright-test --filter=dine-pleiepenger diff --git a/.github/workflows/test.ekstra-omsorgsdager-andre-forelder-ikke-tilsyn.yml b/.github/workflows/test.ekstra-omsorgsdager-andre-forelder-ikke-tilsyn.yml index 17d26f0c48..20f88b9562 100644 --- a/.github/workflows/test.ekstra-omsorgsdager-andre-forelder-ikke-tilsyn.yml +++ b/.github/workflows/test.ekstra-omsorgsdager-andre-forelder-ikke-tilsyn.yml @@ -10,6 +10,7 @@ on: - 'packages/**/*' - .github/workflows/app.ekstra-omsorgsdager-andre-forelder-ikke-tilsyn.yml - .github/workflows/test.ekstra-omsorgsdager-andre-forelder-ikke-tilsyn.yml + - yarn.lock workflow_call: env: @@ -22,6 +23,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: @@ -42,6 +51,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: diff --git a/.github/workflows/test.endringsmelding-pleiepenger.yml b/.github/workflows/test.endringsmelding-pleiepenger.yml index cfccb698fe..d6ecde5834 100644 --- a/.github/workflows/test.endringsmelding-pleiepenger.yml +++ b/.github/workflows/test.endringsmelding-pleiepenger.yml @@ -10,6 +10,7 @@ on: - 'packages/**/*' - .github/workflows/app.endringsmelding-pleiepenger.yml - .github/workflows/test.endringsmelding-pleiepenger.yml + - yarn.lock workflow_call: env: @@ -21,6 +22,14 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} - name: Setup Node.js environment uses: actions/setup-node@v4 @@ -39,6 +48,14 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} - name: Setup Node.js environment uses: actions/setup-node@v4 @@ -64,7 +81,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: project: ./apps/endringsmelding-pleiepenger/e2e - build: yarn build-endringsmelding-pleiepenger + build: yarn turbo run build-app --filter=@navikt/endringsmelding-pleiepenger start: yarn turbo start-e2e-server --filter=endringsmelding-pleiepenger wait-on: 'http://localhost:8080/familie/sykdom-i-familien/soknad/endringsmelding-pleiepenger/alive' wait-on-timeout: 60 diff --git a/.github/workflows/test.omsorgsdager-aleneomsorg-dialog.yml b/.github/workflows/test.omsorgsdager-aleneomsorg-dialog.yml index ff99a27452..d2092f2fd1 100644 --- a/.github/workflows/test.omsorgsdager-aleneomsorg-dialog.yml +++ b/.github/workflows/test.omsorgsdager-aleneomsorg-dialog.yml @@ -10,6 +10,7 @@ on: - 'packages/**/*' - .github/workflows/app.omsorgsdager-aleneomsorg-dialog.yml - .github/workflows/test.omsorgsdager-aleneomsorg-dialog.yml + - yarn.lock workflow_call: env: @@ -22,6 +23,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: @@ -41,6 +50,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: @@ -54,8 +71,8 @@ jobs: run: npx playwright install chromium - name: Build application - run: yarn build-app --filter=omsorgspengesoknad + run: yarn build-app --filter=omsorgsdager-aleneomsorg-dialog - name: Run tests - run: yarn turbo playwright-test --filter=omsorgspengesoknad + run: yarn turbo playwright-test --filter=omsorgsdager-aleneomsorg-dialog \ No newline at end of file diff --git a/.github/workflows/test.omsorgsdager-kalkulator.yml b/.github/workflows/test.omsorgsdager-kalkulator.yml new file mode 100644 index 0000000000..76bf9b0f85 --- /dev/null +++ b/.github/workflows/test.omsorgsdager-kalkulator.yml @@ -0,0 +1,77 @@ +# This workflow trigger on push to apps/sif-ettersending +name: test.omsorgsdager-kalkulator +on: + push: + branches-ignore: + - 'main' + paths: + - 'apps/omsorgsdager-kalkulator/**/*' + - 'nais-config/**/*' + - 'packages/**/*' + - .github/workflows/app.omsorgsdager-kalkulator.yml + - .github/workflows/test.omsorgsdager-kalkulator.yml + - yarn.lock + workflow_call: + +env: + APP_NAME: 'omsorgsdager-kalkulator' + +jobs: + run-script-tests: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + + - name: Setup Node.js environment + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: 'yarn' + + - name: Install dependencies (yarn) + run: yarn + + - name: Run code tests + run: yarn test --filter=omsorgsdager-kalkulator + + run-playwright-test: + timeout-minutes: 60 + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + + - name: Setup Node.js environment + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: 'yarn' + + - name: Install dependencies + run: yarn + + - name: Install Playwright Browsers + run: npx playwright install chromium + + - name: Build application + run: yarn build --filter=omsorgsdager-kalkulator + + - name: Run tests + run: yarn turbo playwright-test --filter=omsorgsdager-kalkulator diff --git a/.github/workflows/test.omsorgspengerutbetaling-soknad.yml b/.github/workflows/test.omsorgspengerutbetaling-soknad.yml index b7a97e6f28..dad6eac72b 100644 --- a/.github/workflows/test.omsorgspengerutbetaling-soknad.yml +++ b/.github/workflows/test.omsorgspengerutbetaling-soknad.yml @@ -10,6 +10,7 @@ on: - 'packages/**/*' - .github/workflows/app.omsorgspengerutbetaling-soknad.yml - .github/workflows/test.omsorgspengerutbetaling-soknad.yml + - yarn.lock workflow_call: env: @@ -31,6 +32,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: @@ -50,6 +59,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: diff --git "a/.github/workflows/test.omsorgspenges\303\270knad.yml" "b/.github/workflows/test.omsorgspenges\303\270knad.yml" index 9e998917f2..3407a02917 100644 --- "a/.github/workflows/test.omsorgspenges\303\270knad.yml" +++ "b/.github/workflows/test.omsorgspenges\303\270knad.yml" @@ -10,6 +10,7 @@ on: - 'packages/**/*' - .github/workflows/app.omsorgspengesøknad.yml - .github/workflows/test.omsorgspengesøknad.yml + - yarn.lock workflow_call: env: @@ -22,6 +23,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: @@ -41,6 +50,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: diff --git a/.github/workflows/test.pleiepenger-i-livets-sluttfase-soknad.yml b/.github/workflows/test.pleiepenger-i-livets-sluttfase-soknad.yml index 7d8b0585e2..c48dee04fb 100644 --- a/.github/workflows/test.pleiepenger-i-livets-sluttfase-soknad.yml +++ b/.github/workflows/test.pleiepenger-i-livets-sluttfase-soknad.yml @@ -10,6 +10,7 @@ on: - 'packages/**/*' - .github/workflows/app.pleiepenger-i-livets-sluttfase-soknad.yml - .github/workflows/test.pleiepenger-i-livets-sluttfase-soknad.yml + - yarn.lock workflow_call: env: @@ -22,6 +23,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: @@ -41,6 +50,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: diff --git a/.github/workflows/test.pleiepenger-sykt-barn.yml b/.github/workflows/test.pleiepenger-sykt-barn.yml index 408a0b77ac..03218bf63f 100644 --- a/.github/workflows/test.pleiepenger-sykt-barn.yml +++ b/.github/workflows/test.pleiepenger-sykt-barn.yml @@ -9,6 +9,8 @@ on: - 'nais-config/**/*' - 'packages/**/*' - '.github/workflows/test.pleiepenger-sykt-barn.yml' + - yarn.lock + workflow_call: env: APP_NAME: 'pleiepenger-sykt-barn' @@ -20,6 +22,15 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + + - name: Setup Node.js environment uses: actions/setup-node@v4 with: @@ -32,27 +43,41 @@ jobs: - name: Run code tests run: yarn test --filter=pleiepenger-sykt-barn - run-playwright-test: - timeout-minutes: 60 + run-cypress-test: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: node-version: 18 cache: 'yarn' - - name: Install dependencies - run: yarn - - - name: Install Playwright Browsers - run: npx playwright install chromium - - - name: Build application - run: yarn build-app --filter=pleiepenger-sykt-barn + - name: Build and start e2e server + uses: cypress-io/github-action@v6.6.0 + env: + DEKORATOR_URL: https://www.nav.no/dekoratoren/?simple=true&chatbot=false + PUBLIC_PATH: /familie/sykdom-i-familien/soknad/pleiepenger + FRONTEND_API_PATH: http://localhost:8082/ + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} + with: + project: ./apps/pleiepenger-sykt-barn/e2e + build: yarn turbo run build-app --filter=@navikt/pleiepenger-sykt-barn + start: yarn turbo start-e2e-server --filter=pleiepenger-sykt-barn + wait-on: 'http://localhost:8080' + wait-on-timeout: 60 + runTests: false - name: Run tests run: yarn turbo playwright-test --filter=pleiepenger-sykt-barn diff --git a/.github/workflows/test.sif-ettersending.yml b/.github/workflows/test.sif-ettersending.yml index fa1c70345f..27f7aec432 100644 --- a/.github/workflows/test.sif-ettersending.yml +++ b/.github/workflows/test.sif-ettersending.yml @@ -10,6 +10,7 @@ on: - 'packages/**/*' - .github/workflows/app.sif-ettersending.yml - .github/workflows/test.sif-ettersending.yml + - yarn.lock workflow_call: env: @@ -22,6 +23,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: @@ -41,6 +50,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.navikt.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.navikt.npmAlwaysAuth true + yarn config set npmScopes.navikt.npmAuthToken $NODE_AUTH_TOKEN + env: + NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} + - name: Setup Node.js environment uses: actions/setup-node@v4 with: diff --git a/.gitignore b/.gitignore index f1a5ea68b1..c5ee9aca58 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,17 @@ server/dist public/dist out +# next.js +/.next/ +/out/ + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + packages/**/*/coverage packages/**/*/lib **/cypress/videos/**/* @@ -33,3 +44,8 @@ test-results !.yarn/releases !.yarn/sdks !.yarn/versions + +build-storybook.log +chromatic.log +chromatic-build-*.xml +chromatic-diagnostics.json \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit index af1cd16b56..5a182ef106 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -yarn test && yarn lint-staged +yarn lint-staged diff --git a/.yarnrc.yml b/.yarnrc.yml index c6d2d299cf..13e167e91c 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -5,3 +5,8 @@ plugins: spec: "@yarnpkg/plugin-interactive-tools" yarnPath: .yarn/releases/yarn-3.5.0.cjs + +npmScopes: + navikt: + npmAlwaysAuth: true + npmRegistryServer: "https://npm.pkg.github.com" diff --git a/README.md b/README.md index 78c1df96e8..0211051cde 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Samling av kode for søknadsdialoger under Sykdom i familien - Vi bruker @changesets/cli for å holde orden på versjoner. Se https://www.npmjs.com/package/@changesets/cli for mer informasjon om hvordan det brukes. -## Produksjonsseting av applikasjoner +## Produksjonssetting av applikasjoner - Alle applikasjoner skal prodsettes automatisk dersom det er endringer på main-branchen som berører applikasjonen. Dette gjøres ved å sette opp workflows som fanger opp push til main med endringer under path til applikasjonen. diff --git a/apps/dine-pleiepenger/.eslintrc.js b/apps/dine-pleiepenger/.eslintrc.js new file mode 100644 index 0000000000..e0e321370e --- /dev/null +++ b/apps/dine-pleiepenger/.eslintrc.js @@ -0,0 +1,10 @@ +module.exports = { + ...require('config/eslint-next'), + + parserOptions: { + root: true, + tsconfigRootDir: __dirname, + }, + + extends: ['plugin:storybook/recommended'], +}; diff --git a/apps/dine-pleiepenger/.storybook/main.ts b/apps/dine-pleiepenger/.storybook/main.ts new file mode 100644 index 0000000000..e21c6894c4 --- /dev/null +++ b/apps/dine-pleiepenger/.storybook/main.ts @@ -0,0 +1,28 @@ +import { join, dirname } from 'path'; + +/** + * This function is used to resolve the absolute path of a package. + * It is needed in projects that use Yarn PnP or are set up within a monorepo. + */ +function getAbsolutePath(value) { + return dirname(require.resolve(join(value, 'package.json'))); +} + +/** @type { import('@storybook/nextjs').StorybookConfig } */ +const config = { + stories: ['../src/**/*.stories.@(ts|tsx)'], + addons: [ + getAbsolutePath('@storybook/addon-links'), + getAbsolutePath('@storybook/addon-essentials'), + getAbsolutePath('@storybook/addon-onboarding'), + getAbsolutePath('@storybook/addon-interactions'), + ], + framework: { + name: getAbsolutePath('@storybook/nextjs'), + options: {}, + }, + docs: { + autodocs: 'tag', + }, +}; +export default config; diff --git a/apps/dine-pleiepenger/.storybook/preview.ts b/apps/dine-pleiepenger/.storybook/preview.ts new file mode 100644 index 0000000000..021813c9d1 --- /dev/null +++ b/apps/dine-pleiepenger/.storybook/preview.ts @@ -0,0 +1,23 @@ +import { Preview } from '@storybook/react'; +import '../src/components/process/process.css'; +import '../src/style/global.css'; + +/** @type { import('@storybook/react').Preview } */ +const preview: Preview = { + parameters: { + actions: { argTypesRegex: '^on[A-Z].*' }, + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/i, + }, + }, + options: { + storySort: { + method: 'alphabetical', + }, + }, + }, +}; + +export default preview; diff --git a/apps/dine-pleiepenger/CHANGELOG.md b/apps/dine-pleiepenger/CHANGELOG.md new file mode 100644 index 0000000000..4f9baea2f3 --- /dev/null +++ b/apps/dine-pleiepenger/CHANGELOG.md @@ -0,0 +1,73 @@ +# @navikt/dine-pleiepenger + +## 0.3.5 + +### Patch Changes + +- Patch oppdateringer +- Updated dependencies + - @navikt/sif-common-core-ds@9.12.2 + - @navikt/sif-common-utils@3.43.5 + +## 0.3.4 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker +- Updated dependencies [e7bf8d1] + - @navikt/sif-common-core-ds@9.12.1 + - @navikt/sif-common-utils@3.43.4 + +## 0.3.3 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer +- Updated dependencies [406b044] + - @navikt/sif-common-core-ds@9.11.3 + - @navikt/sif-common-utils@3.43.3 + +## 0.3.2 + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [6084e23] + - @navikt/sif-common-core-ds@9.11.2 + - @navikt/sif-common-utils@3.43.2 + +## 0.3.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [295d3ad] + - @navikt/sif-common-core-ds@9.11.1 + - @navikt/sif-common-utils@3.43.1 + +## 0.3.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +### Patch Changes + +- Updated dependencies [53b47be] + - @navikt/sif-common-core-ds@9.11.0 + - @navikt/sif-common-utils@3.43.0 + +## 0.2.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +### Patch Changes + +- Updated dependencies + - @navikt/sif-common-core-ds@9.10.0 + - @navikt/sif-common-utils@3.42.0 diff --git a/apps/dine-pleiepenger/Dockerfile b/apps/dine-pleiepenger/Dockerfile new file mode 100644 index 0000000000..1fcfcefdc0 --- /dev/null +++ b/apps/dine-pleiepenger/Dockerfile @@ -0,0 +1,16 @@ +FROM gcr.io/distroless/nodejs18-debian11:nonroot +WORKDIR /app + +COPY /apps/dine-pleiepenger/next.config.js . + +COPY /apps/dine-pleiepenger/.next/standalone ./ +COPY /apps/dine-pleiepenger/.next/static ./apps/dine-pleiepenger/.next/static + +COPY /apps/dine-pleiepenger/public ./public + +ENV NODE_ENV=production +ENV PORT 8080 + +EXPOSE 8080 + +CMD ["apps/dine-pleiepenger/server.js"] \ No newline at end of file diff --git a/apps/dine-pleiepenger/README.md b/apps/dine-pleiepenger/README.md new file mode 100644 index 0000000000..b7c1506a0e --- /dev/null +++ b/apps/dine-pleiepenger/README.md @@ -0,0 +1,31 @@ +Innsynsløsning på nav.no for dem som har søkt om Pleiepenger for sykt barn. + +#### Komme i gang + +```bash +# Installer prosjekt +yarn install + +# Start next server på http://localhost:8080 +yarn dev + +# Start mock server på http://localhost:1234. +# Denne simulerer sin-innsyn-api og k9-brukerdialog-api +yarn dev-api +``` + +#### Storybook + +Komponenter og sider er lagt inn i storybook. Start lokalt ved å kjøre: + +```bash +yarn storybook +``` + +Storybook ligger også deployet på [Chromatic](https://www.chromatic.com/library?appId=65675d8dbb43385e5aaaa45c&inviteToken=chpi_1d3a6eab65174ab3ae3775296636362e) + +#### Henvendelser + +Spørsmål knyttet til koden eller prosjektet kan stilles som issues her på GitHub. + +Interne henvendelser kan sendes via Slack i kanalen #sykdom-i-familien. diff --git a/apps/dine-pleiepenger/api-mock-server/api-mock-server.js b/apps/dine-pleiepenger/api-mock-server/api-mock-server.js new file mode 100644 index 0000000000..4127f4a1b3 --- /dev/null +++ b/apps/dine-pleiepenger/api-mock-server/api-mock-server.js @@ -0,0 +1,106 @@ +/* eslint-disable no-console */ +const express = require('express'); +const helmet = require('helmet'); + +const server = express(); +const søknader = require('./mockdata/soknader.json'); + +server.use(express.json()); + +server.use( + helmet({ + contentSecurityPolicy: false, + crossOriginEmbedderPolicy: false, + crossOriginResourcePolicy: false, + }), +); + +server.use(function (req, res, next) { + setTimeout(next, 300); +}); + +const søker = { + aktørId: '2534326051524', + fødselsdato: '1981-02-06', + fødselsnummer: '06828199151', + fornavn: 'SUNN', + mellomnavn: null, + etternavn: 'KORRIDOR', +}; + +const startServer = () => { + const port = 1234; + + server.get('/oppslag/soker', (req, res) => { + res.setHeader('Content-Type', 'application/json'); + res.send(søker); + }); + + server.get('/oppslag/soker-ikke-tilgang', (req, res) => { + res.sendStatus(403); + }); + + server.get('/soknad', (req, res) => { + res.send(søknader); + }); + + server.get('/soknad-ikke-tilgang', (req, res) => { + res.sendStatus(403); + }); + + server.get('/soknad/:soknadId/dokument', (req, res) => { + res.download('./api-mock-server/mockdata/eksempel-søknad.pdf', 'søknad.pdf'); + }); + + server.get('/svarfrist', (req, res) => { + res.send({ + frist: '2021-09-20', + }); + }); + + server.get('/dokument/:journalpostId/:dokumentInfoId/:variantFormat', (req, res) => { + switch (req.params.dokumentInfoId) { + case '533438765': + res.download( + './api-mock-server/mockdata/Ettersending av vedlegg - Pleiepenger sykt barn.pdf', + 'Ettersending av vedlegg - Pleiepenger sykt barn.pdf', + ); + break; + case '533438766': + res.download( + './api-mock-server/mockdata/BekreftelseTilKLONELABBEN.pdf', + 'BekreftelseTilKLONELABBEN.pdf', + ); + break; + default: + res.download('./api-mock-server/mockdata/Søknad om pleiepenger.pdf', 'Søknad om pleiepenger.pdf'); + break; + } + }); + + server.get('/soknad/:soknadId/arbeidsgivermelding', (req, res) => { + res.download('./api-mock-server/mockdata/BekreftelseTilKLONELABBEN.pdf', 'BekreftelseTilKLONELABBEN.pdf'); + }); + + server.get('/mellomlagring/PLEIEPENGER_SYKT_BARN', (req, res) => { + res.send({ + metadata: { + lastStepID: 'tidsrom', + version: '6.1', + updatedTimestemp: '2022-12-20T14:18:01.060Z', + }, + }); + }); + + server.get('/mellomlagring/ENDRINGSMELDING_PLEIEPENGER_SYKT_BARN', (req, res) => { + res.send({ + metadata: { lastStepID: 'tidsrom', version: '6.1', updatedTimestamp: '2023-07-01T20:54:12.060Z' }, + }); + }); + + server.listen(port, () => { + console.log(`Mockserver is listening on port: ${port}`); + }); +}; + +startServer(); diff --git a/apps/dine-pleiepenger/api-mock-server/mockdata/BekreftelseTilKLONELABBEN.pdf b/apps/dine-pleiepenger/api-mock-server/mockdata/BekreftelseTilKLONELABBEN.pdf new file mode 100644 index 0000000000..af7bd1d081 Binary files /dev/null and b/apps/dine-pleiepenger/api-mock-server/mockdata/BekreftelseTilKLONELABBEN.pdf differ diff --git a/apps/dine-pleiepenger/api-mock-server/mockdata/Ettersending av vedlegg - Pleiepenger sykt barn.pdf b/apps/dine-pleiepenger/api-mock-server/mockdata/Ettersending av vedlegg - Pleiepenger sykt barn.pdf new file mode 100644 index 0000000000..23cbf6e84e Binary files /dev/null and b/apps/dine-pleiepenger/api-mock-server/mockdata/Ettersending av vedlegg - Pleiepenger sykt barn.pdf differ diff --git "a/apps/dine-pleiepenger/api-mock-server/mockdata/S\303\270knad om pleiepenger.pdf" "b/apps/dine-pleiepenger/api-mock-server/mockdata/S\303\270knad om pleiepenger.pdf" new file mode 100644 index 0000000000..9041ee4de3 Binary files /dev/null and "b/apps/dine-pleiepenger/api-mock-server/mockdata/S\303\270knad om pleiepenger.pdf" differ diff --git "a/apps/dine-pleiepenger/api-mock-server/mockdata/eksempel-s\303\270knad.pdf" "b/apps/dine-pleiepenger/api-mock-server/mockdata/eksempel-s\303\270knad.pdf" new file mode 100644 index 0000000000..b33bbd0c67 Binary files /dev/null and "b/apps/dine-pleiepenger/api-mock-server/mockdata/eksempel-s\303\270knad.pdf" differ diff --git a/apps/dine-pleiepenger/api-mock-server/mockdata/soknader copy.json b/apps/dine-pleiepenger/api-mock-server/mockdata/soknader copy.json new file mode 100644 index 0000000000..051d30cc25 --- /dev/null +++ b/apps/dine-pleiepenger/api-mock-server/mockdata/soknader copy.json @@ -0,0 +1,2220 @@ +[ + { + "søknadId": "9054ab9e-2b82-4998-9f10-9a82827f06e9", + "søknadstype": "PP_SYKT_BARN_ENDRINGSMELDING", + "status": "MOTTATT", + "søknad": { + "søker": { + "fornavn": "KRIMINELL", + "aktørId": "2391969373424", + "etternavn": "MULDVARP", + "fødselsnummer": "17097721564" + }, + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJiM2VlZDljMy0zNDhjLTQ2NGEtYWRkNS1lYmQ3ZGFlMzU5ZGYifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJmZjMwZGRhZi1lN2M3LTRlY2UtOWZhNC03ODZmZGVhZDg2MDEifQ" + ] + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "17097721564" }, + "ytelse": { + "barn": { "fødselsdato": "2009-07-31", "norskIdentitetsnummer": "31070968161" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": {} }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2021-12-07/2021-12-07": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT4H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ] + }, + "tilsynsordning": { "perioder": {} }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": [], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": {} + }, + "versjon": "1.0.0", + "søknadId": "9054ab9e-2b82-4998-9f10-9a82827f06e9", + "mottattDato": "2022-01-31T13:40:00.621Z", + "journalposter": [], + "begrunnelseForInnsending": {} + } + }, + "saksId": "1DMR9RQ", + "journalpostId": "524277209", + "dokumenter": [ + { + "journalpostId": "524277209", + "dokumentInfoId": "548469861", + "sakId": "1DMR9RQ", + "tittel": "Endringsmelding om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "https://sif-innsyn-api.dev.nav.no/dokument/524277209/548469861/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-01-31T14:40:02", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-01-31T14:40:02", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-01-31T14:40:06", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-01-31T01:00", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2023-01-31T13:40:00.621Z", + "endret": "2023-01-31T14:40:11", + "behandlingsdato": null + }, + { + "søknadId": "9a562927-bd1c-4b4f-b901-07180ff67b66", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2022-10-10", + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_ULIKE_UKER_PROSENT", + "arbeidsuker": [ + { + "periode": { "fraOgMed": "2022-10-10", "tilOgMed": "2022-10-13" }, + "prosentAvNormalt": 20 + } + ], + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "timerPerUkeISnitt": "PT5H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-10-26T23:17:30.794068129Z", + "fraOgMed": "2022-10-03", + "tilOgMed": "2022-10-13", + "søknadId": "9a562927-bd1c-4b4f-b901-07180ff67b66", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJkYWUzNjliZS1iMjMzLTRhM2MtOWYxNy0zMzdjNjRkOGEyNzUifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzYzlhYWRiNi03OWRjLTRjODYtYjFlZi05YTBlNjIyNjNmZjUifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_PROSENT_AV_NORMALT", + "prosentAvNormalt": 50, + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "timerPerUkeISnitt": "PT5H" } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-10-03/2022-10-13": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-10-03/2022-10-13": { + "faktiskArbeidTimerPerDag": "PT30M", + "jobberNormaltTimerPerDag": "PT1H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-10-03/2022-10-09": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT0S" + }, + "2022-10-10/2022-10-13": { + "faktiskArbeidTimerPerDag": "PT12M", + "jobberNormaltTimerPerDag": "PT1H" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-10-03/2022-10-13": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-10-03/2022-10-13"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2022-10-10" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "9a562927-bd1c-4b4f-b901-07180ff67b66", + "mottattDato": "2022-10-26T23:17:30.794Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573788132", + "dokumenter": [ + { + "journalpostId": "573788132", + "dokumentInfoId": "599051418", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573788132/599051418/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-10-27T01:17:36", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-10-27T01:17:36", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-10-27T01:17:42", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-10-27T01:17:30", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-10-26T23:17:30.794Z", + "endret": "2022-10-26T23:17:47", + "behandlingsdato": null + }, + { + "søknadId": "64f75397-b4f7-419a-9147-0cd803446f4b", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2014-10-16", + "arbeidsforhold": { + "arbeidIPeriode": { "type": "ARBEIDER_IKKE", "arbeiderIPerioden": "HELT_FRAVÆR" }, + "normalarbeidstid": { "erLiktHverUke": true, "timerPerUkeISnitt": "PT5H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-10-13T14:44:14.834424102Z", + "fraOgMed": "2022-10-01", + "tilOgMed": "2022-10-30", + "søknadId": "64f75397-b4f7-419a-9147-0cd803446f4b", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIwOTA4ODg4OC0zZTcxLTQ0OGEtYTZmMy1hZDg4ZDI4NDViZGQifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI3ZjJlYWIyMS04MjEwLTRiZmQtODc0NS1kYzFiZDU0MTAxMzIifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_PROSENT_AV_NORMALT", + "prosentAvNormalt": 50, + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "erLiktHverUke": true, "timerPerUkeISnitt": "PT20H" } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-10-01/2022-10-30": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-10-01/2022-10-30": { + "faktiskArbeidTimerPerDag": "PT2H", + "jobberNormaltTimerPerDag": "PT4H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-10-01/2022-10-30": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT1H" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-10-01/2022-10-30": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-10-01/2022-10-30"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2014-10-16" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "64f75397-b4f7-419a-9147-0cd803446f4b", + "mottattDato": "2022-10-13T14:44:14.834Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573786100", + "dokumenter": [ + { + "journalpostId": "573786100", + "dokumentInfoId": "599048863", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573786100/599048863/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-10-13T16:44:18", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-10-13T16:44:18", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-10-13T16:44:24", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-10-13T16:44:14", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-10-13T14:44:14.834Z", + "endret": "2022-10-13T14:44:28", + "behandlingsdato": null + }, + { + "søknadId": "14a13a07-8634-4c8e-88c9-49e25823260a", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { "navn": "SKRIVEFØR FRENDE", "fødselsdato": "2020-04-20", "fødselsnummer": "20842099774" }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { "harInntektSomFrilanser": false }, + "mottatt": "2022-08-25T09:43:41.082124107Z", + "fraOgMed": "2022-08-09", + "tilOgMed": "2022-09-10", + "søknadId": "14a13a07-8634-4c8e-88c9-49e25823260a", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzYTA2MWI1ZS1hNGIwLTQ1MTMtYmRjNC1jY2I1YWViNjZiMWEifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJkMTA1YWExNS02ZWVhLTQ1MDAtOTZjOC0wYzJjNzg1YjhlMjMifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_ENKELTDAGER", + "enkeltdager": [ + { + "dato": "2022-08-09", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-10", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-15", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-16", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-17", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT3H" } + }, + { + "dato": "2022-08-22", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-23", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-24", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT3H" } + }, + { + "dato": "2022-08-29", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-30", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-31", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT3H" } + }, + { + "dato": "2022-09-05", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-06", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-07", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT3H" } + } + ], + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { + "erLiktHverUke": true, + "timerFasteDager": { "mandag": "PT4H", "onsdag": "PT4H", "tirsdag": "PT4H" } + } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "20842099774" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-08-09/2022-09-10": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-08-09/2022-08-09": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-10/2022-08-10": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-15/2022-08-15": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-16/2022-08-16": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-17/2022-08-17": { + "faktiskArbeidTimerPerDag": "PT3H", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-22/2022-08-22": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-23/2022-08-23": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-24/2022-08-24": { + "faktiskArbeidTimerPerDag": "PT3H", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-29/2022-08-29": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-30/2022-08-30": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-31/2022-08-31": { + "faktiskArbeidTimerPerDag": "PT3H", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-05/2022-09-05": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-06/2022-09-06": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-07/2022-09-07": { + "faktiskArbeidTimerPerDag": "PT3H", + "jobberNormaltTimerPerDag": "PT4H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-08-09/2022-09-10": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT0S" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-08-09/2022-09-10": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-08-09/2022-09-10"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": {}, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "14a13a07-8634-4c8e-88c9-49e25823260a", + "mottattDato": "2022-08-25T09:43:41.082Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNKKFS", + "journalpostId": "573776664", + "dokumenter": [ + { + "journalpostId": "573776664", + "dokumentInfoId": "599037904", + "sakId": "1DNKKFS", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573776664/599037904/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-08-25T11:43:43", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-08-25T11:43:43", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-08-25T11:43:48", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-08-25T11:43:41", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-08-25T09:43:41.082Z", + "endret": "2022-08-25T09:43:54", + "behandlingsdato": null + }, + { + "søknadId": "6de9b420-c11a-4722-b7a1-63e63c73f329", + "søknadstype": "PP_ETTERSENDELSE", + "status": "MOTTATT", + "søknad": { + "sprak": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsdato": "1995-06-02", + "fødselsnummer": "02869599258" + }, + "titler": ["IMG_1616.jpg"], + "mottatt": "2022-11-07T19:20:13.969148693Z", + "k9Format": { + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": "PLEIEPENGER_SYKT_BARN", + "versjon": "0.0.1", + "søknadId": "6de9b420-c11a-4722-b7a1-63e63c73f329", + "mottattDato": "2022-11-07T19:20:13.969Z" + }, + "soknadId": "6de9b420-c11a-4722-b7a1-63e63c73f329", + "vedleggId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJmZTEzZDM1ZS00YzVmLTQwZGQtOGRlNy1iN2Q3OTE0NzllNzgifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzNWE5ZTlkYS1hNDg4LTQ4NTMtODRhNC1jNjhlYzVjZjRjYmQifQ" + ], + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI0OTljMjQ1NC0wOWE3LTQ0NTUtYmJmYS1iYmFjNGUwM2UzOWUifQ" + ] + ], + "beskrivelse": "Dette er en liten tset", + "søknadstype": "PLEIEPENGER_SYKT_BARN", + "harBekreftetOpplysninger": true, + "harForstattRettigheterOgPlikter": true + }, + "saksId": null, + "journalpostId": "573802533", + "dokumenter": [ + { + "journalpostId": "573802533", + "dokumentInfoId": "599105542", + "sakId": null, + "tittel": "Ettersendelse pleiepenger sykt barn", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573802533/599105542/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-11-07T20:20:26", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-11-07T20:20:26", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-11-07T20:20:13", "datotype": "DATO_REGISTRERT" } + ] + }, + { + "journalpostId": "573802533", + "dokumentInfoId": "599105543", + "sakId": null, + "tittel": "IMG_1616.jpg", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573802533/599105543/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-11-07T20:20:26", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-11-07T20:20:26", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-11-07T20:20:13", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-11-07T19:20:13.969Z", + "endret": "2022-11-07T19:20:26", + "behandlingsdato": null + }, + { + "søknadId": "8f968f00-6ecc-4e78-a5ab-11ff175db3bb", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2016-11-08", + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_ULIKE_UKER_TIMER", + "arbeidsuker": [ + { "timer": "PT2H", "periode": { "fraOgMed": "2022-11-01", "tilOgMed": "2022-11-06" } }, + { "timer": "PT2H", "periode": { "fraOgMed": "2022-11-07", "tilOgMed": "2022-11-13" } }, + { "timer": "PT5H", "periode": { "fraOgMed": "2022-11-14", "tilOgMed": "2022-11-19" } } + ], + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "timerPerUkeISnitt": "PT5H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-11-08T07:00:06.249453556Z", + "fraOgMed": "2022-11-01", + "tilOgMed": "2022-11-19", + "søknadId": "8f968f00-6ecc-4e78-a5ab-11ff175db3bb", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI1ZDExZjE5Yy1mZTY5LTRkOWYtYTY5Ni00M2YxNDY0M2QzYjgifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI4MGIxOWZhNS1mZDUzLTQ0MmItYWJmYy05ZTE4NTA3ZDBlODYifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": true, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [ + { + "fraOgMed": "2022-11-23", + "landkode": "ASM", + "landnavn": "Amerikansk Samoa", + "tilOgMed": "2022-12-23" + } + ], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_PROSENT_AV_NORMALT", + "prosentAvNormalt": 50, + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "timerPerUkeISnitt": "PT20H" } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-11-01/2022-11-19": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { + "perioder": { "2022-11-23/2022-12-23": { "land": "ASM" } }, + "perioderSomSkalSlettes": {} + }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-11-01/2022-11-19": { + "faktiskArbeidTimerPerDag": "PT2H", + "jobberNormaltTimerPerDag": "PT4H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-11-01/2022-11-04": { + "faktiskArbeidTimerPerDag": "PT30M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-11-07/2022-11-11": { + "faktiskArbeidTimerPerDag": "PT24M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-11-14/2022-11-18": { + "faktiskArbeidTimerPerDag": "PT1H", + "jobberNormaltTimerPerDag": "PT1H" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-11-01/2022-11-19": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-11-01/2022-11-19"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2016-11-08" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "8f968f00-6ecc-4e78-a5ab-11ff175db3bb", + "mottattDato": "2022-11-08T07:00:06.249Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": null, + "journalpostId": "573802547", + "dokumenter": [ + { + "journalpostId": "573802547", + "dokumentInfoId": "599105571", + "sakId": null, + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573802547/599105571/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-11-08T08:00:10", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-11-08T08:00:10", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-11-08T08:00:06", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-11-08T07:00:06.249Z", + "endret": "2022-11-08T07:00:10", + "behandlingsdato": null + }, + { + "søknadId": "863d6bd3-b939-47aa-9653-cbfc7cc11367", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2016-09-07", + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_PROSENT_AV_NORMALT", + "prosentAvNormalt": 10, + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT20H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-09-02T08:20:45.437124664Z", + "fraOgMed": "2022-08-01", + "tilOgMed": "2022-09-30", + "beredskap": { "beredskap": true, "tilleggsinformasjon": "Beskrivelse av beredskap" }, + "nattevåk": { "harNattevåk": true, "tilleggsinformasjon": "Beskrivelse av nattevåk" }, + "søknadId": "863d6bd3-b939-47aa-9653-cbfc7cc11367", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI0NzE4Y2NjYi02ZmQ0LTQxOTgtYTU5NS0xMzUyYWMzMDZjOTQifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIwMjRmNDM3MC1mMGY3LTRkNmItYWUwZS01YmI0YmZjZDNhZGQifQ" + ], + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzMjhkZDllNi1hNzVmLTQ2ZWUtOGZiNi05MzNhODYwZjA4MDMifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": true, + "harBoddIUtlandetSiste12Mnd": true, + "utenlandsoppholdNeste12Mnd": [ + { + "fraOgMed": "2022-09-02", + "landkode": "ASM", + "landnavn": "Amerikansk Samoa", + "tilOgMed": "2022-11-19" + } + ], + "utenlandsoppholdSiste12Mnd": [ + { "fraOgMed": "2022-06-13", "landkode": "ALB", "landnavn": "Albania", "tilOgMed": "2022-09-01" } + ] + }, + "harMedsøker": true, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_FASTE_UKEDAGER", + "fasteDager": { + "fredag": "PT5M", + "mandag": "PT1M", + "onsdag": "PT3M", + "tirsdag": "PT2M", + "torsdag": "PT4M" + }, + "erLiktHverUke": true, + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { + "erLiktHverUke": true, + "timerFasteDager": { + "fredag": "PT5H", + "mandag": "PT1H", + "onsdag": "PT3H", + "tirsdag": "PT2H", + "torsdag": "PT4H" + } + } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "omsorgstilbud": { + "ukedager": { + "fredag": "PT1H5M", + "mandag": "PT5H1M", + "onsdag": "PT3H3M", + "tirsdag": "PT4H3M", + "torsdag": "PT2H4M" + }, + "erLiktHverUke": true + }, + "samtidigHjemme": true, + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-08-01/2022-09-30": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { + "perioder": { + "2022-06-13/2022-09-01": { "land": "ALB" }, + "2022-09-02/2022-11-19": { "land": "ASM" } + }, + "perioderSomSkalSlettes": {} + }, + "beredskap": { + "perioder": { + "2022-08-01/2022-09-30": { "tilleggsinformasjon": "Beskrivelse av beredskap" } + }, + "perioderSomSkalSlettes": {} + }, + "nattevåk": { + "perioder": { + "2022-08-01/2022-09-30": { "tilleggsinformasjon": "Beskrivelse av nattevåk" } + }, + "perioderSomSkalSlettes": {} + }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-08-01/2022-08-01": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-08-02/2022-08-02": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-08-03/2022-08-03": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-08-04/2022-08-04": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-05/2022-08-05": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-08-08/2022-08-08": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-08-09/2022-08-09": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-08-10/2022-08-10": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-08-11/2022-08-11": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-12/2022-08-12": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-08-15/2022-08-15": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-08-16/2022-08-16": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-08-17/2022-08-17": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-08-18/2022-08-18": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-19/2022-08-19": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-08-22/2022-08-22": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-08-23/2022-08-23": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-08-24/2022-08-24": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-08-25/2022-08-25": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-26/2022-08-26": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-08-29/2022-08-29": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-08-30/2022-08-30": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-08-31/2022-08-31": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-09-01/2022-09-01": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-02/2022-09-02": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-09-05/2022-09-05": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-09-06/2022-09-06": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-07/2022-09-07": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-09-08/2022-09-08": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-09/2022-09-09": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-09-12/2022-09-12": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-09-13/2022-09-13": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-14/2022-09-14": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-09-15/2022-09-15": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-16/2022-09-16": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-09-19/2022-09-19": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-09-20/2022-09-20": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-21/2022-09-21": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-09-22/2022-09-22": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-23/2022-09-23": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-09-26/2022-09-26": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-09-27/2022-09-27": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-28/2022-09-28": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-09-29/2022-09-29": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-30/2022-09-30": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-08-01/2022-09-30": { + "faktiskArbeidTimerPerDag": "PT24M", + "jobberNormaltTimerPerDag": "PT4H" + } + } + }, + "selvstendigNæringsdrivendeArbeidstidInfo": { + "perioder": { + "2022-08-01/2022-09-30": { + "faktiskArbeidTimerPerDag": "PT1H", + "jobberNormaltTimerPerDag": "PT2H" + } + } + } + }, + "tilsynsordning": { + "perioder": { + "2022-08-01/2022-08-01": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-08-02/2022-08-02": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-08-03/2022-08-03": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-08-04/2022-08-04": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-08-05/2022-08-05": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-08-08/2022-08-08": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-08-09/2022-08-09": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-08-10/2022-08-10": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-08-11/2022-08-11": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-08-12/2022-08-12": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-08-15/2022-08-15": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-08-16/2022-08-16": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-08-17/2022-08-17": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-08-18/2022-08-18": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-08-19/2022-08-19": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-08-22/2022-08-22": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-08-23/2022-08-23": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-08-24/2022-08-24": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-08-25/2022-08-25": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-08-26/2022-08-26": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-08-29/2022-08-29": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-08-30/2022-08-30": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-08-31/2022-08-31": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-09-01/2022-09-01": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-09-02/2022-09-02": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-09-05/2022-09-05": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-09-06/2022-09-06": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-09-07/2022-09-07": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-09-08/2022-09-08": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-09-09/2022-09-09": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-09-12/2022-09-12": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-09-13/2022-09-13": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-09-14/2022-09-14": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-09-15/2022-09-15": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-09-16/2022-09-16": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-09-19/2022-09-19": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-09-20/2022-09-20": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-09-21/2022-09-21": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-09-22/2022-09-22": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-09-23/2022-09-23": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-09-26/2022-09-26": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-09-27/2022-09-27": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-09-28/2022-09-28": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-09-29/2022-09-29": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-09-30/2022-09-30": { "etablertTilsynTimerPerDag": "PT1H5M" } + } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": { "2022-09-12/2022-09-24": { "skalHaFerie": true } } }, + "søknadsperiode": ["2022-08-01/2022-09-30"], + "utenlandsopphold": { + "perioder": { + "2022-09-12/2022-09-12": { "land": "ALB" }, + "2022-09-13/2022-09-23": { + "land": "ALB", + "årsak": "barnetInnlagtIHelseinstitusjonForNorskOffentligRegning" + }, + "2022-09-24/2022-09-30": { "land": "ALB" } + }, + "perioderSomSkalSlettes": {} + }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { + "frilanser": { "startdato": "2016-09-07" }, + "selvstendigNæringsdrivende": [ + { + "perioder": { + "2009-09-02/..": { + "landkode": "ASM", + "endringDato": "2022-09-01", + "bruttoInntekt": 123, + "erNyoppstartet": false, + "erVarigEndring": true, + "virksomhetstyper": ["JORDBRUK_SKOGBRUK"], + "endringBegrunnelse": "WhoaWhoa", + "registrertIUtlandet": true + } + }, + "virksomhetNavn": "ABC" + } + ] + }, + "dataBruktTilUtledning": { + "harMedsøker": true, + "samtidigHjemme": true, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "863d6bd3-b939-47aa-9653-cbfc7cc11367", + "mottattDato": "2022-09-02T08:20:45.437Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [ + { + "land": { "landkode": "IRL", "landnavn": "Irland" }, + "fraOgMed": "2022-09-01", + "næringstype": "ANNEN", + "navnPåVirksomheten": "NæringAnnetEØSLand", + "organisasjonsnummer": "123123123" + } + ], + "ferieuttakIPerioden": { + "ferieuttak": [{ "fraOgMed": "2022-09-12", "tilOgMed": "2022-09-24" }], + "skalTaUtFerieIPerioden": true + }, + "opptjeningIUtlandet": [ + { + "land": { "landkode": "BEL", "landnavn": "Belgia" }, + "navn": "FreeBelgia", + "fraOgMed": "2022-09-13", + "tilOgMed": "2022-09-23", + "opptjeningType": "FRILANSER" + }, + { + "land": { "landkode": "BGR", "landnavn": "Bulgaria" }, + "navn": "BulgArbeidsgiverNavn", + "fraOgMed": "2022-09-14", + "tilOgMed": "2022-09-15", + "opptjeningType": "ARBEIDSTAKER" + } + ], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { + "opphold": [ + { + "årsak": "BARNET_INNLAGT_I_HELSEINSTITUSJON_FOR_NORSK_OFFENTLIG_REGNING", + "fraOgMed": "2022-09-12", + "landkode": "ALB", + "landnavn": "Albania", + "tilOgMed": "2022-09-30", + "erUtenforEøs": true, + "erBarnetInnlagt": true, + "perioderBarnetErInnlagt": [{ "fraOgMed": "2022-09-13", "tilOgMed": "2022-09-23" }] + } + ], + "skalOppholdeSegIUtlandetIPerioden": true + }, + "selvstendigNæringsdrivende": { + "virksomhet": { + "fraOgMed": "2009-09-02", + "næringstype": "JORDBRUK_SKOGBRUK", + "varigEndring": { "dato": "2022-09-01", "forklaring": "WhoaWhoa", "inntektEtterEndring": 123 }, + "fiskerErPåBladB": false, + "registrertINorge": false, + "navnPåVirksomheten": "ABC", + "registrertIUtlandet": { "landkode": "ASM", "landnavn": "Amerikansk Samoa" }, + "harFlereAktiveVirksomheter": true + }, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_TIMER_I_SNITT_PER_UKE", + "timerPerUke": "PT5H", + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT10H" } + }, + "harInntektSomSelvstendig": true + }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573777622", + "dokumenter": [ + { + "journalpostId": "573777622", + "dokumentInfoId": "599039030", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573777622/599039030/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-02T10:20:56", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-02T10:20:56", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-02T10:21:02", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-02T10:20:45", "datotype": "DATO_REGISTRERT" } + ] + }, + { + "journalpostId": "573777622", + "dokumentInfoId": "599039031", + "sakId": "1DNM1SM", + "tittel": "IMG_1075 (1).JPG", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573777622/599039031/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-02T10:20:56", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-02T10:20:56", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-02T10:21:02", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-02T10:20:45", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-09-02T08:20:45.437Z", + "endret": "2022-09-02T08:22:08", + "behandlingsdato": null + }, + { + "søknadId": "7202fa92-721f-4049-96c8-e44feed96586", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2011-09-07", + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_PROSENT_AV_NORMALT", + "prosentAvNormalt": 5, + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT20H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-09-02T09:41:33.411524928Z", + "fraOgMed": "2022-09-01", + "tilOgMed": "2022-09-17", + "søknadId": "7202fa92-721f-4049-96c8-e44feed96586", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIxZDUwNTkxMC1kNmE1LTQyZjMtYjJiMS0zZjdjMDhhOGJiMTkifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI2MWNhNGFhMy1lOTFiLTQ3YjQtYTVkYi0zMzViNzExN2EyYWIifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_ENKELTDAGER", + "enkeltdager": [ + { + "dato": "2022-09-01", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-02", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-05", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT1H" } + }, + { + "dato": "2022-09-06", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT5H" } + }, + { + "dato": "2022-09-07", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-08", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-09", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-12", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-13", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT5H" } + }, + { + "dato": "2022-09-14", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-15", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-16", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + } + ], + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { + "erLiktHverUke": true, + "timerFasteDager": { + "fredag": "PT2H", + "mandag": "PT2H", + "onsdag": "PT2H", + "tirsdag": "PT2H", + "torsdag": "PT2H" + } + } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-09-01/2022-09-17": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-09-01/2022-09-01": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-02/2022-09-02": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-05/2022-09-05": { + "faktiskArbeidTimerPerDag": "PT1H", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-06/2022-09-06": { + "faktiskArbeidTimerPerDag": "PT5H", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-07/2022-09-07": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-08/2022-09-08": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-09/2022-09-09": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-12/2022-09-12": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-13/2022-09-13": { + "faktiskArbeidTimerPerDag": "PT5H", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-14/2022-09-14": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-15/2022-09-15": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-16/2022-09-16": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-09-01/2022-09-17": { + "faktiskArbeidTimerPerDag": "PT12M", + "jobberNormaltTimerPerDag": "PT4H" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-09-01/2022-09-17": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-09-01/2022-09-17"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2011-09-07" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "7202fa92-721f-4049-96c8-e44feed96586", + "mottattDato": "2022-09-02T09:41:33.411Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573777659", + "dokumenter": [ + { + "journalpostId": "573777659", + "dokumentInfoId": "599039072", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573777659/599039072/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-02T11:41:35", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-02T11:41:35", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-02T11:41:40", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-02T11:41:33", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-09-02T09:41:33.411Z", + "endret": "2022-09-02T09:41:45", + "behandlingsdato": null + }, + { + "søknadId": "68e5ae8d-d003-40ee-ae86-767f76b2c7bb", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2022-09-01", + "arbeidsforhold": { + "arbeidIPeriode": { "type": "ARBEIDER_IKKE", "arbeiderIPerioden": "HELT_FRAVÆR" }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT5H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-09-02T12:11:24.261628944Z", + "fraOgMed": "2022-09-01", + "tilOgMed": "2022-09-30", + "søknadId": "68e5ae8d-d003-40ee-ae86-767f76b2c7bb", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJlMWY5ZGNkMC03MDNkLTQ5MzMtYmE3Mi02MmViYWM5ZWQ4ZGUifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJjMjJiM2IzMC02MDNhLTQzZjgtOGNjNC1hYmU4YmJlZjQ3NzIifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_TIMER_I_SNITT_PER_UKE", + "timerPerUke": "PT30H", + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT40H" } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-09-01/2022-09-30": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-09-01/2022-09-30": { + "faktiskArbeidTimerPerDag": "PT6H", + "jobberNormaltTimerPerDag": "PT8H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-09-01/2022-09-30": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT1H" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-09-01/2022-09-30": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-09-01/2022-09-30"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2022-09-01" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "68e5ae8d-d003-40ee-ae86-767f76b2c7bb", + "mottattDato": "2022-09-02T12:11:24.261Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573777704", + "dokumenter": [ + { + "journalpostId": "573777704", + "dokumentInfoId": "599039130", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573777704/599039130/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-02T14:11:26", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-02T14:11:26", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-02T14:11:31", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-02T14:11:24", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-09-02T12:11:24.261Z", + "endret": "2022-09-02T12:11:38", + "behandlingsdato": null + }, + { + "søknadId": "3ff3f365-7e7e-4b1f-838f-448684959f9e", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2022-09-01", + "arbeidsforhold": { + "arbeidIPeriode": { "type": "ARBEIDER_IKKE", "arbeiderIPerioden": "HELT_FRAVÆR" }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT20H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-09-12T11:36:08.213671475Z", + "fraOgMed": "2022-09-08", + "tilOgMed": "2022-09-25", + "søknadId": "3ff3f365-7e7e-4b1f-838f-448684959f9e", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJiOGMxMTU3Zi1jYjY2LTQ5NzMtODhhNy1kMzliZmQwOTg1MjMifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzNDE4NmFmZC04ZTRlLTQ5ODctYTZlMi1iMGRlM2ZhNWY3YjcifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { "navn": "SJOKKERENDE ELEKTRIKER", "erAnsatt": false, "organisasjonsnummer": "947064649" } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-09-08/2022-09-25": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-09-08/2022-09-25": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT0S" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-09-08/2022-09-25": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-09-08/2022-09-25": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-09-08/2022-09-25"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2022-09-01" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "3ff3f365-7e7e-4b1f-838f-448684959f9e", + "mottattDato": "2022-09-12T11:36:08.213Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573779224", + "dokumenter": [ + { + "journalpostId": "573779224", + "dokumentInfoId": "599040845", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573779224/599040845/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-12T13:36:09", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-12T13:36:09", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-12T13:36:14", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-12T13:36:08", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-09-12T11:36:08.213Z", + "endret": "2022-09-12T11:36:19", + "behandlingsdato": null + }, + { + "søknadId": "eced6d00-7c81-4828-a2e9-79c04f8e4bcf", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2022-09-07", + "arbeidsforhold": { + "arbeidIPeriode": { "type": "ARBEIDER_IKKE", "arbeiderIPerioden": "HELT_FRAVÆR" }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT2H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-09-28T10:12:32.892074447Z", + "fraOgMed": "2022-09-09", + "tilOgMed": "2022-09-24", + "søknadId": "eced6d00-7c81-4828-a2e9-79c04f8e4bcf", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI2MjY1NTQ1ZC00NWI4LTQyOTAtODlkMC0zNTg1YzdmODYyY2EifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJkNTI0NTk5ZS00YTA1LTQzMzktOGYyNS03YmJkYWZhZWJiNGIifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { "navn": "SJOKKERENDE ELEKTRIKER", "erAnsatt": false, "organisasjonsnummer": "947064649" } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-09-09/2022-09-24": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-09-09/2022-09-24": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT0S" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-09-09/2022-09-24": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT24M" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-09-09/2022-09-24": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-09-09/2022-09-24"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2022-09-07" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "eced6d00-7c81-4828-a2e9-79c04f8e4bcf", + "mottattDato": "2022-09-28T10:12:32.892Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573782814", + "dokumenter": [ + { + "journalpostId": "573782814", + "dokumentInfoId": "599044971", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573782814/599044971/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-28T12:12:34", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-28T12:12:34", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-28T12:12:40", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-28T12:12:32", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-09-28T10:12:32.892Z", + "endret": "2022-09-28T10:12:46", + "behandlingsdato": null + }, + { + "søknadId": "509a21da-3c26-4899-b9d3-c494cfb9309a", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2022-09-14", + "arbeidsforhold": { + "arbeidIPeriode": { "type": "ARBEIDER_IKKE", "arbeiderIPerioden": "HELT_FRAVÆR" }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT2H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-09-28T10:25:29.114304782Z", + "fraOgMed": "2022-09-08", + "tilOgMed": "2022-09-25", + "søknadId": "509a21da-3c26-4899-b9d3-c494cfb9309a", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI1NmY5NzUzMC1hZDYwLTQ0ZWMtYTY5Mi0yNmRkMjM0ZWFhYWEifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI0MGUyZWU0ZC0yYmZjLTRjN2QtOGYzYy0yMjZhZjM1OTc5ZDYifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { "navn": "SJOKKERENDE ELEKTRIKER", "erAnsatt": false, "organisasjonsnummer": "947064649" } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-09-08/2022-09-25": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-09-08/2022-09-25": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT0S" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-09-08/2022-09-13": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT0S" + }, + "2022-09-14/2022-09-25": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT24M" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-09-08/2022-09-25": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-09-08/2022-09-25"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2022-09-14" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "509a21da-3c26-4899-b9d3-c494cfb9309a", + "mottattDato": "2022-09-28T10:25:29.114Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573782819", + "dokumenter": [ + { + "journalpostId": "573782819", + "dokumentInfoId": "599044975", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573782819/599044975/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-28T12:25:31", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-28T12:25:31", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-28T12:25:36", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-28T12:25:29", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-09-28T10:25:29.114Z", + "endret": "2022-09-28T10:25:41", + "behandlingsdato": null + } +] diff --git a/apps/dine-pleiepenger/api-mock-server/mockdata/soknader.json b/apps/dine-pleiepenger/api-mock-server/mockdata/soknader.json new file mode 100644 index 0000000000..051d30cc25 --- /dev/null +++ b/apps/dine-pleiepenger/api-mock-server/mockdata/soknader.json @@ -0,0 +1,2220 @@ +[ + { + "søknadId": "9054ab9e-2b82-4998-9f10-9a82827f06e9", + "søknadstype": "PP_SYKT_BARN_ENDRINGSMELDING", + "status": "MOTTATT", + "søknad": { + "søker": { + "fornavn": "KRIMINELL", + "aktørId": "2391969373424", + "etternavn": "MULDVARP", + "fødselsnummer": "17097721564" + }, + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJiM2VlZDljMy0zNDhjLTQ2NGEtYWRkNS1lYmQ3ZGFlMzU5ZGYifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJmZjMwZGRhZi1lN2M3LTRlY2UtOWZhNC03ODZmZGVhZDg2MDEifQ" + ] + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "17097721564" }, + "ytelse": { + "barn": { "fødselsdato": "2009-07-31", "norskIdentitetsnummer": "31070968161" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": {} }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2021-12-07/2021-12-07": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT4H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ] + }, + "tilsynsordning": { "perioder": {} }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": [], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": {} + }, + "versjon": "1.0.0", + "søknadId": "9054ab9e-2b82-4998-9f10-9a82827f06e9", + "mottattDato": "2022-01-31T13:40:00.621Z", + "journalposter": [], + "begrunnelseForInnsending": {} + } + }, + "saksId": "1DMR9RQ", + "journalpostId": "524277209", + "dokumenter": [ + { + "journalpostId": "524277209", + "dokumentInfoId": "548469861", + "sakId": "1DMR9RQ", + "tittel": "Endringsmelding om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "https://sif-innsyn-api.dev.nav.no/dokument/524277209/548469861/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-01-31T14:40:02", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-01-31T14:40:02", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-01-31T14:40:06", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-01-31T01:00", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2023-01-31T13:40:00.621Z", + "endret": "2023-01-31T14:40:11", + "behandlingsdato": null + }, + { + "søknadId": "9a562927-bd1c-4b4f-b901-07180ff67b66", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2022-10-10", + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_ULIKE_UKER_PROSENT", + "arbeidsuker": [ + { + "periode": { "fraOgMed": "2022-10-10", "tilOgMed": "2022-10-13" }, + "prosentAvNormalt": 20 + } + ], + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "timerPerUkeISnitt": "PT5H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-10-26T23:17:30.794068129Z", + "fraOgMed": "2022-10-03", + "tilOgMed": "2022-10-13", + "søknadId": "9a562927-bd1c-4b4f-b901-07180ff67b66", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJkYWUzNjliZS1iMjMzLTRhM2MtOWYxNy0zMzdjNjRkOGEyNzUifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzYzlhYWRiNi03OWRjLTRjODYtYjFlZi05YTBlNjIyNjNmZjUifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_PROSENT_AV_NORMALT", + "prosentAvNormalt": 50, + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "timerPerUkeISnitt": "PT5H" } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-10-03/2022-10-13": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-10-03/2022-10-13": { + "faktiskArbeidTimerPerDag": "PT30M", + "jobberNormaltTimerPerDag": "PT1H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-10-03/2022-10-09": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT0S" + }, + "2022-10-10/2022-10-13": { + "faktiskArbeidTimerPerDag": "PT12M", + "jobberNormaltTimerPerDag": "PT1H" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-10-03/2022-10-13": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-10-03/2022-10-13"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2022-10-10" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "9a562927-bd1c-4b4f-b901-07180ff67b66", + "mottattDato": "2022-10-26T23:17:30.794Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573788132", + "dokumenter": [ + { + "journalpostId": "573788132", + "dokumentInfoId": "599051418", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573788132/599051418/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-10-27T01:17:36", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-10-27T01:17:36", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-10-27T01:17:42", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-10-27T01:17:30", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-10-26T23:17:30.794Z", + "endret": "2022-10-26T23:17:47", + "behandlingsdato": null + }, + { + "søknadId": "64f75397-b4f7-419a-9147-0cd803446f4b", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2014-10-16", + "arbeidsforhold": { + "arbeidIPeriode": { "type": "ARBEIDER_IKKE", "arbeiderIPerioden": "HELT_FRAVÆR" }, + "normalarbeidstid": { "erLiktHverUke": true, "timerPerUkeISnitt": "PT5H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-10-13T14:44:14.834424102Z", + "fraOgMed": "2022-10-01", + "tilOgMed": "2022-10-30", + "søknadId": "64f75397-b4f7-419a-9147-0cd803446f4b", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIwOTA4ODg4OC0zZTcxLTQ0OGEtYTZmMy1hZDg4ZDI4NDViZGQifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI3ZjJlYWIyMS04MjEwLTRiZmQtODc0NS1kYzFiZDU0MTAxMzIifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_PROSENT_AV_NORMALT", + "prosentAvNormalt": 50, + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "erLiktHverUke": true, "timerPerUkeISnitt": "PT20H" } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-10-01/2022-10-30": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-10-01/2022-10-30": { + "faktiskArbeidTimerPerDag": "PT2H", + "jobberNormaltTimerPerDag": "PT4H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-10-01/2022-10-30": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT1H" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-10-01/2022-10-30": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-10-01/2022-10-30"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2014-10-16" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "64f75397-b4f7-419a-9147-0cd803446f4b", + "mottattDato": "2022-10-13T14:44:14.834Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573786100", + "dokumenter": [ + { + "journalpostId": "573786100", + "dokumentInfoId": "599048863", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573786100/599048863/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-10-13T16:44:18", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-10-13T16:44:18", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-10-13T16:44:24", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-10-13T16:44:14", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-10-13T14:44:14.834Z", + "endret": "2022-10-13T14:44:28", + "behandlingsdato": null + }, + { + "søknadId": "14a13a07-8634-4c8e-88c9-49e25823260a", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { "navn": "SKRIVEFØR FRENDE", "fødselsdato": "2020-04-20", "fødselsnummer": "20842099774" }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { "harInntektSomFrilanser": false }, + "mottatt": "2022-08-25T09:43:41.082124107Z", + "fraOgMed": "2022-08-09", + "tilOgMed": "2022-09-10", + "søknadId": "14a13a07-8634-4c8e-88c9-49e25823260a", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzYTA2MWI1ZS1hNGIwLTQ1MTMtYmRjNC1jY2I1YWViNjZiMWEifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJkMTA1YWExNS02ZWVhLTQ1MDAtOTZjOC0wYzJjNzg1YjhlMjMifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_ENKELTDAGER", + "enkeltdager": [ + { + "dato": "2022-08-09", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-10", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-15", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-16", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-17", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT3H" } + }, + { + "dato": "2022-08-22", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-23", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-24", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT3H" } + }, + { + "dato": "2022-08-29", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-30", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-08-31", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT3H" } + }, + { + "dato": "2022-09-05", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-06", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-07", + "arbeidstimer": { "normalTimer": "PT4H", "faktiskTimer": "PT3H" } + } + ], + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { + "erLiktHverUke": true, + "timerFasteDager": { "mandag": "PT4H", "onsdag": "PT4H", "tirsdag": "PT4H" } + } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "20842099774" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-08-09/2022-09-10": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-08-09/2022-08-09": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-10/2022-08-10": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-15/2022-08-15": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-16/2022-08-16": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-17/2022-08-17": { + "faktiskArbeidTimerPerDag": "PT3H", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-22/2022-08-22": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-23/2022-08-23": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-24/2022-08-24": { + "faktiskArbeidTimerPerDag": "PT3H", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-29/2022-08-29": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-30/2022-08-30": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-31/2022-08-31": { + "faktiskArbeidTimerPerDag": "PT3H", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-05/2022-09-05": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-06/2022-09-06": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-07/2022-09-07": { + "faktiskArbeidTimerPerDag": "PT3H", + "jobberNormaltTimerPerDag": "PT4H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-08-09/2022-09-10": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT0S" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-08-09/2022-09-10": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-08-09/2022-09-10"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": {}, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "14a13a07-8634-4c8e-88c9-49e25823260a", + "mottattDato": "2022-08-25T09:43:41.082Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNKKFS", + "journalpostId": "573776664", + "dokumenter": [ + { + "journalpostId": "573776664", + "dokumentInfoId": "599037904", + "sakId": "1DNKKFS", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573776664/599037904/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-08-25T11:43:43", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-08-25T11:43:43", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-08-25T11:43:48", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-08-25T11:43:41", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-08-25T09:43:41.082Z", + "endret": "2022-08-25T09:43:54", + "behandlingsdato": null + }, + { + "søknadId": "6de9b420-c11a-4722-b7a1-63e63c73f329", + "søknadstype": "PP_ETTERSENDELSE", + "status": "MOTTATT", + "søknad": { + "sprak": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsdato": "1995-06-02", + "fødselsnummer": "02869599258" + }, + "titler": ["IMG_1616.jpg"], + "mottatt": "2022-11-07T19:20:13.969148693Z", + "k9Format": { + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": "PLEIEPENGER_SYKT_BARN", + "versjon": "0.0.1", + "søknadId": "6de9b420-c11a-4722-b7a1-63e63c73f329", + "mottattDato": "2022-11-07T19:20:13.969Z" + }, + "soknadId": "6de9b420-c11a-4722-b7a1-63e63c73f329", + "vedleggId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJmZTEzZDM1ZS00YzVmLTQwZGQtOGRlNy1iN2Q3OTE0NzllNzgifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzNWE5ZTlkYS1hNDg4LTQ4NTMtODRhNC1jNjhlYzVjZjRjYmQifQ" + ], + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI0OTljMjQ1NC0wOWE3LTQ0NTUtYmJmYS1iYmFjNGUwM2UzOWUifQ" + ] + ], + "beskrivelse": "Dette er en liten tset", + "søknadstype": "PLEIEPENGER_SYKT_BARN", + "harBekreftetOpplysninger": true, + "harForstattRettigheterOgPlikter": true + }, + "saksId": null, + "journalpostId": "573802533", + "dokumenter": [ + { + "journalpostId": "573802533", + "dokumentInfoId": "599105542", + "sakId": null, + "tittel": "Ettersendelse pleiepenger sykt barn", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573802533/599105542/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-11-07T20:20:26", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-11-07T20:20:26", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-11-07T20:20:13", "datotype": "DATO_REGISTRERT" } + ] + }, + { + "journalpostId": "573802533", + "dokumentInfoId": "599105543", + "sakId": null, + "tittel": "IMG_1616.jpg", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573802533/599105543/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-11-07T20:20:26", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-11-07T20:20:26", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-11-07T20:20:13", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-11-07T19:20:13.969Z", + "endret": "2022-11-07T19:20:26", + "behandlingsdato": null + }, + { + "søknadId": "8f968f00-6ecc-4e78-a5ab-11ff175db3bb", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2016-11-08", + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_ULIKE_UKER_TIMER", + "arbeidsuker": [ + { "timer": "PT2H", "periode": { "fraOgMed": "2022-11-01", "tilOgMed": "2022-11-06" } }, + { "timer": "PT2H", "periode": { "fraOgMed": "2022-11-07", "tilOgMed": "2022-11-13" } }, + { "timer": "PT5H", "periode": { "fraOgMed": "2022-11-14", "tilOgMed": "2022-11-19" } } + ], + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "timerPerUkeISnitt": "PT5H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-11-08T07:00:06.249453556Z", + "fraOgMed": "2022-11-01", + "tilOgMed": "2022-11-19", + "søknadId": "8f968f00-6ecc-4e78-a5ab-11ff175db3bb", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI1ZDExZjE5Yy1mZTY5LTRkOWYtYTY5Ni00M2YxNDY0M2QzYjgifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI4MGIxOWZhNS1mZDUzLTQ0MmItYWJmYy05ZTE4NTA3ZDBlODYifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": true, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [ + { + "fraOgMed": "2022-11-23", + "landkode": "ASM", + "landnavn": "Amerikansk Samoa", + "tilOgMed": "2022-12-23" + } + ], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_PROSENT_AV_NORMALT", + "prosentAvNormalt": 50, + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "timerPerUkeISnitt": "PT20H" } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-11-01/2022-11-19": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { + "perioder": { "2022-11-23/2022-12-23": { "land": "ASM" } }, + "perioderSomSkalSlettes": {} + }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-11-01/2022-11-19": { + "faktiskArbeidTimerPerDag": "PT2H", + "jobberNormaltTimerPerDag": "PT4H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-11-01/2022-11-04": { + "faktiskArbeidTimerPerDag": "PT30M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-11-07/2022-11-11": { + "faktiskArbeidTimerPerDag": "PT24M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-11-14/2022-11-18": { + "faktiskArbeidTimerPerDag": "PT1H", + "jobberNormaltTimerPerDag": "PT1H" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-11-01/2022-11-19": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-11-01/2022-11-19"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2016-11-08" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "8f968f00-6ecc-4e78-a5ab-11ff175db3bb", + "mottattDato": "2022-11-08T07:00:06.249Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": null, + "journalpostId": "573802547", + "dokumenter": [ + { + "journalpostId": "573802547", + "dokumentInfoId": "599105571", + "sakId": null, + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573802547/599105571/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-11-08T08:00:10", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-11-08T08:00:10", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-11-08T08:00:06", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-11-08T07:00:06.249Z", + "endret": "2022-11-08T07:00:10", + "behandlingsdato": null + }, + { + "søknadId": "863d6bd3-b939-47aa-9653-cbfc7cc11367", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2016-09-07", + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_PROSENT_AV_NORMALT", + "prosentAvNormalt": 10, + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT20H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-09-02T08:20:45.437124664Z", + "fraOgMed": "2022-08-01", + "tilOgMed": "2022-09-30", + "beredskap": { "beredskap": true, "tilleggsinformasjon": "Beskrivelse av beredskap" }, + "nattevåk": { "harNattevåk": true, "tilleggsinformasjon": "Beskrivelse av nattevåk" }, + "søknadId": "863d6bd3-b939-47aa-9653-cbfc7cc11367", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI0NzE4Y2NjYi02ZmQ0LTQxOTgtYTU5NS0xMzUyYWMzMDZjOTQifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIwMjRmNDM3MC1mMGY3LTRkNmItYWUwZS01YmI0YmZjZDNhZGQifQ" + ], + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzMjhkZDllNi1hNzVmLTQ2ZWUtOGZiNi05MzNhODYwZjA4MDMifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": true, + "harBoddIUtlandetSiste12Mnd": true, + "utenlandsoppholdNeste12Mnd": [ + { + "fraOgMed": "2022-09-02", + "landkode": "ASM", + "landnavn": "Amerikansk Samoa", + "tilOgMed": "2022-11-19" + } + ], + "utenlandsoppholdSiste12Mnd": [ + { "fraOgMed": "2022-06-13", "landkode": "ALB", "landnavn": "Albania", "tilOgMed": "2022-09-01" } + ] + }, + "harMedsøker": true, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_FASTE_UKEDAGER", + "fasteDager": { + "fredag": "PT5M", + "mandag": "PT1M", + "onsdag": "PT3M", + "tirsdag": "PT2M", + "torsdag": "PT4M" + }, + "erLiktHverUke": true, + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { + "erLiktHverUke": true, + "timerFasteDager": { + "fredag": "PT5H", + "mandag": "PT1H", + "onsdag": "PT3H", + "tirsdag": "PT2H", + "torsdag": "PT4H" + } + } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "omsorgstilbud": { + "ukedager": { + "fredag": "PT1H5M", + "mandag": "PT5H1M", + "onsdag": "PT3H3M", + "tirsdag": "PT4H3M", + "torsdag": "PT2H4M" + }, + "erLiktHverUke": true + }, + "samtidigHjemme": true, + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-08-01/2022-09-30": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { + "perioder": { + "2022-06-13/2022-09-01": { "land": "ALB" }, + "2022-09-02/2022-11-19": { "land": "ASM" } + }, + "perioderSomSkalSlettes": {} + }, + "beredskap": { + "perioder": { + "2022-08-01/2022-09-30": { "tilleggsinformasjon": "Beskrivelse av beredskap" } + }, + "perioderSomSkalSlettes": {} + }, + "nattevåk": { + "perioder": { + "2022-08-01/2022-09-30": { "tilleggsinformasjon": "Beskrivelse av nattevåk" } + }, + "perioderSomSkalSlettes": {} + }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-08-01/2022-08-01": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-08-02/2022-08-02": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-08-03/2022-08-03": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-08-04/2022-08-04": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-05/2022-08-05": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-08-08/2022-08-08": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-08-09/2022-08-09": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-08-10/2022-08-10": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-08-11/2022-08-11": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-12/2022-08-12": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-08-15/2022-08-15": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-08-16/2022-08-16": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-08-17/2022-08-17": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-08-18/2022-08-18": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-19/2022-08-19": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-08-22/2022-08-22": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-08-23/2022-08-23": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-08-24/2022-08-24": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-08-25/2022-08-25": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-08-26/2022-08-26": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-08-29/2022-08-29": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-08-30/2022-08-30": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-08-31/2022-08-31": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-09-01/2022-09-01": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-02/2022-09-02": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-09-05/2022-09-05": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-09-06/2022-09-06": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-07/2022-09-07": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-09-08/2022-09-08": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-09/2022-09-09": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-09-12/2022-09-12": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-09-13/2022-09-13": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-14/2022-09-14": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-09-15/2022-09-15": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-16/2022-09-16": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-09-19/2022-09-19": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-09-20/2022-09-20": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-21/2022-09-21": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-09-22/2022-09-22": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-23/2022-09-23": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + }, + "2022-09-26/2022-09-26": { + "faktiskArbeidTimerPerDag": "PT1M", + "jobberNormaltTimerPerDag": "PT1H" + }, + "2022-09-27/2022-09-27": { + "faktiskArbeidTimerPerDag": "PT2M", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-28/2022-09-28": { + "faktiskArbeidTimerPerDag": "PT3M", + "jobberNormaltTimerPerDag": "PT3H" + }, + "2022-09-29/2022-09-29": { + "faktiskArbeidTimerPerDag": "PT4M", + "jobberNormaltTimerPerDag": "PT4H" + }, + "2022-09-30/2022-09-30": { + "faktiskArbeidTimerPerDag": "PT5M", + "jobberNormaltTimerPerDag": "PT5H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-08-01/2022-09-30": { + "faktiskArbeidTimerPerDag": "PT24M", + "jobberNormaltTimerPerDag": "PT4H" + } + } + }, + "selvstendigNæringsdrivendeArbeidstidInfo": { + "perioder": { + "2022-08-01/2022-09-30": { + "faktiskArbeidTimerPerDag": "PT1H", + "jobberNormaltTimerPerDag": "PT2H" + } + } + } + }, + "tilsynsordning": { + "perioder": { + "2022-08-01/2022-08-01": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-08-02/2022-08-02": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-08-03/2022-08-03": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-08-04/2022-08-04": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-08-05/2022-08-05": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-08-08/2022-08-08": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-08-09/2022-08-09": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-08-10/2022-08-10": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-08-11/2022-08-11": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-08-12/2022-08-12": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-08-15/2022-08-15": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-08-16/2022-08-16": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-08-17/2022-08-17": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-08-18/2022-08-18": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-08-19/2022-08-19": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-08-22/2022-08-22": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-08-23/2022-08-23": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-08-24/2022-08-24": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-08-25/2022-08-25": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-08-26/2022-08-26": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-08-29/2022-08-29": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-08-30/2022-08-30": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-08-31/2022-08-31": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-09-01/2022-09-01": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-09-02/2022-09-02": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-09-05/2022-09-05": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-09-06/2022-09-06": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-09-07/2022-09-07": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-09-08/2022-09-08": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-09-09/2022-09-09": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-09-12/2022-09-12": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-09-13/2022-09-13": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-09-14/2022-09-14": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-09-15/2022-09-15": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-09-16/2022-09-16": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-09-19/2022-09-19": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-09-20/2022-09-20": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-09-21/2022-09-21": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-09-22/2022-09-22": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-09-23/2022-09-23": { "etablertTilsynTimerPerDag": "PT1H5M" }, + "2022-09-26/2022-09-26": { "etablertTilsynTimerPerDag": "PT5H1M" }, + "2022-09-27/2022-09-27": { "etablertTilsynTimerPerDag": "PT4H3M" }, + "2022-09-28/2022-09-28": { "etablertTilsynTimerPerDag": "PT3H3M" }, + "2022-09-29/2022-09-29": { "etablertTilsynTimerPerDag": "PT2H4M" }, + "2022-09-30/2022-09-30": { "etablertTilsynTimerPerDag": "PT1H5M" } + } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": { "2022-09-12/2022-09-24": { "skalHaFerie": true } } }, + "søknadsperiode": ["2022-08-01/2022-09-30"], + "utenlandsopphold": { + "perioder": { + "2022-09-12/2022-09-12": { "land": "ALB" }, + "2022-09-13/2022-09-23": { + "land": "ALB", + "årsak": "barnetInnlagtIHelseinstitusjonForNorskOffentligRegning" + }, + "2022-09-24/2022-09-30": { "land": "ALB" } + }, + "perioderSomSkalSlettes": {} + }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { + "frilanser": { "startdato": "2016-09-07" }, + "selvstendigNæringsdrivende": [ + { + "perioder": { + "2009-09-02/..": { + "landkode": "ASM", + "endringDato": "2022-09-01", + "bruttoInntekt": 123, + "erNyoppstartet": false, + "erVarigEndring": true, + "virksomhetstyper": ["JORDBRUK_SKOGBRUK"], + "endringBegrunnelse": "WhoaWhoa", + "registrertIUtlandet": true + } + }, + "virksomhetNavn": "ABC" + } + ] + }, + "dataBruktTilUtledning": { + "harMedsøker": true, + "samtidigHjemme": true, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "863d6bd3-b939-47aa-9653-cbfc7cc11367", + "mottattDato": "2022-09-02T08:20:45.437Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [ + { + "land": { "landkode": "IRL", "landnavn": "Irland" }, + "fraOgMed": "2022-09-01", + "næringstype": "ANNEN", + "navnPåVirksomheten": "NæringAnnetEØSLand", + "organisasjonsnummer": "123123123" + } + ], + "ferieuttakIPerioden": { + "ferieuttak": [{ "fraOgMed": "2022-09-12", "tilOgMed": "2022-09-24" }], + "skalTaUtFerieIPerioden": true + }, + "opptjeningIUtlandet": [ + { + "land": { "landkode": "BEL", "landnavn": "Belgia" }, + "navn": "FreeBelgia", + "fraOgMed": "2022-09-13", + "tilOgMed": "2022-09-23", + "opptjeningType": "FRILANSER" + }, + { + "land": { "landkode": "BGR", "landnavn": "Bulgaria" }, + "navn": "BulgArbeidsgiverNavn", + "fraOgMed": "2022-09-14", + "tilOgMed": "2022-09-15", + "opptjeningType": "ARBEIDSTAKER" + } + ], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { + "opphold": [ + { + "årsak": "BARNET_INNLAGT_I_HELSEINSTITUSJON_FOR_NORSK_OFFENTLIG_REGNING", + "fraOgMed": "2022-09-12", + "landkode": "ALB", + "landnavn": "Albania", + "tilOgMed": "2022-09-30", + "erUtenforEøs": true, + "erBarnetInnlagt": true, + "perioderBarnetErInnlagt": [{ "fraOgMed": "2022-09-13", "tilOgMed": "2022-09-23" }] + } + ], + "skalOppholdeSegIUtlandetIPerioden": true + }, + "selvstendigNæringsdrivende": { + "virksomhet": { + "fraOgMed": "2009-09-02", + "næringstype": "JORDBRUK_SKOGBRUK", + "varigEndring": { "dato": "2022-09-01", "forklaring": "WhoaWhoa", "inntektEtterEndring": 123 }, + "fiskerErPåBladB": false, + "registrertINorge": false, + "navnPåVirksomheten": "ABC", + "registrertIUtlandet": { "landkode": "ASM", "landnavn": "Amerikansk Samoa" }, + "harFlereAktiveVirksomheter": true + }, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_TIMER_I_SNITT_PER_UKE", + "timerPerUke": "PT5H", + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT10H" } + }, + "harInntektSomSelvstendig": true + }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573777622", + "dokumenter": [ + { + "journalpostId": "573777622", + "dokumentInfoId": "599039030", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573777622/599039030/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-02T10:20:56", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-02T10:20:56", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-02T10:21:02", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-02T10:20:45", "datotype": "DATO_REGISTRERT" } + ] + }, + { + "journalpostId": "573777622", + "dokumentInfoId": "599039031", + "sakId": "1DNM1SM", + "tittel": "IMG_1075 (1).JPG", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573777622/599039031/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-02T10:20:56", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-02T10:20:56", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-02T10:21:02", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-02T10:20:45", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-09-02T08:20:45.437Z", + "endret": "2022-09-02T08:22:08", + "behandlingsdato": null + }, + { + "søknadId": "7202fa92-721f-4049-96c8-e44feed96586", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2011-09-07", + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_PROSENT_AV_NORMALT", + "prosentAvNormalt": 5, + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT20H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-09-02T09:41:33.411524928Z", + "fraOgMed": "2022-09-01", + "tilOgMed": "2022-09-17", + "søknadId": "7202fa92-721f-4049-96c8-e44feed96586", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIxZDUwNTkxMC1kNmE1LTQyZjMtYjJiMS0zZjdjMDhhOGJiMTkifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI2MWNhNGFhMy1lOTFiLTQ3YjQtYTVkYi0zMzViNzExN2EyYWIifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_ENKELTDAGER", + "enkeltdager": [ + { + "dato": "2022-09-01", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-02", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-05", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT1H" } + }, + { + "dato": "2022-09-06", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT5H" } + }, + { + "dato": "2022-09-07", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-08", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-09", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-12", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-13", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT5H" } + }, + { + "dato": "2022-09-14", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-15", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + }, + { + "dato": "2022-09-16", + "arbeidstimer": { "normalTimer": "PT2H", "faktiskTimer": "PT0S" } + } + ], + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { + "erLiktHverUke": true, + "timerFasteDager": { + "fredag": "PT2H", + "mandag": "PT2H", + "onsdag": "PT2H", + "tirsdag": "PT2H", + "torsdag": "PT2H" + } + } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-09-01/2022-09-17": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-09-01/2022-09-01": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-02/2022-09-02": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-05/2022-09-05": { + "faktiskArbeidTimerPerDag": "PT1H", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-06/2022-09-06": { + "faktiskArbeidTimerPerDag": "PT5H", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-07/2022-09-07": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-08/2022-09-08": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-09/2022-09-09": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-12/2022-09-12": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-13/2022-09-13": { + "faktiskArbeidTimerPerDag": "PT5H", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-14/2022-09-14": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-15/2022-09-15": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + }, + "2022-09-16/2022-09-16": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT2H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-09-01/2022-09-17": { + "faktiskArbeidTimerPerDag": "PT12M", + "jobberNormaltTimerPerDag": "PT4H" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-09-01/2022-09-17": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-09-01/2022-09-17"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2011-09-07" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "7202fa92-721f-4049-96c8-e44feed96586", + "mottattDato": "2022-09-02T09:41:33.411Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573777659", + "dokumenter": [ + { + "journalpostId": "573777659", + "dokumentInfoId": "599039072", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573777659/599039072/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-02T11:41:35", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-02T11:41:35", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-02T11:41:40", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-02T11:41:33", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-09-02T09:41:33.411Z", + "endret": "2022-09-02T09:41:45", + "behandlingsdato": null + }, + { + "søknadId": "68e5ae8d-d003-40ee-ae86-767f76b2c7bb", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2022-09-01", + "arbeidsforhold": { + "arbeidIPeriode": { "type": "ARBEIDER_IKKE", "arbeiderIPerioden": "HELT_FRAVÆR" }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT5H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-09-02T12:11:24.261628944Z", + "fraOgMed": "2022-09-01", + "tilOgMed": "2022-09-30", + "søknadId": "68e5ae8d-d003-40ee-ae86-767f76b2c7bb", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJlMWY5ZGNkMC03MDNkLTQ5MzMtYmE3Mi02MmViYWM5ZWQ4ZGUifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJjMjJiM2IzMC02MDNhLTQzZjgtOGNjNC1hYmU4YmJlZjQ3NzIifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "erAnsatt": true, + "arbeidsforhold": { + "arbeidIPeriode": { + "type": "ARBEIDER_TIMER_I_SNITT_PER_UKE", + "timerPerUke": "PT30H", + "arbeiderIPerioden": "REDUSERT" + }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT40H" } + }, + "organisasjonsnummer": "947064649", + "sluttetFørSøknadsperiode": false + } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-09-01/2022-09-30": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-09-01/2022-09-30": { + "faktiskArbeidTimerPerDag": "PT6H", + "jobberNormaltTimerPerDag": "PT8H" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-09-01/2022-09-30": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT1H" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-09-01/2022-09-30": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-09-01/2022-09-30"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2022-09-01" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "68e5ae8d-d003-40ee-ae86-767f76b2c7bb", + "mottattDato": "2022-09-02T12:11:24.261Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573777704", + "dokumenter": [ + { + "journalpostId": "573777704", + "dokumentInfoId": "599039130", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573777704/599039130/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-02T14:11:26", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-02T14:11:26", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-02T14:11:31", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-02T14:11:24", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-09-02T12:11:24.261Z", + "endret": "2022-09-02T12:11:38", + "behandlingsdato": null + }, + { + "søknadId": "3ff3f365-7e7e-4b1f-838f-448684959f9e", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2022-09-01", + "arbeidsforhold": { + "arbeidIPeriode": { "type": "ARBEIDER_IKKE", "arbeiderIPerioden": "HELT_FRAVÆR" }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT20H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-09-12T11:36:08.213671475Z", + "fraOgMed": "2022-09-08", + "tilOgMed": "2022-09-25", + "søknadId": "3ff3f365-7e7e-4b1f-838f-448684959f9e", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJiOGMxMTU3Zi1jYjY2LTQ5NzMtODhhNy1kMzliZmQwOTg1MjMifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzNDE4NmFmZC04ZTRlLTQ5ODctYTZlMi1iMGRlM2ZhNWY3YjcifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { "navn": "SJOKKERENDE ELEKTRIKER", "erAnsatt": false, "organisasjonsnummer": "947064649" } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-09-08/2022-09-25": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-09-08/2022-09-25": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT0S" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-09-08/2022-09-25": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT4H" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-09-08/2022-09-25": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-09-08/2022-09-25"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2022-09-01" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "3ff3f365-7e7e-4b1f-838f-448684959f9e", + "mottattDato": "2022-09-12T11:36:08.213Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573779224", + "dokumenter": [ + { + "journalpostId": "573779224", + "dokumentInfoId": "599040845", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573779224/599040845/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-12T13:36:09", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-12T13:36:09", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-12T13:36:14", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-12T13:36:08", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-09-12T11:36:08.213Z", + "endret": "2022-09-12T11:36:19", + "behandlingsdato": null + }, + { + "søknadId": "eced6d00-7c81-4828-a2e9-79c04f8e4bcf", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2022-09-07", + "arbeidsforhold": { + "arbeidIPeriode": { "type": "ARBEIDER_IKKE", "arbeiderIPerioden": "HELT_FRAVÆR" }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT2H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-09-28T10:12:32.892074447Z", + "fraOgMed": "2022-09-09", + "tilOgMed": "2022-09-24", + "søknadId": "eced6d00-7c81-4828-a2e9-79c04f8e4bcf", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI2MjY1NTQ1ZC00NWI4LTQyOTAtODlkMC0zNTg1YzdmODYyY2EifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJkNTI0NTk5ZS00YTA1LTQzMzktOGYyNS03YmJkYWZhZWJiNGIifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { "navn": "SJOKKERENDE ELEKTRIKER", "erAnsatt": false, "organisasjonsnummer": "947064649" } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-09-09/2022-09-24": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-09-09/2022-09-24": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT0S" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-09-09/2022-09-24": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT24M" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-09-09/2022-09-24": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-09-09/2022-09-24"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2022-09-07" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "eced6d00-7c81-4828-a2e9-79c04f8e4bcf", + "mottattDato": "2022-09-28T10:12:32.892Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573782814", + "dokumenter": [ + { + "journalpostId": "573782814", + "dokumentInfoId": "599044971", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573782814/599044971/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-28T12:12:34", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-28T12:12:34", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-28T12:12:40", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-28T12:12:32", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-09-28T10:12:32.892Z", + "endret": "2022-09-28T10:12:46", + "behandlingsdato": null + }, + { + "søknadId": "509a21da-3c26-4899-b9d3-c494cfb9309a", + "søknadstype": "PP_SYKT_BARN", + "status": "MOTTATT", + "søknad": { + "barn": { + "navn": "ALFABETISK FAGOTT", + "aktørId": "2811762539343", + "fødselsdato": "2019-06-08", + "fødselsnummer": "08861999573" + }, + "språk": "nb", + "søker": { + "fornavn": "PRESENTABEL", + "aktørId": "2320509955297", + "etternavn": "HOFTE", + "fødselsnummer": "02869599258" + }, + "frilans": { + "startdato": "2022-09-14", + "arbeidsforhold": { + "arbeidIPeriode": { "type": "ARBEIDER_IKKE", "arbeiderIPerioden": "HELT_FRAVÆR" }, + "normalarbeidstid": { "erLiktHverUke": false, "timerPerUkeISnitt": "PT2H" } + }, + "harInntektSomFrilanser": true, + "jobberFortsattSomFrilans": true + }, + "mottatt": "2022-09-28T10:25:29.114304782Z", + "fraOgMed": "2022-09-08", + "tilOgMed": "2022-09-25", + "søknadId": "509a21da-3c26-4899-b9d3-c494cfb9309a", + "dokumentId": [ + [ + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI1NmY5NzUzMC1hZDYwLTQ0ZWMtYTY5Mi0yNmRkMjM0ZWFhYWEifQ", + "eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI0MGUyZWU0ZC0yYmZjLTRjN2QtOGYzYy0yMjZhZjM1OTc5ZDYifQ" + ] + ], + "medlemskap": { + "skalBoIUtlandetNeste12Mnd": false, + "harBoddIUtlandetSiste12Mnd": false, + "utenlandsoppholdNeste12Mnd": [], + "utenlandsoppholdSiste12Mnd": [] + }, + "harMedsøker": false, + "arbeidsgivere": [ + { "navn": "SJOKKERENDE ELEKTRIKER", "erAnsatt": false, "organisasjonsnummer": "947064649" } + ], + "k9FormatSøknad": { + "språk": "nb", + "søker": { "norskIdentitetsnummer": "02869599258" }, + "ytelse": { + "barn": { "norskIdentitetsnummer": "08861999573" }, + "type": "PLEIEPENGER_SYKT_BARN", + "uttak": { "perioder": { "2022-09-08/2022-09-25": { "timerPleieAvBarnetPerDag": "PT7H30M" } } }, + "omsorg": {}, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "arbeidstidInfo": { + "perioder": { + "2022-09-08/2022-09-25": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT0S" + } + } + }, + "organisasjonsnummer": "947064649" + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2022-09-08/2022-09-13": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT0S" + }, + "2022-09-14/2022-09-25": { + "faktiskArbeidTimerPerDag": "PT0S", + "jobberNormaltTimerPerDag": "PT24M" + } + } + } + }, + "tilsynsordning": { + "perioder": { "2022-09-08/2022-09-25": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "endringsperiode": [], + "lovbestemtFerie": { "perioder": {} }, + "søknadsperiode": ["2022-09-08/2022-09-25"], + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "trekkKravPerioder": [], + "opptjeningAktivitet": { "frilanser": { "startdato": "2022-09-14" } }, + "dataBruktTilUtledning": { + "harMedsøker": false, + "harBekreftetOpplysninger": true, + "harForståttRettigheterOgPlikter": true + } + }, + "versjon": "1.0.0", + "søknadId": "509a21da-3c26-4899-b9d3-c494cfb9309a", + "mottattDato": "2022-09-28T10:25:29.114Z", + "journalposter": [], + "begrunnelseForInnsending": {} + }, + "utenlandskNæring": [], + "ferieuttakIPerioden": { "ferieuttak": [], "skalTaUtFerieIPerioden": false }, + "opptjeningIUtlandet": [], + "harBekreftetOpplysninger": true, + "utenlandsoppholdIPerioden": { "opphold": [], "skalOppholdeSegIUtlandetIPerioden": false }, + "selvstendigNæringsdrivende": { "harInntektSomSelvstendig": false }, + "harForstattRettigheterOgPlikter": true + }, + "saksId": "1DNM1SM", + "journalpostId": "573782819", + "dokumenter": [ + { + "journalpostId": "573782819", + "dokumentInfoId": "599044975", + "sakId": "1DNM1SM", + "tittel": "Søknad om pleiepenger", + "filtype": "PDF", + "harTilgang": true, + "url": "http://localhost:1234/dokument/573782819/599044975/ARKIV", + "relevanteDatoer": [ + { "dato": "2022-09-28T12:25:31", "datotype": "DATO_OPPRETTET" }, + { "dato": "2022-09-28T12:25:31", "datotype": "DATO_DOKUMENT" }, + { "dato": "2022-09-28T12:25:36", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2022-09-28T12:25:29", "datotype": "DATO_REGISTRERT" } + ] + } + ], + "opprettet": "2022-09-28T10:25:29.114Z", + "endret": "2022-09-28T10:25:41", + "behandlingsdato": null + } +] diff --git "a/apps/dine-pleiepenger/e2e/playwright/mockdata/s\303\270ker.mock.ts" "b/apps/dine-pleiepenger/e2e/playwright/mockdata/s\303\270ker.mock.ts" new file mode 100644 index 0000000000..976295bb6a --- /dev/null +++ "b/apps/dine-pleiepenger/e2e/playwright/mockdata/s\303\270ker.mock.ts" @@ -0,0 +1,8 @@ +export const søkerMockData = { + aktørId: '2534326051524', + fødselsdato: '1981-02-06', + fødselsnummer: '06828199151', + fornavn: 'SUNN', + mellomnavn: null, + etternavn: 'KORRIDOR', +}; diff --git "a/apps/dine-pleiepenger/e2e/playwright/mockdata/s\303\270knader.mock.ts" "b/apps/dine-pleiepenger/e2e/playwright/mockdata/s\303\270knader.mock.ts" new file mode 100644 index 0000000000..b0ec5a8844 --- /dev/null +++ "b/apps/dine-pleiepenger/e2e/playwright/mockdata/s\303\270knader.mock.ts" @@ -0,0 +1,2214 @@ +export const søknaderMockData = [ + { + søknadId: '9054ab9e-2b82-4998-9f10-9a82827f06e9', + søknadstype: 'PP_SYKT_BARN_ENDRINGSMELDING', + status: 'MOTTATT', + søknad: { + søker: { + fornavn: 'KRIMINELL', + aktørId: '2391969373424', + etternavn: 'MULDVARP', + fødselsnummer: '17097721564', + }, + dokumentId: [ + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJiM2VlZDljMy0zNDhjLTQ2NGEtYWRkNS1lYmQ3ZGFlMzU5ZGYifQ', + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJmZjMwZGRhZi1lN2M3LTRlY2UtOWZhNC03ODZmZGVhZDg2MDEifQ', + ], + ], + k9FormatSøknad: { + språk: 'nb', + søker: { norskIdentitetsnummer: '17097721564' }, + ytelse: { + barn: { fødselsdato: '2009-07-31', norskIdentitetsnummer: '31070968161' }, + type: 'PLEIEPENGER_SYKT_BARN', + uttak: { perioder: {} }, + omsorg: {}, + bosteder: { perioder: {}, perioderSomSkalSlettes: {} }, + beredskap: { perioder: {}, perioderSomSkalSlettes: {} }, + nattevåk: { perioder: {}, perioderSomSkalSlettes: {} }, + arbeidstid: { + arbeidstakerList: [ + { + arbeidstidInfo: { + perioder: { + '2021-12-07/2021-12-07': { + faktiskArbeidTimerPerDag: 'PT2M', + jobberNormaltTimerPerDag: 'PT4H', + }, + }, + }, + organisasjonsnummer: '947064649', + }, + ], + }, + tilsynsordning: { perioder: {} }, + endringsperiode: [], + lovbestemtFerie: { perioder: {} }, + søknadsperiode: [], + utenlandsopphold: { perioder: {}, perioderSomSkalSlettes: {} }, + trekkKravPerioder: [], + opptjeningAktivitet: {}, + }, + versjon: '1.0.0', + søknadId: '9054ab9e-2b82-4998-9f10-9a82827f06e9', + mottattDato: '2022-01-31T13:40:00.621Z', + journalposter: [], + begrunnelseForInnsending: {}, + }, + }, + saksId: '1DMR9RQ', + journalpostId: '524277209', + dokumenter: [ + { + journalpostId: '524277209', + dokumentInfoId: '548469861', + sakId: '1DMR9RQ', + tittel: 'Endringsmelding om pleiepenger', + filtype: 'PDF', + harTilgang: true, + url: 'https://sif-innsyn-api.dev.nav.no/dokument/524277209/548469861/ARKIV', + relevanteDatoer: [ + { dato: '2022-01-31T14:40:02', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-01-31T14:40:02', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-01-31T14:40:06', datotype: 'DATO_JOURNALFOERT' }, + { dato: '2022-01-31T01:00', datotype: 'DATO_REGISTRERT' }, + ], + }, + ], + opprettet: '2023-01-31T13:40:00.621Z', + endret: '2023-01-31T14:40:11', + behandlingsdato: null, + }, + { + søknadId: '9a562927-bd1c-4b4f-b901-07180ff67b66', + søknadstype: 'PP_SYKT_BARN', + status: 'MOTTATT', + søknad: { + barn: { + navn: 'ALFABETISK FAGOTT', + aktørId: '2811762539343', + fødselsdato: '2019-06-08', + fødselsnummer: '08861999573', + }, + språk: 'nb', + søker: { + fornavn: 'PRESENTABEL', + aktørId: '2320509955297', + etternavn: 'HOFTE', + fødselsnummer: '02869599258', + }, + frilans: { + startdato: '2022-10-10', + arbeidsforhold: { + arbeidIPeriode: { + type: 'ARBEIDER_ULIKE_UKER_PROSENT', + arbeidsuker: [ + { + periode: { fraOgMed: '2022-10-10', tilOgMed: '2022-10-13' }, + prosentAvNormalt: 20, + }, + ], + arbeiderIPerioden: 'REDUSERT', + }, + normalarbeidstid: { timerPerUkeISnitt: 'PT5H' }, + }, + harInntektSomFrilanser: true, + jobberFortsattSomFrilans: true, + }, + mottatt: '2022-10-26T23:17:30.794068129Z', + fraOgMed: '2022-10-03', + tilOgMed: '2022-10-13', + søknadId: '9a562927-bd1c-4b4f-b901-07180ff67b66', + dokumentId: [ + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJkYWUzNjliZS1iMjMzLTRhM2MtOWYxNy0zMzdjNjRkOGEyNzUifQ', + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzYzlhYWRiNi03OWRjLTRjODYtYjFlZi05YTBlNjIyNjNmZjUifQ', + ], + ], + medlemskap: { + skalBoIUtlandetNeste12Mnd: false, + harBoddIUtlandetSiste12Mnd: false, + utenlandsoppholdNeste12Mnd: [], + utenlandsoppholdSiste12Mnd: [], + }, + harMedsøker: false, + arbeidsgivere: [ + { + navn: 'SJOKKERENDE ELEKTRIKER', + erAnsatt: true, + arbeidsforhold: { + arbeidIPeriode: { + type: 'ARBEIDER_PROSENT_AV_NORMALT', + prosentAvNormalt: 50, + arbeiderIPerioden: 'REDUSERT', + }, + normalarbeidstid: { timerPerUkeISnitt: 'PT5H' }, + }, + organisasjonsnummer: '947064649', + sluttetFørSøknadsperiode: false, + }, + ], + k9FormatSøknad: { + språk: 'nb', + søker: { norskIdentitetsnummer: '02869599258' }, + ytelse: { + barn: { norskIdentitetsnummer: '08861999573' }, + type: 'PLEIEPENGER_SYKT_BARN', + uttak: { perioder: { '2022-10-03/2022-10-13': { timerPleieAvBarnetPerDag: 'PT7H30M' } } }, + omsorg: {}, + bosteder: { perioder: {}, perioderSomSkalSlettes: {} }, + beredskap: { perioder: {}, perioderSomSkalSlettes: {} }, + nattevåk: { perioder: {}, perioderSomSkalSlettes: {} }, + arbeidstid: { + arbeidstakerList: [ + { + arbeidstidInfo: { + perioder: { + '2022-10-03/2022-10-13': { + faktiskArbeidTimerPerDag: 'PT30M', + jobberNormaltTimerPerDag: 'PT1H', + }, + }, + }, + organisasjonsnummer: '947064649', + }, + ], + frilanserArbeidstidInfo: { + perioder: { + '2022-10-03/2022-10-09': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT0S', + }, + '2022-10-10/2022-10-13': { + faktiskArbeidTimerPerDag: 'PT12M', + jobberNormaltTimerPerDag: 'PT1H', + }, + }, + }, + }, + tilsynsordning: { + perioder: { '2022-10-03/2022-10-13': { etablertTilsynTimerPerDag: 'PT0S' } }, + }, + endringsperiode: [], + lovbestemtFerie: { perioder: {} }, + søknadsperiode: ['2022-10-03/2022-10-13'], + utenlandsopphold: { perioder: {}, perioderSomSkalSlettes: {} }, + trekkKravPerioder: [], + opptjeningAktivitet: { frilanser: { startdato: '2022-10-10' } }, + dataBruktTilUtledning: { + harMedsøker: false, + harBekreftetOpplysninger: true, + harForståttRettigheterOgPlikter: true, + }, + }, + versjon: '1.0.0', + søknadId: '9a562927-bd1c-4b4f-b901-07180ff67b66', + mottattDato: '2022-10-26T23:17:30.794Z', + journalposter: [], + begrunnelseForInnsending: {}, + }, + utenlandskNæring: [], + ferieuttakIPerioden: { ferieuttak: [], skalTaUtFerieIPerioden: false }, + opptjeningIUtlandet: [], + harBekreftetOpplysninger: true, + utenlandsoppholdIPerioden: { opphold: [], skalOppholdeSegIUtlandetIPerioden: false }, + selvstendigNæringsdrivende: { harInntektSomSelvstendig: false }, + harForstattRettigheterOgPlikter: true, + }, + saksId: '1DNM1SM', + journalpostId: '573788132', + dokumenter: [ + { + journalpostId: '573788132', + dokumentInfoId: '599051418', + sakId: '1DNM1SM', + tittel: 'Søknad om pleiepenger', + filtype: 'PDF', + harTilgang: true, + url: 'http://localhost:1234/dokument/573788132/599051418/ARKIV', + relevanteDatoer: [ + { dato: '2022-10-27T01:17:36', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-10-27T01:17:36', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-10-27T01:17:42', datotype: 'DATO_JOURNALFOERT' }, + { dato: '2022-10-27T01:17:30', datotype: 'DATO_REGISTRERT' }, + ], + }, + ], + opprettet: '2022-10-26T23:17:30.794Z', + endret: '2022-10-26T23:17:47', + behandlingsdato: null, + }, + { + søknadId: '64f75397-b4f7-419a-9147-0cd803446f4b', + søknadstype: 'PP_SYKT_BARN', + status: 'MOTTATT', + søknad: { + barn: { + navn: 'ALFABETISK FAGOTT', + aktørId: '2811762539343', + fødselsdato: '2019-06-08', + fødselsnummer: '08861999573', + }, + språk: 'nb', + søker: { + fornavn: 'PRESENTABEL', + aktørId: '2320509955297', + etternavn: 'HOFTE', + fødselsnummer: '02869599258', + }, + frilans: { + startdato: '2014-10-16', + arbeidsforhold: { + arbeidIPeriode: { type: 'ARBEIDER_IKKE', arbeiderIPerioden: 'HELT_FRAVÆR' }, + normalarbeidstid: { erLiktHverUke: true, timerPerUkeISnitt: 'PT5H' }, + }, + harInntektSomFrilanser: true, + jobberFortsattSomFrilans: true, + }, + mottatt: '2022-10-13T14:44:14.834424102Z', + fraOgMed: '2022-10-01', + tilOgMed: '2022-10-30', + søknadId: '64f75397-b4f7-419a-9147-0cd803446f4b', + dokumentId: [ + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIwOTA4ODg4OC0zZTcxLTQ0OGEtYTZmMy1hZDg4ZDI4NDViZGQifQ', + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI3ZjJlYWIyMS04MjEwLTRiZmQtODc0NS1kYzFiZDU0MTAxMzIifQ', + ], + ], + medlemskap: { + skalBoIUtlandetNeste12Mnd: false, + harBoddIUtlandetSiste12Mnd: false, + utenlandsoppholdNeste12Mnd: [], + utenlandsoppholdSiste12Mnd: [], + }, + harMedsøker: false, + arbeidsgivere: [ + { + navn: 'SJOKKERENDE ELEKTRIKER', + erAnsatt: true, + arbeidsforhold: { + arbeidIPeriode: { + type: 'ARBEIDER_PROSENT_AV_NORMALT', + prosentAvNormalt: 50, + arbeiderIPerioden: 'REDUSERT', + }, + normalarbeidstid: { erLiktHverUke: true, timerPerUkeISnitt: 'PT20H' }, + }, + organisasjonsnummer: '947064649', + sluttetFørSøknadsperiode: false, + }, + ], + k9FormatSøknad: { + språk: 'nb', + søker: { norskIdentitetsnummer: '02869599258' }, + ytelse: { + barn: { norskIdentitetsnummer: '08861999573' }, + type: 'PLEIEPENGER_SYKT_BARN', + uttak: { perioder: { '2022-10-01/2022-10-30': { timerPleieAvBarnetPerDag: 'PT7H30M' } } }, + omsorg: {}, + bosteder: { perioder: {}, perioderSomSkalSlettes: {} }, + beredskap: { perioder: {}, perioderSomSkalSlettes: {} }, + nattevåk: { perioder: {}, perioderSomSkalSlettes: {} }, + arbeidstid: { + arbeidstakerList: [ + { + arbeidstidInfo: { + perioder: { + '2022-10-01/2022-10-30': { + faktiskArbeidTimerPerDag: 'PT2H', + jobberNormaltTimerPerDag: 'PT4H', + }, + }, + }, + organisasjonsnummer: '947064649', + }, + ], + frilanserArbeidstidInfo: { + perioder: { + '2022-10-01/2022-10-30': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT1H', + }, + }, + }, + }, + tilsynsordning: { + perioder: { '2022-10-01/2022-10-30': { etablertTilsynTimerPerDag: 'PT0S' } }, + }, + endringsperiode: [], + lovbestemtFerie: { perioder: {} }, + søknadsperiode: ['2022-10-01/2022-10-30'], + utenlandsopphold: { perioder: {}, perioderSomSkalSlettes: {} }, + trekkKravPerioder: [], + opptjeningAktivitet: { frilanser: { startdato: '2014-10-16' } }, + dataBruktTilUtledning: { + harMedsøker: false, + harBekreftetOpplysninger: true, + harForståttRettigheterOgPlikter: true, + }, + }, + versjon: '1.0.0', + søknadId: '64f75397-b4f7-419a-9147-0cd803446f4b', + mottattDato: '2022-10-13T14:44:14.834Z', + journalposter: [], + begrunnelseForInnsending: {}, + }, + utenlandskNæring: [], + ferieuttakIPerioden: { ferieuttak: [], skalTaUtFerieIPerioden: false }, + opptjeningIUtlandet: [], + harBekreftetOpplysninger: true, + utenlandsoppholdIPerioden: { opphold: [], skalOppholdeSegIUtlandetIPerioden: false }, + selvstendigNæringsdrivende: { harInntektSomSelvstendig: false }, + harForstattRettigheterOgPlikter: true, + }, + saksId: '1DNM1SM', + journalpostId: '573786100', + dokumenter: [ + { + journalpostId: '573786100', + dokumentInfoId: '599048863', + sakId: '1DNM1SM', + tittel: 'Søknad om pleiepenger', + filtype: 'PDF', + harTilgang: true, + url: 'http://localhost:1234/dokument/573786100/599048863/ARKIV', + relevanteDatoer: [ + { dato: '2022-10-13T16:44:18', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-10-13T16:44:18', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-10-13T16:44:24', datotype: 'DATO_JOURNALFOERT' }, + { dato: '2022-10-13T16:44:14', datotype: 'DATO_REGISTRERT' }, + ], + }, + ], + opprettet: '2022-10-13T14:44:14.834Z', + endret: '2022-10-13T14:44:28', + behandlingsdato: null, + }, + { + søknadId: '14a13a07-8634-4c8e-88c9-49e25823260a', + søknadstype: 'PP_SYKT_BARN', + status: 'MOTTATT', + søknad: { + barn: { navn: 'SKRIVEFØR FRENDE', fødselsdato: '2020-04-20', fødselsnummer: '20842099774' }, + språk: 'nb', + søker: { + fornavn: 'PRESENTABEL', + aktørId: '2320509955297', + etternavn: 'HOFTE', + fødselsnummer: '02869599258', + }, + frilans: { harInntektSomFrilanser: false }, + mottatt: '2022-08-25T09:43:41.082124107Z', + fraOgMed: '2022-08-09', + tilOgMed: '2022-09-10', + søknadId: '14a13a07-8634-4c8e-88c9-49e25823260a', + dokumentId: [ + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzYTA2MWI1ZS1hNGIwLTQ1MTMtYmRjNC1jY2I1YWViNjZiMWEifQ', + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJkMTA1YWExNS02ZWVhLTQ1MDAtOTZjOC0wYzJjNzg1YjhlMjMifQ', + ], + ], + medlemskap: { + skalBoIUtlandetNeste12Mnd: false, + harBoddIUtlandetSiste12Mnd: false, + utenlandsoppholdNeste12Mnd: [], + utenlandsoppholdSiste12Mnd: [], + }, + harMedsøker: false, + arbeidsgivere: [ + { + navn: 'SJOKKERENDE ELEKTRIKER', + erAnsatt: true, + arbeidsforhold: { + arbeidIPeriode: { + type: 'ARBEIDER_ENKELTDAGER', + enkeltdager: [ + { + dato: '2022-08-09', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-08-10', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-08-15', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-08-16', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-08-17', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT3H' }, + }, + { + dato: '2022-08-22', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-08-23', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-08-24', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT3H' }, + }, + { + dato: '2022-08-29', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-08-30', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-08-31', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT3H' }, + }, + { + dato: '2022-09-05', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-09-06', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-09-07', + arbeidstimer: { normalTimer: 'PT4H', faktiskTimer: 'PT3H' }, + }, + ], + arbeiderIPerioden: 'REDUSERT', + }, + normalarbeidstid: { + erLiktHverUke: true, + timerFasteDager: { mandag: 'PT4H', onsdag: 'PT4H', tirsdag: 'PT4H' }, + }, + }, + organisasjonsnummer: '947064649', + sluttetFørSøknadsperiode: false, + }, + ], + k9FormatSøknad: { + språk: 'nb', + søker: { norskIdentitetsnummer: '02869599258' }, + ytelse: { + barn: { norskIdentitetsnummer: '20842099774' }, + type: 'PLEIEPENGER_SYKT_BARN', + uttak: { perioder: { '2022-08-09/2022-09-10': { timerPleieAvBarnetPerDag: 'PT7H30M' } } }, + omsorg: {}, + bosteder: { perioder: {}, perioderSomSkalSlettes: {} }, + beredskap: { perioder: {}, perioderSomSkalSlettes: {} }, + nattevåk: { perioder: {}, perioderSomSkalSlettes: {} }, + arbeidstid: { + arbeidstakerList: [ + { + arbeidstidInfo: { + perioder: { + '2022-08-09/2022-08-09': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-10/2022-08-10': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-15/2022-08-15': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-16/2022-08-16': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-17/2022-08-17': { + faktiskArbeidTimerPerDag: 'PT3H', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-22/2022-08-22': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-23/2022-08-23': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-24/2022-08-24': { + faktiskArbeidTimerPerDag: 'PT3H', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-29/2022-08-29': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-30/2022-08-30': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-31/2022-08-31': { + faktiskArbeidTimerPerDag: 'PT3H', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-09-05/2022-09-05': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-09-06/2022-09-06': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-09-07/2022-09-07': { + faktiskArbeidTimerPerDag: 'PT3H', + jobberNormaltTimerPerDag: 'PT4H', + }, + }, + }, + organisasjonsnummer: '947064649', + }, + ], + frilanserArbeidstidInfo: { + perioder: { + '2022-08-09/2022-09-10': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT0S', + }, + }, + }, + }, + tilsynsordning: { + perioder: { '2022-08-09/2022-09-10': { etablertTilsynTimerPerDag: 'PT0S' } }, + }, + endringsperiode: [], + lovbestemtFerie: { perioder: {} }, + søknadsperiode: ['2022-08-09/2022-09-10'], + utenlandsopphold: { perioder: {}, perioderSomSkalSlettes: {} }, + trekkKravPerioder: [], + opptjeningAktivitet: {}, + dataBruktTilUtledning: { + harMedsøker: false, + harBekreftetOpplysninger: true, + harForståttRettigheterOgPlikter: true, + }, + }, + versjon: '1.0.0', + søknadId: '14a13a07-8634-4c8e-88c9-49e25823260a', + mottattDato: '2022-08-25T09:43:41.082Z', + journalposter: [], + begrunnelseForInnsending: {}, + }, + utenlandskNæring: [], + ferieuttakIPerioden: { ferieuttak: [], skalTaUtFerieIPerioden: false }, + opptjeningIUtlandet: [], + harBekreftetOpplysninger: true, + utenlandsoppholdIPerioden: { opphold: [], skalOppholdeSegIUtlandetIPerioden: false }, + selvstendigNæringsdrivende: { harInntektSomSelvstendig: false }, + harForstattRettigheterOgPlikter: true, + }, + saksId: '1DNKKFS', + journalpostId: '573776664', + dokumenter: [ + { + journalpostId: '573776664', + dokumentInfoId: '599037904', + sakId: '1DNKKFS', + tittel: 'Søknad om pleiepenger', + filtype: 'PDF', + harTilgang: true, + url: 'http://localhost:1234/dokument/573776664/599037904/ARKIV', + relevanteDatoer: [ + { dato: '2022-08-25T11:43:43', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-08-25T11:43:43', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-08-25T11:43:48', datotype: 'DATO_JOURNALFOERT' }, + { dato: '2022-08-25T11:43:41', datotype: 'DATO_REGISTRERT' }, + ], + }, + ], + opprettet: '2022-08-25T09:43:41.082Z', + endret: '2022-08-25T09:43:54', + behandlingsdato: null, + }, + { + søknadId: '6de9b420-c11a-4722-b7a1-63e63c73f329', + søknadstype: 'PP_ETTERSENDELSE', + status: 'MOTTATT', + søknad: { + sprak: 'nb', + søker: { + fornavn: 'PRESENTABEL', + aktørId: '2320509955297', + etternavn: 'HOFTE', + fødselsdato: '1995-06-02', + fødselsnummer: '02869599258', + }, + titler: ['IMG_1616.jpg'], + mottatt: '2022-11-07T19:20:13.969148693Z', + k9Format: { + søker: { norskIdentitetsnummer: '02869599258' }, + ytelse: 'PLEIEPENGER_SYKT_BARN', + versjon: '0.0.1', + søknadId: '6de9b420-c11a-4722-b7a1-63e63c73f329', + mottattDato: '2022-11-07T19:20:13.969Z', + }, + soknadId: '6de9b420-c11a-4722-b7a1-63e63c73f329', + vedleggId: [ + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJmZTEzZDM1ZS00YzVmLTQwZGQtOGRlNy1iN2Q3OTE0NzllNzgifQ', + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzNWE5ZTlkYS1hNDg4LTQ4NTMtODRhNC1jNjhlYzVjZjRjYmQifQ', + ], + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI0OTljMjQ1NC0wOWE3LTQ0NTUtYmJmYS1iYmFjNGUwM2UzOWUifQ', + ], + ], + beskrivelse: 'Dette er en liten tset', + søknadstype: 'PLEIEPENGER_SYKT_BARN', + harBekreftetOpplysninger: true, + harForstattRettigheterOgPlikter: true, + }, + saksId: null, + journalpostId: '573802533', + dokumenter: [ + { + journalpostId: '573802533', + dokumentInfoId: '599105542', + sakId: null, + tittel: 'Ettersendelse pleiepenger sykt barn', + filtype: 'PDF', + harTilgang: true, + url: 'http://localhost:1234/dokument/573802533/599105542/ARKIV', + relevanteDatoer: [ + { dato: '2022-11-07T20:20:26', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-11-07T20:20:26', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-11-07T20:20:13', datotype: 'DATO_REGISTRERT' }, + ], + }, + { + journalpostId: '573802533', + dokumentInfoId: '599105543', + sakId: null, + tittel: 'IMG_1616.jpg', + filtype: 'PDF', + harTilgang: true, + url: 'http://localhost:1234/dokument/573802533/599105543/ARKIV', + relevanteDatoer: [ + { dato: '2022-11-07T20:20:26', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-11-07T20:20:26', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-11-07T20:20:13', datotype: 'DATO_REGISTRERT' }, + ], + }, + ], + opprettet: '2022-11-07T19:20:13.969Z', + endret: '2022-11-07T19:20:26', + behandlingsdato: null, + }, + { + søknadId: '8f968f00-6ecc-4e78-a5ab-11ff175db3bb', + søknadstype: 'PP_SYKT_BARN', + status: 'MOTTATT', + søknad: { + barn: { + navn: 'ALFABETISK FAGOTT', + aktørId: '2811762539343', + fødselsdato: '2019-06-08', + fødselsnummer: '08861999573', + }, + språk: 'nb', + søker: { + fornavn: 'PRESENTABEL', + aktørId: '2320509955297', + etternavn: 'HOFTE', + fødselsnummer: '02869599258', + }, + frilans: { + startdato: '2016-11-08', + arbeidsforhold: { + arbeidIPeriode: { + type: 'ARBEIDER_ULIKE_UKER_TIMER', + arbeidsuker: [ + { timer: 'PT2H', periode: { fraOgMed: '2022-11-01', tilOgMed: '2022-11-06' } }, + { timer: 'PT2H', periode: { fraOgMed: '2022-11-07', tilOgMed: '2022-11-13' } }, + { timer: 'PT5H', periode: { fraOgMed: '2022-11-14', tilOgMed: '2022-11-19' } }, + ], + arbeiderIPerioden: 'REDUSERT', + }, + normalarbeidstid: { timerPerUkeISnitt: 'PT5H' }, + }, + harInntektSomFrilanser: true, + jobberFortsattSomFrilans: true, + }, + mottatt: '2022-11-08T07:00:06.249453556Z', + fraOgMed: '2022-11-01', + tilOgMed: '2022-11-19', + søknadId: '8f968f00-6ecc-4e78-a5ab-11ff175db3bb', + dokumentId: [ + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI1ZDExZjE5Yy1mZTY5LTRkOWYtYTY5Ni00M2YxNDY0M2QzYjgifQ', + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI4MGIxOWZhNS1mZDUzLTQ0MmItYWJmYy05ZTE4NTA3ZDBlODYifQ', + ], + ], + medlemskap: { + skalBoIUtlandetNeste12Mnd: true, + harBoddIUtlandetSiste12Mnd: false, + utenlandsoppholdNeste12Mnd: [ + { + fraOgMed: '2022-11-23', + landkode: 'ASM', + landnavn: 'Amerikansk Samoa', + tilOgMed: '2022-12-23', + }, + ], + utenlandsoppholdSiste12Mnd: [], + }, + harMedsøker: false, + arbeidsgivere: [ + { + navn: 'SJOKKERENDE ELEKTRIKER', + erAnsatt: true, + arbeidsforhold: { + arbeidIPeriode: { + type: 'ARBEIDER_PROSENT_AV_NORMALT', + prosentAvNormalt: 50, + arbeiderIPerioden: 'REDUSERT', + }, + normalarbeidstid: { timerPerUkeISnitt: 'PT20H' }, + }, + organisasjonsnummer: '947064649', + sluttetFørSøknadsperiode: false, + }, + ], + k9FormatSøknad: { + språk: 'nb', + søker: { norskIdentitetsnummer: '02869599258' }, + ytelse: { + barn: { norskIdentitetsnummer: '08861999573' }, + type: 'PLEIEPENGER_SYKT_BARN', + uttak: { perioder: { '2022-11-01/2022-11-19': { timerPleieAvBarnetPerDag: 'PT7H30M' } } }, + omsorg: {}, + bosteder: { + perioder: { '2022-11-23/2022-12-23': { land: 'ASM' } }, + perioderSomSkalSlettes: {}, + }, + beredskap: { perioder: {}, perioderSomSkalSlettes: {} }, + nattevåk: { perioder: {}, perioderSomSkalSlettes: {} }, + arbeidstid: { + arbeidstakerList: [ + { + arbeidstidInfo: { + perioder: { + '2022-11-01/2022-11-19': { + faktiskArbeidTimerPerDag: 'PT2H', + jobberNormaltTimerPerDag: 'PT4H', + }, + }, + }, + organisasjonsnummer: '947064649', + }, + ], + frilanserArbeidstidInfo: { + perioder: { + '2022-11-01/2022-11-04': { + faktiskArbeidTimerPerDag: 'PT30M', + jobberNormaltTimerPerDag: 'PT1H', + }, + '2022-11-07/2022-11-11': { + faktiskArbeidTimerPerDag: 'PT24M', + jobberNormaltTimerPerDag: 'PT1H', + }, + '2022-11-14/2022-11-18': { + faktiskArbeidTimerPerDag: 'PT1H', + jobberNormaltTimerPerDag: 'PT1H', + }, + }, + }, + }, + tilsynsordning: { + perioder: { '2022-11-01/2022-11-19': { etablertTilsynTimerPerDag: 'PT0S' } }, + }, + endringsperiode: [], + lovbestemtFerie: { perioder: {} }, + søknadsperiode: ['2022-11-01/2022-11-19'], + utenlandsopphold: { perioder: {}, perioderSomSkalSlettes: {} }, + trekkKravPerioder: [], + opptjeningAktivitet: { frilanser: { startdato: '2016-11-08' } }, + dataBruktTilUtledning: { + harMedsøker: false, + harBekreftetOpplysninger: true, + harForståttRettigheterOgPlikter: true, + }, + }, + versjon: '1.0.0', + søknadId: '8f968f00-6ecc-4e78-a5ab-11ff175db3bb', + mottattDato: '2022-11-08T07:00:06.249Z', + journalposter: [], + begrunnelseForInnsending: {}, + }, + utenlandskNæring: [], + ferieuttakIPerioden: { ferieuttak: [], skalTaUtFerieIPerioden: false }, + opptjeningIUtlandet: [], + harBekreftetOpplysninger: true, + utenlandsoppholdIPerioden: { opphold: [], skalOppholdeSegIUtlandetIPerioden: false }, + selvstendigNæringsdrivende: { harInntektSomSelvstendig: false }, + harForstattRettigheterOgPlikter: true, + }, + saksId: null, + journalpostId: '573802547', + dokumenter: [ + { + journalpostId: '573802547', + dokumentInfoId: '599105571', + sakId: null, + tittel: 'Søknad om pleiepenger', + filtype: 'PDF', + harTilgang: true, + url: 'http://localhost:1234/dokument/573802547/599105571/ARKIV', + relevanteDatoer: [ + { dato: '2022-11-08T08:00:10', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-11-08T08:00:10', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-11-08T08:00:06', datotype: 'DATO_REGISTRERT' }, + ], + }, + ], + opprettet: '2022-11-08T07:00:06.249Z', + endret: '2022-11-08T07:00:10', + behandlingsdato: null, + }, + { + søknadId: '863d6bd3-b939-47aa-9653-cbfc7cc11367', + søknadstype: 'PP_SYKT_BARN', + status: 'MOTTATT', + søknad: { + barn: { + navn: 'ALFABETISK FAGOTT', + aktørId: '2811762539343', + fødselsdato: '2019-06-08', + fødselsnummer: '08861999573', + }, + språk: 'nb', + søker: { + fornavn: 'PRESENTABEL', + aktørId: '2320509955297', + etternavn: 'HOFTE', + fødselsnummer: '02869599258', + }, + frilans: { + startdato: '2016-09-07', + arbeidsforhold: { + arbeidIPeriode: { + type: 'ARBEIDER_PROSENT_AV_NORMALT', + prosentAvNormalt: 10, + arbeiderIPerioden: 'REDUSERT', + }, + normalarbeidstid: { erLiktHverUke: false, timerPerUkeISnitt: 'PT20H' }, + }, + harInntektSomFrilanser: true, + jobberFortsattSomFrilans: true, + }, + mottatt: '2022-09-02T08:20:45.437124664Z', + fraOgMed: '2022-08-01', + tilOgMed: '2022-09-30', + beredskap: { beredskap: true, tilleggsinformasjon: 'Beskrivelse av beredskap' }, + nattevåk: { harNattevåk: true, tilleggsinformasjon: 'Beskrivelse av nattevåk' }, + søknadId: '863d6bd3-b939-47aa-9653-cbfc7cc11367', + dokumentId: [ + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI0NzE4Y2NjYi02ZmQ0LTQxOTgtYTU5NS0xMzUyYWMzMDZjOTQifQ', + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIwMjRmNDM3MC1mMGY3LTRkNmItYWUwZS01YmI0YmZjZDNhZGQifQ', + ], + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzMjhkZDllNi1hNzVmLTQ2ZWUtOGZiNi05MzNhODYwZjA4MDMifQ', + ], + ], + medlemskap: { + skalBoIUtlandetNeste12Mnd: true, + harBoddIUtlandetSiste12Mnd: true, + utenlandsoppholdNeste12Mnd: [ + { + fraOgMed: '2022-09-02', + landkode: 'ASM', + landnavn: 'Amerikansk Samoa', + tilOgMed: '2022-11-19', + }, + ], + utenlandsoppholdSiste12Mnd: [ + { fraOgMed: '2022-06-13', landkode: 'ALB', landnavn: 'Albania', tilOgMed: '2022-09-01' }, + ], + }, + harMedsøker: true, + arbeidsgivere: [ + { + navn: 'SJOKKERENDE ELEKTRIKER', + erAnsatt: true, + arbeidsforhold: { + arbeidIPeriode: { + type: 'ARBEIDER_FASTE_UKEDAGER', + fasteDager: { + fredag: 'PT5M', + mandag: 'PT1M', + onsdag: 'PT3M', + tirsdag: 'PT2M', + torsdag: 'PT4M', + }, + erLiktHverUke: true, + arbeiderIPerioden: 'REDUSERT', + }, + normalarbeidstid: { + erLiktHverUke: true, + timerFasteDager: { + fredag: 'PT5H', + mandag: 'PT1H', + onsdag: 'PT3H', + tirsdag: 'PT2H', + torsdag: 'PT4H', + }, + }, + }, + organisasjonsnummer: '947064649', + sluttetFørSøknadsperiode: false, + }, + ], + omsorgstilbud: { + ukedager: { + fredag: 'PT1H5M', + mandag: 'PT5H1M', + onsdag: 'PT3H3M', + tirsdag: 'PT4H3M', + torsdag: 'PT2H4M', + }, + erLiktHverUke: true, + }, + samtidigHjemme: true, + k9FormatSøknad: { + språk: 'nb', + søker: { norskIdentitetsnummer: '02869599258' }, + ytelse: { + barn: { norskIdentitetsnummer: '08861999573' }, + type: 'PLEIEPENGER_SYKT_BARN', + uttak: { perioder: { '2022-08-01/2022-09-30': { timerPleieAvBarnetPerDag: 'PT7H30M' } } }, + omsorg: {}, + bosteder: { + perioder: { + '2022-06-13/2022-09-01': { land: 'ALB' }, + '2022-09-02/2022-11-19': { land: 'ASM' }, + }, + perioderSomSkalSlettes: {}, + }, + beredskap: { + perioder: { + '2022-08-01/2022-09-30': { tilleggsinformasjon: 'Beskrivelse av beredskap' }, + }, + perioderSomSkalSlettes: {}, + }, + nattevåk: { + perioder: { + '2022-08-01/2022-09-30': { tilleggsinformasjon: 'Beskrivelse av nattevåk' }, + }, + perioderSomSkalSlettes: {}, + }, + arbeidstid: { + arbeidstakerList: [ + { + arbeidstidInfo: { + perioder: { + '2022-08-01/2022-08-01': { + faktiskArbeidTimerPerDag: 'PT1M', + jobberNormaltTimerPerDag: 'PT1H', + }, + '2022-08-02/2022-08-02': { + faktiskArbeidTimerPerDag: 'PT2M', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-08-03/2022-08-03': { + faktiskArbeidTimerPerDag: 'PT3M', + jobberNormaltTimerPerDag: 'PT3H', + }, + '2022-08-04/2022-08-04': { + faktiskArbeidTimerPerDag: 'PT4M', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-05/2022-08-05': { + faktiskArbeidTimerPerDag: 'PT5M', + jobberNormaltTimerPerDag: 'PT5H', + }, + '2022-08-08/2022-08-08': { + faktiskArbeidTimerPerDag: 'PT1M', + jobberNormaltTimerPerDag: 'PT1H', + }, + '2022-08-09/2022-08-09': { + faktiskArbeidTimerPerDag: 'PT2M', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-08-10/2022-08-10': { + faktiskArbeidTimerPerDag: 'PT3M', + jobberNormaltTimerPerDag: 'PT3H', + }, + '2022-08-11/2022-08-11': { + faktiskArbeidTimerPerDag: 'PT4M', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-12/2022-08-12': { + faktiskArbeidTimerPerDag: 'PT5M', + jobberNormaltTimerPerDag: 'PT5H', + }, + '2022-08-15/2022-08-15': { + faktiskArbeidTimerPerDag: 'PT1M', + jobberNormaltTimerPerDag: 'PT1H', + }, + '2022-08-16/2022-08-16': { + faktiskArbeidTimerPerDag: 'PT2M', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-08-17/2022-08-17': { + faktiskArbeidTimerPerDag: 'PT3M', + jobberNormaltTimerPerDag: 'PT3H', + }, + '2022-08-18/2022-08-18': { + faktiskArbeidTimerPerDag: 'PT4M', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-19/2022-08-19': { + faktiskArbeidTimerPerDag: 'PT5M', + jobberNormaltTimerPerDag: 'PT5H', + }, + '2022-08-22/2022-08-22': { + faktiskArbeidTimerPerDag: 'PT1M', + jobberNormaltTimerPerDag: 'PT1H', + }, + '2022-08-23/2022-08-23': { + faktiskArbeidTimerPerDag: 'PT2M', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-08-24/2022-08-24': { + faktiskArbeidTimerPerDag: 'PT3M', + jobberNormaltTimerPerDag: 'PT3H', + }, + '2022-08-25/2022-08-25': { + faktiskArbeidTimerPerDag: 'PT4M', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-08-26/2022-08-26': { + faktiskArbeidTimerPerDag: 'PT5M', + jobberNormaltTimerPerDag: 'PT5H', + }, + '2022-08-29/2022-08-29': { + faktiskArbeidTimerPerDag: 'PT1M', + jobberNormaltTimerPerDag: 'PT1H', + }, + '2022-08-30/2022-08-30': { + faktiskArbeidTimerPerDag: 'PT2M', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-08-31/2022-08-31': { + faktiskArbeidTimerPerDag: 'PT3M', + jobberNormaltTimerPerDag: 'PT3H', + }, + '2022-09-01/2022-09-01': { + faktiskArbeidTimerPerDag: 'PT4M', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-09-02/2022-09-02': { + faktiskArbeidTimerPerDag: 'PT5M', + jobberNormaltTimerPerDag: 'PT5H', + }, + '2022-09-05/2022-09-05': { + faktiskArbeidTimerPerDag: 'PT1M', + jobberNormaltTimerPerDag: 'PT1H', + }, + '2022-09-06/2022-09-06': { + faktiskArbeidTimerPerDag: 'PT2M', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-07/2022-09-07': { + faktiskArbeidTimerPerDag: 'PT3M', + jobberNormaltTimerPerDag: 'PT3H', + }, + '2022-09-08/2022-09-08': { + faktiskArbeidTimerPerDag: 'PT4M', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-09-09/2022-09-09': { + faktiskArbeidTimerPerDag: 'PT5M', + jobberNormaltTimerPerDag: 'PT5H', + }, + '2022-09-12/2022-09-12': { + faktiskArbeidTimerPerDag: 'PT1M', + jobberNormaltTimerPerDag: 'PT1H', + }, + '2022-09-13/2022-09-13': { + faktiskArbeidTimerPerDag: 'PT2M', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-14/2022-09-14': { + faktiskArbeidTimerPerDag: 'PT3M', + jobberNormaltTimerPerDag: 'PT3H', + }, + '2022-09-15/2022-09-15': { + faktiskArbeidTimerPerDag: 'PT4M', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-09-16/2022-09-16': { + faktiskArbeidTimerPerDag: 'PT5M', + jobberNormaltTimerPerDag: 'PT5H', + }, + '2022-09-19/2022-09-19': { + faktiskArbeidTimerPerDag: 'PT1M', + jobberNormaltTimerPerDag: 'PT1H', + }, + '2022-09-20/2022-09-20': { + faktiskArbeidTimerPerDag: 'PT2M', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-21/2022-09-21': { + faktiskArbeidTimerPerDag: 'PT3M', + jobberNormaltTimerPerDag: 'PT3H', + }, + '2022-09-22/2022-09-22': { + faktiskArbeidTimerPerDag: 'PT4M', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-09-23/2022-09-23': { + faktiskArbeidTimerPerDag: 'PT5M', + jobberNormaltTimerPerDag: 'PT5H', + }, + '2022-09-26/2022-09-26': { + faktiskArbeidTimerPerDag: 'PT1M', + jobberNormaltTimerPerDag: 'PT1H', + }, + '2022-09-27/2022-09-27': { + faktiskArbeidTimerPerDag: 'PT2M', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-28/2022-09-28': { + faktiskArbeidTimerPerDag: 'PT3M', + jobberNormaltTimerPerDag: 'PT3H', + }, + '2022-09-29/2022-09-29': { + faktiskArbeidTimerPerDag: 'PT4M', + jobberNormaltTimerPerDag: 'PT4H', + }, + '2022-09-30/2022-09-30': { + faktiskArbeidTimerPerDag: 'PT5M', + jobberNormaltTimerPerDag: 'PT5H', + }, + }, + }, + organisasjonsnummer: '947064649', + }, + ], + frilanserArbeidstidInfo: { + perioder: { + '2022-08-01/2022-09-30': { + faktiskArbeidTimerPerDag: 'PT24M', + jobberNormaltTimerPerDag: 'PT4H', + }, + }, + }, + selvstendigNæringsdrivendeArbeidstidInfo: { + perioder: { + '2022-08-01/2022-09-30': { + faktiskArbeidTimerPerDag: 'PT1H', + jobberNormaltTimerPerDag: 'PT2H', + }, + }, + }, + }, + tilsynsordning: { + perioder: { + '2022-08-01/2022-08-01': { etablertTilsynTimerPerDag: 'PT5H1M' }, + '2022-08-02/2022-08-02': { etablertTilsynTimerPerDag: 'PT4H3M' }, + '2022-08-03/2022-08-03': { etablertTilsynTimerPerDag: 'PT3H3M' }, + '2022-08-04/2022-08-04': { etablertTilsynTimerPerDag: 'PT2H4M' }, + '2022-08-05/2022-08-05': { etablertTilsynTimerPerDag: 'PT1H5M' }, + '2022-08-08/2022-08-08': { etablertTilsynTimerPerDag: 'PT5H1M' }, + '2022-08-09/2022-08-09': { etablertTilsynTimerPerDag: 'PT4H3M' }, + '2022-08-10/2022-08-10': { etablertTilsynTimerPerDag: 'PT3H3M' }, + '2022-08-11/2022-08-11': { etablertTilsynTimerPerDag: 'PT2H4M' }, + '2022-08-12/2022-08-12': { etablertTilsynTimerPerDag: 'PT1H5M' }, + '2022-08-15/2022-08-15': { etablertTilsynTimerPerDag: 'PT5H1M' }, + '2022-08-16/2022-08-16': { etablertTilsynTimerPerDag: 'PT4H3M' }, + '2022-08-17/2022-08-17': { etablertTilsynTimerPerDag: 'PT3H3M' }, + '2022-08-18/2022-08-18': { etablertTilsynTimerPerDag: 'PT2H4M' }, + '2022-08-19/2022-08-19': { etablertTilsynTimerPerDag: 'PT1H5M' }, + '2022-08-22/2022-08-22': { etablertTilsynTimerPerDag: 'PT5H1M' }, + '2022-08-23/2022-08-23': { etablertTilsynTimerPerDag: 'PT4H3M' }, + '2022-08-24/2022-08-24': { etablertTilsynTimerPerDag: 'PT3H3M' }, + '2022-08-25/2022-08-25': { etablertTilsynTimerPerDag: 'PT2H4M' }, + '2022-08-26/2022-08-26': { etablertTilsynTimerPerDag: 'PT1H5M' }, + '2022-08-29/2022-08-29': { etablertTilsynTimerPerDag: 'PT5H1M' }, + '2022-08-30/2022-08-30': { etablertTilsynTimerPerDag: 'PT4H3M' }, + '2022-08-31/2022-08-31': { etablertTilsynTimerPerDag: 'PT3H3M' }, + '2022-09-01/2022-09-01': { etablertTilsynTimerPerDag: 'PT2H4M' }, + '2022-09-02/2022-09-02': { etablertTilsynTimerPerDag: 'PT1H5M' }, + '2022-09-05/2022-09-05': { etablertTilsynTimerPerDag: 'PT5H1M' }, + '2022-09-06/2022-09-06': { etablertTilsynTimerPerDag: 'PT4H3M' }, + '2022-09-07/2022-09-07': { etablertTilsynTimerPerDag: 'PT3H3M' }, + '2022-09-08/2022-09-08': { etablertTilsynTimerPerDag: 'PT2H4M' }, + '2022-09-09/2022-09-09': { etablertTilsynTimerPerDag: 'PT1H5M' }, + '2022-09-12/2022-09-12': { etablertTilsynTimerPerDag: 'PT5H1M' }, + '2022-09-13/2022-09-13': { etablertTilsynTimerPerDag: 'PT4H3M' }, + '2022-09-14/2022-09-14': { etablertTilsynTimerPerDag: 'PT3H3M' }, + '2022-09-15/2022-09-15': { etablertTilsynTimerPerDag: 'PT2H4M' }, + '2022-09-16/2022-09-16': { etablertTilsynTimerPerDag: 'PT1H5M' }, + '2022-09-19/2022-09-19': { etablertTilsynTimerPerDag: 'PT5H1M' }, + '2022-09-20/2022-09-20': { etablertTilsynTimerPerDag: 'PT4H3M' }, + '2022-09-21/2022-09-21': { etablertTilsynTimerPerDag: 'PT3H3M' }, + '2022-09-22/2022-09-22': { etablertTilsynTimerPerDag: 'PT2H4M' }, + '2022-09-23/2022-09-23': { etablertTilsynTimerPerDag: 'PT1H5M' }, + '2022-09-26/2022-09-26': { etablertTilsynTimerPerDag: 'PT5H1M' }, + '2022-09-27/2022-09-27': { etablertTilsynTimerPerDag: 'PT4H3M' }, + '2022-09-28/2022-09-28': { etablertTilsynTimerPerDag: 'PT3H3M' }, + '2022-09-29/2022-09-29': { etablertTilsynTimerPerDag: 'PT2H4M' }, + '2022-09-30/2022-09-30': { etablertTilsynTimerPerDag: 'PT1H5M' }, + }, + }, + endringsperiode: [], + lovbestemtFerie: { perioder: { '2022-09-12/2022-09-24': { skalHaFerie: true } } }, + søknadsperiode: ['2022-08-01/2022-09-30'], + utenlandsopphold: { + perioder: { + '2022-09-12/2022-09-12': { land: 'ALB' }, + '2022-09-13/2022-09-23': { + land: 'ALB', + årsak: 'barnetInnlagtIHelseinstitusjonForNorskOffentligRegning', + }, + '2022-09-24/2022-09-30': { land: 'ALB' }, + }, + perioderSomSkalSlettes: {}, + }, + trekkKravPerioder: [], + opptjeningAktivitet: { + frilanser: { startdato: '2016-09-07' }, + selvstendigNæringsdrivende: [ + { + perioder: { + '2009-09-02/..': { + landkode: 'ASM', + endringDato: '2022-09-01', + bruttoInntekt: 123, + erNyoppstartet: false, + erVarigEndring: true, + virksomhetstyper: ['JORDBRUK_SKOGBRUK'], + endringBegrunnelse: 'WhoaWhoa', + registrertIUtlandet: true, + }, + }, + virksomhetNavn: 'ABC', + }, + ], + }, + dataBruktTilUtledning: { + harMedsøker: true, + samtidigHjemme: true, + harBekreftetOpplysninger: true, + harForståttRettigheterOgPlikter: true, + }, + }, + versjon: '1.0.0', + søknadId: '863d6bd3-b939-47aa-9653-cbfc7cc11367', + mottattDato: '2022-09-02T08:20:45.437Z', + journalposter: [], + begrunnelseForInnsending: {}, + }, + utenlandskNæring: [ + { + land: { landkode: 'IRL', landnavn: 'Irland' }, + fraOgMed: '2022-09-01', + næringstype: 'ANNEN', + navnPåVirksomheten: 'NæringAnnetEØSLand', + organisasjonsnummer: '123123123', + }, + ], + ferieuttakIPerioden: { + ferieuttak: [{ fraOgMed: '2022-09-12', tilOgMed: '2022-09-24' }], + skalTaUtFerieIPerioden: true, + }, + opptjeningIUtlandet: [ + { + land: { landkode: 'BEL', landnavn: 'Belgia' }, + navn: 'FreeBelgia', + fraOgMed: '2022-09-13', + tilOgMed: '2022-09-23', + opptjeningType: 'FRILANSER', + }, + { + land: { landkode: 'BGR', landnavn: 'Bulgaria' }, + navn: 'BulgArbeidsgiverNavn', + fraOgMed: '2022-09-14', + tilOgMed: '2022-09-15', + opptjeningType: 'ARBEIDSTAKER', + }, + ], + harBekreftetOpplysninger: true, + utenlandsoppholdIPerioden: { + opphold: [ + { + årsak: 'BARNET_INNLAGT_I_HELSEINSTITUSJON_FOR_NORSK_OFFENTLIG_REGNING', + fraOgMed: '2022-09-12', + landkode: 'ALB', + landnavn: 'Albania', + tilOgMed: '2022-09-30', + erUtenforEøs: true, + erBarnetInnlagt: true, + perioderBarnetErInnlagt: [{ fraOgMed: '2022-09-13', tilOgMed: '2022-09-23' }], + }, + ], + skalOppholdeSegIUtlandetIPerioden: true, + }, + selvstendigNæringsdrivende: { + virksomhet: { + fraOgMed: '2009-09-02', + næringstype: 'JORDBRUK_SKOGBRUK', + varigEndring: { dato: '2022-09-01', forklaring: 'WhoaWhoa', inntektEtterEndring: 123 }, + fiskerErPåBladB: false, + registrertINorge: false, + navnPåVirksomheten: 'ABC', + registrertIUtlandet: { landkode: 'ASM', landnavn: 'Amerikansk Samoa' }, + harFlereAktiveVirksomheter: true, + }, + arbeidsforhold: { + arbeidIPeriode: { + type: 'ARBEIDER_TIMER_I_SNITT_PER_UKE', + timerPerUke: 'PT5H', + arbeiderIPerioden: 'REDUSERT', + }, + normalarbeidstid: { erLiktHverUke: false, timerPerUkeISnitt: 'PT10H' }, + }, + harInntektSomSelvstendig: true, + }, + harForstattRettigheterOgPlikter: true, + }, + saksId: '1DNM1SM', + journalpostId: '573777622', + dokumenter: [ + { + journalpostId: '573777622', + dokumentInfoId: '599039030', + sakId: '1DNM1SM', + tittel: 'Søknad om pleiepenger', + filtype: 'PDF', + harTilgang: true, + url: 'http://localhost:1234/dokument/573777622/599039030/ARKIV', + relevanteDatoer: [ + { dato: '2022-09-02T10:20:56', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-09-02T10:20:56', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-09-02T10:21:02', datotype: 'DATO_JOURNALFOERT' }, + { dato: '2022-09-02T10:20:45', datotype: 'DATO_REGISTRERT' }, + ], + }, + { + journalpostId: '573777622', + dokumentInfoId: '599039031', + sakId: '1DNM1SM', + tittel: 'IMG_1075 (1).JPG', + filtype: 'PDF', + harTilgang: true, + url: 'http://localhost:1234/dokument/573777622/599039031/ARKIV', + relevanteDatoer: [ + { dato: '2022-09-02T10:20:56', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-09-02T10:20:56', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-09-02T10:21:02', datotype: 'DATO_JOURNALFOERT' }, + { dato: '2022-09-02T10:20:45', datotype: 'DATO_REGISTRERT' }, + ], + }, + ], + opprettet: '2022-09-02T08:20:45.437Z', + endret: '2022-09-02T08:22:08', + behandlingsdato: null, + }, + { + søknadId: '7202fa92-721f-4049-96c8-e44feed96586', + søknadstype: 'PP_SYKT_BARN', + status: 'MOTTATT', + søknad: { + barn: { + navn: 'ALFABETISK FAGOTT', + aktørId: '2811762539343', + fødselsdato: '2019-06-08', + fødselsnummer: '08861999573', + }, + språk: 'nb', + søker: { + fornavn: 'PRESENTABEL', + aktørId: '2320509955297', + etternavn: 'HOFTE', + fødselsnummer: '02869599258', + }, + frilans: { + startdato: '2011-09-07', + arbeidsforhold: { + arbeidIPeriode: { + type: 'ARBEIDER_PROSENT_AV_NORMALT', + prosentAvNormalt: 5, + arbeiderIPerioden: 'REDUSERT', + }, + normalarbeidstid: { erLiktHverUke: false, timerPerUkeISnitt: 'PT20H' }, + }, + harInntektSomFrilanser: true, + jobberFortsattSomFrilans: true, + }, + mottatt: '2022-09-02T09:41:33.411524928Z', + fraOgMed: '2022-09-01', + tilOgMed: '2022-09-17', + søknadId: '7202fa92-721f-4049-96c8-e44feed96586', + dokumentId: [ + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIxZDUwNTkxMC1kNmE1LTQyZjMtYjJiMS0zZjdjMDhhOGJiMTkifQ', + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI2MWNhNGFhMy1lOTFiLTQ3YjQtYTVkYi0zMzViNzExN2EyYWIifQ', + ], + ], + medlemskap: { + skalBoIUtlandetNeste12Mnd: false, + harBoddIUtlandetSiste12Mnd: false, + utenlandsoppholdNeste12Mnd: [], + utenlandsoppholdSiste12Mnd: [], + }, + harMedsøker: false, + arbeidsgivere: [ + { + navn: 'SJOKKERENDE ELEKTRIKER', + erAnsatt: true, + arbeidsforhold: { + arbeidIPeriode: { + type: 'ARBEIDER_ENKELTDAGER', + enkeltdager: [ + { + dato: '2022-09-01', + arbeidstimer: { normalTimer: 'PT2H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-09-02', + arbeidstimer: { normalTimer: 'PT2H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-09-05', + arbeidstimer: { normalTimer: 'PT2H', faktiskTimer: 'PT1H' }, + }, + { + dato: '2022-09-06', + arbeidstimer: { normalTimer: 'PT2H', faktiskTimer: 'PT5H' }, + }, + { + dato: '2022-09-07', + arbeidstimer: { normalTimer: 'PT2H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-09-08', + arbeidstimer: { normalTimer: 'PT2H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-09-09', + arbeidstimer: { normalTimer: 'PT2H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-09-12', + arbeidstimer: { normalTimer: 'PT2H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-09-13', + arbeidstimer: { normalTimer: 'PT2H', faktiskTimer: 'PT5H' }, + }, + { + dato: '2022-09-14', + arbeidstimer: { normalTimer: 'PT2H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-09-15', + arbeidstimer: { normalTimer: 'PT2H', faktiskTimer: 'PT0S' }, + }, + { + dato: '2022-09-16', + arbeidstimer: { normalTimer: 'PT2H', faktiskTimer: 'PT0S' }, + }, + ], + arbeiderIPerioden: 'REDUSERT', + }, + normalarbeidstid: { + erLiktHverUke: true, + timerFasteDager: { + fredag: 'PT2H', + mandag: 'PT2H', + onsdag: 'PT2H', + tirsdag: 'PT2H', + torsdag: 'PT2H', + }, + }, + }, + organisasjonsnummer: '947064649', + sluttetFørSøknadsperiode: false, + }, + ], + k9FormatSøknad: { + språk: 'nb', + søker: { norskIdentitetsnummer: '02869599258' }, + ytelse: { + barn: { norskIdentitetsnummer: '08861999573' }, + type: 'PLEIEPENGER_SYKT_BARN', + uttak: { perioder: { '2022-09-01/2022-09-17': { timerPleieAvBarnetPerDag: 'PT7H30M' } } }, + omsorg: {}, + bosteder: { perioder: {}, perioderSomSkalSlettes: {} }, + beredskap: { perioder: {}, perioderSomSkalSlettes: {} }, + nattevåk: { perioder: {}, perioderSomSkalSlettes: {} }, + arbeidstid: { + arbeidstakerList: [ + { + arbeidstidInfo: { + perioder: { + '2022-09-01/2022-09-01': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-02/2022-09-02': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-05/2022-09-05': { + faktiskArbeidTimerPerDag: 'PT1H', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-06/2022-09-06': { + faktiskArbeidTimerPerDag: 'PT5H', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-07/2022-09-07': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-08/2022-09-08': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-09/2022-09-09': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-12/2022-09-12': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-13/2022-09-13': { + faktiskArbeidTimerPerDag: 'PT5H', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-14/2022-09-14': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-15/2022-09-15': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT2H', + }, + '2022-09-16/2022-09-16': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT2H', + }, + }, + }, + organisasjonsnummer: '947064649', + }, + ], + frilanserArbeidstidInfo: { + perioder: { + '2022-09-01/2022-09-17': { + faktiskArbeidTimerPerDag: 'PT12M', + jobberNormaltTimerPerDag: 'PT4H', + }, + }, + }, + }, + tilsynsordning: { + perioder: { '2022-09-01/2022-09-17': { etablertTilsynTimerPerDag: 'PT0S' } }, + }, + endringsperiode: [], + lovbestemtFerie: { perioder: {} }, + søknadsperiode: ['2022-09-01/2022-09-17'], + utenlandsopphold: { perioder: {}, perioderSomSkalSlettes: {} }, + trekkKravPerioder: [], + opptjeningAktivitet: { frilanser: { startdato: '2011-09-07' } }, + dataBruktTilUtledning: { + harMedsøker: false, + harBekreftetOpplysninger: true, + harForståttRettigheterOgPlikter: true, + }, + }, + versjon: '1.0.0', + søknadId: '7202fa92-721f-4049-96c8-e44feed96586', + mottattDato: '2022-09-02T09:41:33.411Z', + journalposter: [], + begrunnelseForInnsending: {}, + }, + utenlandskNæring: [], + ferieuttakIPerioden: { ferieuttak: [], skalTaUtFerieIPerioden: false }, + opptjeningIUtlandet: [], + harBekreftetOpplysninger: true, + utenlandsoppholdIPerioden: { opphold: [], skalOppholdeSegIUtlandetIPerioden: false }, + selvstendigNæringsdrivende: { harInntektSomSelvstendig: false }, + harForstattRettigheterOgPlikter: true, + }, + saksId: '1DNM1SM', + journalpostId: '573777659', + dokumenter: [ + { + journalpostId: '573777659', + dokumentInfoId: '599039072', + sakId: '1DNM1SM', + tittel: 'Søknad om pleiepenger', + filtype: 'PDF', + harTilgang: true, + url: 'http://localhost:1234/dokument/573777659/599039072/ARKIV', + relevanteDatoer: [ + { dato: '2022-09-02T11:41:35', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-09-02T11:41:35', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-09-02T11:41:40', datotype: 'DATO_JOURNALFOERT' }, + { dato: '2022-09-02T11:41:33', datotype: 'DATO_REGISTRERT' }, + ], + }, + ], + opprettet: '2022-09-02T09:41:33.411Z', + endret: '2022-09-02T09:41:45', + behandlingsdato: null, + }, + { + søknadId: '68e5ae8d-d003-40ee-ae86-767f76b2c7bb', + søknadstype: 'PP_SYKT_BARN', + status: 'MOTTATT', + søknad: { + barn: { + navn: 'ALFABETISK FAGOTT', + aktørId: '2811762539343', + fødselsdato: '2019-06-08', + fødselsnummer: '08861999573', + }, + språk: 'nb', + søker: { + fornavn: 'PRESENTABEL', + aktørId: '2320509955297', + etternavn: 'HOFTE', + fødselsnummer: '02869599258', + }, + frilans: { + startdato: '2022-09-01', + arbeidsforhold: { + arbeidIPeriode: { type: 'ARBEIDER_IKKE', arbeiderIPerioden: 'HELT_FRAVÆR' }, + normalarbeidstid: { erLiktHverUke: false, timerPerUkeISnitt: 'PT5H' }, + }, + harInntektSomFrilanser: true, + jobberFortsattSomFrilans: true, + }, + mottatt: '2022-09-02T12:11:24.261628944Z', + fraOgMed: '2022-09-01', + tilOgMed: '2022-09-30', + søknadId: '68e5ae8d-d003-40ee-ae86-767f76b2c7bb', + dokumentId: [ + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJlMWY5ZGNkMC03MDNkLTQ5MzMtYmE3Mi02MmViYWM5ZWQ4ZGUifQ', + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJjMjJiM2IzMC02MDNhLTQzZjgtOGNjNC1hYmU4YmJlZjQ3NzIifQ', + ], + ], + medlemskap: { + skalBoIUtlandetNeste12Mnd: false, + harBoddIUtlandetSiste12Mnd: false, + utenlandsoppholdNeste12Mnd: [], + utenlandsoppholdSiste12Mnd: [], + }, + harMedsøker: false, + arbeidsgivere: [ + { + navn: 'SJOKKERENDE ELEKTRIKER', + erAnsatt: true, + arbeidsforhold: { + arbeidIPeriode: { + type: 'ARBEIDER_TIMER_I_SNITT_PER_UKE', + timerPerUke: 'PT30H', + arbeiderIPerioden: 'REDUSERT', + }, + normalarbeidstid: { erLiktHverUke: false, timerPerUkeISnitt: 'PT40H' }, + }, + organisasjonsnummer: '947064649', + sluttetFørSøknadsperiode: false, + }, + ], + k9FormatSøknad: { + språk: 'nb', + søker: { norskIdentitetsnummer: '02869599258' }, + ytelse: { + barn: { norskIdentitetsnummer: '08861999573' }, + type: 'PLEIEPENGER_SYKT_BARN', + uttak: { perioder: { '2022-09-01/2022-09-30': { timerPleieAvBarnetPerDag: 'PT7H30M' } } }, + omsorg: {}, + bosteder: { perioder: {}, perioderSomSkalSlettes: {} }, + beredskap: { perioder: {}, perioderSomSkalSlettes: {} }, + nattevåk: { perioder: {}, perioderSomSkalSlettes: {} }, + arbeidstid: { + arbeidstakerList: [ + { + arbeidstidInfo: { + perioder: { + '2022-09-01/2022-09-30': { + faktiskArbeidTimerPerDag: 'PT6H', + jobberNormaltTimerPerDag: 'PT8H', + }, + }, + }, + organisasjonsnummer: '947064649', + }, + ], + frilanserArbeidstidInfo: { + perioder: { + '2022-09-01/2022-09-30': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT1H', + }, + }, + }, + }, + tilsynsordning: { + perioder: { '2022-09-01/2022-09-30': { etablertTilsynTimerPerDag: 'PT0S' } }, + }, + endringsperiode: [], + lovbestemtFerie: { perioder: {} }, + søknadsperiode: ['2022-09-01/2022-09-30'], + utenlandsopphold: { perioder: {}, perioderSomSkalSlettes: {} }, + trekkKravPerioder: [], + opptjeningAktivitet: { frilanser: { startdato: '2022-09-01' } }, + dataBruktTilUtledning: { + harMedsøker: false, + harBekreftetOpplysninger: true, + harForståttRettigheterOgPlikter: true, + }, + }, + versjon: '1.0.0', + søknadId: '68e5ae8d-d003-40ee-ae86-767f76b2c7bb', + mottattDato: '2022-09-02T12:11:24.261Z', + journalposter: [], + begrunnelseForInnsending: {}, + }, + utenlandskNæring: [], + ferieuttakIPerioden: { ferieuttak: [], skalTaUtFerieIPerioden: false }, + opptjeningIUtlandet: [], + harBekreftetOpplysninger: true, + utenlandsoppholdIPerioden: { opphold: [], skalOppholdeSegIUtlandetIPerioden: false }, + selvstendigNæringsdrivende: { harInntektSomSelvstendig: false }, + harForstattRettigheterOgPlikter: true, + }, + saksId: '1DNM1SM', + journalpostId: '573777704', + dokumenter: [ + { + journalpostId: '573777704', + dokumentInfoId: '599039130', + sakId: '1DNM1SM', + tittel: 'Søknad om pleiepenger', + filtype: 'PDF', + harTilgang: true, + url: 'http://localhost:1234/dokument/573777704/599039130/ARKIV', + relevanteDatoer: [ + { dato: '2022-09-02T14:11:26', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-09-02T14:11:26', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-09-02T14:11:31', datotype: 'DATO_JOURNALFOERT' }, + { dato: '2022-09-02T14:11:24', datotype: 'DATO_REGISTRERT' }, + ], + }, + ], + opprettet: '2022-09-02T12:11:24.261Z', + endret: '2022-09-02T12:11:38', + behandlingsdato: null, + }, + { + søknadId: '3ff3f365-7e7e-4b1f-838f-448684959f9e', + søknadstype: 'PP_SYKT_BARN', + status: 'MOTTATT', + søknad: { + barn: { + navn: 'ALFABETISK FAGOTT', + aktørId: '2811762539343', + fødselsdato: '2019-06-08', + fødselsnummer: '08861999573', + }, + språk: 'nb', + søker: { + fornavn: 'PRESENTABEL', + aktørId: '2320509955297', + etternavn: 'HOFTE', + fødselsnummer: '02869599258', + }, + frilans: { + startdato: '2022-09-01', + arbeidsforhold: { + arbeidIPeriode: { type: 'ARBEIDER_IKKE', arbeiderIPerioden: 'HELT_FRAVÆR' }, + normalarbeidstid: { erLiktHverUke: false, timerPerUkeISnitt: 'PT20H' }, + }, + harInntektSomFrilanser: true, + jobberFortsattSomFrilans: true, + }, + mottatt: '2022-09-12T11:36:08.213671475Z', + fraOgMed: '2022-09-08', + tilOgMed: '2022-09-25', + søknadId: '3ff3f365-7e7e-4b1f-838f-448684959f9e', + dokumentId: [ + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJiOGMxMTU3Zi1jYjY2LTQ5NzMtODhhNy1kMzliZmQwOTg1MjMifQ', + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiIzNDE4NmFmZC04ZTRlLTQ5ODctYTZlMi1iMGRlM2ZhNWY3YjcifQ', + ], + ], + medlemskap: { + skalBoIUtlandetNeste12Mnd: false, + harBoddIUtlandetSiste12Mnd: false, + utenlandsoppholdNeste12Mnd: [], + utenlandsoppholdSiste12Mnd: [], + }, + harMedsøker: false, + arbeidsgivere: [{ navn: 'SJOKKERENDE ELEKTRIKER', erAnsatt: false, organisasjonsnummer: '947064649' }], + k9FormatSøknad: { + språk: 'nb', + søker: { norskIdentitetsnummer: '02869599258' }, + ytelse: { + barn: { norskIdentitetsnummer: '08861999573' }, + type: 'PLEIEPENGER_SYKT_BARN', + uttak: { perioder: { '2022-09-08/2022-09-25': { timerPleieAvBarnetPerDag: 'PT7H30M' } } }, + omsorg: {}, + bosteder: { perioder: {}, perioderSomSkalSlettes: {} }, + beredskap: { perioder: {}, perioderSomSkalSlettes: {} }, + nattevåk: { perioder: {}, perioderSomSkalSlettes: {} }, + arbeidstid: { + arbeidstakerList: [ + { + arbeidstidInfo: { + perioder: { + '2022-09-08/2022-09-25': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT0S', + }, + }, + }, + organisasjonsnummer: '947064649', + }, + ], + frilanserArbeidstidInfo: { + perioder: { + '2022-09-08/2022-09-25': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT4H', + }, + }, + }, + }, + tilsynsordning: { + perioder: { '2022-09-08/2022-09-25': { etablertTilsynTimerPerDag: 'PT0S' } }, + }, + endringsperiode: [], + lovbestemtFerie: { perioder: {} }, + søknadsperiode: ['2022-09-08/2022-09-25'], + utenlandsopphold: { perioder: {}, perioderSomSkalSlettes: {} }, + trekkKravPerioder: [], + opptjeningAktivitet: { frilanser: { startdato: '2022-09-01' } }, + dataBruktTilUtledning: { + harMedsøker: false, + harBekreftetOpplysninger: true, + harForståttRettigheterOgPlikter: true, + }, + }, + versjon: '1.0.0', + søknadId: '3ff3f365-7e7e-4b1f-838f-448684959f9e', + mottattDato: '2022-09-12T11:36:08.213Z', + journalposter: [], + begrunnelseForInnsending: {}, + }, + utenlandskNæring: [], + ferieuttakIPerioden: { ferieuttak: [], skalTaUtFerieIPerioden: false }, + opptjeningIUtlandet: [], + harBekreftetOpplysninger: true, + utenlandsoppholdIPerioden: { opphold: [], skalOppholdeSegIUtlandetIPerioden: false }, + selvstendigNæringsdrivende: { harInntektSomSelvstendig: false }, + harForstattRettigheterOgPlikter: true, + }, + saksId: '1DNM1SM', + journalpostId: '573779224', + dokumenter: [ + { + journalpostId: '573779224', + dokumentInfoId: '599040845', + sakId: '1DNM1SM', + tittel: 'Søknad om pleiepenger', + filtype: 'PDF', + harTilgang: true, + url: 'http://localhost:1234/dokument/573779224/599040845/ARKIV', + relevanteDatoer: [ + { dato: '2022-09-12T13:36:09', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-09-12T13:36:09', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-09-12T13:36:14', datotype: 'DATO_JOURNALFOERT' }, + { dato: '2022-09-12T13:36:08', datotype: 'DATO_REGISTRERT' }, + ], + }, + ], + opprettet: '2022-09-12T11:36:08.213Z', + endret: '2022-09-12T11:36:19', + behandlingsdato: null, + }, + { + søknadId: 'eced6d00-7c81-4828-a2e9-79c04f8e4bcf', + søknadstype: 'PP_SYKT_BARN', + status: 'MOTTATT', + søknad: { + barn: { + navn: 'ALFABETISK FAGOTT', + aktørId: '2811762539343', + fødselsdato: '2019-06-08', + fødselsnummer: '08861999573', + }, + språk: 'nb', + søker: { + fornavn: 'PRESENTABEL', + aktørId: '2320509955297', + etternavn: 'HOFTE', + fødselsnummer: '02869599258', + }, + frilans: { + startdato: '2022-09-07', + arbeidsforhold: { + arbeidIPeriode: { type: 'ARBEIDER_IKKE', arbeiderIPerioden: 'HELT_FRAVÆR' }, + normalarbeidstid: { erLiktHverUke: false, timerPerUkeISnitt: 'PT2H' }, + }, + harInntektSomFrilanser: true, + jobberFortsattSomFrilans: true, + }, + mottatt: '2022-09-28T10:12:32.892074447Z', + fraOgMed: '2022-09-09', + tilOgMed: '2022-09-24', + søknadId: 'eced6d00-7c81-4828-a2e9-79c04f8e4bcf', + dokumentId: [ + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI2MjY1NTQ1ZC00NWI4LTQyOTAtODlkMC0zNTg1YzdmODYyY2EifQ', + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiJkNTI0NTk5ZS00YTA1LTQzMzktOGYyNS03YmJkYWZhZWJiNGIifQ', + ], + ], + medlemskap: { + skalBoIUtlandetNeste12Mnd: false, + harBoddIUtlandetSiste12Mnd: false, + utenlandsoppholdNeste12Mnd: [], + utenlandsoppholdSiste12Mnd: [], + }, + harMedsøker: false, + arbeidsgivere: [{ navn: 'SJOKKERENDE ELEKTRIKER', erAnsatt: false, organisasjonsnummer: '947064649' }], + k9FormatSøknad: { + språk: 'nb', + søker: { norskIdentitetsnummer: '02869599258' }, + ytelse: { + barn: { norskIdentitetsnummer: '08861999573' }, + type: 'PLEIEPENGER_SYKT_BARN', + uttak: { perioder: { '2022-09-09/2022-09-24': { timerPleieAvBarnetPerDag: 'PT7H30M' } } }, + omsorg: {}, + bosteder: { perioder: {}, perioderSomSkalSlettes: {} }, + beredskap: { perioder: {}, perioderSomSkalSlettes: {} }, + nattevåk: { perioder: {}, perioderSomSkalSlettes: {} }, + arbeidstid: { + arbeidstakerList: [ + { + arbeidstidInfo: { + perioder: { + '2022-09-09/2022-09-24': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT0S', + }, + }, + }, + organisasjonsnummer: '947064649', + }, + ], + frilanserArbeidstidInfo: { + perioder: { + '2022-09-09/2022-09-24': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT24M', + }, + }, + }, + }, + tilsynsordning: { + perioder: { '2022-09-09/2022-09-24': { etablertTilsynTimerPerDag: 'PT0S' } }, + }, + endringsperiode: [], + lovbestemtFerie: { perioder: {} }, + søknadsperiode: ['2022-09-09/2022-09-24'], + utenlandsopphold: { perioder: {}, perioderSomSkalSlettes: {} }, + trekkKravPerioder: [], + opptjeningAktivitet: { frilanser: { startdato: '2022-09-07' } }, + dataBruktTilUtledning: { + harMedsøker: false, + harBekreftetOpplysninger: true, + harForståttRettigheterOgPlikter: true, + }, + }, + versjon: '1.0.0', + søknadId: 'eced6d00-7c81-4828-a2e9-79c04f8e4bcf', + mottattDato: '2022-09-28T10:12:32.892Z', + journalposter: [], + begrunnelseForInnsending: {}, + }, + utenlandskNæring: [], + ferieuttakIPerioden: { ferieuttak: [], skalTaUtFerieIPerioden: false }, + opptjeningIUtlandet: [], + harBekreftetOpplysninger: true, + utenlandsoppholdIPerioden: { opphold: [], skalOppholdeSegIUtlandetIPerioden: false }, + selvstendigNæringsdrivende: { harInntektSomSelvstendig: false }, + harForstattRettigheterOgPlikter: true, + }, + saksId: '1DNM1SM', + journalpostId: '573782814', + dokumenter: [ + { + journalpostId: '573782814', + dokumentInfoId: '599044971', + sakId: '1DNM1SM', + tittel: 'Søknad om pleiepenger', + filtype: 'PDF', + harTilgang: true, + url: 'http://localhost:1234/dokument/573782814/599044971/ARKIV', + relevanteDatoer: [ + { dato: '2022-09-28T12:12:34', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-09-28T12:12:34', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-09-28T12:12:40', datotype: 'DATO_JOURNALFOERT' }, + { dato: '2022-09-28T12:12:32', datotype: 'DATO_REGISTRERT' }, + ], + }, + ], + opprettet: '2022-09-28T10:12:32.892Z', + endret: '2022-09-28T10:12:46', + behandlingsdato: null, + }, + { + søknadId: '509a21da-3c26-4899-b9d3-c494cfb9309a', + søknadstype: 'PP_SYKT_BARN', + status: 'MOTTATT', + søknad: { + barn: { + navn: 'ALFABETISK FAGOTT', + aktørId: '2811762539343', + fødselsdato: '2019-06-08', + fødselsnummer: '08861999573', + }, + språk: 'nb', + søker: { + fornavn: 'PRESENTABEL', + aktørId: '2320509955297', + etternavn: 'HOFTE', + fødselsnummer: '02869599258', + }, + frilans: { + startdato: '2022-09-14', + arbeidsforhold: { + arbeidIPeriode: { type: 'ARBEIDER_IKKE', arbeiderIPerioden: 'HELT_FRAVÆR' }, + normalarbeidstid: { erLiktHverUke: false, timerPerUkeISnitt: 'PT2H' }, + }, + harInntektSomFrilanser: true, + jobberFortsattSomFrilans: true, + }, + mottatt: '2022-09-28T10:25:29.114304782Z', + fraOgMed: '2022-09-08', + tilOgMed: '2022-09-25', + søknadId: '509a21da-3c26-4899-b9d3-c494cfb9309a', + dokumentId: [ + [ + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI1NmY5NzUzMC1hZDYwLTQ0ZWMtYTY5Mi0yNmRkMjM0ZWFhYWEifQ', + 'eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoibm9uZSJ9.eyJqdGkiOiI0MGUyZWU0ZC0yYmZjLTRjN2QtOGYzYy0yMjZhZjM1OTc5ZDYifQ', + ], + ], + medlemskap: { + skalBoIUtlandetNeste12Mnd: false, + harBoddIUtlandetSiste12Mnd: false, + utenlandsoppholdNeste12Mnd: [], + utenlandsoppholdSiste12Mnd: [], + }, + harMedsøker: false, + arbeidsgivere: [{ navn: 'SJOKKERENDE ELEKTRIKER', erAnsatt: false, organisasjonsnummer: '947064649' }], + k9FormatSøknad: { + språk: 'nb', + søker: { norskIdentitetsnummer: '02869599258' }, + ytelse: { + barn: { norskIdentitetsnummer: '08861999573' }, + type: 'PLEIEPENGER_SYKT_BARN', + uttak: { perioder: { '2022-09-08/2022-09-25': { timerPleieAvBarnetPerDag: 'PT7H30M' } } }, + omsorg: {}, + bosteder: { perioder: {}, perioderSomSkalSlettes: {} }, + beredskap: { perioder: {}, perioderSomSkalSlettes: {} }, + nattevåk: { perioder: {}, perioderSomSkalSlettes: {} }, + arbeidstid: { + arbeidstakerList: [ + { + arbeidstidInfo: { + perioder: { + '2022-09-08/2022-09-25': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT0S', + }, + }, + }, + organisasjonsnummer: '947064649', + }, + ], + frilanserArbeidstidInfo: { + perioder: { + '2022-09-08/2022-09-13': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT0S', + }, + '2022-09-14/2022-09-25': { + faktiskArbeidTimerPerDag: 'PT0S', + jobberNormaltTimerPerDag: 'PT24M', + }, + }, + }, + }, + tilsynsordning: { + perioder: { '2022-09-08/2022-09-25': { etablertTilsynTimerPerDag: 'PT0S' } }, + }, + endringsperiode: [], + lovbestemtFerie: { perioder: {} }, + søknadsperiode: ['2022-09-08/2022-09-25'], + utenlandsopphold: { perioder: {}, perioderSomSkalSlettes: {} }, + trekkKravPerioder: [], + opptjeningAktivitet: { frilanser: { startdato: '2022-09-14' } }, + dataBruktTilUtledning: { + harMedsøker: false, + harBekreftetOpplysninger: true, + harForståttRettigheterOgPlikter: true, + }, + }, + versjon: '1.0.0', + søknadId: '509a21da-3c26-4899-b9d3-c494cfb9309a', + mottattDato: '2022-09-28T10:25:29.114Z', + journalposter: [], + begrunnelseForInnsending: {}, + }, + utenlandskNæring: [], + ferieuttakIPerioden: { ferieuttak: [], skalTaUtFerieIPerioden: false }, + opptjeningIUtlandet: [], + harBekreftetOpplysninger: true, + utenlandsoppholdIPerioden: { opphold: [], skalOppholdeSegIUtlandetIPerioden: false }, + selvstendigNæringsdrivende: { harInntektSomSelvstendig: false }, + harForstattRettigheterOgPlikter: true, + }, + saksId: '1DNM1SM', + journalpostId: '573782819', + dokumenter: [ + { + journalpostId: '573782819', + dokumentInfoId: '599044975', + sakId: '1DNM1SM', + tittel: 'Søknad om pleiepenger', + filtype: 'PDF', + harTilgang: true, + url: 'http://localhost:1234/dokument/573782819/599044975/ARKIV', + relevanteDatoer: [ + { dato: '2022-09-28T12:25:31', datotype: 'DATO_OPPRETTET' }, + { dato: '2022-09-28T12:25:31', datotype: 'DATO_DOKUMENT' }, + { dato: '2022-09-28T12:25:36', datotype: 'DATO_JOURNALFOERT' }, + { dato: '2022-09-28T12:25:29', datotype: 'DATO_REGISTRERT' }, + ], + }, + ], + opprettet: '2022-09-28T10:25:29.114Z', + endret: '2022-09-28T10:25:41', + behandlingsdato: null, + }, +]; diff --git a/apps/dine-pleiepenger/e2e/playwright/tests/forside.test.ts b/apps/dine-pleiepenger/e2e/playwright/tests/forside.test.ts new file mode 100644 index 0000000000..121685608a --- /dev/null +++ b/apps/dine-pleiepenger/e2e/playwright/tests/forside.test.ts @@ -0,0 +1,41 @@ +import { test, expect } from '@playwright/test'; +import { setupMockRoutes } from '../utils/setup-mock-routes'; +import AxeBuilder from '@axe-core/playwright'; + +test.beforeEach(async ({ page }) => { + await setupMockRoutes(page); +}); + +test('Test innhold, funksjonalitet og wcag', async ({ page }) => { + await page.goto('http://localhost:8080/dine-pleiepenger'); + await expect(page.getByRole('heading', { level: 1, name: 'Dine Pleiepenger' })).toBeVisible(); + + const søknader = await page.locator('[data-testid="søknadsliste"]').locator('section'); + expect(await søknader.count()).toBe(3); + + await søknader.nth(0).click(); + expect(await søknader.nth(0).getByRole('heading', { name: 'Endringsmelding pleiepenger', level: 3 })).toBeVisible(); + expect(await søknader.nth(0).getByRole('heading', { name: 'Endringsmelding', exact: true })).toBeVisible(); + expect(await søknader.nth(0).getByRole('link', { name: 'Dokumentikon Endringsmelding' })).toBeVisible(); + + await søknader.nth(1).click(); + expect( + await søknader.nth(1).getByRole('heading', { name: 'Søknad om pleiepenger sykt barn', level: 3 }), + ).toBeVisible(); + expect(await søknader.nth(1).getByRole('heading', { name: 'Søknad og eventuelle vedlegg' })).toBeVisible(); + expect(await søknader.nth(1).getByRole('link', { name: 'Dokumentikon Søknad om' })).toBeVisible(); + expect(await søknader.nth(1).getByRole('heading', { name: 'Bekreftelse til arbeidsgiver' })).toBeVisible(); + expect( + await søknader.nth(1).getByRole('link', { name: 'Bekreftelse til SJOKKERENDE ELEKTRIKER (PDF)' }), + ).toBeVisible(); + + await page.getByRole('button', { name: 'Vis flere innsendinger' }).click(); + expect(await page.locator('[data-testid="søknadsliste"]').locator('section').count()).toBe(8); + + const accessibilityScanResults = await new AxeBuilder({ page }) + .disableRules(['color-contrast']) + .include('#__next') + .analyze(); + + expect(accessibilityScanResults.violations).toEqual([]); +}); diff --git a/apps/dine-pleiepenger/e2e/playwright/utils/setup-mock-routes.ts b/apps/dine-pleiepenger/e2e/playwright/utils/setup-mock-routes.ts new file mode 100644 index 0000000000..25623a3a39 --- /dev/null +++ b/apps/dine-pleiepenger/e2e/playwright/utils/setup-mock-routes.ts @@ -0,0 +1,25 @@ +import { Innsynsdata } from '../../../src/types/InnsynData'; +import { søkerMockData } from '../mockdata/søker.mock'; +import { søknaderMockData } from '../mockdata/søknader.mock'; + +export const setupMockRoutes = async (page: any) => { + await page.route('https://login.nav.no/**', async (route) => { + await route.fulfill({ status: 200 }); + }); + await page.route('*.api.sanity.io/**', async (route) => { + await route.fulfill({ status: 200 }); + }); + await page.route('https://www.nav.no/person/nav-dekoratoren-api/auth', async (route) => { + await route.fulfill({ status: 200 }); + }); + + await page.route('**/innsynsdata', async (route) => { + const response: Innsynsdata = { + svarfrist: undefined, + søker: søkerMockData as any, + mellomlagring: {}, + søknader: søknaderMockData as any, + }; + await route.fulfill({ status: 200, body: JSON.stringify(response) }); + }); +}; diff --git a/apps/dine-pleiepenger/favicon.ico b/apps/dine-pleiepenger/favicon.ico new file mode 100644 index 0000000000..718d6fea48 Binary files /dev/null and b/apps/dine-pleiepenger/favicon.ico differ diff --git a/apps/dine-pleiepenger/jest.config.js b/apps/dine-pleiepenger/jest.config.js new file mode 100644 index 0000000000..17c711dabd --- /dev/null +++ b/apps/dine-pleiepenger/jest.config.js @@ -0,0 +1,31 @@ +const nextJest = require('next/jest'); + +const createJestConfig = nextJest({ + // Provide the path to your Next.js app to load next.config.js and .env files in your test environment + dir: './', +}); + +// Add any custom config to be passed to Jest +const customJestConfig = { + // Add more setup options before each test is run + // setupFilesAfterEnv: ['/jest.setup.js'], + // if using TypeScript with a baseUrl set to the root directory then you need the below for alias' to work + moduleDirectories: ['node_modules', '/'], + modulePathIgnorePatterns: ['playwright', 'e2e', 'tests-examples'], + testEnvironment: 'jest-environment-jsdom', +}; + +// createJestConfig is exported this way to ensure that next/jest can load the Next.js config which is async +module.exports = async (...args) => { + const fn = createJestConfig(customJestConfig); + const res = await fn(...args); + + res.transformIgnorePatterns = res.transformIgnorePatterns.map((pattern) => { + if (pattern === '/node_modules/') { + return '/node_modules/(?!(uuid)/)'; + } + return pattern; + }); + + return res; +}; diff --git a/apps/dine-pleiepenger/nais/dev-gcp.json b/apps/dine-pleiepenger/nais/dev-gcp.json new file mode 100644 index 0000000000..2f52973de5 --- /dev/null +++ b/apps/dine-pleiepenger/nais/dev-gcp.json @@ -0,0 +1,43 @@ +{ + "app": "dine-pleiepenger", + "cluster": "dev-gcp", + "namespace": "dusseldorf", + "team": "dusseldorf", + "ingresses": ["https://dine-pleiepenger.intern.dev.nav.no"], + "externalHosts": ["www.nav.no", "dekoratoren.ekstern.dev.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api", "sif-innsyn-api"], + "livenessPath": "/dine-pleiepenger/api/internal/isAlive", + "readinessPath": "/dine-pleiepenger/api/internal/isReady", + "minReplicas": 1, + "maxReplicas": 1, + "env": { + "NEXT_PUBLIC_BASE_PATH": "/dine-pleiepenger", + "NEXT_PUBLIC_LOGIN_URL": "https://dine-pleiepenger.intern.dev.nav.no/oauth2/login?redirect=https://dine-pleiepenger.intern.dev.nav.no/dine-pleiepenger", + "NEXT_PUBLIC_RUNTIME_ENVIRONMENT": "dev", + "NEXT_PUBLIC_API_URL_INNSYN": "http://sif-innsyn-api", + "NEXT_PUBLIC_API_URL_BRUKERDIALOG": "http://k9-brukerdialog-api", + "NEXT_PUBLIC_INNSYN_BACKEND_SCOPE": "dev-gcp:dusseldorf:sif-innsyn-api", + "NEXT_PUBLIC_BRUKERDIALOG_BACKEND_SCOPE": "dev-gcp:dusseldorf:k9-brukerdialog-api", + "NEXT_PUBLIC_APPSTATUS_DATASET": "staging", + "NEXT_PUBLIC_APPSTATUS_PROJECT_ID": "ryujtq87", + + "NPM_CONFIG_CACHE": "/tmp", + + "NEXT_PUBLIC_DINE_UTBETALINGER": "https://tjenester.nav.no/utbetalingsoversikt/", + "NEXT_PUBLIC_ENDRINGSDIALOG_URL": "https://endringsmelding-pleiepenger.intern.dev.nav.no/", + "NEXT_PUBLIC_ENRINGER_DU_MA_GI_BESKJED_OM_INFO_URL": "https://dev.nav.no/pleiepenger-barn#melde", + "NEXT_PUBLIC_ETTERSENDELSE_PLEIEPENGER_URL": "https://k9-ettersending-soknad.intern.dev.nav.no/familie/sykdom-i-familien/soknad/ettersending/pleiepenger", + "NEXT_PUBLIC_KLAGE_INFO_URL": "https://www.nav.no/person/kontakt-oss/nb/tilbakemeldinger", + "NEXT_PUBLIC_MIN_SIDE_URL": "https://www.dev.nav.no/minside", + "NEXT_PUBLIC_PLEIEPENGER_URL": "https://pleiepengesoknad.intern.dev.nav.no/familie/sykdom-i-familien/soknad/pleiepenger/soknad/", + "NEXT_PUBLIC_REGELVERK_INFO_URL": "https://lovdata.no/nav/folketrygdloven/kap9", + "NEXT_PUBLIC_SAKBEHANDLINGSTID_INFO_URL": "https://www.intern.dev.nav.no/saksbehandlingstider#pleiepenger-for-sykt-barn", + "NEXT_PUBLIC_SAKSOVERSIKT": "https://person.nav.no/mine-saker", + "NEXT_PUBLIC_SKRIV_TIL_OSS": "https://www.nav.no/skriv-til-oss", + "NEXT_PUBLIC_SYKDOM_I_FAMILIEN_INFO_URL": "https://www.nav.no/familie/sykdom-i-familien/nb/pleiepenger-for-sykt-barn", + "NEXT_PUBLIC_ARBEIDSGIVER_PLEIEPENGER_URL": "https://www.nav.no/arbeidsgiver/pleiepenger-barn", + "NEXT_PUBLIC_MINSIDE_DOKUMENTOVERSIKT_URL": "https://person.dev.nav.no/mine-saker", + "NEXT_PUBLIC_UTBETALINGSOVERSIKT_URL": "https://tjenester.nav.no/utbetalingsoversikt", + "NEXT_PUBLIC_FEATURE_SVARFRIST": "off" + } +} diff --git a/apps/dine-pleiepenger/nais/envs/.env.dev b/apps/dine-pleiepenger/nais/envs/.env.dev new file mode 100644 index 0000000000..4d5f1a20c0 --- /dev/null +++ b/apps/dine-pleiepenger/nais/envs/.env.dev @@ -0,0 +1,28 @@ +NEXT_PUBLIC_INNSYN_BACKEND_SCOPE=dev-gcp:dusseldorf:sif-innsyn-api +NEXT_PUBLIC_BRUKERDIALOG_BACKEND_SCOPE=dev-gcp:dusseldorf:k9-brukerdialog-api +NEXT_PUBLIC_BASE_PATH=/dine-pleiepenger +NEXT_PUBLIC_LOGIN_URL=https://dine-pleiepenger.intern.dev.nav.no/oauth2/login?redirect=https://dine-pleiepenger.intern.dev.nav.no/dine-pleiepenger +NEXT_PUBLIC_RUNTIME_ENVIRONMENT=dev +NEXT_PUBLIC_API_URL_INNSYN=http://sif-innsyn-api +NEXT_PUBLIC_API_URL_BRUKERDIALOG=http://k9-brukerdialog-api +NEXT_PUBLIC_APPSTATUS_DATASET=staging +NEXT_PUBLIC_APPSTATUS_PROJECT_ID=ryujtq87 + +# Innholdslenker +NEXT_PUBLIC_DINE_UTBETALINGER=https://tjenester.nav.no/utbetalingsoversikt/ +NEXT_PUBLIC_ENDRINGSDIALOG_URL=https://endringsmelding-pleiepenger.intern.dev.nav.no/ +NEXT_PUBLIC_ENRINGER_DU_MA_GI_BESKJED_OM_INFO_URL=https://dev.nav.no/pleiepenger-barn#melde +NEXT_PUBLIC_ETTERSENDELSE_PLEIEPENGER_URL=https://k9-ettersending-soknad.intern.dev.nav.no/familie/sykdom-i-familien/soknad/ettersending/pleiepenger +NEXT_PUBLIC_KLAGE_INFO_URL=https://www.nav.no/person/kontakt-oss/nb/tilbakemeldinger +NEXT_PUBLIC_MIN_SIDE_URL=https://www.dev.nav.no/minside +NEXT_PUBLIC_PLEIEPENGER_URL=https://pleiepengesoknad.intern.dev.nav.no/familie/sykdom-i-familien/soknad/pleiepenger/soknad/ +NEXT_PUBLIC_REGELVERK_INFO_URL=https://lovdata.no/nav/folketrygdloven/kap9 +NEXT_PUBLIC_SAKBEHANDLINGSTID_INFO_URL=https://www.nav.no/no/nav-og-samfunn/om-nav/saksbehandlingstider-i-nav +NEXT_PUBLIC_SAKSOVERSIKT=https://person.nav.no/mine-saker +NEXT_PUBLIC_SKRIV_TIL_OSS=https://www.nav.no/skriv-til-oss +NEXT_PUBLIC_SYKDOM_I_FAMILIEN_INFO_URL=https://www.nav.no/familie/sykdom-i-familien/nb/pleiepenger-for-sykt-barn +NEXT_PUBLIC_ARBEIDSGIVER_PLEIEPENGER_URL=https://www.dev.nav.no/arbeidsgiver/pleiepenger-barn +NEXT_PUBLIC_MINSIDE_DOKUMENTOVERSIKT_URL=https://person.dev.nav.no/mine-saker +NEXT_PUBLIC_UTBETALINGSOVERSIKT_URL=https://tjenester.nav.no/utbetalingsoversikt/ +NEXT_PUBLIC_FEATURE_SVARFRIST=off + diff --git a/apps/dine-pleiepenger/nais/envs/.env.prod b/apps/dine-pleiepenger/nais/envs/.env.prod new file mode 100644 index 0000000000..3ce99afb82 --- /dev/null +++ b/apps/dine-pleiepenger/nais/envs/.env.prod @@ -0,0 +1,28 @@ +NEXT_PUBLIC_INNSYN_BACKEND_SCOPE=prod-gcp:dusseldorf:sif-innsyn-api +NEXT_PUBLIC_BRUKERDIALOG_BACKEND_SCOPE=prod-gcp:dusseldorf:k9-brukerdialog-api +NEXT_PUBLIC_BASE_PATH=/familie/sykdom-i-familien/soknad/dine-pleiepenger +NEXT_PUBLIC_LOGIN_URL=https://www.nav.no/familie/sykdom-i-familien/soknad/dine-pleiepenger/oauth2/login?redirect=https://www.nav.no/familie/sykdom-i-familien/soknad/dine-pleiepenger +NEXT_PUBLIC_RUNTIME_ENVIRONMENT=production +NEXT_PUBLIC_API_URL_INNSYN=http://sif-innsyn-api +NEXT_PUBLIC_API_URL_BRUKERDIALOG=http://k9-brukerdialog-api +NEXT_PUBLIC_APPSTATUS_DATASET=production +NEXT_PUBLIC_APPSTATUS_PROJECT_ID=ryujtq87 + +# Innholdslenker +NEXT_PUBLIC_DINE_UTBETALINGER=https://tjenester.nav.no/utbetalingsoversikt/ +NEXT_PUBLIC_ENDRINGSDIALOG_URL=https://www.nav.no/familie/sykdom-i-familien/soknad/endringsmelding-pleiepenger +NEXT_PUBLIC_ENRINGER_DU_MA_GI_BESKJED_OM_INFO_URL=https://www.nav.no/pleiepenger-barn#melde +NEXT_PUBLIC_ETTERSENDELSE_PLEIEPENGER_URL=https://www.nav.no/familie/sykdom-i-familien/soknad/ettersending/pleiepenger +NEXT_PUBLIC_KLAGE_INFO_URL=https://www.nav.no/person/kontakt-oss/nb/tilbakemeldinger +NEXT_PUBLIC_MIN_SIDE_URL=https://www.nav.no/minside +NEXT_PUBLIC_PLEIEPENGER_URL=https://www.nav.no/familie/sykdom-i-familien/soknad/pleiepenger/soknad/ +NEXT_PUBLIC_REGELVERK_INFO_URL=https://lovdata.no/nav/folketrygdloven/kap9 +NEXT_PUBLIC_SAKBEHANDLINGSTID_INFO_URL=https://www.nav.no/saksbehandlingstider#pleiepenger-for-sykt-barn +NEXT_PUBLIC_SAKSOVERSIKT=https://person.nav.no/mine-saker +NEXT_PUBLIC_SKRIV_TIL_OSS=https://www.nav.no/skriv-til-oss +NEXT_PUBLIC_SYKDOM_I_FAMILIEN_INFO_URL=https://www.nav.no/familie/sykdom-i-familien/nb/pleiepenger-for-sykt-barn +NEXT_PUBLIC_ARBEIDSGIVER_PLEIEPENGER_URL=https://www.nav.no/arbeidsgiver/pleiepenger-barn +NEXT_PUBLIC_MINSIDE_DOKUMENTOVERSIKT_URL=https://person.nav.no/mine-saker +NEXT_PUBLIC_UTBETALINGSOVERSIKT_URL=https://tjenester.nav.no/utbetalingsoversikt +NEXT_PUBLIC_FEATURE_SVARFRIST=off + diff --git a/apps/dine-pleiepenger/nais/prod-gcp.json b/apps/dine-pleiepenger/nais/prod-gcp.json new file mode 100644 index 0000000000..ec1a89822b --- /dev/null +++ b/apps/dine-pleiepenger/nais/prod-gcp.json @@ -0,0 +1,42 @@ +{ + "app": "dine-pleiepenger", + "cluster": "prod-gcp", + "namespace": "dusseldorf", + "team": "dusseldorf", + "ingresses": ["https://www.nav.no/familie/sykdom-i-familien/soknad/dine-pleiepenger"], + "externalHosts": ["www.nav.no", "dekoratoren.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api", "sif-innsyn-api"], + "livenessPath": "/familie/sykdom-i-familien/soknad/dine-pleiepenger/api/internal/isAlive", + "readinessPath": "/familie/sykdom-i-familien/soknad/dine-pleiepenger/api/internal/isReady", + "minReplicas": 2, + "maxReplicas": 2, + "env": { + "NEXT_PUBLIC_BASE_PATH": "/familie/sykdom-i-familien/soknad/dine-pleiepenger", + "NEXT_PUBLIC_LOGIN_URL": "https://www.nav.no/familie/sykdom-i-familien/soknad/dine-pleiepenger/oauth2/login?redirect=https://www.nav.no/familie/sykdom-i-familien/soknad/dine-pleiepenger", + "NEXT_PUBLIC_RUNTIME_ENVIRONMENT": "production", + "NEXT_PUBLIC_API_URL_INNSYN": "http://sif-innsyn-api", + "NEXT_PUBLIC_API_URL_BRUKERDIALOG": "http://k9-brukerdialog-api", + "NEXT_PUBLIC_INNSYN_BACKEND_SCOPE": "prod-gcp:dusseldorf:sif-innsyn-api", + "NEXT_PUBLIC_BRUKERDIALOG_BACKEND_SCOPE": "prod-gcp:dusseldorf:k9-brukerdialog-api", + "NPM_CONFIG_CACHE": "/tmp", + "NEXT_PUBLIC_APPSTATUS_DATASET": "production", + "NEXT_PUBLIC_APPSTATUS_PROJECT_ID": "ryujtq87", + + "NEXT_PUBLIC_DINE_UTBETALINGER": "https://tjenester.nav.no/utbetalingsoversikt/", + "NEXT_PUBLIC_ENDRINGSDIALOG_URL": "https://www.nav.no/familie/sykdom-i-familien/soknad/endringsmelding-pleiepenger", + "NEXT_PUBLIC_ENRINGER_DU_MA_GI_BESKJED_OM_INFO_URL": "https://www.nav.no/pleiepenger-barn#melde", + "NEXT_PUBLIC_ETTERSENDELSE_PLEIEPENGER_URL": "https://www.nav.no/familie/sykdom-i-familien/soknad/ettersending/pleiepenger/", + "NEXT_PUBLIC_KLAGE_INFO_URL": "https://www.nav.no/person/kontakt-oss/nb/tilbakemeldinger", + "NEXT_PUBLIC_MIN_SIDE_URL": "https://www.nav.no/minside", + "NEXT_PUBLIC_PLEIEPENGER_URL": "https://www.nav.no/familie/sykdom-i-familien/soknad/pleiepenger/soknad/", + "NEXT_PUBLIC_REGELVERK_INFO_URL": "https://lovdata.no/nav/folketrygdloven/kap9", + "NEXT_PUBLIC_SAKBEHANDLINGSTID_INFO_URL": "https://www.nav.no/saksbehandlingstider#pleiepenger-for-sykt-barn", + "NEXT_PUBLIC_SAKSOVERSIKT": "https://person.nav.no/mine-saker", + "NEXT_PUBLIC_SKRIV_TIL_OSS": "https://www.nav.no/skriv-til-oss", + "NEXT_PUBLIC_SYKDOM_I_FAMILIEN_INFO_URL": "https://www.nav.no/familie/sykdom-i-familien/nb/pleiepenger-for-sykt-barn", + "NEXT_PUBLIC_ARBEIDSGIVER_PLEIEPENGER_URL": "https://www.nav.no/arbeidsgiver/pleiepenger-barn", + "NEXT_PUBLIC_MINSIDE_DOKUMENTOVERSIKT_URL": "https://person.nav.no/mine-saker", + "NEXT_PUBLIC_UTBETALINGSOVERSIKT_URL": "https://tjenester.nav.no/utbetalingsoversikt", + "NEXT_PUBLIC_FEATURE_SVARFRIST": "off" + } +} diff --git a/apps/dine-pleiepenger/next.config.js b/apps/dine-pleiepenger/next.config.js new file mode 100644 index 0000000000..b69da7f730 --- /dev/null +++ b/apps/dine-pleiepenger/next.config.js @@ -0,0 +1,60 @@ +const withBundleAnalyzer = require('@next/bundle-analyzer')({ + enabled: process.env.ANALYZE === 'true', +}); +const { buildCspHeader } = require('@navikt/nav-dekoratoren-moduler/ssr'); + +const appDirectives = { + 'default-src': ["'self'"], + 'script-src': ["'self'", "'unsafe-eval'", "'unsafe-inline'", 'https://uxsignals-frontend.uxsignals.app.iterate.no'], + 'script-src-elem': ["'self'", "'unsafe-inline'", 'https://uxsignals-frontend.uxsignals.app.iterate.no'], + 'worker-src': ["'self'"], + 'connect-src': [ + "'self'", + 'https://*.nav.no', + 'https://*.uxsignals.com', + 'http://localhost:1234', + 'http://*.api.sanity.io', + ], +}; + +/** + * @type {import('next').NextConfig} + */ +const nextConfig = { + output: 'standalone', + reactStrictMode: true, + basePath: process.env.NEXT_PUBLIC_BASE_PATH, + pageExtensions: ['page.tsx', 'api.ts'], + transpilePackages: ['tailwind-merge'], + experimental: { + optimizePackageImports: ['@navikt/aksel-icons', '@navikt/ds-react'], + }, + eslint: { + dirs: ['src'], + ignoreDuringBuilds: true, + }, + + redirects: async () => [ + { source: '/', destination: process.env.NEXT_PUBLIC_BASE_PATH, permanent: false, basePath: false }, + ], + + async headers() { + const environment = process.env.NEXT_PUBLIC_RUNTIME_ENVIRONMENT === 'production' ? 'prod' : 'dev'; + const cspValue = await buildCspHeader(appDirectives, { env: environment }); + + return [ + { + source: '/:path*', + headers: [ + { + key: 'Content-Security-Policy', + value: cspValue, + }, + ], + }, + ]; + }, + productionBrowserSourceMaps: true, +}; + +module.exports = withBundleAnalyzer(nextConfig); diff --git a/apps/dine-pleiepenger/package.json b/apps/dine-pleiepenger/package.json new file mode 100644 index 0000000000..a6f104bfe1 --- /dev/null +++ b/apps/dine-pleiepenger/package.json @@ -0,0 +1,83 @@ +{ + "name": "@navikt/dine-pleiepenger", + "version": "0.3.5", + "private": true, + "scripts": { + "build-storybook": "storybook build", + "build-app": "next build", + "build": "next build", + "dev-api": "node ./api-mock-server/api-mock-server.js", + "dev": "next dev -p 8080", + "lint": "next lint", + "playwright-test": "playwright test", + "start": "next start -p 8080", + "storybook": "storybook dev -p 6006" + }, + "dependencies": { + "@navikt/appstatus-react-ds": "workspace: *", + "@navikt/nav-dekoratoren-moduler": "2.1.5", + "@navikt/next-auth-wonderwall": "1.5.0", + "@navikt/next-logger": "1.21.0", + "@navikt/sif-common-core-ds": "workspace: *", + "@navikt/sif-common-sentry": "workspace: *", + "@navikt/sif-common-utils": "workspace: *", + "axios": "1.6.2", + "jsonwebtoken": "9.0.2", + "next": "14.0.4", + "next-logger": "3.0.2", + "node-jose": "2.2.0", + "pino": "8.16.2", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-loading-skeleton": "3.3.1", + "swr": "2.2.4", + "uuid": "9.0.1", + "zod": "3.22.4" + }, + "devDependencies": { + "@axe-core/playwright": "4.8.2", + "@navikt/ds-css": "5.11.4", + "@navikt/ds-icons": "3.4.3", + "@navikt/ds-react": "5.11.4", + "@navikt/ds-tailwind": "5.11.4", + "@next/bundle-analyzer": "14.0.4", + "@playwright/test": "^1.40.1", + "@storybook/addon-essentials": "7.6.4", + "@storybook/addon-interactions": "7.6.4", + "@storybook/addon-links": "7.6.4", + "@storybook/addon-onboarding": "1.0.9", + "@storybook/blocks": "7.6.4", + "@storybook/nextjs": "7.6.4", + "@storybook/react": "7.6.4", + "@storybook/test": "7.6.4", + "chromatic": "10.1.0", + "classnames": "2.3.2", + "dayjs": "1.11.10", + "eslint-plugin-storybook": "0.6.15", + "formik": "2.4.5", + "jest": "29.7.0", + "jest-environment-jsdom": "29.7.0", + "next": "14.0.4", + "node-fetch": "3.3.2", + "react": "18.2.0", + "react-day-picker": "8.9.1", + "react-dom": "18.2.0", + "react-intl": "6.5.5", + "storybook": "7.6.4", + "tailwindcss": "3.3.6", + "uuid": "9.0.1" + }, + "eslintConfig": { + "overrides": [ + { + "files": [ + "**/*.stories.*" + ], + "rules": { + "import/no-anonymous-default-export": "off" + } + } + ] + }, + "_id": "@navikt/dine-pleiepenger@0.3.1" +} diff --git a/apps/dine-pleiepenger/playwright.config.ts b/apps/dine-pleiepenger/playwright.config.ts new file mode 100644 index 0000000000..3154034649 --- /dev/null +++ b/apps/dine-pleiepenger/playwright.config.ts @@ -0,0 +1,61 @@ +import { defineConfig, devices } from '@playwright/test'; + +export default defineConfig({ + testDir: './e2e/playwright/tests', + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + reporter: 'html', + use: { + trace: 'on-first-retry', + launchOptions: { + slowMo: 5, + }, + }, + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + ], + webServer: { + command: 'yarn dev', + url: 'http://localhost:8080/dine-pleiepenger', + reuseExistingServer: true, + env: { + PUBLIC_PATH: '/dine-pleiepenger', + API_URL: 'http://localhost:8089', + NEXT_PUBLIC_APPSTATUS_PROJECT_ID: 'ryujtq87', + NEXT_PUBLIC_APPSTATUS_DATASET: 'staging', + NEXT_PUBLIC_BASE_PATH: '/dine-pleiepenger', + NEXT_PUBLIC_LOGIN_URL: '/dummy', + NEXT_PUBLIC_RUNTIME_ENVIRONMENT: 'dev', + NEXT_PUBLIC_API_URL_INNSYN: 'http://sif-innsyn-api', + NEXT_PUBLIC_API_URL_BRUKERDIALOG: 'http://k9-brukerdialog-api', + NEXT_PUBLIC_INNSYN_BACKEND_SCOPE: 'dev-gcp:dusseldorf:sif-innsyn-api', + NEXT_PUBLIC_BRUKERDIALOG_BACKEND_SCOPE: 'dev-gcp:dusseldorf:k9-brukerdialog-api', + NPM_CONFIG_CACHE: '/tmp', + NEXT_PUBLIC_DINE_UTBETALINGER: 'https://tjenester.nav.no/utbetalingsoversikt/', + NEXT_PUBLIC_ENDRINGSDIALOG_URL: 'https://endringsmelding-pleiepenger.intern.dev.nav.no/', + NEXT_PUBLIC_ENRINGER_DU_MA_GI_BESKJED_OM_INFO_URL: 'https://dev.nav.no/pleiepenger-barn#melde', + NEXT_PUBLIC_ETTERSENDELSE_PLEIEPENGER_URL: + 'https://k9-ettersending-soknad.intern.dev.nav.no/familie/sykdom-i-familien/soknad/ettersending/pleiepenger', + NEXT_PUBLIC_KLAGE_INFO_URL: 'https://www.nav.no/person/kontakt-oss/nb/tilbakemeldinger', + NEXT_PUBLIC_MIN_SIDE_URL: 'https://www.dev.nav.no/minside', + NEXT_PUBLIC_PLEIEPENGER_URL: + 'https://pleiepengesoknad.intern.dev.nav.no/familie/sykdom-i-familien/soknad/pleiepenger/soknad/', + NEXT_PUBLIC_REGELVERK_INFO_URL: 'https://lovdata.no/nav/folketrygdloven/kap9', + NEXT_PUBLIC_SAKBEHANDLINGSTID_INFO_URL: + 'https://www.intern.dev.nav.no/saksbehandlingstider#pleiepenger-for-sykt-barn', + NEXT_PUBLIC_SAKSOVERSIKT: 'https://person.nav.no/mine-saker', + NEXT_PUBLIC_SKRIV_TIL_OSS: 'https://www.nav.no/skriv-til-oss', + NEXT_PUBLIC_SYKDOM_I_FAMILIEN_INFO_URL: + 'https://www.nav.no/familie/sykdom-i-familien/nb/pleiepenger-for-sykt-barn', + NEXT_PUBLIC_ARBEIDSGIVER_PLEIEPENGER_URL: 'https://www.nav.no/arbeidsgiver/pleiepenger-barn', + NEXT_PUBLIC_MINSIDE_DOKUMENTOVERSIKT_URL: 'https://person.dev.nav.no/mine-saker', + NEXT_PUBLIC_UTBETALINGSOVERSIKT_URL: 'https://tjenester.nav.no/utbetalingsoversikt', + NEXT_PUBLIC_FEATURE_SVARFRIST: 'off', + }, + }, +}); diff --git a/apps/dine-pleiepenger/postcss.config.js b/apps/dine-pleiepenger/postcss.config.js new file mode 100644 index 0000000000..67cdf1a55f --- /dev/null +++ b/apps/dine-pleiepenger/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/apps/dine-pleiepenger/public/next.svg b/apps/dine-pleiepenger/public/next.svg new file mode 100644 index 0000000000..5174b28c56 --- /dev/null +++ b/apps/dine-pleiepenger/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/dine-pleiepenger/public/pleiepenger.svg b/apps/dine-pleiepenger/public/pleiepenger.svg new file mode 100644 index 0000000000..f9eb87a1f5 --- /dev/null +++ b/apps/dine-pleiepenger/public/pleiepenger.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/dine-pleiepenger/public/vercel.svg b/apps/dine-pleiepenger/public/vercel.svg new file mode 100644 index 0000000000..d2f8422273 --- /dev/null +++ b/apps/dine-pleiepenger/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/dine-pleiepenger/src/auth/fakeLocalAuthTokenSet.json b/apps/dine-pleiepenger/src/auth/fakeLocalAuthTokenSet.json new file mode 100644 index 0000000000..486d528c63 --- /dev/null +++ b/apps/dine-pleiepenger/src/auth/fakeLocalAuthTokenSet.json @@ -0,0 +1,22 @@ +{ + "accessToken": "eyJraWQiOiJjWmswME1rbTVIQzRnN3Z0NmNwUDVGSFpMS0pzdzhmQkFJdUZiUzRSVEQ0IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIzZDhhNGRjOC1hYzA5LTRkZTItYmJhOC0yYjg3ZTBmMmVmNjYiLCJpc3MiOiJodHRwczovL2V4YW1wbGUuY29tL29pZGMtcHJvdmlkZXIvIiwiY2xpZW50X2FtciI6InByaXZhdGVfa2V5X2p3dCIsInBpZCI6IjA4MDg5NDA4MDg0IiwidG9rZW5fdHlwZSI6IkJlYXJlciIsImNsaWVudF9pZCI6IjIxZjE5YjQ5LTkwNGMtNDkxYS1iMDdlLTdhNzAyY2RmNTRhYSIsImF1ZCI6Imh0dHBzOi8vZXhhbXBsZS5jb20iLCJhY3IiOiJMZXZlbDQiLCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIiwiZXhwIjoxNjI4MDkwMjcwLCJpYXQiOjE2MjgwODY2NzAsImNsaWVudF9vcmdubyI6Ijg4OTY0MDc4MiIsImp0aSI6IjI2OTllMGEyLWIwMmEtNDc4My1hYTgzLTU5MTgzZTZlMDAxZSIsImNvbnN1bWVyIjp7ImF1dGhvcml0eSI6IjU4YTJjMDczLTUxYjMiLCJJRCI6IjkxMDM1MGEyLWNjZjQtNDM4NCJ9fQ.T402ovKHGMLEIdL6kZxdm8_Vy_USFzz9ZzhUT8f7zaOqq5_Rr_S_lW8pg-l1B9ZbXkTYaX_PO3xb630BYQQaG4D-F98CYrm98WodYZHQrIkIMqjsLU4xbe_IXrRKAdaqUkCMaHtAjo9GpebaL4zKlJatFkhvGJR7Z2PjqC3dlft4vaQTX7PGTfXcLZl1gfOF0UWdgx9EXYRv9JgmUI2gDHxU6_ivQCtwfjTwwcgpnqf1f0yPsrLPxmEWy3Jf12Rz9CPbSxzRzNrVhhfD7wz8UGvpQS-zDwRmcMh0L0kzSsiavn3lfGDz2Ce5-DTTptub6iSRuTOFqFQWkITohGTU3A", + "payload": { + "sub": "3d8a4dc8-ac09-4de2-bba8-2b87e0f2ef66", + "iss": "https://example.com/oidc-provider/", + "client_amr": "private_key_jwt", + "pid": "08089408084", + "token_type": "Bearer", + "client_id": "21f19b49-904c-491a-b07e-7a702cdf54aa", + "aud": "https://example.com", + "acr": "Level4", + "scope": "openid profile", + "exp": 1628090270, + "iat": 1628086670, + "client_orgno": "889640782", + "jti": "2699e0a2-b02a-4783-aa83-59183e6e001e", + "consumer": { + "authority": "58a2c073-51b3", + "ID": "910350a2-ccf4-4384" + } + } +} diff --git a/apps/dine-pleiepenger/src/auth/withAuthentication.ts b/apps/dine-pleiepenger/src/auth/withAuthentication.ts new file mode 100644 index 0000000000..a433a61de5 --- /dev/null +++ b/apps/dine-pleiepenger/src/auth/withAuthentication.ts @@ -0,0 +1,163 @@ +import { validateIdportenToken } from '@navikt/next-auth-wonderwall'; +import { logger } from '@navikt/next-logger'; +import { IncomingHttpHeaders } from 'http'; +import { GetServerSidePropsContext, GetServerSidePropsResult, NextApiRequest, NextApiResponse } from 'next'; +import { RequestContext } from '../types/RequestContext'; +import { browserEnv, isLocal } from '../utils/env'; +import { getSessionId } from '../utils/userSessionId'; + +export interface ServerSidePropsResult {} + +type ApiHandler = (req: NextApiRequest, res: NextApiResponse) => Promise | unknown; +type PageHandler = (context: GetServerSidePropsContext) => Promise>; + +export interface TokenPayload { + sub: string; + iss: string; + client_amr: string; + pid: string; + token_type: string; + client_id: string; + acr: string; + scope: string; + exp: string; + iat: string; + client_orgno: string; + jti: string; + consumer: { + authority: string; + ID: string; + }; +} + +export const defaultPageHandler: PageHandler = async (): Promise<{ props: ServerSidePropsResult }> => { + return { + props: {}, + }; +}; + +/** + * Used to authenticate Next.JS pages. Assumes application is behind + * Wonderwall (https://doc.nais.io/security/auth/idporten/sidecar/). Will automatically redirect to login if + * Wonderwall-cookie is missing. + * + */ +export function withAuthenticatedPage(handler: PageHandler = defaultPageHandler) { + return async function withBearerTokenHandler( + context: GetServerSidePropsContext, + ): Promise>> { + if (isLocal) { + return handler(context); + } + + const request = context.req; + + const bearerToken: string | null | undefined = request.headers['authorization']; + if (!bearerToken) { + return { + redirect: { + destination: browserEnv.NEXT_PUBLIC_LOGIN_URL, + permanent: false, + basePath: false, + }, + }; + } + + const validationResult = await validateIdportenToken(bearerToken); + if (validationResult !== 'valid') { + const error = new Error( + `Invalid JWT token found (cause: ${validationResult.errorType} ${validationResult.message}, redirecting to login.`, + { cause: validationResult.error }, + ); + if (validationResult.errorType === 'NOT_ACR_LEVEL4') { + logger.warn(error); + } else { + logger.error(error); + } + return { + redirect: { destination: browserEnv.NEXT_PUBLIC_LOGIN_URL, permanent: false }, + }; + } + + return handler(context); + }; +} + +/** + * Used to authenticate Next.JS pages. + */ +export function withAuthenticatedApi(handler: ApiHandler): ApiHandler { + return async function withBearerTokenHandler(req, res, ...rest) { + if (isLocal) { + return handler(req, res, ...rest); + } + + const bearerToken: string | null | undefined = req.headers['authorization']; + const validatedToken = bearerToken ? await validateIdportenToken(bearerToken) : null; + if (!bearerToken || validatedToken !== 'valid') { + if (validatedToken && validatedToken !== 'valid') { + logger.error(`Invalid JWT token found (cause: ${validatedToken.message} for API ${req.url}`); + } + res.status(401).json({ message: 'Access denied' }); + return; + } + + return handler(req, res, ...rest); + }; +} + +/** + * When using rewrites, nextjs sometimes prepend the basepath for some reason. When redirecting to auth + * we need a clean URL to redirect the user back to the same page we are on. + */ +// function getRedirectPath(context: GetServerSidePropsContext): string { +// const basePath = browserEnv.NEXT_PUBLIC_BASE_PATH ?? ''; +// const cleanUrl = context.resolvedUrl.replace(basePath, ''); + +// return cleanUrl.startsWith('/null') +// ? `${browserEnv.NEXT_PUBLIC_BASE_PATH}/` +// : `${browserEnv.NEXT_PUBLIC_BASE_PATH}${cleanUrl}`; +// } + +/** + * Creates the HTTP context that is passed through the resolvers and services, both for prefetching and HTTP-fetching. + */ +export function createRequestContext(requestId: string | undefined, token: string | undefined): RequestContext | null { + if (!token) { + logger.warn('User is missing authorization bearer token'); + return null; + } + + const accessToken = token.replace('Bearer ', ''); + const jwtPayload = accessToken.split('.')[1]; + return { + accessToken, + payload: JSON.parse(Buffer.from(jwtPayload, 'base64').toString()), + requestId: requestId ?? 'not set', + sessionId: 'unused', + }; +} + +export function parseAuthHeader(headers: IncomingHttpHeaders): TokenPayload | null { + if (!headers.authorization) return null; + + const accessToken = headers.authorization.replace('Bearer ', ''); + const jwtPayload = accessToken.split('.')[1]; + + return JSON.parse(Buffer.from(jwtPayload, 'base64').toString()); +} + +/** + * Used locally or in demo environments to create a fake request context. + */ +export function createDemoRequestContext(req: GetServerSidePropsContext['req'] | NextApiRequest): RequestContext { + if (!isLocal) { + throw new Error('createDemoRequestContext should only be used in local development or demo environments'); + } + + return { + ...require('./fakeLocalAuthTokenSet.json'), + requestId: 'not set', + sessionId: getSessionId(req), + }; +} diff --git a/apps/dine-pleiepenger/src/components/component-loader/ComponentLoader.stories.tsx b/apps/dine-pleiepenger/src/components/component-loader/ComponentLoader.stories.tsx new file mode 100644 index 0000000000..b991c08441 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/component-loader/ComponentLoader.stories.tsx @@ -0,0 +1,23 @@ +import ComponentLoader from './ComponentLoader'; +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: ComponentLoader, + title: 'Components/ComponentLoader', + parameters: { + layout: 'centered', + }, +}; +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: {}, +}; +export const MedTittel: Story = { + name: 'Med tittel', + args: { + title: 'En spesifikk tittel', + }, +}; diff --git a/apps/dine-pleiepenger/src/components/component-loader/ComponentLoader.tsx b/apps/dine-pleiepenger/src/components/component-loader/ComponentLoader.tsx new file mode 100644 index 0000000000..5e3d7f2009 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/component-loader/ComponentLoader.tsx @@ -0,0 +1,24 @@ +import { BodyShort, Loader, VStack } from '@navikt/ds-react'; +import React from 'react'; +import { SkeletonTheme } from 'react-loading-skeleton'; + +interface Props { + title?: string; + fallback?: React.ReactNode; +} + +const ComponentLoader: React.FunctionComponent = ({ title, fallback }) => + fallback ? ( + +
{fallback}
+
+ ) : ( +
+ + + {title ? {title} : null} + +
+ ); + +export default ComponentLoader; diff --git a/apps/dine-pleiepenger/src/components/dine-mellomlagringer/DineMellomlagringer.stories.tsx b/apps/dine-pleiepenger/src/components/dine-mellomlagringer/DineMellomlagringer.stories.tsx new file mode 100644 index 0000000000..ab25459d6f --- /dev/null +++ b/apps/dine-pleiepenger/src/components/dine-mellomlagringer/DineMellomlagringer.stories.tsx @@ -0,0 +1,52 @@ +import dayjs from 'dayjs'; +import { withEmptyPage } from '../../storybook/hooks/withEmptyPage'; +import { withIntl } from '../../storybook/hooks/withIntl'; +import DineMellomlagringer from './DineMellomlagringer'; + +import type { Meta, StoryObj } from '@storybook/react'; +const meta: Meta = { + component: DineMellomlagringer, + title: 'Components/DineMellomlagringer', + parameters: { + layout: 'centered', + }, + decorators: [withIntl, withEmptyPage], +}; +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + name: 'Påbegynt søknad og endring', + args: { + endring: { + metadata: { updatedTimestamp: new Date() }, + }, + søknad: { + metadata: { updatedTimestamp: dayjs().subtract(2, 'days').toDate() }, + }, + }, +}; + +export const BarePåbegyntSøknad: Story = { + name: 'Bare påbegynt søknad', + args: { + søknad: { + metadata: { updatedTimestamp: dayjs().subtract(2, 'days').toDate() }, + }, + }, +}; + +export const BarePåbegyntEndring: Story = { + name: 'Bare påbegynt endring', + args: { + endring: { + metadata: { updatedTimestamp: dayjs().subtract(2, 'days').toDate() }, + }, + }, +}; + +export const UtenMellomlagring: Story = { + name: 'Uten mellomlaginger (render null)', + args: {}, +}; diff --git a/apps/dine-pleiepenger/src/components/dine-mellomlagringer/DineMellomlagringer.tsx b/apps/dine-pleiepenger/src/components/dine-mellomlagringer/DineMellomlagringer.tsx new file mode 100644 index 0000000000..3fe2387011 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/dine-mellomlagringer/DineMellomlagringer.tsx @@ -0,0 +1,58 @@ +import { HGrid } from '@navikt/ds-react'; +import dayjs from 'dayjs'; +import { useIntl } from 'react-intl'; +import { browserEnv } from '../../utils/env'; +import { MellomlagringEndring, MellomlagringPSB } from '../../types/Mellomlagring'; +import intlHelper from '../../utils/intlUtils'; +import MellomlagringLinkPanel from './MellomlagringLinkPanel'; + +interface Props { + søknad?: MellomlagringPSB; + endring?: MellomlagringEndring; +} + +const getDatoOgTidTilSlettSøknadString = (date: Date): string => { + return dayjs(date).add(72, 'hours').format('D. MMMM [kl.] HH:mm.'); +}; + +const DineMellomlagringer = ({ endring, søknad }: Props) => { + const intl = useIntl(); + + if (!endring && !søknad) { + return null; + } + + const datoNårSøknadSlettes = søknad?.metadata?.updatedTimestamp + ? getDatoOgTidTilSlettSøknadString(søknad?.metadata?.updatedTimestamp) + : undefined; + const datoNårEndringSlettes = endring?.metadata?.updatedTimestamp + ? getDatoOgTidTilSlettSøknadString(endring?.metadata?.updatedTimestamp) + : undefined; + + return ( +
+ + {datoNårSøknadSlettes && ( + + )} + {datoNårEndringSlettes && ( + + )} + +
+ ); +}; + +export default DineMellomlagringer; diff --git a/apps/dine-pleiepenger/src/components/dine-mellomlagringer/DineMellomlagringerLoader.tsx b/apps/dine-pleiepenger/src/components/dine-mellomlagringer/DineMellomlagringerLoader.tsx new file mode 100644 index 0000000000..ea334862f3 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/dine-mellomlagringer/DineMellomlagringerLoader.tsx @@ -0,0 +1,39 @@ +import { Heading } from '@navikt/ds-react'; +import useSWR from 'swr'; +import ComponentLoader from '../component-loader/ComponentLoader'; +import { SøknadListeSkeleton } from '../søknad-liste/SøknadListe'; +import { mellomlagringFetcher } from '../../pages/api/mellomlagring.api'; +import DineMellomlagringer from './DineMellomlagringer'; + +const DineMellomlagringerLoader = () => { + const { data, error, isLoading } = useSWR('/dine-pleiepenger/api/mellomlagring', mellomlagringFetcher, { + errorRetryCount: 0, + }); + + if (isLoading) { + return ; + } + + if (error || (!data?.endring && !data?.søknad)) { + return null; + } + + return ( +
+ + Vil du fortsette der du slapp? + + + {isLoading ? ( + } + /> + ) : ( + + )} +
+ ); +}; + +export default DineMellomlagringerLoader; diff --git a/apps/dine-pleiepenger/src/components/dine-mellomlagringer/MellomlagringLinkPanel.tsx b/apps/dine-pleiepenger/src/components/dine-mellomlagringer/MellomlagringLinkPanel.tsx new file mode 100644 index 0000000000..0717072468 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/dine-mellomlagringer/MellomlagringLinkPanel.tsx @@ -0,0 +1,46 @@ +import { BodyShort, Box, Heading, Hide, HStack, LinkPanel, LinkPanelProps } from '@navikt/ds-react'; +import React from 'react'; +import { EditFilled } from '@navikt/ds-icons'; + +interface Props extends LinkPanelProps { + title: string; + description: React.ReactNode; +} + +const MellomlagringLinkPanel: React.FunctionComponent = ({ title, description, ...rest }) => { + const icon = ; + return ( + + + + {icon ? ( + {icon} + ) : undefined} + + + + {title} + + + {description} + + + + + ); +}; + +export default MellomlagringLinkPanel; diff --git "a/apps/dine-pleiepenger/src/components/dine-s\303\270knader/DineS\303\270knader.stories.tsx" "b/apps/dine-pleiepenger/src/components/dine-s\303\270knader/DineS\303\270knader.stories.tsx" new file mode 100644 index 0000000000..b65965bc73 --- /dev/null +++ "b/apps/dine-pleiepenger/src/components/dine-s\303\270knader/DineS\303\270knader.stories.tsx" @@ -0,0 +1,41 @@ +import { Meta, StoryObj } from '@storybook/react'; +import mockSøknader from '../../../api-mock-server/mockdata/soknader.json'; +import { withEmptyPage } from '../../storybook/hooks/withEmptyPage'; +import { withIntl } from '../../storybook/hooks/withIntl'; +import { Søknad } from '../../types/Søknad'; +import DineSøknader from './DineSøknader'; + +const meta: Meta = { + title: 'Components/DineSøknader', + component: DineSøknader, + parameters: { + layout: 'centered', + }, + decorators: [withIntl, withEmptyPage], +}; +export default meta; + +type Story = StoryObj; + +const søknader = mockSøknader as any as Søknad[]; + +export const MedEnSøknader: Story = { + name: 'Med én søknad', + args: { + søknader: søknader.slice(0, 1), + }, +}; + +export const MedSøknader: Story = { + name: 'Med flere søknader', + args: { + søknader: søknader as Søknad[], + }, +}; + +export const UtenSøknader: Story = { + name: 'Med ingen søknader', + args: { + søknader: [], + }, +}; diff --git "a/apps/dine-pleiepenger/src/components/dine-s\303\270knader/DineS\303\270knader.tsx" "b/apps/dine-pleiepenger/src/components/dine-s\303\270knader/DineS\303\270knader.tsx" new file mode 100644 index 0000000000..bb71ea95fe --- /dev/null +++ "b/apps/dine-pleiepenger/src/components/dine-s\303\270knader/DineS\303\270knader.tsx" @@ -0,0 +1,20 @@ +import { Box, Heading } from '@navikt/ds-react'; +import { Søknad } from '../../types/Søknad'; +import SøknadListe from '../søknad-liste/SøknadListe'; + +interface Props { + søknader: Søknad[]; +} + +const DineSøknader: React.FunctionComponent = ({ søknader }) => { + return ( + + + Dine søknader, endringer og ettersendelser + + + + ); +}; + +export default DineSøknader; diff --git "a/apps/dine-pleiepenger/src/components/dine-s\303\270knader/DineS\303\270knaderLoader.tsx" "b/apps/dine-pleiepenger/src/components/dine-s\303\270knader/DineS\303\270knaderLoader.tsx" new file mode 100644 index 0000000000..01e615b36b --- /dev/null +++ "b/apps/dine-pleiepenger/src/components/dine-s\303\270knader/DineS\303\270knaderLoader.tsx" @@ -0,0 +1,22 @@ +import { Alert } from '@navikt/ds-react'; +import useSWR from 'swr'; + +import { søknaderFetcher } from '../../pages/api/soknader.api'; +import DineSøknader from './DineSøknader'; +import ComponentLoader from '../component-loader/ComponentLoader'; + +const DineSøknaderLoader = () => { + const { data, error, isLoading } = useSWR('/dine-pleiepenger/api/soknader', søknaderFetcher, { + errorRetryCount: 0, + }); + if (isLoading) { + return ; + } + if (error) { + return Henting av data feilet; + } + + return ; +}; + +export default DineSøknaderLoader; diff --git a/apps/dine-pleiepenger/src/components/error-boundary/ErrorBoundary.tsx b/apps/dine-pleiepenger/src/components/error-boundary/ErrorBoundary.tsx new file mode 100644 index 0000000000..09cabc89c6 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/error-boundary/ErrorBoundary.tsx @@ -0,0 +1,48 @@ +import { ContentContainer } from '@navikt/ds-react'; +import { Component, ErrorInfo, PropsWithChildren, ReactNode } from 'react'; +import { createChildLogger } from '@navikt/next-logger'; +import { getUserRequestId } from '../../utils/userRequestId'; +import ErrorFallback from './ErrorFallback'; + +interface State { + hasError: boolean; +} + +class ErrorBoundary extends Component { + private childLogger = createChildLogger(getUserRequestId()); + + constructor(props: PropsWithChildren) { + super(props); + this.state = { hasError: false }; + } + + static getDerivedStateFromError(): State { + return { hasError: true }; + } + + componentDidCatch(error: Error, errorInfo: ErrorInfo): void { + this.childLogger.error( + new Error( + `Caught error in ErrorBoundary's componentDidCatch hasError: ${error != null}, hasErrorInfo:${ + errorInfo != null + }`, + { cause: error }, + ), + ); + this.childLogger.error(JSON.stringify({ error, errorInfo, requestId: getUserRequestId() })); + } + + render(): ReactNode { + if (this.state.hasError) { + return ( + + + + ); + } + + return this.props.children; + } +} + +export default ErrorBoundary; diff --git a/apps/dine-pleiepenger/src/components/error-boundary/ErrorFallback.tsx b/apps/dine-pleiepenger/src/components/error-boundary/ErrorFallback.tsx new file mode 100644 index 0000000000..172ca73e26 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/error-boundary/ErrorFallback.tsx @@ -0,0 +1,15 @@ +import { ReactElement } from 'react'; +import { GuidePanel } from '@navikt/ds-react'; + +const ErrorFallback = (): ReactElement => { + return ( +
+ + Beklager! En uventet feil har oppstått. Sannsynligvis jobber vi med saken allerede, men ta kontakt med + oss hvis det ikke har løst seg til i morgen. + +
+ ); +}; + +export default ErrorFallback; diff --git a/apps/dine-pleiepenger/src/components/hent-innsynsdata-feilet/HentInnsynsdataFeilet.stories.tsx b/apps/dine-pleiepenger/src/components/hent-innsynsdata-feilet/HentInnsynsdataFeilet.stories.tsx new file mode 100644 index 0000000000..a35378babe --- /dev/null +++ b/apps/dine-pleiepenger/src/components/hent-innsynsdata-feilet/HentInnsynsdataFeilet.stories.tsx @@ -0,0 +1,31 @@ +import { AxiosError } from 'axios'; +import { withEmptyPage } from '../../storybook/hooks/withEmptyPage'; +import { withIntl } from '../../storybook/hooks/withIntl'; +import HentInnsynsdataFeilet from './HentInnsynsdataFeilet'; + +import type { Meta, StoryObj } from '@storybook/react'; +const meta: Meta = { + component: HentInnsynsdataFeilet, + title: 'Components/HentInnsynsdataFeilet', + parameters: { + layout: 'centered', + }, + decorators: [withIntl, withEmptyPage], +}; +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + name: 'Bruker har ikke tilgang', + args: { + error: { response: { status: 403 } } as AxiosError, + }, +}; + +export const OtherError: Story = { + name: 'Alle andre feil', + args: { + error: { response: { status: 500 } } as AxiosError, + }, +}; diff --git a/apps/dine-pleiepenger/src/components/hent-innsynsdata-feilet/HentInnsynsdataFeilet.tsx b/apps/dine-pleiepenger/src/components/hent-innsynsdata-feilet/HentInnsynsdataFeilet.tsx new file mode 100644 index 0000000000..8611afd297 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/hent-innsynsdata-feilet/HentInnsynsdataFeilet.tsx @@ -0,0 +1,38 @@ +import React from 'react'; +import { BodyShort, GuidePanel, Heading } from '@navikt/ds-react'; +import { AxiosError } from 'axios'; +import Head from 'next/head'; + +interface Props { + error?: AxiosError; +} + +const HentInnsynsdataFeilet: React.FunctionComponent = ({ error }) => ( + + {error?.response?.status === 403 ? ( + <> + + Ingen tilgang - Dine pleiepenger + + + Ingen tilgang + + Du har ikke tilgang til denne siden. + + ) : ( + <> + + Det oppstod en feil - Dine pleiepenger + + + Det oppstod en feil + + + Det oppstod en feil da vi hentet opp informasjon om deg. Vennligst prøv igjen litt senere.. + + + )} + +); + +export default HentInnsynsdataFeilet; diff --git a/apps/dine-pleiepenger/src/components/hva-skjer/HvaSkjer.stories.tsx b/apps/dine-pleiepenger/src/components/hva-skjer/HvaSkjer.stories.tsx new file mode 100644 index 0000000000..f3c3955ad6 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/hva-skjer/HvaSkjer.stories.tsx @@ -0,0 +1,20 @@ +import HvaSkjer from './HvaSkjer'; +import type { Meta, StoryObj } from '@storybook/react'; +import { withEmptyPage } from '../../storybook/hooks/withEmptyPage'; +import { withIntl } from '../../storybook/hooks/withIntl'; + +const meta: Meta = { + component: HvaSkjer, + title: 'Components/HvaSkjer', + parameters: { + layout: 'centered', + }, + decorators: [withIntl, withEmptyPage], +}; +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: {}, +}; diff --git a/apps/dine-pleiepenger/src/components/hva-skjer/HvaSkjer.tsx b/apps/dine-pleiepenger/src/components/hva-skjer/HvaSkjer.tsx new file mode 100644 index 0000000000..503b757612 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/hva-skjer/HvaSkjer.tsx @@ -0,0 +1,77 @@ +import { Heading, Link } from '@navikt/ds-react'; +import { FormattedMessage } from 'react-intl'; +import { Process } from '../process'; +import ProcessStep from '../process/ProcessStep'; +import { browserEnv } from '../../utils/env'; + +const HvaSkjer = () => { + return ( +
+ + + +
+ + + + + +

+ +

+
+ + + + +

+ +

+

+ + + + + + +

+
+ + + + +

+ +

+
+ + + + +

+ + + + + +

+
+ + + + +

+ + + + + +

+
+
+
+
+ ); +}; + +export default HvaSkjer; diff --git a/apps/dine-pleiepenger/src/components/kontakt-oss/KontaktOss.stories.tsx b/apps/dine-pleiepenger/src/components/kontakt-oss/KontaktOss.stories.tsx new file mode 100644 index 0000000000..60e6da0695 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/kontakt-oss/KontaktOss.stories.tsx @@ -0,0 +1,20 @@ +import { withEmptyPage } from '../../storybook/hooks/withEmptyPage'; +import { withIntl } from '../../storybook/hooks/withIntl'; +import KontaktOss from './KontaktOss'; + +import type { Meta, StoryObj } from '@storybook/react'; +const meta: Meta = { + component: KontaktOss, + title: 'Components/KontaktOss', + parameters: { + layout: 'centered', + }, + decorators: [withIntl, withEmptyPage], +}; +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: {}, +}; diff --git a/apps/dine-pleiepenger/src/components/kontakt-oss/KontaktOss.tsx b/apps/dine-pleiepenger/src/components/kontakt-oss/KontaktOss.tsx new file mode 100644 index 0000000000..123f8d7dc0 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/kontakt-oss/KontaktOss.tsx @@ -0,0 +1,132 @@ +import { BodyLong, Box, Heading, HGrid, HStack, Link, VStack } from '@navikt/ds-react'; +import { Dialog, DialogFilled, Send, SendFilled, Telephone, TelephoneFilled } from '@navikt/ds-icons'; + +const KontaktOssFooter = () => { + return ( + + + Finner du ikke svaret her? Ta kontakt med oss + + + + + + +
+ + +
+ Chat med oss +
+ +
+ + Du møter først chatbot Frida som har døgnåpent. Mellom klokken 9 og 15 på hverdager kan du be + Frida om å få chatte med en veileder. + +
+ + + + +
+ + +
+ Skriv til oss +
+ +
+ Send beskjed eller nye opplysninger i saken din. Du kan også sende spørsmål. + Svartid er 4 arbeidsdager. Hvis du vil ha svar raskere, kan du bruke chat. +
+ + + + +
+ + +
+ Ring oss på 55 55 33 33 +
+ +
+ +

+ Åpent hverdager kl. 9–15. Vi kan ringe deg tilbake hvis ventetiden er over 5 min. +

+

+ + Se flere telefonnummer og tastevalg + +

+
+
+
+
+ ); +}; + +export default KontaktOssFooter; + +// import { NavRoutes } from 'app/routes/routes'; +// import { bemUtils, intlUtils } from '@navikt/fp-common'; +// import './kontaktOss.css'; +// import { BodyShort, Heading, Link } from '@navikt/ds-react'; +// import { useIntl } from 'react-intl'; +// import { Dialog, Send, Telephone } from '@navikt/ds-icons'; + +// const KontaktOss: React.FunctionComponent = () => { +// const bem = bemUtils('kontaktOss'); +// const intl = useIntl(); + +// return ( +//
+//
+//
+// {intlUtils(intl, 'saksoversikt.kontaktOss')} +//
+//
+//
+// +// +// +// {intlUtils(intl, 'kontaktOss.chatMedOss')} +// +// +// {intlUtils(intl, 'kontaktOss.informasjonOmChat')} +//
+//
+// +// +// +// {intlUtils(intl, 'kontaktOss.skrivTilOss')} +// +// +// {intlUtils(intl, 'kontaktOss.skrivTilOss.del1')} +// +// {intlUtils(intl, 'kontaktOss.skrivTilOss.del2')} +// +//
+//
+// +// +// +// {intlUtils(intl, 'kontaktOss.ringOss')} +// +// +// {intlUtils(intl, 'kontaktOss.ringOss.åpningstider')} +// +// +// {intlUtils(intl, 'kontaktOss.ringOss.flereTelefonnummere')} +// +// +//
+//
+//
+//
+// ); +// }; + +// export default KontaktOss; diff --git a/apps/dine-pleiepenger/src/components/page-layout/default-page/DefaultPage.tsx b/apps/dine-pleiepenger/src/components/page-layout/default-page/DefaultPage.tsx new file mode 100644 index 0000000000..9d1fa2a677 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/page-layout/default-page/DefaultPage.tsx @@ -0,0 +1,24 @@ +import { VStack } from '@navikt/ds-react'; +import React from 'react'; +import PageHeader from '../page-header/PageHeader'; + +interface Props { + children: React.ReactNode; +} + +const DefaultPage: React.FunctionComponent = ({ children }) => ( + <> + + + {children} + + + {/*
+
+ +
+
*/} + +); + +export default DefaultPage; diff --git a/apps/dine-pleiepenger/src/components/page-layout/empty-page/EmptyPage.tsx b/apps/dine-pleiepenger/src/components/page-layout/empty-page/EmptyPage.tsx new file mode 100644 index 0000000000..8f30902748 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/page-layout/empty-page/EmptyPage.tsx @@ -0,0 +1,13 @@ +import React from 'react'; + +interface Props { + children: React.ReactNode; +} + +const EmptyPage: React.FunctionComponent = ({ children }) => ( +
+
{children}
+
+); + +export default EmptyPage; diff --git a/apps/dine-pleiepenger/src/components/page-layout/page-header/PageHeader.tsx b/apps/dine-pleiepenger/src/components/page-layout/page-header/PageHeader.tsx new file mode 100644 index 0000000000..d6e13a2132 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/page-layout/page-header/PageHeader.tsx @@ -0,0 +1,19 @@ +import { HStack, Heading } from '@navikt/ds-react'; +import PleiepengerSVG from '../../../svg/pleiepenger'; + +const PageHeader = () => { + return ( +
+
+ + + + Dine Pleiepenger + + +
+
+ ); +}; + +export default PageHeader; diff --git a/apps/dine-pleiepenger/src/components/process/Process.stories.tsx b/apps/dine-pleiepenger/src/components/process/Process.stories.tsx new file mode 100644 index 0000000000..0c63c93437 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/process/Process.stories.tsx @@ -0,0 +1,26 @@ +import Process from './Process'; +import type { Meta, StoryObj } from '@storybook/react'; +import { withEmptyPage } from '../../storybook/hooks/withEmptyPage'; +import ProcessStep from './ProcessStep'; + +const meta: Meta = { + component: Process, + title: 'Components/Process', + parameters: { + layout: 'centered', + }, + decorators: [withEmptyPage], +}; +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + children: [ + Steg 1, + Steg 2, + Steg 3, + ], + }, +}; diff --git a/apps/dine-pleiepenger/src/components/process/Process.tsx b/apps/dine-pleiepenger/src/components/process/Process.tsx new file mode 100644 index 0000000000..1f5fee2c3d --- /dev/null +++ b/apps/dine-pleiepenger/src/components/process/Process.tsx @@ -0,0 +1,50 @@ +import React, { forwardRef } from 'react'; +import cl from 'clsx'; +import Step, { ProcessStepProps } from './ProcessStep'; + +export interface ProcessProps extends React.HTMLAttributes { + /** + * elements + */ + children: React.ReactNode; +} + +interface ProcessComponent + extends React.ForwardRefExoticComponent> { + /** + * @see 🏷️ {@link ProcessStepProps} + * @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support + */ + Step: typeof Step; +} + +export const Process: ProcessComponent = forwardRef( + ({ children, className, ...rest }, ref) => { + return ( +
    + <> + {React.Children.map(children, (step, index) => { + const stepIndex = index + 1; + return ( +
  1. + + {React.isValidElement(step) + ? React.cloneElement(step, { + ...step.props, + index: stepIndex, + }) + : step} + +
  2. + ); + })} + +
+ ); + }, +) as ProcessComponent; + +Process.Step = Step; +Process.displayName = 'Process'; + +export default Process; diff --git a/apps/dine-pleiepenger/src/components/process/ProcessStep.tsx b/apps/dine-pleiepenger/src/components/process/ProcessStep.tsx new file mode 100644 index 0000000000..351dfe834a --- /dev/null +++ b/apps/dine-pleiepenger/src/components/process/ProcessStep.tsx @@ -0,0 +1,37 @@ +import { BodyShort } from '@navikt/ds-react'; +import cl from 'clsx'; +import React from 'react'; + +export interface ProcessStepProps extends React.AnchorHTMLAttributes { + /** + * Text content by indicator + */ + children: React.ReactNode; + /** + * Handled by Stepper, overwriting may break component logic + * @private + */ + index?: number; + /** + * Makes step non-interactive if false. Step will be set to a
, overriding `as`-prop + * @default true + */ + interactive?: boolean; +} + +export const ProcessStep: React.FunctionComponent = ({ className, children, index }) => { + return ( +
+ + + {children} + +
+ ); +}; + +ProcessStep.displayName = 'ProcessStep'; + +export default ProcessStep; diff --git a/apps/dine-pleiepenger/src/components/process/index.ts b/apps/dine-pleiepenger/src/components/process/index.ts new file mode 100644 index 0000000000..194c23b4fe --- /dev/null +++ b/apps/dine-pleiepenger/src/components/process/index.ts @@ -0,0 +1 @@ +export { default as Process, type ProcessProps } from './Process'; diff --git a/apps/dine-pleiepenger/src/components/process/process.css b/apps/dine-pleiepenger/src/components/process/process.css new file mode 100644 index 0000000000..2856e738ae --- /dev/null +++ b/apps/dine-pleiepenger/src/components/process/process.css @@ -0,0 +1,75 @@ +.process { + --process-circle-size: 1.75rem; + --process-border-width: 2px; + --process-line-length: 1rem; + --process-line-color: var(--a-deepblue-800); + font-weight: 600; + line-height: 1; + list-style: none; + padding-left: 0; + margin: 0; +} + +.process__item { + display: grid; + grid-template-rows: + [line-1] auto [step-start] var(--process-circle-size) + [line-2 step-end] auto; + grid-template-columns: var(--process-circle-size) auto; + justify-items: flex-start; + gap: 0.5rem; +} + +.process__line { + background-color: var(--process-line-color); + width: var(--process-border-width); + min-height: var(--process-line-length); + height: 100%; + justify-self: center; + grid-column: 1; +} + +.process__line--1 { + grid-row: line-1; + display: none; +} + +.process__line--2 { + grid-row: line-2; +} + +:where(.process__item:last-of-type) .process__line--2 { + display: none; +} + +.process__step { + grid-row: 2 / -1; + grid-column: 1 / -1; + display: grid; + grid-template-columns: [circle] var(--process-circle-size) [content] auto; + gap: var(--a-spacing-2); + justify-content: flex-start; + text-decoration: none; + padding: var(--process-border-width); + margin: calc(var(--process-border-width) * -1) calc(var(--process-border-width) * -1) 1.75rem; +} + +.process__circle { + grid-column: circle; + display: inline-grid; + place-items: center; + flex-shrink: 0; + width: var(--process-circle-size); + height: var(--process-circle-size); + border-radius: var(--a-border-radius-full); + background-color: var(--process-line-color); + color: white; + line-height: 1; +} + +.process__content { + min-width: fit-content; + line-height: 1.5; + grid-column: content; + padding-top: 0.035rem; +} diff --git a/apps/dine-pleiepenger/src/components/snarvei-link-panel/SnarveiLinkPanel.stories.tsx b/apps/dine-pleiepenger/src/components/snarvei-link-panel/SnarveiLinkPanel.stories.tsx new file mode 100644 index 0000000000..0bf0ac8128 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/snarvei-link-panel/SnarveiLinkPanel.stories.tsx @@ -0,0 +1,33 @@ +import SnarveiLinkPanel from './SnarveiLinkPanel'; +import type { Meta, StoryObj } from '@storybook/react'; +import { withEmptyPage } from '../../storybook/hooks/withEmptyPage'; +import { Edit } from '@navikt/ds-icons'; + +const meta: Meta = { + component: SnarveiLinkPanel, + title: 'Components/SnarveiLinkPanel', + parameters: { + layout: 'centered', + }, + decorators: [withEmptyPage], +}; +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + href: '#', + title: 'Tittel på snarvei', + description: <>Her kommer noe beskrivelse, + }, +}; +export const MedIkon: Story = { + name: 'Med ikon', + args: { + icon: , + href: '#', + title: 'Tittel på snarvei', + description: <>Her kommer noe beskrivelse, + }, +}; diff --git a/apps/dine-pleiepenger/src/components/snarvei-link-panel/SnarveiLinkPanel.tsx b/apps/dine-pleiepenger/src/components/snarvei-link-panel/SnarveiLinkPanel.tsx new file mode 100644 index 0000000000..22b3115465 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/snarvei-link-panel/SnarveiLinkPanel.tsx @@ -0,0 +1,28 @@ +import { BodyShort, Box, HStack, Heading, Hide, LinkPanel, LinkPanelProps } from '@navikt/ds-react'; +import React from 'react'; + +interface Props extends LinkPanelProps { + icon?: React.ReactNode; + title: string; + description: React.ReactNode; +} + +const SnarveiLinkPanel: React.FunctionComponent = ({ icon, title, description, ...rest }) => { + return ( + + + {icon ? {icon} : undefined} + + + {title} + + + {description} + + + + + ); +}; + +export default SnarveiLinkPanel; diff --git a/apps/dine-pleiepenger/src/components/snarveier/Snarveier.stories.tsx b/apps/dine-pleiepenger/src/components/snarveier/Snarveier.stories.tsx new file mode 100644 index 0000000000..c821c4ecc6 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/snarveier/Snarveier.stories.tsx @@ -0,0 +1,19 @@ +import Snarveier from './Snarveier'; +import type { Meta, StoryObj } from '@storybook/react'; +import { withEmptyPage } from '../../storybook/hooks/withEmptyPage'; + +const meta: Meta = { + component: Snarveier, + title: 'Components/Snarveier', + parameters: { + layout: 'centered', + }, + decorators: [withEmptyPage], +}; +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: {}, +}; diff --git a/apps/dine-pleiepenger/src/components/snarveier/Snarveier.tsx b/apps/dine-pleiepenger/src/components/snarveier/Snarveier.tsx new file mode 100644 index 0000000000..6c3c983c47 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/snarveier/Snarveier.tsx @@ -0,0 +1,69 @@ +import { HGrid, Heading, VStack } from '@navikt/ds-react'; +import React from 'react'; +import { browserEnv } from '../../utils/env'; +import { Dialog, File, Task } from '@navikt/ds-icons'; +import { PencilWritingIcon } from '@navikt/aksel-icons'; +import SnarveiLinkPanel from '../snarvei-link-panel/SnarveiLinkPanel'; +import AriaText from '@navikt/sif-common-core-ds/lib/atoms/aria-text/AriaText'; +interface Props { + title?: string; +} + +const Snarveier: React.FunctionComponent = ({ title }) => { + return ( +
+ + + Trenger du å oppdatere saken din? + + + + + {title ? ( + + {title} + + ) : null} + + + + } + title={'Meld fra om endringer'} + description={ + 'Her kan du melde fra om endringer i arbeidstid og ferie i perioden du har søkt om pleiepenger.' + } + /> + } + title={'Ettersend dokumenter'} + description={ + 'Her kan du sende inn legeerklæring eller andre dokumenter til saken din om pleiepenger.' + } + /> + + + } + title="Skriv til oss" + description={ + 'Her kan du stille spørsmål eller gi beskjed om endringer i saken din om pleiepenger.' + } + /> + } + title="Ny pleiepengesøknad" + description={'Her kan du søke om forlenget periode med pleiepenger.'} + /> + + +
+ ); +}; + +export default Snarveier; diff --git a/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.stories.tsx b/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.stories.tsx new file mode 100644 index 0000000000..f48e7ac348 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.stories.tsx @@ -0,0 +1,25 @@ +import { withEmptyPage } from '../../storybook/hooks/withEmptyPage'; +import Svarfrist from './Svarfrist'; + +import type { Meta, StoryObj } from '@storybook/react'; +const meta: Meta = { + component: Svarfrist, + title: 'Components/Svarfrist', + parameters: { + layout: 'centered', + }, + decorators: [withEmptyPage], +}; +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + frist: new Date(), + }, +}; +export const UtenFrist: Story = { + name: 'Uten frist', + args: {}, +}; diff --git a/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.tsx b/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.tsx new file mode 100644 index 0000000000..1487e49053 --- /dev/null +++ b/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.tsx @@ -0,0 +1,37 @@ +'use client'; +import { BodyShort, Box, Heading, Link } from '@navikt/ds-react'; +import React from 'react'; +import { dateFormatter } from '@navikt/sif-common-utils/lib'; +import { browserEnv } from '../../utils/env'; + +interface Props { + frist?: Date; +} + +const Svarfrist: React.FunctionComponent = ({ frist }) => { + return ( + + + Saksbehandlingstid + + + {frist ? ( +

+ Du kan forvente svar innen:
+ + {dateFormatter.dayDateMonthYear(frist)} + +

+ ) : ( +

Forventet behandlingstid er 6 uker fra vi fikk søknaden din.

+ )} + + + Les mer om saksbehandlingstid + +
+
+ ); +}; + +export default Svarfrist; diff --git a/apps/dine-pleiepenger/src/components/svarfrist/SvarfristLoader.tsx b/apps/dine-pleiepenger/src/components/svarfrist/SvarfristLoader.tsx new file mode 100644 index 0000000000..a7515f876f --- /dev/null +++ b/apps/dine-pleiepenger/src/components/svarfrist/SvarfristLoader.tsx @@ -0,0 +1,18 @@ +import useSWR from 'swr'; +import { svarfristFetcher } from '../../pages/api/svarfrist.api'; +import ComponentLoader from '../component-loader/ComponentLoader'; +import Svarfrist from './Svarfrist'; + +interface Props {} + +const SvarfristLoader: React.FunctionComponent = () => { + const { data, isLoading } = useSWR('/dine-pleiepenger/api/svarfrist', svarfristFetcher, { + errorRetryCount: 0, + }); + if (isLoading) { + return ; + } + return ; +}; + +export default SvarfristLoader; diff --git "a/apps/dine-pleiepenger/src/components/s\303\270knad-liste/S\303\270knadContent.tsx" "b/apps/dine-pleiepenger/src/components/s\303\270knad-liste/S\303\270knadContent.tsx" new file mode 100644 index 0000000000..1f1201e760 --- /dev/null +++ "b/apps/dine-pleiepenger/src/components/s\303\270knad-liste/S\303\270knadContent.tsx" @@ -0,0 +1,135 @@ +import { Box, Heading, Link } from '@navikt/ds-react'; +import React from 'react'; +import { FormattedMessage, useIntl } from 'react-intl'; +import { File } from '@navikt/ds-icons'; +import { Arbeidsgiver } from '../../types/Arbeidsgiver'; +import { Dokument } from '../../types/Document'; +import { Organisasjon } from '../../types/Organisasjon'; +import { Søknad, Søknadstype } from '../../types/Søknad'; +import intlHelper from '../../utils/intlUtils'; +import { browserEnv } from '../../utils/env'; + +interface Props { + søknad: Søknad; +} + +export const getSøknadDokumentFilnavn = (dokument: Dokument): string => { + const filnavn = `${encodeURIComponent(dokument.tittel.toLowerCase())}`; + return `${filnavn}.${dokument.filtype.toLowerCase()}`; +}; + +const getArbeidsgivermeldingApiUrlBySoknadIdOgOrgnummer = (soknadID: string, organisasjonsnummer: string): string => { + return `${browserEnv.NEXT_PUBLIC_BASE_PATH}/api/soknad/${soknadID}/arbeidsgivermelding?organisasjonsnummer=${organisasjonsnummer}`; +}; + +const getDokumentFrontendUrl = (url: string): string => { + // Split the URL into an array of segments using ‘/’ as the separator + const segments = url.split('/'); + // Extract the desired paths from the array and join them together using ‘/’ + const paths = segments.slice(4, 7).join('/'); + + return `${browserEnv.NEXT_PUBLIC_BASE_PATH}/api/dokument/${paths}`; +}; + +const SøknadContent: React.FunctionComponent = ({ søknad }) => { + const intl = useIntl(); + + const harArbeidsgiver = () => { + if ('arbeidsgivere' in søknad.søknad) { + const arbeidsgivere = søknad.søknad.arbeidsgivere; + if (!Array.isArray(arbeidsgivere)) { + return arbeidsgivere.organisasjoner && arbeidsgivere.organisasjoner.length > 0; + } else { + return ( + arbeidsgivere.length > 0 && + arbeidsgivere.some((arbeidsgiver) => !arbeidsgiver.sluttetFørSøknadsperiode) + ); + } + } + return false; + }; + + const mapOrganisasjoner = (organisasjon: Organisasjon | Arbeidsgiver) => { + return ( +
  • + + + + +
  • + ); + }; + + const mapDokumenter = (dokument: Dokument) => { + return ( +
  • + + + {`${dokument.tittel} (PDF)`} + +
  • + ); + }; + + return ( + <> + + + + + {søknad.dokumenter && søknad.dokumenter.length > 0 && ( +
      {søknad.dokumenter.map((dokument) => mapDokumenter(dokument))}
    + )} + {(søknad.dokumenter === undefined || søknad.dokumenter.length === 0) && ( +

    {intlHelper(intl, 'dokumenter.ingenDokumenter')}

    + )} +
    + + {søknad.søknadstype === Søknadstype.PP_SYKT_BARN && harArbeidsgiver() && ( + + + + +

    + +

    + {'arbeidsgivere' in søknad.søknad && + 'organisasjoner' in søknad.søknad.arbeidsgivere && + søknad.søknad.arbeidsgivere.organisasjoner.length > 0 && ( +
      + {søknad.søknad.arbeidsgivere.organisasjoner.map((organisasjon) => + mapOrganisasjoner(organisasjon), + )} +
    + )} + {'arbeidsgivere' in søknad.søknad && + Array.isArray(søknad.søknad.arbeidsgivere) && + søknad.søknad.arbeidsgivere.length > 0 && ( +
      + {søknad.søknad.arbeidsgivere.map( + (organisasjon) => + !organisasjon.sluttetFørSøknadsperiode && mapOrganisasjoner(organisasjon), + )} +
    + )} +
    + )} + + ); +}; + +export default SøknadContent; diff --git "a/apps/dine-pleiepenger/src/components/s\303\270knad-liste/S\303\270knadListe.stories.tsx" "b/apps/dine-pleiepenger/src/components/s\303\270knad-liste/S\303\270knadListe.stories.tsx" new file mode 100644 index 0000000000..6d84b291ea --- /dev/null +++ "b/apps/dine-pleiepenger/src/components/s\303\270knad-liste/S\303\270knadListe.stories.tsx" @@ -0,0 +1,41 @@ +import { Meta, StoryObj } from '@storybook/react'; +import mockSøknader from '../../../api-mock-server/mockdata/soknader.json'; +import { withEmptyPage } from '../../storybook/hooks/withEmptyPage'; +import { withIntl } from '../../storybook/hooks/withIntl'; +import { Søknad } from '../../types/Søknad'; +import SøknadListe from './SøknadListe'; + +const meta: Meta = { + title: 'Components/SøknadListe', + component: SøknadListe, + parameters: { + layout: 'centered', + }, + decorators: [withIntl, withEmptyPage], +}; +export default meta; + +type Story = StoryObj; + +const søknader = mockSøknader as any as Søknad[]; + +export const MedEnSøknader: Story = { + name: 'Med én søknad', + args: { + søknader: søknader.slice(0, 1), + }, +}; + +export const MedSøknader: Story = { + name: 'Med flere søknader', + args: { + søknader: søknader as Søknad[], + }, +}; + +export const UtenSøknader: Story = { + name: 'Med ingen søknader', + args: { + søknader: [], + }, +}; diff --git "a/apps/dine-pleiepenger/src/components/s\303\270knad-liste/S\303\270knadListe.tsx" "b/apps/dine-pleiepenger/src/components/s\303\270knad-liste/S\303\270knadListe.tsx" new file mode 100644 index 0000000000..bb1e47b6da --- /dev/null +++ "b/apps/dine-pleiepenger/src/components/s\303\270knad-liste/S\303\270knadListe.tsx" @@ -0,0 +1,92 @@ +import { Alert, Box, Button, ExpansionCard, HStack, VStack } from '@navikt/ds-react'; +import { Søknad } from '../../types/Søknad'; +import SøknadTitle from './SøknadTitle'; +import SøknadContent from './SøknadContent'; +import Skeleton from 'react-loading-skeleton'; +import { useEffect, useMemo, useRef, useState } from 'react'; +import { Add } from '@navikt/ds-icons'; + +interface Props { + søknader: Søknad[]; +} + +const SøknadListe: React.FunctionComponent = ({ søknader = [] }) => { + const [antall, setAntall] = useState(3); + const [focusIndex, setFocusIndex] = useState(); + + const totalt = useMemo(() => søknader.length, [søknader]); + + const ref = useRef(null); + + useEffect(() => { + if (focusIndex && ref.current) { + ref.current.focus(); + setFocusIndex(undefined); + } + }, [antall, focusIndex]); + + if (søknader.length === 0) { + return Ingen søknader funnet; + } + + const visFlereSøknader = () => { + setFocusIndex(antall); + setAntall(Math.min(søknader.length, antall + 5)); + }; + + return ( + + {søknader.slice(0, antall).map((søknad, index) => { + const labelId = `søknad-${søknad.journalpostId}`; + return ( + + + + + + + + + + + ); + })} + {antall < totalt ? ( + + + + ) : null} + + ); +}; + +export const SøknadListeSkeleton = ({ rows = 3 }: { rows: number }) => { + const skeleton: any[] = []; + for (let i = 0; i < rows; i++) { + const card = ( + + ); + skeleton.push(card); + } + return {skeleton}; +}; + +export default SøknadListe; diff --git "a/apps/dine-pleiepenger/src/components/s\303\270knad-liste/S\303\270knadTitle.tsx" "b/apps/dine-pleiepenger/src/components/s\303\270knad-liste/S\303\270knadTitle.tsx" new file mode 100644 index 0000000000..0e9ea94e6f --- /dev/null +++ "b/apps/dine-pleiepenger/src/components/s\303\270knad-liste/S\303\270knadTitle.tsx" @@ -0,0 +1,33 @@ +import { BodyShort, HStack } from '@navikt/ds-react'; +import React from 'react'; +import { FormattedMessage } from 'react-intl'; +import { Task } from '@navikt/ds-icons'; +import { Søknad } from '../../types/Søknad'; +import { formatSøknadMottattDato, getSøknadMottattDato } from '../../utils/søknadUtils'; + +interface Props { + søknad: Søknad; +} + +const SøknadTitle: React.FunctionComponent = ({ søknad }) => { + const søknadMottattDato = getSøknadMottattDato(søknad); + return ( +
    + + +
    + + + +
    +
    + {søknadMottattDato ? ( + + Mottatt {formatSøknadMottattDato(søknadMottattDato)} + + ) : null} +
    + ); +}; + +export default SøknadTitle; diff --git a/apps/dine-pleiepenger/src/context/InnsynsdataContextProvider.tsx b/apps/dine-pleiepenger/src/context/InnsynsdataContextProvider.tsx new file mode 100644 index 0000000000..84b808628b --- /dev/null +++ b/apps/dine-pleiepenger/src/context/InnsynsdataContextProvider.tsx @@ -0,0 +1,17 @@ +import { createContext, FunctionComponent, ReactNode } from 'react'; +import { Innsynsdata } from '../types/InnsynData'; + +interface InnsynsdataContextData { + innsynsdata: Innsynsdata; +} + +export const InnsynsdataContext = createContext(null!); + +interface Props { + innsynsdata: Innsynsdata; + children: ReactNode; +} + +export const InnsynsdataContextProvider: FunctionComponent = ({ children, innsynsdata }) => { + return {children}; +}; diff --git a/apps/dine-pleiepenger/src/hooks/useInnsynsdataContext.ts b/apps/dine-pleiepenger/src/hooks/useInnsynsdataContext.ts new file mode 100644 index 0000000000..57d022f8a0 --- /dev/null +++ b/apps/dine-pleiepenger/src/hooks/useInnsynsdataContext.ts @@ -0,0 +1,4 @@ +import { useContext } from 'react'; +import { InnsynsdataContext } from '../context/InnsynsdataContextProvider'; + +export const useInnsynsdataContext = () => useContext(InnsynsdataContext); diff --git a/apps/dine-pleiepenger/src/mock-data/mellomlagring-endringsmelding.json b/apps/dine-pleiepenger/src/mock-data/mellomlagring-endringsmelding.json new file mode 100644 index 0000000000..7bd6bbb7ce --- /dev/null +++ b/apps/dine-pleiepenger/src/mock-data/mellomlagring-endringsmelding.json @@ -0,0 +1,157 @@ +{ + "søknadHashString": "4f052285846955318f5c3ea4e011f39b02a9e5d8", + "søknadsdata": { + "velkommen": { + "harForståttRettigheterOgPlikter": true + }, + "arbeidstid": { + "arbeidsaktivitet": { + "a_896929119": { + "endringer": { + "2023-08-07/2023-08-13": { + "type": "prosent", + "prosent": 30 + }, + "2023-08-21/2023-08-27": { + "type": "prosent", + "prosent": 30 + }, + "2023-08-14/2023-08-20": { + "type": "prosent", + "prosent": 30 + } + } + } + } + }, + "id": "adaae44e-045f-4848-94e0-fc706adb555a", + "lovbestemtFerie": { + "feriedager": { + "2023-08-09": { + "liggerISak": true, + "dato": "2023-08-09T00:00:00.000Z", + "skalHaFerie": false + }, + "2023-08-07": { + "liggerISak": true, + "dato": "2023-08-07T00:00:00.000Z", + "skalHaFerie": false + }, + "2023-08-08": { + "liggerISak": true, + "dato": "2023-08-08T00:00:00.000Z", + "skalHaFerie": false + }, + "2023-08-16": { + "liggerISak": true, + "dato": "2023-08-16T00:00:00.000Z", + "skalHaFerie": false + }, + "2023-08-14": { + "liggerISak": true, + "dato": "2023-08-14T00:00:00.000Z", + "skalHaFerie": false + }, + "2023-08-15": { + "liggerISak": true, + "dato": "2023-08-15T00:00:00.000Z", + "skalHaFerie": false + }, + "2023-08-12": { + "liggerISak": true, + "dato": "2023-08-12T00:00:00.000Z", + "skalHaFerie": false + }, + "2023-08-23": { + "liggerISak": true, + "dato": "2023-08-23T00:00:00.000Z", + "skalHaFerie": false + }, + "2023-08-13": { + "liggerISak": true, + "dato": "2023-08-13T00:00:00.000Z", + "skalHaFerie": false + }, + "2023-08-24": { + "liggerISak": true, + "dato": "2023-08-24T00:00:00.000Z", + "skalHaFerie": false + }, + "2023-08-10": { + "liggerISak": true, + "dato": "2023-08-10T00:00:00.000Z", + "skalHaFerie": false + }, + "2023-08-11": { + "liggerISak": true, + "dato": "2023-08-11T00:00:00.000Z", + "skalHaFerie": false + }, + "2023-08-22": { + "liggerISak": true, + "dato": "2023-08-22T00:00:00.000Z", + "skalHaFerie": false + } + }, + "feriedagerMeta": { + "datoerFjernet": [ + "2023-08-07T00:00:00.000Z", + "2023-08-08T00:00:00.000Z", + "2023-08-09T00:00:00.000Z", + "2023-08-10T00:00:00.000Z", + "2023-08-11T00:00:00.000Z", + "2023-08-12T00:00:00.000Z", + "2023-08-13T00:00:00.000Z", + "2023-08-14T00:00:00.000Z", + "2023-08-15T00:00:00.000Z", + "2023-08-16T00:00:00.000Z", + "2023-08-22T00:00:00.000Z", + "2023-08-23T00:00:00.000Z", + "2023-08-24T00:00:00.000Z" + ], + "perioderFjernet": [ + { + "from": "2023-08-07T00:00:00.000Z", + "to": "2023-08-16T00:00:00.000Z" + }, + { + "from": "2023-08-22T00:00:00.000Z", + "to": "2023-08-24T00:00:00.000Z" + } + ], + "perioderUendret": [], + "perioderLagtTil": [], + "datoerUendret": [], + "ferieperioder": [ + { + "from": "2023-08-07T00:00:00.000Z", + "to": "2023-08-16T00:00:00.000Z", + "liggerISak": true, + "skalHaFerie": false + }, + { + "from": "2023-08-22T00:00:00.000Z", + "to": "2023-08-24T00:00:00.000Z", + "liggerISak": true, + "skalHaFerie": false + } + ], + "datoerMedFerie": [], + "erEndret": true, + "datoerLagtTil": [] + } + } + }, + "metadata": { + "updatedTimestamp": "2023-11-13T14:42:56.770Z" + }, + "søknadRoute": "/melding/oppsummering", + "søknadSteps": ["lovbestemtFerie", "arbeidstid", "oppsummering"], + "harArbeidsgivereIkkeISak": false, + "versjon": "1.2.0", + "valgteEndringer": { + "lovbestemtFerie": true, + "arbeidstid": true + }, + "barnAktørId": "2957732263446" +} diff --git a/apps/dine-pleiepenger/src/mock-data/mellomlagring-pleiepenger.json b/apps/dine-pleiepenger/src/mock-data/mellomlagring-pleiepenger.json new file mode 100644 index 0000000000..6bb8a1184d --- /dev/null +++ b/apps/dine-pleiepenger/src/mock-data/mellomlagring-pleiepenger.json @@ -0,0 +1,110 @@ +{ + "formValues": { + "ansatt_arbeidsforhold": [ + { + "normalarbeidstid": { + "timerPerUke": "20" + }, + "arbeidIPeriode": { + "erLiktHverUke": "no", + "arbeidsuker": { + "2023-11-06/2023-11-12": { + "snittTimerPerUke": "2" + }, + "2023-11-20/2023-11-23": { + "snittTimerPerUke": "4" + }, + "2023-11-13/2023-11-19": { + "snittTimerPerUke": "3" + } + }, + "arbeiderIPerioden": "REDUSERT" + }, + "erAnsatt": "yes", + "arbeidsgiver": { + "navn": "SAUEFABRIKK", + "id": "896929119", + "ansattFom": "2003-08-10T00:00:00.000Z", + "type": "ORGANISASJON", + "organisasjonsnummer": "896929119" + } + } + ], + "harBeredskap": "no", + "harUtenlandskNæring": "no", + "barnetsNavn": "", + "skalBoUtenforNorgeNeste12Mnd": "no", + "ferieuttakIPerioden": [], + "utenlandsoppholdNeste12Mnd": [], + "skalTaUtFerieIPerioden": "no", + "harOpptjeningUtland": "no", + "barnetHarIkkeFnr": false, + "harNattevåk": "no", + "frilansoppdrag": [ + { + "navn": "SJOKKERENDE ELEKTRIKER", + "id": "947064649", + "ansattFom": "2003-08-10T00:00:00.000Z", + "type": "FRILANSOPPDRAG", + "organisasjonsnummer": "947064649" + } + ], + "skalOppholdeSegIUtlandetIPerioden": "no", + "legeerklæring": [ + { + "uploaded": true, + "file": { + "isPersistedFile": true, + "name": "Skjermbilde 2023-10-26 kl. 16.18.56.png", + "lastModified": 1698329942466, + "type": "image/png", + "size": 93183 + }, + "url": "https://pleiepengesoknad.intern.dev.nav.no/api/vedlegg/eyJraWQiOiIxIiwiYWxnIjoibm9uZSIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiYTQ3MDU4NS1iNGRiLTQ3ODktOTk4My1jOGM4M2QzNjhhNzIifQ", + "pending": false + } + ], + "fødselsattest": [], + "periodeTil": "2023-11-23", + "harBekreftetOpplysninger": false, + "utenlandsoppholdIPerioden": [], + "selvstendig": { + "harHattInntektSomSN": "no" + }, + "periodeFra": "2023-11-06", + "harBoddUtenforNorgeSiste12Mnd": "no", + "søknadenGjelderEtAnnetBarn": false, + "barnetsFødselsnummer": "", + "utenlandsoppholdSiste12Mnd": [], + "frilans": { + "harHattInntektSomFrilanser": "no" + }, + "opptjeningUtland": [], + "omsorgstilbud": { + "enkeltdager": { + "2023-11-06": { + "hours": "5", + "minutes": "0" + }, + "2023-11-15": { + "hours": "4", + "minutes": "0" + } + }, + "erIOmsorgstilbudFortid": "yes", + "erLiktHverUke": "no", + "erIOmsorgstilbudFremtid": "yes" + }, + "stønadGodtgjørelse": { + "mottarStønadGodtgjørelse": "no" + }, + "utenlandskNæring": [], + "barnetSøknadenGjelder": "2957732263446", + "harForståttRettigheterOgPlikter": true + }, + "metadata": { + "lastStepID": "legeerklaering", + "version": "14.0.0", + "updatedTimestemp": "2023-11-13T14:42:49.366Z" + } +} diff --git a/apps/dine-pleiepenger/src/pages/404.page.tsx b/apps/dine-pleiepenger/src/pages/404.page.tsx new file mode 100644 index 0000000000..fe284c70ae --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/404.page.tsx @@ -0,0 +1,62 @@ +import type { NextPage } from 'next'; +import { BodyShort, Box, HGrid, Heading, List } from '@navikt/ds-react'; + +const NotFoundPage: NextPage = () => { + return ( +
    + + +
    + + Beklager, vi fant ikke siden + + + + Denne siden kan være slettet eller flyttet, eller det er en feil i lenken. + + + Bruk gjerne søket eller menyen + + + Gå til forsiden for Dine pleiepenger + + + +
    + + 404 - fant ikke siden + + + + +
    +
    +
    + ); +}; + +export default NotFoundPage; diff --git a/apps/dine-pleiepenger/src/pages/_app.page.tsx b/apps/dine-pleiepenger/src/pages/_app.page.tsx new file mode 100644 index 0000000000..fb7145f3d2 --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/_app.page.tsx @@ -0,0 +1,79 @@ +import { Status, StatusMessage, useAppStatus } from '@navikt/appstatus-react-ds/lib'; +import { ReactElement } from 'react'; +import { IntlProvider } from 'react-intl'; +import { AxiosError } from 'axios'; +import { AppProps } from 'next/app'; +import Head from 'next/head'; +import useSWR from 'swr'; +import ComponentLoader from '../components/component-loader/ComponentLoader'; +import ErrorBoundary from '../components/error-boundary/ErrorBoundary'; +import HentInnsynsdataFeilet from '../components/hent-innsynsdata-feilet/HentInnsynsdataFeilet'; +import EmptyPage from '../components/page-layout/empty-page/EmptyPage'; +import { InnsynsdataContextProvider } from '../context/InnsynsdataContextProvider'; +import { Innsynsdata } from '../types/InnsynData'; +import appSentryLogger from '../utils/appSentryLogger'; +import { browserEnv } from '../utils/env'; +import { messages } from '../utils/message'; +import { innsynsdataFetcher } from './api/innsynsdata.api'; +import UnavailablePage from './unavailable.page'; +import 'react-loading-skeleton/dist/skeleton.css'; +import '../components/process/process.css'; +import '../style/global.css'; + +export const APPLICATION_KEY = 'sif-innsyn'; + +function MyApp({ Component, pageProps }: AppProps): ReactElement { + const { data, error, isLoading } = useSWR( + `${browserEnv.NEXT_PUBLIC_BASE_PATH}/api/innsynsdata`, + innsynsdataFetcher, + { + revalidateOnFocus: false, + shouldRetryOnError: false, + errorRetryCount: 0, + }, + ); + const appStatus = useAppStatus(APPLICATION_KEY, { + projectId: browserEnv.NEXT_PUBLIC_APPSTATUS_PROJECT_ID, + dataset: browserEnv.NEXT_PUBLIC_APPSTATUS_DATASET, + }); + + if (isLoading || appStatus.isLoading) { + return ( + + Henter informasjon - Dine pleiepenger + + + ); + } + if (appStatus.status === Status.unavailable) { + return ; + } + + if (error || !data) { + appSentryLogger.logError('fetchInnsynsdata-failed', JSON.stringify({ error })); + return ( + + + + ); + } + + return ( + +
    + {appStatus.message && ( +
    + +
    + )} + + + + + +
    +
    + ); +} + +export default MyApp; diff --git a/apps/dine-pleiepenger/src/pages/_document.page.tsx b/apps/dine-pleiepenger/src/pages/_document.page.tsx new file mode 100644 index 0000000000..d07328f3c7 --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/_document.page.tsx @@ -0,0 +1,88 @@ +import { ReactElement } from 'react'; +import { DecoratorComponents, fetchDecoratorReact } from '@navikt/nav-dekoratoren-moduler/ssr'; +// This is imported to allow the Output File Tracing feature of Next.js to work correctly with the log patcher +import 'next-logger'; +import Document, { DocumentContext, DocumentInitialProps, Head, Html, Main, NextScript } from 'next/document'; +import { browserEnv, getServerEnv } from '../utils/env'; + +// The 'head'-field of the document initialProps contains data from (meta-tags etc) +const getDocumentParameter = (initialProps: DocumentInitialProps, name: string): string => { + return initialProps.head?.find((element) => element?.props?.name === name)?.props?.content; +}; + +function createDecoratorEnv(ctx: DocumentContext): 'dev' | 'prod' { + if (ctx.pathname === '/500' || ctx.pathname === '/404' || process.env.NODE_ENV === 'development') { + // Blir statisk kompilert i GHA så må hentes defra + return 'prod'; + } + + switch (browserEnv.NEXT_PUBLIC_RUNTIME_ENVIRONMENT) { + case 'local': + case 'test': + case 'dev': + return 'dev'; + case 'production': + return 'prod'; + default: + throw new Error( + `Unknown runtime environment: ${browserEnv.NEXT_PUBLIC_RUNTIME_ENVIRONMENT} - ${JSON.stringify( + browserEnv, + )} - ${process.env.NEXT_PUBLIC_RUNTIME_ENVIRONMENT}`, + ); + } +} + +interface Props { + Decorator: DecoratorComponents; + language: string; +} + +class MyDocument extends Document { + static async getInitialProps(ctx: DocumentContext): Promise { + const initialProps = await Document.getInitialProps(ctx); + const serverEnv = getServerEnv(); + const Decorator = await fetchDecoratorReact({ + env: createDecoratorEnv(ctx), + params: { + chatbot: true, + context: 'privatperson', + breadcrumbs: [ + { url: serverEnv.NEXT_PUBLIC_MIN_SIDE_URL, title: 'Min side' }, + { url: serverEnv.NEXT_PUBLIC_BASE_PATH, title: 'Dine pleiepenger' }, + ], + }, + }); + + const language = getDocumentParameter(initialProps, 'lang'); + + return { ...initialProps, Decorator, language }; + } + + render(): ReactElement { + const { Decorator, language } = this.props; + + return ( + + + + + + + +
    + + + + + + ); + } +} + +export default MyDocument; diff --git a/apps/dine-pleiepenger/src/pages/api/dokument/[...info].api.ts b/apps/dine-pleiepenger/src/pages/api/dokument/[...info].api.ts new file mode 100644 index 0000000000..001ac90e18 --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/api/dokument/[...info].api.ts @@ -0,0 +1,25 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { withAuthenticatedApi } from '../../../auth/withAuthentication'; +import { fetchDocumentStream } from '../../../server/fetchDocumentStream'; +import { ApiService } from '../../../server/apiService'; +import { getContextForApiHandler } from '../../../utils/apiUtils'; + +async function handler(req: NextApiRequest, res: NextApiResponse) { + const { + query: { info, dokumentTittel }, + } = req; + + if (info?.length !== 3 || !Array.isArray(info)) { + throw new Error('Ugyldig path i url'); + } + + try { + const path = `dokument/${info.join('/')}?dokumentTittel=${dokumentTittel}`; + const data = await fetchDocumentStream(path, getContextForApiHandler(req), ApiService.sifInnsyn); + data.pipe(res); + } catch (err) { + res.status(500).json({ error: 'Kunne ikke hente dokument', err }); + } +} + +export default withAuthenticatedApi(handler); diff --git a/apps/dine-pleiepenger/src/pages/api/innsynsdata.api.ts b/apps/dine-pleiepenger/src/pages/api/innsynsdata.api.ts new file mode 100644 index 0000000000..ca11784fc6 --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/api/innsynsdata.api.ts @@ -0,0 +1,48 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { createChildLogger } from '@navikt/next-logger'; +import axios, { HttpStatusCode } from 'axios'; +import { withAuthenticatedApi } from '../../auth/withAuthentication'; +import { fetchMellomlagringer, fetchSvarfrist, fetchSøker, fetchSøknader } from '../../server/apiService'; +import { Innsynsdata } from '../../types/InnsynData'; +import { getXRequestId } from '../../utils/apiUtils'; +import { sortSøknadEtterOpprettetDato } from '../../utils/søknadUtils'; +import { Feature } from '../../utils/fatures'; + +export const innsynsdataFetcher = async (url: string): Promise => axios.get(url).then((res) => res.data); + +async function handler(req: NextApiRequest, res: NextApiResponse) { + const childLogger = createChildLogger(getXRequestId(req)); + try { + /** Hent søker først for å se om bruker har tilgang */ + const søker = await fetchSøker(req); + + const hentSvarfrist = Feature.HENT_SVARFRIST; + + /** Bruker har tilgang, hent resten av informasjonen */ + const [søknader, mellomlagring, svarfrist] = await Promise.allSettled([ + fetchSøknader(req), + fetchMellomlagringer(req), + hentSvarfrist ? fetchSvarfrist(req) : Promise.resolve({ frist: undefined }), + ]); + + if (søknader.status === 'rejected') { + childLogger.error(`Hent søknader feilet: ${søknader.reason.message}`, { cause: søknader.reason }); + } + + res.send({ + søker, + søknader: søknader.status === 'fulfilled' ? søknader.value.sort(sortSøknadEtterOpprettetDato) : [], + mellomlagring: mellomlagring.status === 'fulfilled' ? mellomlagring.value : {}, + svarfrist: svarfrist.status === 'fulfilled' ? svarfrist.value.frist : undefined, + }); + } catch (err) { + childLogger.error(`Hent innsynsdata feilet: ${err}`); + if (err.response.status === HttpStatusCode.Forbidden) { + res.status(403).json({ error: 'Ikke tilgang' }); + } else { + res.status(500).json({ error: 'Kunne ikke hente innsynsdata', err }); + } + } +} + +export default withAuthenticatedApi(handler); diff --git a/apps/dine-pleiepenger/src/pages/api/internal/isAlive.api.ts b/apps/dine-pleiepenger/src/pages/api/internal/isAlive.api.ts new file mode 100644 index 0000000000..c85a3a479b --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/api/internal/isAlive.api.ts @@ -0,0 +1,5 @@ +import { NextApiRequest, NextApiResponse } from 'next'; + +export default async function handler(_req: NextApiRequest, res: NextApiResponse) { + res.status(200).json({}); +} diff --git a/apps/dine-pleiepenger/src/pages/api/internal/isReady.api.ts b/apps/dine-pleiepenger/src/pages/api/internal/isReady.api.ts new file mode 100644 index 0000000000..c85a3a479b --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/api/internal/isReady.api.ts @@ -0,0 +1,5 @@ +import { NextApiRequest, NextApiResponse } from 'next'; + +export default async function handler(_req: NextApiRequest, res: NextApiResponse) { + res.status(200).json({}); +} diff --git a/apps/dine-pleiepenger/src/pages/api/mellomlagring.api.ts b/apps/dine-pleiepenger/src/pages/api/mellomlagring.api.ts new file mode 100644 index 0000000000..2f30d0a917 --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/api/mellomlagring.api.ts @@ -0,0 +1,22 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { createChildLogger } from '@navikt/next-logger'; +import axios from 'axios'; +import { withAuthenticatedApi } from '../../auth/withAuthentication'; +import { fetchMellomlagringer } from '../../server/apiService'; +import { Mellomlagringer } from '../../types/Mellomlagring'; +import { getXRequestId } from '../../utils/apiUtils'; + +export const mellomlagringFetcher = async (url: string): Promise => + axios.get(url).then((res) => res.data); + +async function handler(req: NextApiRequest, res: NextApiResponse) { + try { + res.send(await fetchMellomlagringer(req)); + } catch (err) { + const childLogger = createChildLogger(getXRequestId(req)); + childLogger.error(`Hent mellomlagring feilet: ${err}`); + res.status(500).json({ error: 'Kunne ikke hente mellomlagring', err }); + } +} + +export default withAuthenticatedApi(handler); diff --git a/apps/dine-pleiepenger/src/pages/api/soker.api.ts b/apps/dine-pleiepenger/src/pages/api/soker.api.ts new file mode 100644 index 0000000000..0a756f4776 --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/api/soker.api.ts @@ -0,0 +1,21 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { createChildLogger } from '@navikt/next-logger'; +import axios from 'axios'; +import { withAuthenticatedApi } from '../../auth/withAuthentication'; +import { Søker } from '../../server/api-models/SøkerSchema'; +import { fetchSøker } from '../../server/apiService'; +import { getXRequestId } from '../../utils/apiUtils'; + +export const søkerFetcher = async (url: string): Promise => axios.get(url).then((res) => res.data); + +async function handler(req: NextApiRequest, res: NextApiResponse) { + try { + res.send(await fetchSøker(req)); + } catch (err) { + const childLogger = createChildLogger(getXRequestId(req)); + childLogger.error(`Hent søker feilet: ${err}`); + res.status(500).json({ error: 'Kunne ikke hente søker', err }); + } +} + +export default withAuthenticatedApi(handler); diff --git a/apps/dine-pleiepenger/src/pages/api/soknad/[id]/arbeidsgivermelding.api.ts b/apps/dine-pleiepenger/src/pages/api/soknad/[id]/arbeidsgivermelding.api.ts new file mode 100644 index 0000000000..f7c2e7023f --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/api/soknad/[id]/arbeidsgivermelding.api.ts @@ -0,0 +1,31 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { withAuthenticatedApi } from '../../../../auth/withAuthentication'; +import { fetchDocumentStream } from '../../../../server/fetchDocumentStream'; +import { getContextForApiHandler } from '../../../../utils/apiUtils'; +import { ApiService } from '../../../../server/apiService'; + +export async function handler(req: NextApiRequest, res: NextApiResponse) { + const { query } = req; + const søknadId = query.id as string; + const organisasjonsnummer = query.organisasjonsnummer as string; + + if (!søknadId) { + throw Error('SøknadId mangler i query'); + } + if (!organisasjonsnummer) { + throw Error('Organisasjonsnummer mangler i query'); + } + + try { + const data = await fetchDocumentStream( + `soknad/${søknadId}/arbeidsgivermelding?organisasjonsnummer=${organisasjonsnummer}`, + getContextForApiHandler(req), + ApiService.sifInnsyn, + ); + data.pipe(res); + } catch (err) { + res.status(500).json({ error: 'Kunne ikke hente arbeidsgivermelding', err }); + } +} + +export default withAuthenticatedApi(handler); diff --git a/apps/dine-pleiepenger/src/pages/api/soknader.api.ts b/apps/dine-pleiepenger/src/pages/api/soknader.api.ts new file mode 100644 index 0000000000..9d4cf682b8 --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/api/soknader.api.ts @@ -0,0 +1,23 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { createChildLogger } from '@navikt/next-logger'; +import { withAuthenticatedApi } from '../../auth/withAuthentication'; +import { Søknad } from '../../types/Søknad'; +import { getXRequestId } from '../../utils/apiUtils'; +import { sortSøknadEtterOpprettetDato } from '../../utils/søknadUtils'; +import axios from 'axios'; +import { fetchSøknader } from '../../server/apiService'; + +export const søknaderFetcher = async (url: string): Promise => axios.get(url).then((res) => res.data); + +async function handler(req: NextApiRequest, res: NextApiResponse) { + try { + const response = await fetchSøknader(req); + res.send(response.sort(sortSøknadEtterOpprettetDato)); + } catch (err) { + const childLogger = createChildLogger(getXRequestId(req)); + childLogger.error(`Hent søknader feilet: ${err}`); + res.status(500).json({ error: 'Kunne ikke hente søknader', err }); + } +} + +export default withAuthenticatedApi(handler); diff --git a/apps/dine-pleiepenger/src/pages/api/svarfrist.api.ts b/apps/dine-pleiepenger/src/pages/api/svarfrist.api.ts new file mode 100644 index 0000000000..635f6b9284 --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/api/svarfrist.api.ts @@ -0,0 +1,22 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { createChildLogger } from '@navikt/next-logger'; +import axios from 'axios'; +import { withAuthenticatedApi } from '../../auth/withAuthentication'; +import { Svarfrist } from '../../server/api-models/SvarfristSchema'; +import { fetchSvarfrist } from '../../server/apiService'; +import { getXRequestId } from '../../utils/apiUtils'; + +export const svarfristFetcher = async (url: string): Promise => axios.get(url).then((res) => res.data); + +async function handler(req: NextApiRequest, res: NextApiResponse) { + try { + const data = await fetchSvarfrist(req); + res.send(data); + } catch (err) { + const childLogger = createChildLogger(getXRequestId(req)); + childLogger.error(`Hent svarfrist feilet: ${err}`); + res.status(500).json({ error: 'Kunne ikke hente svarfrist', err }); + } +} + +export default withAuthenticatedApi(handler); diff --git a/apps/dine-pleiepenger/src/pages/index.page.stories.tsx b/apps/dine-pleiepenger/src/pages/index.page.stories.tsx new file mode 100644 index 0000000000..cb9b8c76f4 --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/index.page.stories.tsx @@ -0,0 +1,21 @@ +import { withEmptyPage } from '../storybook/hooks/withEmptyPage'; +import { withInnsynsdata } from '../storybook/hooks/withInnsynsdata'; +import { withIntl } from '../storybook/hooks/withIntl'; +import Page from './index.page'; +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: Page, + title: 'Page/Forside', + parameters: { + layout: 'centered', + }, + decorators: [withIntl, withEmptyPage, withInnsynsdata], +}; +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: {}, +}; diff --git a/apps/dine-pleiepenger/src/pages/index.page.tsx b/apps/dine-pleiepenger/src/pages/index.page.tsx new file mode 100644 index 0000000000..b125aec8a8 --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/index.page.tsx @@ -0,0 +1,44 @@ +import { Box, VStack } from '@navikt/ds-react'; +import { ReactElement } from 'react'; +import Head from 'next/head'; +import { withAuthenticatedPage } from '../auth/withAuthentication'; +import DineSøknader from '../components/dine-søknader/DineSøknader'; +import DefaultPage from '../components/page-layout/default-page/DefaultPage'; +import Snarveier from '../components/snarveier/Snarveier'; +import Svarfrist from '../components/svarfrist/Svarfrist'; +import { useInnsynsdataContext } from '../hooks/useInnsynsdataContext'; +import HvaSkjer from '../components/hva-skjer/HvaSkjer'; + +function DinePleiepengerPage(): ReactElement { + const { + innsynsdata: { søknader, svarfrist }, + } = useInnsynsdataContext(); + + return ( + + + Dine pleiepenger + + + + + + +
    + +
    +
    + 0 ? svarfrist : undefined} /> +
    +
    + + + +
    +
    + ); +} + +export const getServerSideProps = withAuthenticatedPage(); + +export default DinePleiepengerPage; diff --git a/apps/dine-pleiepenger/src/pages/unavailable.page.tsx b/apps/dine-pleiepenger/src/pages/unavailable.page.tsx new file mode 100644 index 0000000000..402848fe16 --- /dev/null +++ b/apps/dine-pleiepenger/src/pages/unavailable.page.tsx @@ -0,0 +1,25 @@ +import type { NextPage } from 'next'; +import { BodyShort, GuidePanel, Heading } from '@navikt/ds-react'; +import Head from 'next/head'; +import EmptyPage from '../components/page-layout/empty-page/EmptyPage'; + +const UnavailablePage: NextPage = () => { + return ( + + + + Ikke tilgjengelig for øyeblikket - Dine pleiepenger + + + Ikke tilgjengelig + + + Dine pleiepenger er ikke tilgjengelig for øyeblikket. + + Vennligst prøv igjen litt senere. + + + ); +}; + +export default UnavailablePage; diff --git a/apps/dine-pleiepenger/src/server/api-models/MellomlagringSchema.ts b/apps/dine-pleiepenger/src/server/api-models/MellomlagringSchema.ts new file mode 100644 index 0000000000..b3d8fc9011 --- /dev/null +++ b/apps/dine-pleiepenger/src/server/api-models/MellomlagringSchema.ts @@ -0,0 +1,18 @@ +import { z } from 'zod'; +import { parseMaybeDateStringToDate } from '../../utils/jsonParseUtils'; + +export enum MellomlagringType { + SØKNAD = 'SØKNAD', + ENDRING = 'ENDRING', +} + +export type MellomlagringModel = z.infer; + +export const MellomlagringSchema = z.object({ + metadata: z.union([ + z.object({ + updatedTimestamp: z.preprocess((val) => parseMaybeDateStringToDate(val), z.date()), + }), + z.undefined(), + ]), +}); diff --git a/apps/dine-pleiepenger/src/server/api-models/SvarfristSchema.ts b/apps/dine-pleiepenger/src/server/api-models/SvarfristSchema.ts new file mode 100644 index 0000000000..249628210a --- /dev/null +++ b/apps/dine-pleiepenger/src/server/api-models/SvarfristSchema.ts @@ -0,0 +1,8 @@ +import { z } from 'zod'; +import { parseMaybeDateStringToDate } from '../../utils/jsonParseUtils'; + +export type Svarfrist = z.infer; + +export const SvarfristSchema = z.object({ + frist: z.union([z.preprocess((val) => parseMaybeDateStringToDate(val), z.date()), z.undefined()]), +}); diff --git "a/apps/dine-pleiepenger/src/server/api-models/S\303\270kerSchema.ts" "b/apps/dine-pleiepenger/src/server/api-models/S\303\270kerSchema.ts" new file mode 100644 index 0000000000..11b782cdaf --- /dev/null +++ "b/apps/dine-pleiepenger/src/server/api-models/S\303\270kerSchema.ts" @@ -0,0 +1,13 @@ +import { z } from 'zod'; +import { parseMaybeDateStringToDate } from '../../utils/jsonParseUtils'; + +export type Søker = z.infer; + +export const SøkerSchema = z.object({ + aktørId: z.string(), + fornavn: z.string(), + mellomnavn: z.union([z.string(), z.null(), z.undefined()]), + etternavn: z.string(), + fødselsdato: z.preprocess((val) => parseMaybeDateStringToDate(val), z.date()), + fødselsnummer: z.string(), +}); diff --git "a/apps/dine-pleiepenger/src/server/api-models/S\303\270knadSchema.ts" "b/apps/dine-pleiepenger/src/server/api-models/S\303\270knadSchema.ts" new file mode 100644 index 0000000000..ef944f3a7c --- /dev/null +++ "b/apps/dine-pleiepenger/src/server/api-models/S\303\270knadSchema.ts" @@ -0,0 +1,81 @@ +import { z } from 'zod'; +import { parseMaybeDateStringToDate } from '../../utils/jsonParseUtils'; +import { ArbeidsgivereSchema } from '../../types/Arbeidsgiver'; + +export enum Søknadsstatus { + MOTTATT = 'MOTTATT', + UNDER_BEHANDLING = 'UNDER_BEHANDLING', + FERDIG_BEHANDLET = 'FERDIG_BEHANDLET', +} + +export enum Søknadstype { + PP_ETTERSENDELSE = 'PP_ETTERSENDELSE', + PP_SYKT_BARN = 'PP_SYKT_BARN', + PP_SYKT_BARN_ENDRINGSMELDING = 'PP_SYKT_BARN_ENDRINGSMELDING', +} + +enum SøknadDokumentFiltype { + PDF = 'PDF', +} + +const SøknadDokumentSchema = z.object({ + journalpostId: z.string(), + dokumentInfoId: z.string(), + sakId: z.string(), + tittel: z.string(), + filtype: z.nativeEnum(SøknadDokumentFiltype), + harTilgang: z.boolean(), + url: z.string(), +}); + +const PleiepengerSøknadInfoSchema = z.object({ + fraOgMed: z.string(), //z.preprocess((val) => parseMaybeDateStringToDate(val), z.date()), + tilOgMed: z.preprocess((val) => parseMaybeDateStringToDate(val), z.date()), + mottatt: z.preprocess((val) => parseMaybeDateStringToDate(val), z.date()), + arbeidsgivere: ArbeidsgivereSchema, +}); + +const PleiepengerEndringsmeldingInfoSchema = z.object({}); + +const PleiepengerEttersendelseInfo = z.object({ + mottatt: z.preprocess((val) => parseMaybeDateStringToDate(val), z.date()), +}); + +const SøknadBaseSchema = z.object({ + søknadId: z.string(), + status: z.nativeEnum(Søknadsstatus), + journalpostId: z.string(), + dokumenter: z.array(z.union([SøknadDokumentSchema, z.any()])), + opprettet: z.preprocess((val) => parseMaybeDateStringToDate(val), z.date()), + endret: z.preprocess((val) => parseMaybeDateStringToDate(val), z.date()).or(z.undefined()), + behandlingsdato: z.union([z.null(), z.preprocess((val) => parseMaybeDateStringToDate(val), z.date())]), +}); + +const PleiepengerSøknadSchema = SøknadBaseSchema.extend({ + søknadstype: z.literal(Søknadstype.PP_SYKT_BARN), + søknad: PleiepengerSøknadInfoSchema, +}); + +const EndringsmeldingSchema = SøknadBaseSchema.extend({ + søknadstype: z.literal(Søknadstype.PP_SYKT_BARN_ENDRINGSMELDING), + søknad: PleiepengerEndringsmeldingInfoSchema, +}); + +const EttersendelseSchema = SøknadBaseSchema.extend({ + søknadstype: z.literal(Søknadstype.PP_ETTERSENDELSE), + søknad: PleiepengerEttersendelseInfo, +}); + +const SøknadSchema = z.discriminatedUnion('søknadstype', [ + PleiepengerSøknadSchema, + EndringsmeldingSchema, + EttersendelseSchema, +]); + +export type Pleiepengesøknad = z.infer; +export type PleiepengerEttersendelse = z.infer; +export type PleiepengerEndringsmelding = z.infer; + +export type Søknad = Pleiepengesøknad | PleiepengerEttersendelse | PleiepengerEndringsmelding; + +export const SøknaderSchema = z.array(SøknadSchema); diff --git a/apps/dine-pleiepenger/src/server/apiService.ts b/apps/dine-pleiepenger/src/server/apiService.ts new file mode 100644 index 0000000000..8b70c1199d --- /dev/null +++ b/apps/dine-pleiepenger/src/server/apiService.ts @@ -0,0 +1,111 @@ +import { createChildLogger } from '@navikt/next-logger'; +import axios from 'axios'; +import { NextApiRequest } from 'next'; +import { Mellomlagringer } from '../types/Mellomlagring'; +import { Søknad } from '../types/Søknad'; +import { getContextForApiHandler, getXRequestId } from '../utils/apiUtils'; +import { MellomlagringModel, MellomlagringSchema } from './api-models/MellomlagringSchema'; +import { Svarfrist, SvarfristSchema } from './api-models/SvarfristSchema'; +import { Søker, SøkerSchema } from './api-models/SøkerSchema'; +import { exchangeTokenAndPrepRequest } from './utils/exchangeTokenPrepRequest'; +import { isValidMellomlagring } from './utils/isValidMellomlagring'; +import { SøknaderSchema } from './api-models/SøknadSchema'; + +export enum ApiService { + k9Brukerdialog = 'k9-brukerdialog-api', + sifInnsyn = 'sif-innsyn-api', +} + +export enum ApiEndpointBrukerdialog { + 'søker' = 'oppslag/soker', + 'påbegyntSøknad' = 'mellomlagring/PLEIEPENGER_SYKT_BARN', + 'påbegyntEndring' = 'mellomlagring/ENDRINGSMELDING_PLEIEPENGER_SYKT_BARN', +} +export enum ApiEndpointInnsyn { + 'søknad' = 'soknad', + 'svarfrist' = 'svarfrist', +} + +export enum SifApiErrorType { + UNAUTHORIZED = 'UNAUTHORIZED', + NO_ACCESS = 'NO_ACCESS', +} + +export const fetchSøker = async (req: NextApiRequest): Promise => { + const context = getContextForApiHandler(req); + const { url, headers } = await exchangeTokenAndPrepRequest( + ApiService.k9Brukerdialog, + context, + ApiEndpointBrukerdialog.søker, + ); + createChildLogger(getXRequestId(req)).info(`Fetching søker from url: ${url}`); + const response = await axios.get(url, { headers }); + return await SøkerSchema.parse(response.data); +}; + +export const fetchSvarfrist = async (req: NextApiRequest): Promise => { + const context = getContextForApiHandler(req); + const { url, headers } = await exchangeTokenAndPrepRequest( + ApiService.sifInnsyn, + context, + ApiEndpointInnsyn.svarfrist, + ); + createChildLogger(getXRequestId(req)).info(`Fetching svarfrist from url: ${url}`); + const response = await axios.get(url, { headers }); + return await SvarfristSchema.parse(response.data); +}; + +export const fetchSøknader = async (req: NextApiRequest): Promise => { + const context = getContextForApiHandler(req); + const { url, headers } = await exchangeTokenAndPrepRequest(ApiService.sifInnsyn, context, ApiEndpointInnsyn.søknad); + createChildLogger(getXRequestId(req)).info(`Fetching søknader from url: ${url}`); + const response = await axios.get(url, { headers }); + return await SøknaderSchema.parse(response.data); +}; + +/** + * Henter ut mellomlagringer fra søknadsdialog og endringsdialog + * @param req + * @returns + */ +export const fetchMellomlagringer = async (req: NextApiRequest): Promise => { + const context = getContextForApiHandler(req); + + /** Påbegynt søknad */ + const påbegyntSøknadReq = await exchangeTokenAndPrepRequest( + ApiService.k9Brukerdialog, + context, + ApiEndpointBrukerdialog.påbegyntSøknad, + ); + createChildLogger(getXRequestId(req)).info(`Fetching påbegynt søknad from url: ${påbegyntSøknadReq.url}`); + const påbegyntSøknad = await axios + .get(påbegyntSøknadReq.url, { headers: påbegyntSøknadReq.headers }) + .then((response) => Promise.resolve(fixSøknadMetadata(response.data))); + + /** Påbegynt endring */ + const påbegyntEndringReq = await exchangeTokenAndPrepRequest( + ApiService.k9Brukerdialog, + context, + ApiEndpointBrukerdialog.påbegyntEndring, + ); + createChildLogger(getXRequestId(req)).info(`Fetching påbegynt endring from url: ${påbegyntEndringReq.url}`); + const påbegyntEndring = await axios + .get(påbegyntEndringReq.url, { headers: påbegyntEndringReq.headers }) + .then((response) => Promise.resolve(fixSøknadMetadata(response.data))); + + const søknad = await MellomlagringSchema.parse(påbegyntSøknad); + const endring = await MellomlagringSchema.parse(påbegyntEndring); + + return { + søknad: isValidMellomlagring(søknad) ? søknad : undefined, + endring: isValidMellomlagring(endring) ? endring : undefined, + }; +}; + +const fixSøknadMetadata = (data: MellomlagringModel): MellomlagringModel => { + if (data.metadata && (data.metadata as any).updatedTimestemp) { + data.metadata.updatedTimestamp = (data.metadata as any).updatedTimestemp; + delete (data.metadata as any).updatedTimestemp; + } + return data; +}; diff --git a/apps/dine-pleiepenger/src/server/fetchDocumentStream.ts b/apps/dine-pleiepenger/src/server/fetchDocumentStream.ts new file mode 100644 index 0000000000..606b603b03 --- /dev/null +++ b/apps/dine-pleiepenger/src/server/fetchDocumentStream.ts @@ -0,0 +1,20 @@ +import { createChildLogger } from '@navikt/next-logger'; +import axios from 'axios'; +import { RequestContext } from '../types/RequestContext'; +import { ApiService } from './apiService'; +import { exchangeTokenAndPrepRequest } from './utils/exchangeTokenPrepRequest'; + +export async function fetchDocumentStream(path: string, context: RequestContext, service: ApiService): Promise { + const childLogger = createChildLogger(context.requestId); + + const { url, headers } = await exchangeTokenAndPrepRequest(service, context, path); + + childLogger.info(`Fetching document from ${url}`); + + const response = await axios.get(url, { + responseType: 'stream', + headers: { ...headers }, + }); + + return response.data; +} diff --git a/apps/dine-pleiepenger/src/server/utils/exchangeTokenPrepRequest.ts b/apps/dine-pleiepenger/src/server/utils/exchangeTokenPrepRequest.ts new file mode 100644 index 0000000000..f3333ce3b5 --- /dev/null +++ b/apps/dine-pleiepenger/src/server/utils/exchangeTokenPrepRequest.ts @@ -0,0 +1,48 @@ +import { grantTokenXOboToken, isInvalidTokenSet } from '@navikt/next-auth-wonderwall'; +import { createChildLogger } from '@navikt/next-logger'; +import { browserEnv, getServerEnv, isLocal } from '../../utils/env'; +import { ApiService } from '../apiService'; + +export const exchangeTokenAndPrepRequest = async ( + service: ApiService, + context, + path, +): Promise<{ + headers: any; + url: string; +}> => { + const childLogger = createChildLogger(context.requestId); + const serverEnv = getServerEnv(); + + const audience = + service === ApiService.k9Brukerdialog + ? serverEnv.NEXT_PUBLIC_BRUKERDIALOG_BACKEND_SCOPE! + : serverEnv.NEXT_PUBLIC_INNSYN_BACKEND_SCOPE!; + + let tokenX; + + if (!isLocal) { + childLogger.info(`Exchanging token for ${audience}`); + tokenX = await grantTokenXOboToken(context.accessToken, audience); + if (isInvalidTokenSet(tokenX)) { + throw new Error( + `Unable to exchange token for dine-pleiepenger-backend token, requestId: ${context.requestId}, reason: ${tokenX.message}`, + ); + } + } + + const serverUrl = + service === ApiService.k9Brukerdialog + ? browserEnv.NEXT_PUBLIC_API_URL_BRUKERDIALOG + : browserEnv.NEXT_PUBLIC_API_URL_INNSYN; + + return { + url: `${serverUrl}/${path}`, + headers: { + Authorization: `Bearer ${tokenX}`, + 'Content-Type': 'application/pdf', + 'x-request-id': context.requestId, + 'X-K9-Brukerdialog': serverEnv.NAIS_CLIENT_ID!, + }, + }; +}; diff --git a/apps/dine-pleiepenger/src/server/utils/isValidMellomlagring.ts b/apps/dine-pleiepenger/src/server/utils/isValidMellomlagring.ts new file mode 100644 index 0000000000..1faff5e1a1 --- /dev/null +++ b/apps/dine-pleiepenger/src/server/utils/isValidMellomlagring.ts @@ -0,0 +1,5 @@ +import { MellomlagringModel } from '../api-models/MellomlagringSchema'; + +export const isValidMellomlagring = (mellomlagring?: MellomlagringModel) => { + return mellomlagring !== undefined && Object.keys(mellomlagring).length > 0; +}; diff --git a/apps/dine-pleiepenger/src/storybook/components/StoryIntlProvider.tsx b/apps/dine-pleiepenger/src/storybook/components/StoryIntlProvider.tsx new file mode 100644 index 0000000000..6a1a16814e --- /dev/null +++ b/apps/dine-pleiepenger/src/storybook/components/StoryIntlProvider.tsx @@ -0,0 +1,19 @@ +import * as React from 'react'; +import { IntlProvider } from 'react-intl'; +import { messages } from '../../utils/message'; + +export interface IntlProviderProps { + locale: string; + children: any; + onError?: (error: any) => void; +} + +const StoryIntlProvider: React.FC = ({ children }: IntlProviderProps) => { + return ( + + {children} + + ); +}; + +export default StoryIntlProvider; diff --git a/apps/dine-pleiepenger/src/storybook/hooks/withDefaultPage.tsx b/apps/dine-pleiepenger/src/storybook/hooks/withDefaultPage.tsx new file mode 100644 index 0000000000..94fc348634 --- /dev/null +++ b/apps/dine-pleiepenger/src/storybook/hooks/withDefaultPage.tsx @@ -0,0 +1,9 @@ +import DefaultPage from '../../components/page-layout/default-page/DefaultPage'; + +export const withDefaultPage = (Story) => ( +
    + + + +
    +); diff --git a/apps/dine-pleiepenger/src/storybook/hooks/withEmptyPage.tsx b/apps/dine-pleiepenger/src/storybook/hooks/withEmptyPage.tsx new file mode 100644 index 0000000000..99041ce56e --- /dev/null +++ b/apps/dine-pleiepenger/src/storybook/hooks/withEmptyPage.tsx @@ -0,0 +1,9 @@ +import EmptyPage from '../../components/page-layout/empty-page/EmptyPage'; + +export const withEmptyPage = (Story) => ( +
    + + + +
    +); diff --git a/apps/dine-pleiepenger/src/storybook/hooks/withInnsynsdata.tsx b/apps/dine-pleiepenger/src/storybook/hooks/withInnsynsdata.tsx new file mode 100644 index 0000000000..b0af9c7610 --- /dev/null +++ b/apps/dine-pleiepenger/src/storybook/hooks/withInnsynsdata.tsx @@ -0,0 +1,18 @@ +import { InnsynsdataContextProvider } from '../../context/InnsynsdataContextProvider'; +import mockSøknader from '../../../api-mock-server/mockdata/soknader.json'; +import mockSøker from '../../../api-mock-server/mockdata/soknader.json'; +import { Søker } from '../../server/api-models/SøkerSchema'; +import { Søknad } from '../../types/Søknad'; +import dayjs from 'dayjs'; + +export const withInnsynsdata = (Story) => ( + + + +); diff --git a/apps/dine-pleiepenger/src/storybook/hooks/withIntl.tsx b/apps/dine-pleiepenger/src/storybook/hooks/withIntl.tsx new file mode 100644 index 0000000000..57d56abd99 --- /dev/null +++ b/apps/dine-pleiepenger/src/storybook/hooks/withIntl.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import StoryIntlProvider from '../components/StoryIntlProvider'; + +export const withIntl = (Story) => ( + + + +); diff --git a/apps/dine-pleiepenger/src/style/global.css b/apps/dine-pleiepenger/src/style/global.css new file mode 100644 index 0000000000..28104827c6 --- /dev/null +++ b/apps/dine-pleiepenger/src/style/global.css @@ -0,0 +1,16 @@ +@import 'tailwindcss/base'; +@import '@navikt/ds-css'; +@import 'tailwindcss/components'; +@import 'tailwindcss/utilities'; + +.contentWrapper { + margin-left: calc((100vw - 100%) / -2); + margin-right: calc((100vw - 100%) / -2); + padding: 2rem calc((100vw - 100%) / 2); + background-color: green; +} + +.navds-expansioncard__header, +.navds-expansioncard__content { + border: none; +} diff --git a/apps/dine-pleiepenger/src/svg/pleiepenger.tsx b/apps/dine-pleiepenger/src/svg/pleiepenger.tsx new file mode 100644 index 0000000000..900d42ccdc --- /dev/null +++ b/apps/dine-pleiepenger/src/svg/pleiepenger.tsx @@ -0,0 +1,35 @@ +const PleiepengerSVG = () => { + return ( + + ); +}; + +export default PleiepengerSVG; diff --git a/apps/dine-pleiepenger/src/translations/nb.json b/apps/dine-pleiepenger/src/translations/nb.json new file mode 100644 index 0000000000..2e2d0cee7b --- /dev/null +++ b/apps/dine-pleiepenger/src/translations/nb.json @@ -0,0 +1,44 @@ +{ + "sakstype.PP_SYKT_BARN": "Søknad om pleiepenger sykt barn", + "sakstype.PP_ETTERSENDELSE": "Ettersendelse av dokumenter - Pleiepenger sykt barn", + "sakstype.PP_SYKT_BARN_ENDRINGSMELDING": "Endringsmelding pleiepenger", + + "hvaSkjerInfo.tittel": "Hva skjer etter at du har sendt søknad til oss?", + "hvaSkjerInfo.innsent.endringsmelding.tittel": "Saksgang etter innsendt endringsmelding", + + "hvaSkjerInfo.legeerklæring.tittel": "Legeerklæring", + "hvaSkjerInfo.legeerklæring": "Vi sjekker om vi har fått legeerklæring fra deg. Hvis du ikke sendte den sammen med søknaden din, må du ettersende den til oss så snart du kan.", + + "hvaSkjerInfo.inntektsmelding.tittel": "Inntektsmelding fra arbeidsgiver", + "hvaSkjerInfo.inntektsmelding.avsnitt.1": "Hvis du er arbeidstaker, ser vi om arbeidsgiver har sendt oss inntektsmelding. Den trenger vi hvis du søker for første gang, eller det er mer enn fire uker opphold i perioden med pleiepenger.", + "hvaSkjerInfo.inntektsmelding.avsnitt.2.1": "Kontakt arbeidsgiveren din for å sikre at de sender inntektsmeldingen til oss. Du kan henvise arbeidsgiver til ", + "hvaSkjerInfo.inntektsmelding.avsnitt.2.2": "nav.no/arbeidsgiver/pleiepenger-barn", + "hvaSkjerInfo.inntektsmelding.avsnitt.2.3": " hvis de trenger mer informasjon.", + + "hvaSkjerInfo.behandling.tittel": "Vi behandler søknaden din", + "hvaSkjerInfo.behandling": "Når vi har fått legeerklæring og inntektsmelding kan vi behandle søknaden din. Vi kontakter deg hvis vi trenger flere opplysninger fra deg.", + + "hvaSkjerInfo.ferdigBehandlet.tittel": "Når søknaden er ferdig behandlet", + "hvaSkjerInfo.ferdigBehandlet.1": "Når vi har behandlet søknaden din, får du svar i ", + "hvaSkjerInfo.ferdigBehandlet.2": "dokumentoversikten på Min side", + "hvaSkjerInfo.ferdigBehandlet.3": ".", + + "hvaSkjerInfo.utbetaling.tittel": "Utbetaling", + "hvaSkjerInfo.utbetaling.1": "Hvis du skal få pleiepengene direkte fra NAV, utbetaler vi innen den 25. i måneden. Hvis du skal ha etterbetalt pleiepenger for måneder bakover i tid, er de vanligvis på konto innen 5 virkedager fra du fikk svar på søknaden. Du finner ", + "hvaSkjerInfo.utbetaling.2": "oversikt over utbetalingene dine her", + "hvaSkjerInfo.utbetaling.3": ".", + + "påbegyntSøknad.info.title": "Gå til påbegynt søknad", + "påbegyntSøknad.info": "Lagres til og med {datoNårSlettes}", + "påbegyntEndring.info.title": "Gå til påbegynt endringsmelding", + "påbegyntEndring.info": "Lagres til og med {datoNårSlettes}", + + "dokumenterTittel.PP_SYKT_BARN": "Søknad og eventuelle vedlegg i søknad", + "dokumenterTittel.PP_ETTERSENDELSE": "Ettersendelse og dokumenter", + "dokumenterTittel.PP_SYKT_BARN_ENDRINGSMELDING": "Endringsmelding", + "dokumenter.ingenDokumenter": "Dokumenter ikke tilgjengelig.", + "bekreftelseTilArbeidsgiver.title": "Bekreftelse til arbeidsgiver", + "bekreftelseTilArbeidsgiver.info": "Dette er en bekreftelse som du kan gi til arbeidsgiver. Den bekrefter at vi har fått søknad om pleiepenger fra deg, hvilken periode du har søkt pleiepenger og informasjon om når arbeidsgiver må sende inntektsmelding.", + "dokumenterSomKanLastesNed.tittel": "Dokumenter som kan lastes ned", + "dokumenterSomKanLastesNed.bekreftelse": "Bekreftelse til {organisasjonsnavn} (PDF)" +} diff --git a/apps/dine-pleiepenger/src/types/Arbeidsgiver.ts b/apps/dine-pleiepenger/src/types/Arbeidsgiver.ts new file mode 100644 index 0000000000..9afebaee3b --- /dev/null +++ b/apps/dine-pleiepenger/src/types/Arbeidsgiver.ts @@ -0,0 +1,26 @@ +import { z } from 'zod'; + +export const ArbeidsgiverSchema = z.object({ + erAnsatt: z.boolean(), + navn: z.string(), + organisasjonsnummer: z.string(), + sluttetFørSøknadsperiode: z.union([z.undefined(), z.boolean()]), +}); + +const OrganisasjonSchema = z.object({ + navn: z.string(), + skalJobbe: z.string(), + skalJobbeProsent: z.number(), + vetIkkeEkstrainfo: z.union([z.string(), z.null()]), + jobberNormaltTimer: z.number(), + organisasjonsnummer: z.string(), +}); + +export const OrganisasjonerSchema = z.object({ + organisasjoner: z.array(OrganisasjonSchema), +}); + +export const ArbeidsgivereSchema = z.union([z.array(ArbeidsgiverSchema), OrganisasjonerSchema]); + +export type Arbeidsgiver = z.infer; +export type Arbeidsgivere = z.infer; diff --git a/apps/dine-pleiepenger/src/types/Arbeidsgivere.ts b/apps/dine-pleiepenger/src/types/Arbeidsgivere.ts new file mode 100644 index 0000000000..33ac69c0bc --- /dev/null +++ b/apps/dine-pleiepenger/src/types/Arbeidsgivere.ts @@ -0,0 +1,5 @@ +import { Organisasjon } from './Organisasjon'; + +export interface Arbeidsgivere { + organisasjoner: Organisasjon[]; +} diff --git a/apps/dine-pleiepenger/src/types/Document.ts b/apps/dine-pleiepenger/src/types/Document.ts new file mode 100644 index 0000000000..42de9a3fbb --- /dev/null +++ b/apps/dine-pleiepenger/src/types/Document.ts @@ -0,0 +1,6 @@ +export interface Dokument { + tittel: string; + url: string; + filtype: string; + dokumentInfoId: string; +} diff --git a/apps/dine-pleiepenger/src/types/InnsynData.ts b/apps/dine-pleiepenger/src/types/InnsynData.ts new file mode 100644 index 0000000000..e2c67f83b0 --- /dev/null +++ b/apps/dine-pleiepenger/src/types/InnsynData.ts @@ -0,0 +1,10 @@ +import { Søker } from '../server/api-models/SøkerSchema'; +import { Mellomlagringer } from './Mellomlagring'; +import { Søknad } from './Søknad'; + +export interface Innsynsdata { + søker: Søker; + søknader: Søknad[]; + mellomlagring: Mellomlagringer; + svarfrist: Date; +} diff --git a/apps/dine-pleiepenger/src/types/Mellomlagring.ts b/apps/dine-pleiepenger/src/types/Mellomlagring.ts new file mode 100644 index 0000000000..cb80737827 --- /dev/null +++ b/apps/dine-pleiepenger/src/types/Mellomlagring.ts @@ -0,0 +1,16 @@ +export interface StorageMetadata { + updatedTimestamp: Date; +} + +export interface MellomlagringPSB { + metadata?: StorageMetadata; +} + +export interface MellomlagringEndring { + metadata?: StorageMetadata; +} + +export interface Mellomlagringer { + søknad?: MellomlagringPSB; + endring?: MellomlagringEndring; +} diff --git a/apps/dine-pleiepenger/src/types/Organisasjon.ts b/apps/dine-pleiepenger/src/types/Organisasjon.ts new file mode 100644 index 0000000000..2df16be9af --- /dev/null +++ b/apps/dine-pleiepenger/src/types/Organisasjon.ts @@ -0,0 +1,8 @@ +export interface Organisasjon { + navn: string; + skalJobbe: string; + skalJobbeProsent: number; + vetIkkeEkstrainfo?: string | null; + jobberNormaltTimer: number; + organisasjonsnummer: string; +} diff --git a/apps/dine-pleiepenger/src/types/RequestContext.ts b/apps/dine-pleiepenger/src/types/RequestContext.ts new file mode 100644 index 0000000000..2ed6a39f3e --- /dev/null +++ b/apps/dine-pleiepenger/src/types/RequestContext.ts @@ -0,0 +1,8 @@ +import { TokenPayload } from '../auth/withAuthentication'; + +export interface RequestContext { + payload: TokenPayload; + accessToken: string; + requestId: string; + sessionId: string; +} diff --git "a/apps/dine-pleiepenger/src/types/S\303\270knad.ts" "b/apps/dine-pleiepenger/src/types/S\303\270knad.ts" new file mode 100644 index 0000000000..26b75e610c --- /dev/null +++ "b/apps/dine-pleiepenger/src/types/S\303\270knad.ts" @@ -0,0 +1 @@ +export * from '../server/api-models/SøknadSchema'; diff --git a/apps/dine-pleiepenger/src/utils/apiUtils.ts b/apps/dine-pleiepenger/src/utils/apiUtils.ts new file mode 100644 index 0000000000..57c61a2e73 --- /dev/null +++ b/apps/dine-pleiepenger/src/utils/apiUtils.ts @@ -0,0 +1,19 @@ +import { NextApiRequest } from 'next'; +import { createDemoRequestContext, createRequestContext } from '../auth/withAuthentication'; +import { isLocal } from './env'; + +export const getXRequestId = (req: NextApiRequest): string => { + return (req.headers['x-request-id'] as string) || 'undefined-x-request-id'; +}; + +export const getContextForApiHandler = (req: NextApiRequest) => { + const context = !isLocal + ? createRequestContext(getXRequestId(req), req.headers['authorization']) + : createDemoRequestContext(req); + + if (!context || context === null) { + throw new Error('Access denied - context is undefined', { cause: 'context is undefined' }); + } + + return context; +}; diff --git a/apps/dine-pleiepenger/src/utils/appSentryLogger.ts b/apps/dine-pleiepenger/src/utils/appSentryLogger.ts new file mode 100644 index 0000000000..264e53d9e5 --- /dev/null +++ b/apps/dine-pleiepenger/src/utils/appSentryLogger.ts @@ -0,0 +1,5 @@ +import getSentryLoggerForApp from '@navikt/sif-common-sentry'; + +const appSentryLogger = getSentryLoggerForApp('sif-innsyn', ['sykdom-i-familien']); + +export default appSentryLogger; diff --git a/apps/dine-pleiepenger/src/utils/env.ts b/apps/dine-pleiepenger/src/utils/env.ts new file mode 100644 index 0000000000..243916db4b --- /dev/null +++ b/apps/dine-pleiepenger/src/utils/env.ts @@ -0,0 +1,117 @@ +import { z, ZodError } from 'zod'; + +export type PublicEnv = z.infer; +export const publicEnvSchema = z.object({ + NEXT_PUBLIC_BASE_PATH: z.string(), + NEXT_PUBLIC_LOGIN_URL: z.string(), + NEXT_PUBLIC_RUNTIME_ENVIRONMENT: z.union([z.string(), z.undefined()]), + NEXT_PUBLIC_API_URL_INNSYN: z.union([z.string(), z.undefined()]), + NEXT_PUBLIC_API_URL_BRUKERDIALOG: z.union([z.string(), z.undefined()]), + + /** Appstatus */ + NEXT_PUBLIC_APPSTATUS_PROJECT_ID: z.string(), + NEXT_PUBLIC_APPSTATUS_DATASET: z.string(), + + /** Lenker */ + NEXT_PUBLIC_DINE_UTBETALINGER: z.string(), + NEXT_PUBLIC_ENDRINGSDIALOG_URL: z.string(), + NEXT_PUBLIC_ENRINGER_DU_MA_GI_BESKJED_OM_INFO_URL: z.string(), + NEXT_PUBLIC_ETTERSENDELSE_PLEIEPENGER_URL: z.string(), + NEXT_PUBLIC_KLAGE_INFO_URL: z.string(), + NEXT_PUBLIC_MIN_SIDE_URL: z.string(), + NEXT_PUBLIC_PLEIEPENGER_URL: z.string(), + NEXT_PUBLIC_REGELVERK_INFO_URL: z.string(), + NEXT_PUBLIC_SAKBEHANDLINGSTID_INFO_URL: z.string(), + NEXT_PUBLIC_SAKSOVERSIKT: z.string(), + NEXT_PUBLIC_SKRIV_TIL_OSS: z.string(), + NEXT_PUBLIC_SYKDOM_I_FAMILIEN_INFO_URL: z.string(), + NEXT_PUBLIC_ARBEIDSGIVER_PLEIEPENGER_URL: z.string(), + NEXT_PUBLIC_MINSIDE_DOKUMENTOVERSIKT_URL: z.string(), + NEXT_PUBLIC_UTBETALINGSOVERSIKT_URL: z.string(), + + /** Features */ + NEXT_PUBLIC_FEATURE_SVARFRIST: z.union([z.literal('on'), z.literal('off'), z.undefined()]), +}); + +export type ServerEnv = z.infer; +export const serverEnvSchema = z.object({ + NEXT_PUBLIC_INNSYN_BACKEND_SCOPE: z.string(), + NEXT_PUBLIC_BRUKERDIALOG_BACKEND_SCOPE: z.string(), + IDPORTEN_CLIENT_ID: z.union([z.string(), z.undefined()]), + IDPORTEN_WELL_KNOWN_URL: z.union([z.string(), z.undefined()]), + TOKEN_X_WELL_KNOWN_URL: z.union([z.string(), z.undefined()]), + TOKEN_X_PRIVATE_JWK: z.union([z.string(), z.undefined()]), + TOKEN_X_CLIENT_ID: z.union([z.string(), z.undefined()]), + NAIS_CLIENT_ID: z.union([z.string(), z.undefined()]), +}); + +/** + * These envs are available in the browser. They are replaced during the bundling step by NextJS. + * + * They MUST be provided during the build step. + */ +export const browserEnv = publicEnvSchema.parse({ + NEXT_PUBLIC_BASE_PATH: process.env.NEXT_PUBLIC_BASE_PATH, + NEXT_PUBLIC_LOGIN_URL: process.env.NEXT_PUBLIC_LOGIN_URL, + NEXT_PUBLIC_RUNTIME_ENVIRONMENT: process.env.NEXT_PUBLIC_RUNTIME_ENVIRONMENT, + NEXT_PUBLIC_APPSTATUS_PROJECT_ID: process.env.NEXT_PUBLIC_APPSTATUS_PROJECT_ID, + NEXT_PUBLIC_APPSTATUS_DATASET: process.env.NEXT_PUBLIC_APPSTATUS_DATASET, + NEXT_PUBLIC_API_URL_BRUKERDIALOG: process.env.NEXT_PUBLIC_API_URL_BRUKERDIALOG, + NEXT_PUBLIC_API_URL_INNSYN: process.env.NEXT_PUBLIC_API_URL_INNSYN, + NEXT_PUBLIC_SAKBEHANDLINGSTID_INFO_URL: process.env.NEXT_PUBLIC_SAKBEHANDLINGSTID_INFO_URL, + NEXT_PUBLIC_SYKDOM_I_FAMILIEN_INFO_URL: process.env.NEXT_PUBLIC_SYKDOM_I_FAMILIEN_INFO_URL, + NEXT_PUBLIC_ETTERSENDELSE_PLEIEPENGER_URL: process.env.NEXT_PUBLIC_ETTERSENDELSE_PLEIEPENGER_URL, + NEXT_PUBLIC_KLAGE_INFO_URL: process.env.NEXT_PUBLIC_KLAGE_INFO_URL, + NEXT_PUBLIC_REGELVERK_INFO_URL: process.env.NEXT_PUBLIC_REGELVERK_INFO_URL, + NEXT_PUBLIC_MIN_SIDE_URL: process.env.NEXT_PUBLIC_MIN_SIDE_URL, + NEXT_PUBLIC_ENRINGER_DU_MA_GI_BESKJED_OM_INFO_URL: process.env.NEXT_PUBLIC_ENRINGER_DU_MA_GI_BESKJED_OM_INFO_URL, + NEXT_PUBLIC_PLEIEPENGER_URL: process.env.NEXT_PUBLIC_PLEIEPENGER_URL, + NEXT_PUBLIC_ENDRINGSDIALOG_URL: process.env.NEXT_PUBLIC_ENDRINGSDIALOG_URL, + NEXT_PUBLIC_SAKSOVERSIKT: process.env.NEXT_PUBLIC_SAKSOVERSIKT, + NEXT_PUBLIC_DINE_UTBETALINGER: process.env.NEXT_PUBLIC_DINE_UTBETALINGER, + NEXT_PUBLIC_SKRIV_TIL_OSS: process.env.NEXT_PUBLIC_SKRIV_TIL_OSS, + NEXT_PUBLIC_ARBEIDSGIVER_PLEIEPENGER_URL: process.env.NEXT_PUBLIC_ARBEIDSGIVER_PLEIEPENGER_URL, + NEXT_PUBLIC_MINSIDE_DOKUMENTOVERSIKT_URL: process.env.NEXT_PUBLIC_MINSIDE_DOKUMENTOVERSIKT_URL, + NEXT_PUBLIC_UTBETALINGSOVERSIKT_URL: process.env.NEXT_PUBLIC_UTBETALINGSOVERSIKT_URL, + NEXT_PUBLIC_FEATURE_SVARFRIST: process.env.NEXT_PUBLIC_FEATURE_SVARFRIST, +} satisfies Record); + +const getRawServerConfig = (): Partial => + ({ + // Provided by nais-*.yml + NEXT_PUBLIC_INNSYN_BACKEND_SCOPE: process.env.NEXT_PUBLIC_INNSYN_BACKEND_SCOPE, + NEXT_PUBLIC_BRUKERDIALOG_BACKEND_SCOPE: process.env.NEXT_PUBLIC_BRUKERDIALOG_BACKEND_SCOPE, + + // Provided by nais + IDPORTEN_CLIENT_ID: process.env.IDPORTEN_CLIENT_ID, + IDPORTEN_WELL_KNOWN_URL: process.env.IDPORTEN_WELL_KNOWN_URL, + TOKEN_X_WELL_KNOWN_URL: process.env.TOKEN_X_WELL_KNOWN_URL, + TOKEN_X_PRIVATE_JWK: process.env.TOKEN_X_PRIVATE_JWK, + TOKEN_X_CLIENT_ID: process.env.TOKEN_X_CLIENT_ID, + NAIS_CLIENT_ID: process.env.NAIS_CLIENT_ID, + }) satisfies Record; + +/** + * Server envs are lazy loaded and verified using Zod. + */ +export function getServerEnv(): ServerEnv & PublicEnv { + try { + return { ...serverEnvSchema.parse(getRawServerConfig()), ...publicEnvSchema.parse(browserEnv) }; + } catch (e) { + if (e instanceof ZodError) { + throw new Error( + `The following envs are missing: ${ + e.errors + .filter((it) => it.message === 'Required') + .map((it) => it.path.join('.')) + .join(', ') || 'None are missing, but zod is not happy. Look at cause' + }`, + { cause: e }, + ); + } else { + throw e; + } + } +} + +export const isLocal = process.env.NODE_ENV !== 'production'; diff --git a/apps/dine-pleiepenger/src/utils/fatures.ts b/apps/dine-pleiepenger/src/utils/fatures.ts new file mode 100644 index 0000000000..992693aaba --- /dev/null +++ b/apps/dine-pleiepenger/src/utils/fatures.ts @@ -0,0 +1,5 @@ +import { browserEnv } from './env'; + +export const Feature = { + HENT_SVARFRIST: browserEnv.NEXT_PUBLIC_FEATURE_SVARFRIST === 'on', +}; diff --git a/apps/dine-pleiepenger/src/utils/intlUtils.ts b/apps/dine-pleiepenger/src/utils/intlUtils.ts new file mode 100644 index 0000000000..b033fa83f2 --- /dev/null +++ b/apps/dine-pleiepenger/src/utils/intlUtils.ts @@ -0,0 +1,20 @@ +import { IntlShape } from 'react-intl'; + +const intlHelper = ( + intl: IntlShape, + id: string, + value?: Record, +): string => intl.formatMessage({ id }, value); + +export function typedIntlHelper(intl: IntlShape) { + return { + intlText: (id: Keys, values?: any): string => { + return intl.formatMessage({ id }, values); + }, + intlHtml: (id: Keys, values?: any): React.ReactNode => { + return intl.formatMessage({ id }, values); + }, + }; +} + +export default intlHelper; diff --git a/apps/dine-pleiepenger/src/utils/jsonParseUtils.ts b/apps/dine-pleiepenger/src/utils/jsonParseUtils.ts new file mode 100644 index 0000000000..744f44052a --- /dev/null +++ b/apps/dine-pleiepenger/src/utils/jsonParseUtils.ts @@ -0,0 +1,36 @@ +// const dateRegExp = new RegExp(/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/); + +import dayjs from 'dayjs'; +import utc from 'dayjs/plugin/utc'; + +dayjs.extend(utc); + +const isISODateString = (value: any): value is string => { + if (value && typeof value === 'string') { + const reg = /^\d{4}-\d{2}-\d{2}$/; + const match: RegExpMatchArray | null = value.match(reg); + return match !== null; + } else { + return false; + } +}; + +export const getDateFromString = (value?: string): Date | undefined => { + if (typeof value === 'string') { + if (isISODateString(value)) { + return dayjs.utc(value, 'YYYY-MM-DD').toDate(); + } + if (dayjs(value).isValid()) { + return dayjs.utc(value).toDate(); + } + } + return undefined; +}; + +export const parseMaybeDateStringToDate = (value: any): Date | undefined => { + const date = getDateFromString(value); + if (value && !date) { + throw new Error(`Could not parse date string: ${value}`); + } + return date; +}; diff --git a/apps/dine-pleiepenger/src/utils/message.ts b/apps/dine-pleiepenger/src/utils/message.ts new file mode 100644 index 0000000000..1e6cb71bb8 --- /dev/null +++ b/apps/dine-pleiepenger/src/utils/message.ts @@ -0,0 +1,28 @@ +import { DecoratorLocale } from '@navikt/nav-dekoratoren-moduler'; + +import messagesNb from '../translations/nb.json'; + +export type Messages = { + [K in DecoratorLocale]?: { [name: string]: string }; +}; + +export function flattenMessages(nestedMessages: object, prefix = '') { + return Object.keys(nestedMessages).reduce((messages, key) => { + // @ts-ignore + const value = nestedMessages[key]; + const prefixedKey = prefix ? `${prefix}.${key}` : key; + + if (typeof value === 'string') { + // @ts-ignore + messages[prefixedKey] = value; + } else { + Object.assign(messages, flattenMessages(value, prefixedKey)); + } + + return messages; + }, {}); +} + +export const messages: Messages = { + nb: flattenMessages(messagesNb), +}; diff --git "a/apps/dine-pleiepenger/src/utils/s\303\270knadUtils.ts" "b/apps/dine-pleiepenger/src/utils/s\303\270knadUtils.ts" new file mode 100644 index 0000000000..1170bfa9b7 --- /dev/null +++ "b/apps/dine-pleiepenger/src/utils/s\303\270knadUtils.ts" @@ -0,0 +1,34 @@ +import dayjs from 'dayjs'; +import timezone from 'dayjs/plugin/timezone'; +import utc from 'dayjs/plugin/utc'; +import { Søknad, Søknadstype } from '../types/Søknad'; + +require('dayjs/locale/nb'); + +dayjs.extend(utc); +dayjs.extend(timezone); +dayjs.locale('nb'); + +export const getSøknadMottattDatoValue = (søknad: Søknad): Date | string => { + switch (søknad.søknadstype) { + case Søknadstype.PP_SYKT_BARN: + case Søknadstype.PP_ETTERSENDELSE: + return søknad.søknad.mottatt; + case Søknadstype.PP_SYKT_BARN_ENDRINGSMELDING: + return søknad.opprettet; + } +}; + +export const getSøknadMottattDato = (søknad: Søknad): Date | undefined => { + const mottattDato = getSøknadMottattDatoValue(søknad); + return dayjs(mottattDato).isValid() ? dayjs(mottattDato).toDate() : undefined; +}; + +export const formatSøknadMottattDato = (date: Date) => { + return dayjs(date).tz('Europe/Oslo').format('dddd D. MMMM YYYY, [kl.] HH:mm'); +}; + +export const sortSøknadEtterOpprettetDato = (a: Søknad, b: Søknad, desc: boolean = true): number => { + const direction = desc ? 1 : -1; + return new Date(a.opprettet) < new Date(b.opprettet) ? direction : direction * -1; +}; diff --git a/apps/dine-pleiepenger/src/utils/userRequestId.ts b/apps/dine-pleiepenger/src/utils/userRequestId.ts new file mode 100644 index 0000000000..d63ab0df61 --- /dev/null +++ b/apps/dine-pleiepenger/src/utils/userRequestId.ts @@ -0,0 +1,10 @@ +import { v4 as uuidv4 } from 'uuid'; + +let userRequestId: string | undefined; + +export function getUserRequestId(): string { + if (!userRequestId) { + userRequestId = uuidv4(); + } + return userRequestId; +} diff --git a/apps/dine-pleiepenger/src/utils/userSessionId.ts b/apps/dine-pleiepenger/src/utils/userSessionId.ts new file mode 100644 index 0000000000..3ef8303031 --- /dev/null +++ b/apps/dine-pleiepenger/src/utils/userSessionId.ts @@ -0,0 +1,9 @@ +import { GetServerSidePropsContext, NextApiRequest } from 'next'; + +export function getSessionId(req: GetServerSidePropsContext['req'] | NextApiRequest): string { + const sessionId = req.cookies['next-session-id']; + // if (!sessionId) { + // throw new Error('Session ID not found'); + // } + return sessionId || 'fakeSession'; +} diff --git a/apps/dine-pleiepenger/tailwind.config.ts b/apps/dine-pleiepenger/tailwind.config.ts new file mode 100644 index 0000000000..450f41c423 --- /dev/null +++ b/apps/dine-pleiepenger/tailwind.config.ts @@ -0,0 +1,8 @@ +module.exports = { + content: ['src/**/*.{tsx,ts}'], + theme: { + extend: {}, + }, + plugins: [], + presets: [require('@navikt/ds-tailwind')], +}; diff --git a/apps/dine-pleiepenger/tsconfig.json b/apps/dine-pleiepenger/tsconfig.json new file mode 100644 index 0000000000..b94367195b --- /dev/null +++ b/apps/dine-pleiepenger/tsconfig.json @@ -0,0 +1,25 @@ +{ + "extends": "../../packages/config/tsconfig-apps.json", + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "outDir": "build/dist", + "typeRoots": ["../../node_modules/@types", "./node_modules/@types"], + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + }, + "allowJs": true, + "strict": false, + "incremental": true, + "isolatedModules": true, + "resolveJsonModule": true, + "jsx": "preserve" + }, + "exclude": ["node_modules", "pages/build", "**.js", "dist"], + "include": ["src/**/*", "public"] +} diff --git a/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/CHANGELOG.md b/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/CHANGELOG.md index 8ec502ea2a..45862ad50f 100644 --- a/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/CHANGELOG.md +++ b/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/CHANGELOG.md @@ -1,638 +1,793 @@ # @navikt/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn +## 1.21.4 + +### Patch Changes + +- Patch oppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.24.5 + - @navikt/sif-common-formik-ds@1.6.2 + - @navikt/sif-common-soknad-ds@10.12.2 + - @navikt/sif-common-core-ds@9.12.2 + - @navikt/sif-common-hooks@0.1.3 + - @navikt/sif-common-utils@3.43.5 + +## 1.21.3 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker +- Updated dependencies [e7bf8d1] + - @navikt/sif-common-amplitude@2.24.4 + - @navikt/sif-common-formik-ds@1.6.1 + - @navikt/sif-common-soknad-ds@10.12.1 + - @navikt/sif-common-core-ds@9.12.1 + - @navikt/sif-common-sentry@0.25.4 + - @navikt/sif-common-utils@3.43.4 + +## 1.21.2 + +### Patch Changes + +- Updated dependencies [573c55d] + - @navikt/sif-common-formik-ds@1.6.0 + - @navikt/sif-common-soknad-ds@10.12.0 + - @navikt/sif-common-core-ds@9.12.0 + +## 1.21.1 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer +- Updated dependencies [406b044] + - @navikt/sif-common-amplitude@2.24.3 + - @navikt/sif-common-formik-ds@1.5.3 + - @navikt/sif-common-soknad-ds@10.11.1 + - @navikt/sif-common-core-ds@9.11.3 + - @navikt/sif-common-sentry@0.25.3 + - @navikt/sif-common-utils@3.43.3 + +## 1.21.0 + +### Minor Changes + +- 2331115: Oppdatert react-router-dom. Endringer i ettersending og pleiepenger på grunn av feil bruk av navigate i ny versjon. + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [2331115] +- Updated dependencies [6084e23] + - @navikt/sif-common-soknad-ds@10.11.0 + - @navikt/sif-app-register@0.0.4 + - @navikt/sif-common-amplitude@2.24.2 + - @navikt/sif-common-core-ds@9.11.2 + - @navikt/sif-common-formik-ds@1.5.2 + - @navikt/sif-common-hooks@0.1.2 + - @navikt/sif-common-sentry@0.25.2 + - @navikt/sif-common-utils@3.43.2 + +## 1.20.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [295d3ad] + - @navikt/sif-app-register@0.0.3 + - @navikt/sif-common-amplitude@2.24.1 + - @navikt/sif-common-core-ds@9.11.1 + - @navikt/sif-common-formik-ds@1.5.1 + - @navikt/sif-common-hooks@0.1.1 + - @navikt/sif-common-sentry@0.25.1 + - @navikt/sif-common-soknad-ds@10.10.1 + - @navikt/sif-common-utils@3.43.1 + +## 1.20.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +### Patch Changes + +- Updated dependencies [53b47be] + - @navikt/sif-common-amplitude@2.24.0 + - @navikt/sif-common-formik-ds@1.5.0 + - @navikt/sif-common-soknad-ds@10.10.0 + - @navikt/sif-common-core-ds@9.11.0 + - @navikt/sif-common-sentry@0.25.0 + - @navikt/sif-common-utils@3.43.0 + +## 1.19.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +### Patch Changes + +- Updated dependencies + - @navikt/sif-common-amplitude@2.23.0 + - @navikt/sif-common-formik-ds@1.4.0 + - @navikt/sif-common-soknad-ds@10.9.0 + - @navikt/sif-common-core-ds@9.10.0 + - @navikt/sif-common-sentry@0.24.0 + - @navikt/sif-common-hooks@0.1.0 + - @navikt/sif-common-utils@3.42.0 + +## 1.18.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + +### Patch Changes + +- Updated dependencies [d31f28ec] + - @navikt/sif-common-amplitude@2.22.0 + - @navikt/sif-common-formik-ds@1.3.0 + - @navikt/sif-common-soknad-ds@10.8.0 + - @navikt/sif-common-core-ds@9.9.0 + - @navikt/sif-common-sentry@0.23.0 + - @navikt/sif-common-utils@3.41.0 + +## 1.17.19 + +### Patch Changes + +- 6d3b3cbe: Minor og patch oppdateringer + nextjs major -> 14 +- Updated dependencies [6d3b3cbe] + - @navikt/sif-common-formik-ds@1.2.3 + - @navikt/sif-common-soknad-ds@10.7.11 + - @navikt/sif-common-core-ds@9.8.11 + - @navikt/sif-common-sentry@0.22.7 + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-utils@3.40.11 + +## 1.17.18 + +### Patch Changes + +- Updated dependencies [19c424d7] + - @navikt/sif-app-register@0.0.2 + ## 1.17.17 ### Patch Changes -- 09ae5814: Patch-oppdateringer -- Updated dependencies [09ae5814] - - @navikt/sif-common-formik-ds@1.2.2 - - @navikt/sif-common-soknad-ds@10.7.10 - - @navikt/sif-common-core-ds@9.8.10 - - @navikt/sif-common-utils@3.40.11 +- 09ae5814: Patch-oppdateringer +- Updated dependencies [09ae5814] + - @navikt/sif-common-formik-ds@1.2.2 + - @navikt/sif-common-soknad-ds@10.7.10 + - @navikt/sif-common-core-ds@9.8.10 + - @navikt/sif-common-utils@3.40.11 ## 1.17.16 ### Patch Changes -- b4d45cf9: Diverse mindre pakkeoppdateringer -- Updated dependencies [b4d45cf9] - - @navikt/sif-common-amplitude@2.21.9 - - @navikt/sif-common-formik-ds@1.2.1 - - @navikt/sif-common-soknad-ds@10.7.9 - - @navikt/sif-common-core-ds@9.8.9 - - @navikt/sif-common-sentry@0.22.6 - - @navikt/sif-common-utils@3.40.10 +- b4d45cf9: Diverse mindre pakkeoppdateringer +- Updated dependencies [b4d45cf9] + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-formik-ds@1.2.1 + - @navikt/sif-common-soknad-ds@10.7.9 + - @navikt/sif-common-core-ds@9.8.9 + - @navikt/sif-common-sentry@0.22.6 + - @navikt/sif-common-utils@3.40.10 ## 1.17.15 ### Patch Changes -- Updated dependencies [e815a9a8] - - @navikt/sif-common-formik-ds@1.2.0 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [e815a9a8] + - @navikt/sif-common-formik-ds@1.2.0 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-soknad-ds@10.7.8 ## 1.17.14 ### Patch Changes -- Updated dependencies [afe04538] - - @navikt/sif-common-formik-ds@1.1.6 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [afe04538] + - @navikt/sif-common-formik-ds@1.1.6 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-soknad-ds@10.7.8 ## 1.17.13 ### Patch Changes -- Updated dependencies [1d7c508f] - - @navikt/sif-common-formik-ds@1.1.5 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [1d7c508f] + - @navikt/sif-common-formik-ds@1.1.5 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-soknad-ds@10.7.8 ## 1.17.12 ### Patch Changes -- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 -- Updated dependencies [5c44f78b] -- Updated dependencies [cb7e6653] - - @navikt/sif-common-formik-ds@1.1.4 - - @navikt/sif-common-amplitude@2.21.8 - - @navikt/sif-common-soknad-ds@10.7.8 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-utils@3.40.9 +- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 +- Updated dependencies [5c44f78b] +- Updated dependencies [cb7e6653] + - @navikt/sif-common-formik-ds@1.1.4 + - @navikt/sif-common-amplitude@2.21.8 + - @navikt/sif-common-soknad-ds@10.7.8 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-utils@3.40.9 ## 1.17.11 ### Patch Changes -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.7 - - @navikt/sif-common-formik-ds@1.1.3 - - @navikt/sif-common-soknad-ds@10.7.7 - - @navikt/sif-common-core-ds@9.8.7 - - @navikt/sif-common-sentry@0.22.5 - - @navikt/sif-common-utils@3.40.8 +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.7 + - @navikt/sif-common-formik-ds@1.1.3 + - @navikt/sif-common-soknad-ds@10.7.7 + - @navikt/sif-common-core-ds@9.8.7 + - @navikt/sif-common-sentry@0.22.5 + - @navikt/sif-common-utils@3.40.8 ## 1.17.10 ### Patch Changes -- Pakkeoppdatering som fikser datepicker + modal bug -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.6 - - @navikt/sif-common-formik-ds@1.1.2 - - @navikt/sif-common-soknad-ds@10.7.6 - - @navikt/sif-common-core-ds@9.8.6 - - @navikt/sif-common-utils@3.40.7 +- Pakkeoppdatering som fikser datepicker + modal bug +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.6 + - @navikt/sif-common-formik-ds@1.1.2 + - @navikt/sif-common-soknad-ds@10.7.6 + - @navikt/sif-common-core-ds@9.8.6 + - @navikt/sif-common-utils@3.40.7 ## 1.17.9 ### Patch Changes -- 71381778: Patch pakkeoppdateringer -- Updated dependencies [71381778] - - @navikt/sif-common-amplitude@2.21.5 - - @navikt/sif-common-formik-ds@1.1.1 - - @navikt/sif-common-soknad-ds@10.7.5 - - @navikt/sif-common-core-ds@9.8.5 - - @navikt/sif-common-sentry@0.22.4 - - @navikt/sif-common-utils@3.40.6 +- 71381778: Patch pakkeoppdateringer +- Updated dependencies [71381778] + - @navikt/sif-common-amplitude@2.21.5 + - @navikt/sif-common-formik-ds@1.1.1 + - @navikt/sif-common-soknad-ds@10.7.5 + - @navikt/sif-common-core-ds@9.8.5 + - @navikt/sif-common-sentry@0.22.4 + - @navikt/sif-common-utils@3.40.6 ## 1.17.8 ### Patch Changes -- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds -- Updated dependencies [60eb7ee9] - - @navikt/sif-common-formik-ds@1.1.0 - - @navikt/sif-common-amplitude@2.21.4 - - @navikt/sif-common-soknad-ds@10.7.4 - - @navikt/sif-common-core-ds@9.8.4 - - @navikt/sif-common-sentry@0.22.3 - - @navikt/sif-common-utils@3.40.5 +- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds +- Updated dependencies [60eb7ee9] + - @navikt/sif-common-formik-ds@1.1.0 + - @navikt/sif-common-amplitude@2.21.4 + - @navikt/sif-common-soknad-ds@10.7.4 + - @navikt/sif-common-core-ds@9.8.4 + - @navikt/sif-common-sentry@0.22.3 + - @navikt/sif-common-utils@3.40.5 ## 1.17.7 ### Patch Changes -- 2a1e2526: Pakkeoppdateringer -- Updated dependencies [2a1e2526] - - @navikt/sif-common-amplitude@2.21.3 - - @navikt/sif-common-formik-ds@1.0.5 - - @navikt/sif-common-soknad-ds@10.7.3 - - @navikt/sif-common-core-ds@9.8.3 - - @navikt/sif-common-sentry@0.22.2 - - @navikt/sif-common-utils@3.40.4 +- 2a1e2526: Pakkeoppdateringer +- Updated dependencies [2a1e2526] + - @navikt/sif-common-amplitude@2.21.3 + - @navikt/sif-common-formik-ds@1.0.5 + - @navikt/sif-common-soknad-ds@10.7.3 + - @navikt/sif-common-core-ds@9.8.3 + - @navikt/sif-common-sentry@0.22.2 + - @navikt/sif-common-utils@3.40.4 ## 1.17.6 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.2 - - @navikt/sif-common-formik-ds@1.0.4 - - @navikt/sif-common-soknad-ds@10.7.2 - - @navikt/sif-common-core-ds@9.8.2 - - @navikt/sif-common-utils@3.40.3 +- Pakkeoppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.2 + - @navikt/sif-common-formik-ds@1.0.4 + - @navikt/sif-common-soknad-ds@10.7.2 + - @navikt/sif-common-core-ds@9.8.2 + - @navikt/sif-common-utils@3.40.3 ## 1.17.5 ### Patch Changes -- 81e7e155: Bruke BodyLong i alle SifGuidePanel -- Updated dependencies [81e7e155] - - @navikt/sif-common-formik-ds@1.0.3 - - @navikt/sif-common-core-ds@9.8.1 - - @navikt/sif-common-utils@3.40.2 - - @navikt/sif-common-soknad-ds@10.7.1 +- 81e7e155: Bruke BodyLong i alle SifGuidePanel +- Updated dependencies [81e7e155] + - @navikt/sif-common-formik-ds@1.0.3 + - @navikt/sif-common-core-ds@9.8.1 + - @navikt/sif-common-utils@3.40.2 + - @navikt/sif-common-soknad-ds@10.7.1 ## 1.17.4 ### Patch Changes -- Updated dependencies [c129755f] - - @navikt/sif-common-formik-ds@1.0.2 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [c129755f] + - @navikt/sif-common-formik-ds@1.0.2 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 1.17.3 ### Patch Changes -- Updated dependencies [92fbd8f8] - - @navikt/sif-common-formik-ds@1.0.1 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [92fbd8f8] + - @navikt/sif-common-formik-ds@1.0.1 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 1.17.2 ### Patch Changes -- Updated dependencies [fd07933f] -- Updated dependencies [e2967240] - - @navikt/sif-common-formik-ds@1.0.0 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [fd07933f] +- Updated dependencies [e2967240] + - @navikt/sif-common-formik-ds@1.0.0 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 1.17.1 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies [55e1f323] -- Updated dependencies - - @navikt/sif-common-core-ds@9.7.0 - - @navikt/sif-common-amplitude@2.21.1 - - @navikt/sif-common-formik-ds@0.6.1 - - @navikt/sif-common-soknad-ds@10.7.1 - - @navikt/sif-common-sentry@0.22.1 - - @navikt/sif-common-utils@3.40.1 +- Pakkeoppdateringer +- Updated dependencies [55e1f323] +- Updated dependencies + - @navikt/sif-common-core-ds@9.7.0 + - @navikt/sif-common-amplitude@2.21.1 + - @navikt/sif-common-formik-ds@0.6.1 + - @navikt/sif-common-soknad-ds@10.7.1 + - @navikt/sif-common-sentry@0.22.1 + - @navikt/sif-common-utils@3.40.1 ## 1.17.0 ### Minor Changes -- 96810cd6: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. +- 96810cd6: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. ### Patch Changes -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] - - @navikt/sif-common-formik-ds@0.5.0 - - @navikt/sif-common-amplitude@2.21.0 - - @navikt/sif-common-soknad-ds@10.6.0 - - @navikt/sif-common-core-ds@9.5.0 - - @navikt/sif-common-sentry@0.22.0 - - @navikt/sif-common-utils@3.40.0 +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] + - @navikt/sif-common-formik-ds@0.5.0 + - @navikt/sif-common-amplitude@2.21.0 + - @navikt/sif-common-soknad-ds@10.6.0 + - @navikt/sif-common-core-ds@9.5.0 + - @navikt/sif-common-sentry@0.22.0 + - @navikt/sif-common-utils@3.40.0 ## 1.16.0 ### Minor Changes -- ad5092d1: Sette document.title basert på søknadsnavn og stegnavn -- 4cde9eca: Redirect til min side ved Fortsett senere +- ad5092d1: Sette document.title basert på søknadsnavn og stegnavn +- 4cde9eca: Redirect til min side ved Fortsett senere ### Patch Changes -- Updated dependencies [ad5092d1] - - @navikt/sif-common-soknad-ds@10.5.0 +- Updated dependencies [ad5092d1] + - @navikt/sif-common-soknad-ds@10.5.0 ## 1.15.0 ### Minor Changes -- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer +- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer ### Patch Changes -- Updated dependencies [c976be57] - - @navikt/sif-common-amplitude@2.20.0 - - @navikt/sif-common-formik-ds@0.4.0 - - @navikt/sif-common-soknad-ds@10.4.0 - - @navikt/sif-common-core-ds@9.4.0 - - @navikt/sif-common-sentry@0.21.0 - - @navikt/sif-common-utils@3.39.0 +- Updated dependencies [c976be57] + - @navikt/sif-common-amplitude@2.20.0 + - @navikt/sif-common-formik-ds@0.4.0 + - @navikt/sif-common-soknad-ds@10.4.0 + - @navikt/sif-common-core-ds@9.4.0 + - @navikt/sif-common-sentry@0.21.0 + - @navikt/sif-common-utils@3.39.0 ## 1.14.0 ### Minor Changes -- 026fc373: Oppdatere til versjon 5 av designsystemet aksel +- 026fc373: Oppdatere til versjon 5 av designsystemet aksel ### Patch Changes -- Updated dependencies [41d0a03c] -- Updated dependencies [026fc373] - - @navikt/sif-common-formik-ds@0.3.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-core-ds@9.3.0 +- Updated dependencies [41d0a03c] +- Updated dependencies [026fc373] + - @navikt/sif-common-formik-ds@0.3.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-core-ds@9.3.0 ## 1.13.0 ### Minor Changes -- 1ebdcb58: Pakkeoppdateringer -- Pakkeoppdateringer +- 1ebdcb58: Pakkeoppdateringer +- Pakkeoppdateringer ### Patch Changes -- Updated dependencies - - @navikt/sif-common-amplitude@2.19.0 - - @navikt/sif-common-formik-ds@0.24.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-core-ds@9.3.0 - - @navikt/sif-common-sentry@0.20.0 - - @navikt/sif-common-utils@3.38.0 +- Updated dependencies + - @navikt/sif-common-amplitude@2.19.0 + - @navikt/sif-common-formik-ds@0.24.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-core-ds@9.3.0 + - @navikt/sif-common-sentry@0.20.0 + - @navikt/sif-common-utils@3.38.0 ## 1.12.3 ### Patch Changes -- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react -- Updated dependencies [0e25e34f] - - @navikt/sif-common-amplitude@2.18.1 - - @navikt/sif-common-formik-ds@0.23.3 - - @navikt/sif-common-soknad-ds@10.1.3 - - @navikt/sif-common-core-ds@9.1.3 - - @navikt/sif-common-sentry@0.19.1 - - @navikt/sif-common-utils@3.37.1 +- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react +- Updated dependencies [0e25e34f] + - @navikt/sif-common-amplitude@2.18.1 + - @navikt/sif-common-formik-ds@0.23.3 + - @navikt/sif-common-soknad-ds@10.1.3 + - @navikt/sif-common-core-ds@9.1.3 + - @navikt/sif-common-sentry@0.19.1 + - @navikt/sif-common-utils@3.37.1 ## 1.12.2 ### Patch Changes -- 7e9863c7: Oppdatert versjon av pakker for test og bygg -- Updated dependencies [7e9863c7] - - @navikt/sif-common-formik-ds@0.23.2 - - @navikt/sif-common-soknad-ds@10.1.2 - - @navikt/sif-common-core-ds@9.1.2 +- 7e9863c7: Oppdatert versjon av pakker for test og bygg +- Updated dependencies [7e9863c7] + - @navikt/sif-common-formik-ds@0.23.2 + - @navikt/sif-common-soknad-ds@10.1.2 + - @navikt/sif-common-core-ds@9.1.2 ## 1.12.1 ### Patch Changes -- cc50b642: Diverse mindre pakkeoppdateringer -- Updated dependencies [cc50b642] - - @navikt/sif-common-formik-ds@0.23.1 - - @navikt/sif-common-soknad-ds@10.1.1 - - @navikt/sif-common-core-ds@9.1.1 +- cc50b642: Diverse mindre pakkeoppdateringer +- Updated dependencies [cc50b642] + - @navikt/sif-common-formik-ds@0.23.1 + - @navikt/sif-common-soknad-ds@10.1.1 + - @navikt/sif-common-core-ds@9.1.1 ## 1.12.0 ### Minor Changes -- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene +- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene ### Patch Changes -- Updated dependencies [ea79f31c] - - @navikt/sif-common-formik-ds@0.23.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-core-ds@9.3.0 - - @navikt/sif-common-sentry@0.19.0 +- Updated dependencies [ea79f31c] + - @navikt/sif-common-formik-ds@0.23.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-core-ds@9.3.0 + - @navikt/sif-common-sentry@0.19.0 ## 1.11.0 ### Minor Changes -- d3ae045: Oppdatere minor og patch +- d3ae045: Oppdatere minor og patch ### Patch Changes -- Updated dependencies [d3ae045] - - @navikt/sif-common-amplitude@2.18.0 - - @navikt/sif-common-formik-ds@0.22.0 - - @navikt/sif-common-soknad-ds@10.0.0 - - @navikt/sif-common-core-ds@9.0.0 - - @navikt/sif-common-sentry@0.18.0 - - @navikt/sif-common-utils@3.37.0 +- Updated dependencies [d3ae045] + - @navikt/sif-common-amplitude@2.18.0 + - @navikt/sif-common-formik-ds@0.22.0 + - @navikt/sif-common-soknad-ds@10.0.0 + - @navikt/sif-common-core-ds@9.0.0 + - @navikt/sif-common-sentry@0.18.0 + - @navikt/sif-common-utils@3.37.0 ## 1.10.1 ### Patch Changes -- ebebab7: Pakkeoppdateringer -- Updated dependencies [ebebab7] - - @navikt/sif-common-formik-ds@0.21.1 - - @navikt/sif-common-soknad-ds@9.0.1 - - @navikt/sif-common-core-ds@8.0.1 - - @navikt/sif-common-utils@3.36.1 +- ebebab7: Pakkeoppdateringer +- Updated dependencies [ebebab7] + - @navikt/sif-common-formik-ds@0.21.1 + - @navikt/sif-common-soknad-ds@9.0.1 + - @navikt/sif-common-core-ds@8.0.1 + - @navikt/sif-common-utils@3.36.1 ## 1.10.0 ### Minor Changes -- 5beb8c9: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. +- 5beb8c9: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. ### Patch Changes -- Updated dependencies [5beb8c9] - - @navikt/sif-common-amplitude@2.17.0 - - @navikt/sif-common-formik-ds@0.21.0 - - @navikt/sif-common-soknad-ds@9.0.0 - - @navikt/sif-common-core-ds@8.0.0 - - @navikt/sif-common-sentry@0.17.0 - - @navikt/sif-common-utils@3.36.0 +- Updated dependencies [5beb8c9] + - @navikt/sif-common-amplitude@2.17.0 + - @navikt/sif-common-formik-ds@0.21.0 + - @navikt/sif-common-soknad-ds@9.0.0 + - @navikt/sif-common-core-ds@8.0.0 + - @navikt/sif-common-sentry@0.17.0 + - @navikt/sif-common-utils@3.36.0 ## 1.9.2 ### Patch Changes -- bd6fae3: Pakkeoppdateringer -- Updated dependencies [bd6fae3] - - @navikt/sif-common-amplitude@2.16.2 - - @navikt/sif-common-formik-ds@0.20.2 - - @navikt/sif-common-soknad-ds@7.4.2 - - @navikt/sif-common-core-ds@7.4.2 - - @navikt/sif-common-sentry@0.16.2 - - @navikt/sif-common-utils@3.34.2 +- bd6fae3: Pakkeoppdateringer +- Updated dependencies [bd6fae3] + - @navikt/sif-common-amplitude@2.16.2 + - @navikt/sif-common-formik-ds@0.20.2 + - @navikt/sif-common-soknad-ds@7.4.2 + - @navikt/sif-common-core-ds@7.4.2 + - @navikt/sif-common-sentry@0.16.2 + - @navikt/sif-common-utils@3.34.2 ## 1.9.1 ### Patch Changes -- 4d1cb8b: Pakkeoppdateringer -- Updated dependencies [4d1cb8b] - - @navikt/sif-common-amplitude@2.16.1 - - @navikt/sif-common-formik-ds@0.20.1 - - @navikt/sif-common-soknad-ds@7.4.1 - - @navikt/sif-common-core-ds@7.4.1 - - @navikt/sif-common-sentry@0.16.1 - - @navikt/sif-common-utils@3.34.1 +- 4d1cb8b: Pakkeoppdateringer +- Updated dependencies [4d1cb8b] + - @navikt/sif-common-amplitude@2.16.1 + - @navikt/sif-common-formik-ds@0.20.1 + - @navikt/sif-common-soknad-ds@7.4.1 + - @navikt/sif-common-core-ds@7.4.1 + - @navikt/sif-common-sentry@0.16.1 + - @navikt/sif-common-utils@3.34.1 ## 1.9.0 ### Minor Changes -- ae1fdbf7: Pakkeoppdateringer +- ae1fdbf7: Pakkeoppdateringer ### Patch Changes -- Updated dependencies [a1e69480] -- Updated dependencies [ae1fdbf7] - - @navikt/sif-common-core-ds@8.0.0 - - @navikt/sif-common-amplitude@2.16.0 - - @navikt/sif-common-formik-ds@0.20.0 - - @navikt/sif-common-soknad-ds@8.0.0 - - @navikt/sif-common-sentry@0.16.0 - - @navikt/sif-common-utils@3.34.0 +- Updated dependencies [a1e69480] +- Updated dependencies [ae1fdbf7] + - @navikt/sif-common-core-ds@8.0.0 + - @navikt/sif-common-amplitude@2.16.0 + - @navikt/sif-common-formik-ds@0.20.0 + - @navikt/sif-common-soknad-ds@8.0.0 + - @navikt/sif-common-sentry@0.16.0 + - @navikt/sif-common-utils@3.34.0 ## 1.8.0 ### Minor Changes -- 7d66a381: Oppdatere pakker, fjerne snyk +- 7d66a381: Oppdatere pakker, fjerne snyk ### Patch Changes -- Updated dependencies [7d66a381] - - @navikt/sif-common-amplitude@2.15.0 - - @navikt/sif-common-formik-ds@0.19.0 - - @navikt/sif-common-soknad-ds@8.0.0 - - @navikt/sif-common-core-ds@8.0.0 - - @navikt/sif-common-sentry@0.15.0 - - @navikt/sif-common-utils@3.33.0 +- Updated dependencies [7d66a381] + - @navikt/sif-common-amplitude@2.15.0 + - @navikt/sif-common-formik-ds@0.19.0 + - @navikt/sif-common-soknad-ds@8.0.0 + - @navikt/sif-common-core-ds@8.0.0 + - @navikt/sif-common-sentry@0.15.0 + - @navikt/sif-common-utils@3.33.0 ## 1.7.5 ### Patch Changes -- 161dc18: Bugfix - harBekreftetOpplysninger manglet +- 161dc18: Bugfix - harBekreftetOpplysninger manglet ## 1.7.4 ### Patch Changes -- 38c8814: Pakkeoppdateringer -- Updated dependencies [38c8814] - - @navikt/sif-common-amplitude@2.14.1 - - @navikt/sif-common-formik-ds@0.18.2 - - @navikt/sif-common-soknad-ds@7.2.2 - - @navikt/sif-common-core-ds@7.2.2 - - @navikt/sif-common-sentry@0.14.1 - - @navikt/sif-common-utils@3.32.2 +- 38c8814: Pakkeoppdateringer +- Updated dependencies [38c8814] + - @navikt/sif-common-amplitude@2.14.1 + - @navikt/sif-common-formik-ds@0.18.2 + - @navikt/sif-common-soknad-ds@7.2.2 + - @navikt/sif-common-core-ds@7.2.2 + - @navikt/sif-common-sentry@0.14.1 + - @navikt/sif-common-utils@3.32.2 ## 1.7.3 ### Patch Changes -- e477946: Fiks logout url +- e477946: Fiks logout url ## 1.7.2 ### Patch Changes -- effa925: Endret ingress til Q +- effa925: Endret ingress til Q ## 1.7.1 ### Patch Changes -- Oppdatere pakker -- Updated dependencies - - @navikt/sif-common-formik-ds@0.18.1 - - @navikt/sif-common-soknad-ds@7.2.1 - - @navikt/sif-common-core-ds@7.2.1 - - @navikt/sif-common-utils@3.32.1 +- Oppdatere pakker +- Updated dependencies + - @navikt/sif-common-formik-ds@0.18.1 + - @navikt/sif-common-soknad-ds@7.2.1 + - @navikt/sif-common-core-ds@7.2.1 + - @navikt/sif-common-utils@3.32.1 ## 1.7.0 ### Minor Changes -- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. +- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. ### Patch Changes -- Updated dependencies [1361721f] - - @navikt/sif-common-amplitude@2.14.0 - - @navikt/sif-common-formik-ds@0.18.0 - - @navikt/sif-common-soknad-ds@7.1.0 - - @navikt/sif-common-core-ds@7.1.0 - - @navikt/sif-common-sentry@0.14.0 - - @navikt/sif-common-utils@3.32.0 +- Updated dependencies [1361721f] + - @navikt/sif-common-amplitude@2.14.0 + - @navikt/sif-common-formik-ds@0.18.0 + - @navikt/sif-common-soknad-ds@7.1.0 + - @navikt/sif-common-core-ds@7.1.0 + - @navikt/sif-common-sentry@0.14.0 + - @navikt/sif-common-utils@3.32.0 ## 1.6.0 ### Minor Changes -- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring +- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring ### Patch Changes -- Updated dependencies [cb189915] - - @navikt/sif-common-amplitude@2.13.0 - - @navikt/sif-common-core-ds@7.1.0 - - @navikt/sif-common-formik-ds@0.17.0 - - @navikt/sif-common-sentry@0.13.0 - - @navikt/sif-common-soknad-ds@8.0.0 - - @navikt/sif-common-utils@3.31.0 +- Updated dependencies [cb189915] + - @navikt/sif-common-amplitude@2.13.0 + - @navikt/sif-common-core-ds@7.1.0 + - @navikt/sif-common-formik-ds@0.17.0 + - @navikt/sif-common-sentry@0.13.0 + - @navikt/sif-common-soknad-ds@8.0.0 + - @navikt/sif-common-utils@3.31.0 ## 1.5.1 ### Patch Changes -- 0adf41c1: Pakkeoppdateringer -- Updated dependencies [0adf41c1] - - @navikt/sif-common-amplitude@2.12.1 - - @navikt/sif-common-formik-ds@0.16.1 - - @navikt/sif-common-soknad-ds@7.0.1 - - @navikt/sif-common-core-ds@7.0.2 - - @navikt/sif-common-sentry@0.12.1 - - @navikt/sif-common-utils@3.30.1 +- 0adf41c1: Pakkeoppdateringer +- Updated dependencies [0adf41c1] + - @navikt/sif-common-amplitude@2.12.1 + - @navikt/sif-common-formik-ds@0.16.1 + - @navikt/sif-common-soknad-ds@7.0.1 + - @navikt/sif-common-core-ds@7.0.2 + - @navikt/sif-common-sentry@0.12.1 + - @navikt/sif-common-utils@3.30.1 ## 1.5.0 ### Minor Changes -- 93b8104e: Oppdatere packages +- 93b8104e: Oppdatere packages ### Patch Changes -- Updated dependencies [93b8104e] - - @navikt/sif-common-amplitude@2.12.0 - - @navikt/sif-common-formik-ds@0.16.0 - - @navikt/sif-common-soknad-ds@7.0.0 - - @navikt/sif-common-core-ds@7.0.0 - - @navikt/sif-common-utils@3.29.0 +- Updated dependencies [93b8104e] + - @navikt/sif-common-amplitude@2.12.0 + - @navikt/sif-common-formik-ds@0.16.0 + - @navikt/sif-common-soknad-ds@7.0.0 + - @navikt/sif-common-core-ds@7.0.0 + - @navikt/sif-common-utils@3.29.0 ## 1.4.0 ### Minor Changes -- ca33226c: Oppdatere pakker +- ca33226c: Oppdatere pakker ### Patch Changes -- Updated dependencies [ca33226c] - - @navikt/sif-common-amplitude@2.11.0 - - @navikt/sif-common-formik-ds@0.14.0 - - @navikt/sif-common-soknad-ds@7.0.0 - - @navikt/sif-common-core-ds@7.0.0 - - @navikt/sif-common-sentry@0.12.0 - - @navikt/sif-common-utils@3.27.0 +- Updated dependencies [ca33226c] + - @navikt/sif-common-amplitude@2.11.0 + - @navikt/sif-common-formik-ds@0.14.0 + - @navikt/sif-common-soknad-ds@7.0.0 + - @navikt/sif-common-core-ds@7.0.0 + - @navikt/sif-common-sentry@0.12.0 + - @navikt/sif-common-utils@3.27.0 ## 1.3.0 ### Minor Changes -- 908bb770: Pakkeoppdateringer +- 908bb770: Pakkeoppdateringer ### Patch Changes -- Updated dependencies [908bb770] - - @navikt/sif-common-amplitude@2.10.0 - - @navikt/sif-common-formik-ds@0.12.0 - - @navikt/sif-common-soknad-ds@7.0.0 - - @navikt/sif-common-core-ds@6.1.0 - - @navikt/sif-common-sentry@0.11.0 - - @navikt/sif-common-utils@3.25.0 +- Updated dependencies [908bb770] + - @navikt/sif-common-amplitude@2.10.0 + - @navikt/sif-common-formik-ds@0.12.0 + - @navikt/sif-common-soknad-ds@7.0.0 + - @navikt/sif-common-core-ds@6.1.0 + - @navikt/sif-common-sentry@0.11.0 + - @navikt/sif-common-utils@3.25.0 ## 1.2.5 ### Patch Changes -- ecd4b4f: Pakkeoppdateringer -- f033a9b: Patch-oppdatering av ds pakker -- Updated dependencies [ecd4b4f] -- Updated dependencies [f033a9b] - - @navikt/sif-common-amplitude@2.9.3 - - @navikt/sif-common-formik-ds@0.11.5 - - @navikt/sif-common-soknad-ds@6.0.3 - - @navikt/sif-common-core-ds@6.0.4 - - @navikt/sif-common-sentry@0.9.6 +- ecd4b4f: Pakkeoppdateringer +- f033a9b: Patch-oppdatering av ds pakker +- Updated dependencies [ecd4b4f] +- Updated dependencies [f033a9b] + - @navikt/sif-common-amplitude@2.9.3 + - @navikt/sif-common-formik-ds@0.11.5 + - @navikt/sif-common-soknad-ds@6.0.3 + - @navikt/sif-common-core-ds@6.0.4 + - @navikt/sif-common-sentry@0.9.6 ## 1.2.4 ### Patch Changes -- b1dbbe6: Tester, innstillinger for deploy til prod, oppryding +- b1dbbe6: Tester, innstillinger for deploy til prod, oppryding ## 1.2.3 ### Patch Changes -- 7637a0b: Oppdatere packages -- Updated dependencies [7637a0b] - - @navikt/sif-common-amplitude@2.9.2 - - @navikt/sif-common-formik-ds@0.11.4 - - @navikt/sif-common-soknad-ds@6.0.2 - - @navikt/sif-common-core-ds@6.0.3 - - @navikt/sif-common-sentry@0.9.5 - - @navikt/sif-common-utils@3.24.1 +- 7637a0b: Oppdatere packages +- Updated dependencies [7637a0b] + - @navikt/sif-common-amplitude@2.9.2 + - @navikt/sif-common-formik-ds@0.11.4 + - @navikt/sif-common-soknad-ds@6.0.2 + - @navikt/sif-common-core-ds@6.0.3 + - @navikt/sif-common-sentry@0.9.5 + - @navikt/sif-common-utils@3.24.1 ## 1.2.2 ### Patch Changes -- 7c6db10: Pakkeoppdateringer -- Updated dependencies [7c6db10] - - @navikt/sif-common-formik-ds@0.11.2 - - @navikt/sif-common-soknad-ds@6.0.1 - - @navikt/sif-common-core-ds@6.0.1 +- 7c6db10: Pakkeoppdateringer +- Updated dependencies [7c6db10] + - @navikt/sif-common-formik-ds@0.11.2 + - @navikt/sif-common-soknad-ds@6.0.1 + - @navikt/sif-common-core-ds@6.0.1 ## 1.2.1 ### Patch Changes -- dde26c4: Oppdatere packageversjoner -- Updated dependencies [dde26c4] - - @navikt/sif-common-amplitude@2.9.1 - - @navikt/sif-common-formik-ds@0.11.1 - - @navikt/sif-common-soknad-ds@6.0.0 - - @navikt/sif-common-core-ds@6.0.0 - - @navikt/sif-common-sentry@0.8.1 - - @navikt/sif-common-utils@3.23.1 +- dde26c4: Oppdatere packageversjoner +- Updated dependencies [dde26c4] + - @navikt/sif-common-amplitude@2.9.1 + - @navikt/sif-common-formik-ds@0.11.1 + - @navikt/sif-common-soknad-ds@6.0.0 + - @navikt/sif-common-core-ds@6.0.0 + - @navikt/sif-common-sentry@0.8.1 + - @navikt/sif-common-utils@3.23.1 ## 1.2.0 ### Minor Changes -- e6c5ea70: Oppdatere packages, inkludert major på axios +- e6c5ea70: Oppdatere packages, inkludert major på axios ### Patch Changes -- Updated dependencies [e6c5ea70] - - @navikt/sif-common-amplitude@2.9.0 - - @navikt/sif-common-formik-ds@0.11.0 - - @navikt/sif-common-soknad-ds@6.0.0 - - @navikt/sif-common-core-ds@6.0.0 - - @navikt/sif-common-sentry@0.8.0 - - @navikt/sif-common-utils@3.23.0 +- Updated dependencies [e6c5ea70] + - @navikt/sif-common-amplitude@2.9.0 + - @navikt/sif-common-formik-ds@0.11.0 + - @navikt/sif-common-soknad-ds@6.0.0 + - @navikt/sif-common-core-ds@6.0.0 + - @navikt/sif-common-sentry@0.8.0 + - @navikt/sif-common-utils@3.23.0 ## 1.1.0 ### Minor Changes -- bfc208e7: Legge til GitSha ved innsending av søknader i alle apper +- bfc208e7: Legge til GitSha ved innsending av søknader i alle apper ### Patch Changes -- Updated dependencies [ac7641bf] -- Updated dependencies [bfc208e7] - - @navikt/sif-common-core-ds@5.6.0 +- Updated dependencies [ac7641bf] +- Updated dependencies [bfc208e7] + - @navikt/sif-common-core-ds@5.6.0 diff --git a/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/Dockerfile b/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/Dockerfile index 2e10fc6bea..f3f69be6b6 100644 --- a/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/Dockerfile +++ b/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/Dockerfile @@ -14,7 +14,7 @@ COPY . . RUN yarn RUN yarn turbo run build-app --filter=${SCOPE} -FROM pruner AS server +FROM gcr.io/distroless/nodejs18-debian11:nonroot WORKDIR /apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn COPY --from=pruner /app/node_modules ./node_modules/ COPY --from=pruner /app/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/server.cjs . @@ -25,4 +25,4 @@ COPY --from=pruner /app/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/src/ COPY --from=pruner /app/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/dist ./dist EXPOSE 8080 -CMD ["yarn","--cwd", "apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn", "start-express"] +CMD ["server.cjs"] diff --git a/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/nais/dev-gcp.json b/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/nais/dev-gcp.json index f38713c14a..e6aab5117e 100644 --- a/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/nais/dev-gcp.json +++ b/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/nais/dev-gcp.json @@ -6,6 +6,9 @@ "livenessPath": "/familie/sykdom-i-familien/soknad/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/health/isAlive", "readinessPath": "/familie/sykdom-i-familien/soknad/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/health/isReady", "externalHosts": ["www.nav.no", "dekoratoren.ekstern.dev.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], + "minReplicas": 1, + "maxReplicas": 1, "cluster": "dev-gcp", "env": { "API_TOKENX_AUDIENCE": "dev-gcp:dusseldorf:k9-brukerdialog-api", diff --git a/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/nais/prod-gcp.json b/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/nais/prod-gcp.json index 7d61d4bdb3..bf37aa13ae 100644 --- a/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/nais/prod-gcp.json +++ b/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/nais/prod-gcp.json @@ -6,6 +6,9 @@ "livenessPath": "/familie/sykdom-i-familien/soknad/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/health/isAlive", "readinessPath": "/familie/sykdom-i-familien/soknad/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/health/isReady", "externalHosts": ["www.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], + "minReplicas": 2, + "maxReplicas": 2, "cluster": "prod-gcp", "env": { "API_TOKENX_AUDIENCE": "prod-gcp:dusseldorf:k9-brukerdialog-api", diff --git a/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/package.json b/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/package.json index 4ddcddf521..5d148117be 100644 --- a/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/package.json +++ b/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/package.json @@ -3,7 +3,7 @@ "description": "Søknad om ekstra omsorgsdager når den andre forelderen ikke kan ha tilsyn med barn", "license": "MIT", "name": "@navikt/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn", - "version": "1.17.17", + "version": "1.21.4", "repository": "https://github.com/navikt/sif-brukerdialog", "private": true, "type": "module", @@ -16,17 +16,16 @@ "e2e": "playwright test", "lint": "eslint ./src --ext ts,tsx", "playwright-test": "playwright test", - "snd": "cross-env NODE_ENV=development node ./server.cjs", + "dev": "cross-env NODE_ENV=development node ./server.cjs", "start-api-mock": "PORT=8089 node ./server/api-mock.js", "start-e2e-server": "node ./server-e2e.cjs", "start-express": "node ./server.cjs", - "test-watch": "react-scripts test --watchAll=true --env=jsdom", - "test": "react-scripts test --watchAll=false --env=jsdom" + "test": "vitest" }, "dependencies": { - "@navikt/ds-css": "5.10.1", - "@navikt/ds-react": "5.10.1", - "@navikt/ds-tailwind": "5.10.1", + "@navikt/ds-css": "5.11.4", + "@navikt/ds-react": "5.11.4", + "@navikt/ds-tailwind": "5.11.4", "@navikt/sif-app-register": "workspace:*", "@navikt/sif-common-amplitude": "workspace:*", "@navikt/sif-common-core-ds": "workspace:*", @@ -35,8 +34,8 @@ "@navikt/sif-common-sentry": "workspace:*", "@navikt/sif-common-soknad-ds": "workspace:*", "@navikt/sif-common-utils": "workspace:*", - "@testing-library/react": "14.1.0", - "axios": "1.6.1", + "@testing-library/react": "14.1.2", + "axios": "1.6.2", "compression": "1.7.4", "cookie-parser": "1.4.6", "dayjs": "1.11.10", @@ -44,58 +43,40 @@ "express": "4.18.2", "formik": "2.4.5", "helmet": "7.1.0", - "history": "5.3.0", "http-proxy-middleware": "2.0.6", - "jose": "5.1.0", + "jose": "5.1.3", "mustache-express": "1.3.2", "object-hash": "3.0.0", "openid-client": "5.6.1", - "promise": "8.3.0", "react": "18.2.0", "react-dom": "18.2.0", "react-fast-compare": "3.2.2", - "react-intl": "6.5.4", - "react-router-dom": "6.18.0", - "vite": "4.5.0", + "react-intl": "6.5.5", + "react-router-dom": "6.20.1", + "vite": "5.0.7", "vite-plugin-checker": "0.6.2" }, "devDependencies": { - "@axe-core/playwright": "4.8.1", - "@babel/core": "7.23.3", + "@axe-core/playwright": "4.8.2", + "@babel/core": "7.23.5", "@babel/plugin-proposal-object-rest-spread": "7.20.7", "@babel/plugin-transform-modules-commonjs": "7.23.3", - "@babel/preset-env": "7.23.3", + "@babel/preset-env": "7.23.5", "@babel/preset-react": "7.23.3", - "@playwright/test": "^1.39.0", - "@storybook/react-vite": "7.5.3", - "@testing-library/react": "14.1.0", - "@types/jest": "29.5.8", + "@playwright/test": "1.40.1", + "@storybook/react-vite": "7.6.4", + "@testing-library/react": "14.1.2", "@types/object-hash": "3.0.6", - "@types/react": "18.2.37", - "@types/react-dom": "18.2.15", + "@types/react": "18.2.43", + "@types/react-dom": "18.2.17", "@types/react-router-dom": "5.3.3", "babel-polyfill": "6.26.0", "cross-env": "7.0.3", - "css-loader": "6.8.1", - "express-rate-limit": "7.1.4", - "jsdom": "22.1.0", - "npm-run-all": "4.1.5", - "postcss": "8.4.31", - "postcss-loader": "7.3.3", - "react-scripts": "5.0.1", + "express-rate-limit": "7.1.5", + "jsdom": "23.0.1", "rimraf": "5.0.5", - "sass": "1.69.5", - "sass-loader": "13.3.2", - "source-map-loader": "4.0.1", - "start-server-and-test": "2.0.2", - "style-loader": "3.3.3", - "ts-loader": "9.5.0", - "typescript": "5.2.2" - }, - "jest": { - "transformIgnorePatterns": [ - "node_modules/(?!(@navikt)).*\\.js$" - ] + "typescript": "5.3.3", + "vitest": "1.0.4" }, "eslintConfig": { "overrides": [ @@ -108,8 +89,5 @@ } } ] - }, - "resolutions": { - "babel-core": "7.0.0-bridge.0" } } diff --git a/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/vitest.config.ts b/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/vitest.config.ts new file mode 100644 index 0000000000..ec336f5985 --- /dev/null +++ b/apps/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn/vitest.config.ts @@ -0,0 +1,13 @@ +/// +/// + +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + exclude: ['./e2e/**/*', './build/**/*', './dist/**/*', '**/*.spec.tsx'], + globals: true, + environment: 'jsdom', + css: false, + }, +}); diff --git a/apps/endringsmelding-pleiepenger/CHANGELOG.md b/apps/endringsmelding-pleiepenger/CHANGELOG.md index 5d0155019e..c43c2de777 100644 --- a/apps/endringsmelding-pleiepenger/CHANGELOG.md +++ b/apps/endringsmelding-pleiepenger/CHANGELOG.md @@ -1,1071 +1,1233 @@ # @navikt/endringsmelding-pleiepenger +## 2.24.5 + +### Patch Changes + +- Fjerne webpack + +## 2.24.4 + +### Patch Changes + +- Patch oppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.24.5 + - @navikt/sif-common-formik-ds@1.6.2 + - @navikt/sif-common-soknad-ds@10.12.2 + - @navikt/sif-common-forms-ds@8.16.2 + - @navikt/sif-common-core-ds@9.12.2 + - @navikt/sif-common-hooks@0.1.3 + - @navikt/sif-common-utils@3.43.5 + +## 2.24.3 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker +- Updated dependencies [e7bf8d1] + - @navikt/sif-common-amplitude@2.24.4 + - @navikt/sif-common-formik-ds@1.6.1 + - @navikt/sif-common-soknad-ds@10.12.1 + - @navikt/sif-common-forms-ds@8.16.1 + - @navikt/sif-common-core-ds@9.12.1 + - @navikt/sif-common-sentry@0.25.4 + - @navikt/sif-common-utils@3.43.4 + +## 2.24.2 + +### Patch Changes + +- Updated dependencies [573c55d] + - @navikt/sif-common-formik-ds@1.6.0 + - @navikt/sif-common-soknad-ds@10.12.0 + - @navikt/sif-common-forms-ds@8.16.0 + - @navikt/sif-common-core-ds@9.12.0 + +## 2.24.1 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer +- Updated dependencies [406b044] + - @navikt/sif-common-amplitude@2.24.3 + - @navikt/sif-common-formik-ds@1.5.3 + - @navikt/sif-common-soknad-ds@10.11.1 + - @navikt/sif-common-forms-ds@8.15.1 + - @navikt/sif-common-core-ds@9.11.3 + - @navikt/sif-common-sentry@0.25.3 + - @navikt/sif-common-utils@3.43.3 + +## 2.24.0 + +### Minor Changes + +- 2331115: Oppdatert react-router-dom. Endringer i ettersending og pleiepenger på grunn av feil bruk av navigate i ny versjon. + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [2331115] +- Updated dependencies [6084e23] + - @navikt/sif-common-soknad-ds@10.11.0 + - @navikt/sif-common-forms-ds@8.15.0 + - @navikt/sif-common-amplitude@2.24.2 + - @navikt/sif-common-core-ds@9.11.2 + - @navikt/sif-common-formik-ds@1.5.2 + - @navikt/sif-common-hooks@0.1.2 + - @navikt/sif-common-sentry@0.25.2 + - @navikt/sif-common-utils@3.43.2 + +## 2.23.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [295d3ad] + - @navikt/sif-common-amplitude@2.24.1 + - @navikt/sif-common-core-ds@9.11.1 + - @navikt/sif-common-formik-ds@1.5.1 + - @navikt/sif-common-forms-ds@8.14.1 + - @navikt/sif-common-hooks@0.1.1 + - @navikt/sif-common-sentry@0.25.1 + - @navikt/sif-common-soknad-ds@10.10.1 + - @navikt/sif-common-utils@3.43.1 + +## 2.23.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +### Patch Changes + +- Updated dependencies [53b47be] + - @navikt/sif-common-amplitude@2.24.0 + - @navikt/sif-common-formik-ds@1.5.0 + - @navikt/sif-common-soknad-ds@10.10.0 + - @navikt/sif-common-forms-ds@8.14.0 + - @navikt/sif-common-core-ds@9.11.0 + - @navikt/sif-common-sentry@0.25.0 + - @navikt/sif-common-utils@3.43.0 + +## 2.22.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +### Patch Changes + +- Updated dependencies + - @navikt/sif-common-amplitude@2.23.0 + - @navikt/sif-common-formik-ds@1.4.0 + - @navikt/sif-common-soknad-ds@10.9.0 + - @navikt/sif-common-forms-ds@8.13.0 + - @navikt/sif-common-core-ds@9.10.0 + - @navikt/sif-common-sentry@0.24.0 + - @navikt/sif-common-hooks@0.1.0 + - @navikt/sif-common-utils@3.42.0 + +## 2.21.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + +### Patch Changes + +- Updated dependencies [d31f28ec] + - @navikt/sif-common-amplitude@2.22.0 + - @navikt/sif-common-formik-ds@1.3.0 + - @navikt/sif-common-soknad-ds@10.8.0 + - @navikt/sif-common-forms-ds@8.12.0 + - @navikt/sif-common-core-ds@9.9.0 + - @navikt/sif-common-sentry@0.23.0 + - @navikt/sif-common-utils@3.41.0 + +## 2.20.19 + +### Patch Changes + +- 6d3b3cbe: Minor og patch oppdateringer + nextjs major -> 14 +- Updated dependencies [6d3b3cbe] + - @navikt/sif-common-formik-ds@1.2.3 + - @navikt/sif-common-soknad-ds@10.7.11 + - @navikt/sif-common-forms-ds@8.11.4 + - @navikt/sif-common-core-ds@9.8.11 + - @navikt/sif-common-sentry@0.22.7 + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-utils@3.40.11 + ## 2.20.18 ### Patch Changes -- 09ae5814: Patch-oppdateringer -- Updated dependencies [09ae5814] - - @navikt/sif-common-formik-ds@1.2.2 - - @navikt/sif-common-soknad-ds@10.7.10 - - @navikt/sif-common-forms-ds@8.11.3 - - @navikt/sif-common-core-ds@9.8.10 - - @navikt/sif-common-utils@3.40.11 +- 09ae5814: Patch-oppdateringer +- Updated dependencies [09ae5814] + - @navikt/sif-common-formik-ds@1.2.2 + - @navikt/sif-common-soknad-ds@10.7.10 + - @navikt/sif-common-forms-ds@8.11.3 + - @navikt/sif-common-core-ds@9.8.10 + - @navikt/sif-common-utils@3.40.11 ## 2.20.17 ### Patch Changes -- b4d45cf9: Diverse mindre pakkeoppdateringer -- Updated dependencies [b4d45cf9] - - @navikt/sif-common-amplitude@2.21.9 - - @navikt/sif-common-formik-ds@1.2.1 - - @navikt/sif-common-soknad-ds@10.7.9 - - @navikt/sif-common-forms-ds@8.11.2 - - @navikt/sif-common-core-ds@9.8.9 - - @navikt/sif-common-sentry@0.22.6 - - @navikt/sif-common-utils@3.40.10 +- b4d45cf9: Diverse mindre pakkeoppdateringer +- Updated dependencies [b4d45cf9] + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-formik-ds@1.2.1 + - @navikt/sif-common-soknad-ds@10.7.9 + - @navikt/sif-common-forms-ds@8.11.2 + - @navikt/sif-common-core-ds@9.8.9 + - @navikt/sif-common-sentry@0.22.6 + - @navikt/sif-common-utils@3.40.10 ## 2.20.16 ### Patch Changes -- Updated dependencies [e815a9a8] - - @navikt/sif-common-formik-ds@1.2.0 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-forms-ds@8.11.1 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [e815a9a8] + - @navikt/sif-common-formik-ds@1.2.0 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-forms-ds@8.11.1 + - @navikt/sif-common-soknad-ds@10.7.8 ## 2.20.15 ### Patch Changes -- Updated dependencies [66c8522a] - - @navikt/sif-common-forms-ds@8.11.1 +- Updated dependencies [66c8522a] + - @navikt/sif-common-forms-ds@8.11.1 ## 2.20.14 ### Patch Changes -- Updated dependencies [ce769b8e] -- Updated dependencies [afe04538] - - @navikt/sif-common-forms-ds@8.11.0 - - @navikt/sif-common-formik-ds@1.1.6 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [ce769b8e] +- Updated dependencies [afe04538] + - @navikt/sif-common-forms-ds@8.11.0 + - @navikt/sif-common-formik-ds@1.1.6 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-soknad-ds@10.7.8 ## 2.20.13 ### Patch Changes -- Updated dependencies [1d7c508f] - - @navikt/sif-common-formik-ds@1.1.5 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-forms-ds@8.10.0 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [1d7c508f] + - @navikt/sif-common-formik-ds@1.1.5 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-forms-ds@8.10.0 + - @navikt/sif-common-soknad-ds@10.7.8 ## 2.20.13 ### Patch Changes -- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 -- Updated dependencies [5c44f78b] -- Updated dependencies [5c44f78b] -- Updated dependencies [cb7e6653] - - @navikt/sif-common-forms-ds@8.10.0 - - @navikt/sif-common-formik-ds@1.1.4 - - @navikt/sif-common-amplitude@2.21.8 - - @navikt/sif-common-soknad-ds@10.7.8 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-utils@3.40.9 +- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 +- Updated dependencies [5c44f78b] +- Updated dependencies [5c44f78b] +- Updated dependencies [cb7e6653] + - @navikt/sif-common-forms-ds@8.10.0 + - @navikt/sif-common-formik-ds@1.1.4 + - @navikt/sif-common-amplitude@2.21.8 + - @navikt/sif-common-soknad-ds@10.7.8 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-utils@3.40.9 ## 2.20.12 ### Patch Changes -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.7 - - @navikt/sif-common-formik-ds@1.1.3 - - @navikt/sif-common-soknad-ds@10.7.7 - - @navikt/sif-common-forms-ds@8.9.7 - - @navikt/sif-common-core-ds@9.8.7 - - @navikt/sif-common-sentry@0.22.5 - - @navikt/sif-common-utils@3.40.8 +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.7 + - @navikt/sif-common-formik-ds@1.1.3 + - @navikt/sif-common-soknad-ds@10.7.7 + - @navikt/sif-common-forms-ds@8.9.7 + - @navikt/sif-common-core-ds@9.8.7 + - @navikt/sif-common-sentry@0.22.5 + - @navikt/sif-common-utils@3.40.8 ## 2.20.11 ### Patch Changes -- Pakkeoppdatering som fikser datepicker + modal bug -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.6 - - @navikt/sif-common-formik-ds@1.1.2 - - @navikt/sif-common-soknad-ds@10.7.6 - - @navikt/sif-common-forms-ds@8.9.6 - - @navikt/sif-common-core-ds@9.8.6 - - @navikt/sif-common-utils@3.40.7 +- Pakkeoppdatering som fikser datepicker + modal bug +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.6 + - @navikt/sif-common-formik-ds@1.1.2 + - @navikt/sif-common-soknad-ds@10.7.6 + - @navikt/sif-common-forms-ds@8.9.6 + - @navikt/sif-common-core-ds@9.8.6 + - @navikt/sif-common-utils@3.40.7 ## 2.20.10 ### Patch Changes -- 71381778: Patch pakkeoppdateringer -- Updated dependencies [71381778] - - @navikt/sif-common-amplitude@2.21.5 - - @navikt/sif-common-formik-ds@1.1.1 - - @navikt/sif-common-soknad-ds@10.7.5 - - @navikt/sif-common-forms-ds@8.9.5 - - @navikt/sif-common-core-ds@9.8.5 - - @navikt/sif-common-sentry@0.22.4 - - @navikt/sif-common-utils@3.40.6 +- 71381778: Patch pakkeoppdateringer +- Updated dependencies [71381778] + - @navikt/sif-common-amplitude@2.21.5 + - @navikt/sif-common-formik-ds@1.1.1 + - @navikt/sif-common-soknad-ds@10.7.5 + - @navikt/sif-common-forms-ds@8.9.5 + - @navikt/sif-common-core-ds@9.8.5 + - @navikt/sif-common-sentry@0.22.4 + - @navikt/sif-common-utils@3.40.6 ## 2.20.9 ### Patch Changes -- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds -- Updated dependencies [60eb7ee9] - - @navikt/sif-common-formik-ds@1.1.0 - - @navikt/sif-common-amplitude@2.21.4 - - @navikt/sif-common-soknad-ds@10.7.4 - - @navikt/sif-common-forms-ds@8.9.4 - - @navikt/sif-common-core-ds@9.8.4 - - @navikt/sif-common-sentry@0.22.3 - - @navikt/sif-common-utils@3.40.5 +- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds +- Updated dependencies [60eb7ee9] + - @navikt/sif-common-formik-ds@1.1.0 + - @navikt/sif-common-amplitude@2.21.4 + - @navikt/sif-common-soknad-ds@10.7.4 + - @navikt/sif-common-forms-ds@8.9.4 + - @navikt/sif-common-core-ds@9.8.4 + - @navikt/sif-common-sentry@0.22.3 + - @navikt/sif-common-utils@3.40.5 ## 2.20.8 ### Patch Changes -- 2a1e2526: Pakkeoppdateringer -- Updated dependencies [2a1e2526] - - @navikt/sif-common-amplitude@2.21.3 - - @navikt/sif-common-formik-ds@1.0.5 - - @navikt/sif-common-soknad-ds@10.7.3 - - @navikt/sif-common-forms-ds@8.9.3 - - @navikt/sif-common-core-ds@9.8.3 - - @navikt/sif-common-sentry@0.22.2 - - @navikt/sif-common-utils@3.40.4 +- 2a1e2526: Pakkeoppdateringer +- Updated dependencies [2a1e2526] + - @navikt/sif-common-amplitude@2.21.3 + - @navikt/sif-common-formik-ds@1.0.5 + - @navikt/sif-common-soknad-ds@10.7.3 + - @navikt/sif-common-forms-ds@8.9.3 + - @navikt/sif-common-core-ds@9.8.3 + - @navikt/sif-common-sentry@0.22.2 + - @navikt/sif-common-utils@3.40.4 ## 2.20.7 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.2 - - @navikt/sif-common-formik-ds@1.0.4 - - @navikt/sif-common-soknad-ds@10.7.2 - - @navikt/sif-common-forms-ds@8.9.2 - - @navikt/sif-common-core-ds@9.8.2 - - @navikt/sif-common-utils@3.40.3 +- Pakkeoppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.2 + - @navikt/sif-common-formik-ds@1.0.4 + - @navikt/sif-common-soknad-ds@10.7.2 + - @navikt/sif-common-forms-ds@8.9.2 + - @navikt/sif-common-core-ds@9.8.2 + - @navikt/sif-common-utils@3.40.3 ## 2.20.6 ### Patch Changes -- 81e7e155: Bruke BodyLong i alle SifGuidePanel -- Updated dependencies [81e7e155] - - @navikt/sif-common-formik-ds@1.0.3 - - @navikt/sif-common-forms-ds@8.9.1 - - @navikt/sif-common-core-ds@9.8.1 - - @navikt/sif-common-utils@3.40.2 - - @navikt/sif-common-soknad-ds@10.7.1 +- 81e7e155: Bruke BodyLong i alle SifGuidePanel +- Updated dependencies [81e7e155] + - @navikt/sif-common-formik-ds@1.0.3 + - @navikt/sif-common-forms-ds@8.9.1 + - @navikt/sif-common-core-ds@9.8.1 + - @navikt/sif-common-utils@3.40.2 + - @navikt/sif-common-soknad-ds@10.7.1 ## 2.20.5 ### Patch Changes -- Updated dependencies [c129755f] - - @navikt/sif-common-formik-ds@1.0.2 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-forms-ds@8.9.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [c129755f] + - @navikt/sif-common-formik-ds@1.0.2 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-forms-ds@8.9.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 2.20.4 ### Patch Changes -- Updated dependencies [92fbd8f8] - - @navikt/sif-common-formik-ds@1.0.1 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-forms-ds@8.9.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [92fbd8f8] + - @navikt/sif-common-formik-ds@1.0.1 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-forms-ds@8.9.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 2.20.3 ### Patch Changes -- Updated dependencies [d12fcbb5] - - @navikt/sif-common-forms-ds@8.9.0 +- Updated dependencies [d12fcbb5] + - @navikt/sif-common-forms-ds@8.9.0 ## 2.20.2 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies [55e1f323] -- Updated dependencies - - @navikt/sif-common-core-ds@9.7.0 - - @navikt/sif-common-amplitude@2.21.1 - - @navikt/sif-common-formik-ds@0.6.1 - - @navikt/sif-common-soknad-ds@10.7.1 - - @navikt/sif-common-forms-ds@8.8.1 - - @navikt/sif-common-sentry@0.22.1 - - @navikt/sif-common-utils@3.40.1 +- Pakkeoppdateringer +- Updated dependencies [55e1f323] +- Updated dependencies + - @navikt/sif-common-core-ds@9.7.0 + - @navikt/sif-common-amplitude@2.21.1 + - @navikt/sif-common-formik-ds@0.6.1 + - @navikt/sif-common-soknad-ds@10.7.1 + - @navikt/sif-common-forms-ds@8.8.1 + - @navikt/sif-common-sentry@0.22.1 + - @navikt/sif-common-utils@3.40.1 ## 2.20.1 ### Patch Changes -- b7a0832d: Fjerne kode som ikke lenger er i bruk. Utdatert pga vi ikke lenger sperrer bruker som har arbeidsgiver i sak som ikke er i aa-reg. +- b7a0832d: Fjerne kode som ikke lenger er i bruk. Utdatert pga vi ikke lenger sperrer bruker som har arbeidsgiver i sak som ikke er i aa-reg. ## 2.20.0 ### Minor Changes -- 96810cd6: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. +- 96810cd6: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. ### Patch Changes -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] - - @navikt/sif-common-formik-ds@0.5.0 - - @navikt/sif-common-amplitude@2.21.0 - - @navikt/sif-common-soknad-ds@10.6.0 - - @navikt/sif-common-forms-ds@8.7.0 - - @navikt/sif-common-core-ds@9.5.0 - - @navikt/sif-common-sentry@0.22.0 - - @navikt/sif-common-utils@3.40.0 +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] + - @navikt/sif-common-formik-ds@0.5.0 + - @navikt/sif-common-amplitude@2.21.0 + - @navikt/sif-common-soknad-ds@10.6.0 + - @navikt/sif-common-forms-ds@8.7.0 + - @navikt/sif-common-core-ds@9.5.0 + - @navikt/sif-common-sentry@0.22.0 + - @navikt/sif-common-utils@3.40.0 ## 2.19.0 ### Minor Changes -- ad5092d1: Sette document.title basert på søknadsnavn og stegnavn -- 4cde9eca: Redirect til Min side når bruker velger å fortsette senere. +- ad5092d1: Sette document.title basert på søknadsnavn og stegnavn +- 4cde9eca: Redirect til Min side når bruker velger å fortsette senere. ### Patch Changes -- 5f655843: Ersatte ordet funksjonshemming med funksjonshemning -- Updated dependencies [ad5092d1] - - @navikt/sif-common-soknad-ds@10.5.0 +- 5f655843: Ersatte ordet funksjonshemming med funksjonshemning +- Updated dependencies [ad5092d1] + - @navikt/sif-common-soknad-ds@10.5.0 ## 2.18.0 ### Minor Changes -- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer +- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer ### Patch Changes -- Updated dependencies [c976be57] - - @navikt/sif-common-amplitude@2.20.0 - - @navikt/sif-common-formik-ds@0.4.0 - - @navikt/sif-common-soknad-ds@10.4.0 - - @navikt/sif-common-forms-ds@8.6.0 - - @navikt/sif-common-core-ds@9.4.0 - - @navikt/sif-common-sentry@0.21.0 - - @navikt/sif-common-utils@3.39.0 +- Updated dependencies [c976be57] + - @navikt/sif-common-amplitude@2.20.0 + - @navikt/sif-common-formik-ds@0.4.0 + - @navikt/sif-common-soknad-ds@10.4.0 + - @navikt/sif-common-forms-ds@8.6.0 + - @navikt/sif-common-core-ds@9.4.0 + - @navikt/sif-common-sentry@0.21.0 + - @navikt/sif-common-utils@3.39.0 ## 2.17.0 ### Minor Changes -- 026fc373: Oppdatere til versjon 5 av designsystemet aksel +- 026fc373: Oppdatere til versjon 5 av designsystemet aksel ### Patch Changes -- Updated dependencies [41d0a03c] -- Updated dependencies [026fc373] - - @navikt/sif-common-formik-ds@0.3.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-forms-ds@8.5.0 - - @navikt/sif-common-core-ds@9.3.0 +- Updated dependencies [41d0a03c] +- Updated dependencies [026fc373] + - @navikt/sif-common-formik-ds@0.3.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-forms-ds@8.5.0 + - @navikt/sif-common-core-ds@9.3.0 ## 2.16.0 ### Minor Changes -- 1ebdcb58: Pakkeoppdateringer -- Pakkeoppdateringer +- 1ebdcb58: Pakkeoppdateringer +- Pakkeoppdateringer ### Patch Changes -- Updated dependencies - - @navikt/sif-common-amplitude@2.19.0 - - @navikt/sif-common-formik-ds@0.24.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-forms-ds@8.5.0 - - @navikt/sif-common-core-ds@9.3.0 - - @navikt/sif-common-sentry@0.20.0 - - @navikt/sif-common-utils@3.38.0 +- Updated dependencies + - @navikt/sif-common-amplitude@2.19.0 + - @navikt/sif-common-formik-ds@0.24.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-forms-ds@8.5.0 + - @navikt/sif-common-core-ds@9.3.0 + - @navikt/sif-common-sentry@0.20.0 + - @navikt/sif-common-utils@3.38.0 ## 2.15.4 ### Patch Changes -- Fiks visning av endre flere uker-knapp +- Fiks visning av endre flere uker-knapp ## 2.15.3 ### Patch Changes -- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react -- Updated dependencies [0e25e34f] - - @navikt/sif-common-amplitude@2.18.1 - - @navikt/sif-common-formik-ds@0.23.3 - - @navikt/sif-common-soknad-ds@10.1.3 - - @navikt/sif-common-forms-ds@8.1.3 - - @navikt/sif-common-core-ds@9.1.3 - - @navikt/sif-common-sentry@0.19.1 - - @navikt/sif-common-utils@3.37.1 +- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react +- Updated dependencies [0e25e34f] + - @navikt/sif-common-amplitude@2.18.1 + - @navikt/sif-common-formik-ds@0.23.3 + - @navikt/sif-common-soknad-ds@10.1.3 + - @navikt/sif-common-forms-ds@8.1.3 + - @navikt/sif-common-core-ds@9.1.3 + - @navikt/sif-common-sentry@0.19.1 + - @navikt/sif-common-utils@3.37.1 ## 2.15.2 ### Patch Changes -- 7e9863c7: Oppdatert versjon av pakker for test og bygg -- Updated dependencies [7e9863c7] - - @navikt/sif-common-formik-ds@0.23.2 - - @navikt/sif-common-soknad-ds@10.1.2 - - @navikt/sif-common-forms-ds@8.1.2 - - @navikt/sif-common-core-ds@9.1.2 +- 7e9863c7: Oppdatert versjon av pakker for test og bygg +- Updated dependencies [7e9863c7] + - @navikt/sif-common-formik-ds@0.23.2 + - @navikt/sif-common-soknad-ds@10.1.2 + - @navikt/sif-common-forms-ds@8.1.2 + - @navikt/sif-common-core-ds@9.1.2 ## 2.15.1 ### Patch Changes -- cc50b642: Diverse mindre pakkeoppdateringer -- Updated dependencies [cc50b642] - - @navikt/sif-common-formik-ds@0.23.1 - - @navikt/sif-common-soknad-ds@10.1.1 - - @navikt/sif-common-forms-ds@8.1.1 - - @navikt/sif-common-core-ds@9.1.1 +- cc50b642: Diverse mindre pakkeoppdateringer +- Updated dependencies [cc50b642] + - @navikt/sif-common-formik-ds@0.23.1 + - @navikt/sif-common-soknad-ds@10.1.1 + - @navikt/sif-common-forms-ds@8.1.1 + - @navikt/sif-common-core-ds@9.1.1 ## 2.15.0 ### Minor Changes -- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene +- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene ### Patch Changes -- Updated dependencies [ea79f31c] - - @navikt/sif-common-formik-ds@0.23.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-forms-ds@8.5.0 - - @navikt/sif-common-core-ds@9.3.0 - - @navikt/sif-common-sentry@0.19.0 +- Updated dependencies [ea79f31c] + - @navikt/sif-common-formik-ds@0.23.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-forms-ds@8.5.0 + - @navikt/sif-common-core-ds@9.3.0 + - @navikt/sif-common-sentry@0.19.0 ## 2.14.0 ### Minor Changes -- d3ae045: Oppdatere minor og patch +- d3ae045: Oppdatere minor og patch ### Patch Changes -- Updated dependencies [d3ae045] - - @navikt/sif-common-amplitude@2.18.0 - - @navikt/sif-common-formik-ds@0.22.0 - - @navikt/sif-common-soknad-ds@10.0.0 - - @navikt/sif-common-forms-ds@8.0.0 - - @navikt/sif-common-core-ds@9.0.0 - - @navikt/sif-common-sentry@0.18.0 - - @navikt/sif-common-utils@3.37.0 +- Updated dependencies [d3ae045] + - @navikt/sif-common-amplitude@2.18.0 + - @navikt/sif-common-formik-ds@0.22.0 + - @navikt/sif-common-soknad-ds@10.0.0 + - @navikt/sif-common-forms-ds@8.0.0 + - @navikt/sif-common-core-ds@9.0.0 + - @navikt/sif-common-sentry@0.18.0 + - @navikt/sif-common-utils@3.37.0 ## 2.13.1 ### Patch Changes -- ebebab7: Pakkeoppdateringer -- Updated dependencies [ebebab7] - - @navikt/sif-common-formik-ds@0.21.1 - - @navikt/sif-common-soknad-ds@9.0.1 - - @navikt/sif-common-forms-ds@7.0.1 - - @navikt/sif-common-core-ds@8.0.1 - - @navikt/sif-common-utils@3.36.1 +- ebebab7: Pakkeoppdateringer +- Updated dependencies [ebebab7] + - @navikt/sif-common-formik-ds@0.21.1 + - @navikt/sif-common-soknad-ds@9.0.1 + - @navikt/sif-common-forms-ds@7.0.1 + - @navikt/sif-common-core-ds@8.0.1 + - @navikt/sif-common-utils@3.36.1 ## 2.13.0 ### Minor Changes -- 5beb8c9: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. +- 5beb8c9: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. ### Patch Changes -- Updated dependencies [5beb8c9] - - @navikt/sif-common-amplitude@2.17.0 - - @navikt/sif-common-formik-ds@0.21.0 - - @navikt/sif-common-soknad-ds@9.0.0 - - @navikt/sif-common-forms-ds@7.0.0 - - @navikt/sif-common-core-ds@8.0.0 - - @navikt/sif-common-sentry@0.17.0 - - @navikt/sif-common-utils@3.36.0 +- Updated dependencies [5beb8c9] + - @navikt/sif-common-amplitude@2.17.0 + - @navikt/sif-common-formik-ds@0.21.0 + - @navikt/sif-common-soknad-ds@9.0.0 + - @navikt/sif-common-forms-ds@7.0.0 + - @navikt/sif-common-core-ds@8.0.0 + - @navikt/sif-common-sentry@0.17.0 + - @navikt/sif-common-utils@3.36.0 ## 2.12.4 ### Patch Changes -- fcdaba8: Utvide log til amplitude til å inkludere antall ukjente arbeidsgivere - dvs. arbeidsgivere ikke i saken. +- fcdaba8: Utvide log til amplitude til å inkludere antall ukjente arbeidsgivere - dvs. arbeidsgivere ikke i saken. ## 2.12.3 ### Patch Changes -- bd6fae3: Pakkeoppdateringer -- Updated dependencies [bd6fae3] - - @navikt/sif-common-amplitude@2.16.2 - - @navikt/sif-common-formik-ds@0.20.2 - - @navikt/sif-common-soknad-ds@7.4.2 - - @navikt/sif-common-forms-ds@6.5.1 - - @navikt/sif-common-core-ds@7.4.2 - - @navikt/sif-common-sentry@0.16.2 - - @navikt/sif-common-utils@3.34.2 +- bd6fae3: Pakkeoppdateringer +- Updated dependencies [bd6fae3] + - @navikt/sif-common-amplitude@2.16.2 + - @navikt/sif-common-formik-ds@0.20.2 + - @navikt/sif-common-soknad-ds@7.4.2 + - @navikt/sif-common-forms-ds@6.5.1 + - @navikt/sif-common-core-ds@7.4.2 + - @navikt/sif-common-sentry@0.16.2 + - @navikt/sif-common-utils@3.34.2 ## 2.12.1 ### Patch Changes -- 4d1cb8b: Pakkeoppdateringer -- Updated dependencies [4d1cb8b] - - @navikt/sif-common-amplitude@2.16.1 - - @navikt/sif-common-formik-ds@0.20.1 - - @navikt/sif-common-soknad-ds@7.4.1 - - @navikt/sif-common-forms-ds@6.4.1 - - @navikt/sif-common-core-ds@7.4.1 - - @navikt/sif-common-sentry@0.16.1 - - @navikt/sif-common-utils@3.34.1 +- 4d1cb8b: Pakkeoppdateringer +- Updated dependencies [4d1cb8b] + - @navikt/sif-common-amplitude@2.16.1 + - @navikt/sif-common-formik-ds@0.20.1 + - @navikt/sif-common-soknad-ds@7.4.1 + - @navikt/sif-common-forms-ds@6.4.1 + - @navikt/sif-common-core-ds@7.4.1 + - @navikt/sif-common-sentry@0.16.1 + - @navikt/sif-common-utils@3.34.1 ## 2.12.0 ### Minor Changes -- ae1fdbf7: Pakkeoppdateringer +- ae1fdbf7: Pakkeoppdateringer ### Patch Changes -- Updated dependencies [a1e69480] -- Updated dependencies [ae1fdbf7] - - @navikt/sif-common-core-ds@8.0.0 - - @navikt/sif-common-amplitude@2.16.0 - - @navikt/sif-common-formik-ds@0.20.0 - - @navikt/sif-common-soknad-ds@8.0.0 - - @navikt/sif-common-forms-ds@7.0.0 - - @navikt/sif-common-sentry@0.16.0 - - @navikt/sif-common-utils@3.34.0 +- Updated dependencies [a1e69480] +- Updated dependencies [ae1fdbf7] + - @navikt/sif-common-core-ds@8.0.0 + - @navikt/sif-common-amplitude@2.16.0 + - @navikt/sif-common-formik-ds@0.20.0 + - @navikt/sif-common-soknad-ds@8.0.0 + - @navikt/sif-common-forms-ds@7.0.0 + - @navikt/sif-common-sentry@0.16.0 + - @navikt/sif-common-utils@3.34.0 ## 2.11.0 ### Minor Changes -- 7d66a381: Oppdatere pakker, fjerne snyk +- 7d66a381: Oppdatere pakker, fjerne snyk ### Patch Changes -- Updated dependencies [7d66a381] - - @navikt/sif-common-amplitude@2.15.0 - - @navikt/sif-common-formik-ds@0.19.0 - - @navikt/sif-common-soknad-ds@8.0.0 - - @navikt/sif-common-forms-ds@7.0.0 - - @navikt/sif-common-core-ds@8.0.0 - - @navikt/sif-common-sentry@0.15.0 - - @navikt/sif-common-utils@3.33.0 +- Updated dependencies [7d66a381] + - @navikt/sif-common-amplitude@2.15.0 + - @navikt/sif-common-formik-ds@0.19.0 + - @navikt/sif-common-soknad-ds@8.0.0 + - @navikt/sif-common-forms-ds@7.0.0 + - @navikt/sif-common-core-ds@8.0.0 + - @navikt/sif-common-sentry@0.15.0 + - @navikt/sif-common-utils@3.33.0 ## 2.10.2 ### Patch Changes -- 38c8814: Pakkeoppdateringer -- Updated dependencies [38c8814] - - @navikt/sif-common-amplitude@2.14.1 - - @navikt/sif-common-formik-ds@0.18.2 - - @navikt/sif-common-soknad-ds@7.2.2 - - @navikt/sif-common-forms-ds@6.2.2 - - @navikt/sif-common-core-ds@7.2.2 - - @navikt/sif-common-sentry@0.14.1 - - @navikt/sif-common-utils@3.32.2 +- 38c8814: Pakkeoppdateringer +- Updated dependencies [38c8814] + - @navikt/sif-common-amplitude@2.14.1 + - @navikt/sif-common-formik-ds@0.18.2 + - @navikt/sif-common-soknad-ds@7.2.2 + - @navikt/sif-common-forms-ds@6.2.2 + - @navikt/sif-common-core-ds@7.2.2 + - @navikt/sif-common-sentry@0.14.1 + - @navikt/sif-common-utils@3.32.2 ## 2.10.1 ### Patch Changes -- Oppdatere pakker -- Updated dependencies - - @navikt/sif-common-formik-ds@0.18.1 - - @navikt/sif-common-soknad-ds@7.2.1 - - @navikt/sif-common-forms-ds@6.2.1 - - @navikt/sif-common-core-ds@7.2.1 - - @navikt/sif-common-utils@3.32.1 +- Oppdatere pakker +- Updated dependencies + - @navikt/sif-common-formik-ds@0.18.1 + - @navikt/sif-common-soknad-ds@7.2.1 + - @navikt/sif-common-forms-ds@6.2.1 + - @navikt/sif-common-core-ds@7.2.1 + - @navikt/sif-common-utils@3.32.1 ## 2.10.0 ### Minor Changes -- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. +- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. ### Patch Changes -- Updated dependencies [1361721f] - - @navikt/sif-common-amplitude@2.14.0 - - @navikt/sif-common-formik-ds@0.18.0 - - @navikt/sif-common-soknad-ds@7.1.0 - - @navikt/sif-common-forms-ds@6.1.0 - - @navikt/sif-common-core-ds@7.1.0 - - @navikt/sif-common-sentry@0.14.0 - - @navikt/sif-common-utils@3.32.0 +- Updated dependencies [1361721f] + - @navikt/sif-common-amplitude@2.14.0 + - @navikt/sif-common-formik-ds@0.18.0 + - @navikt/sif-common-soknad-ds@7.1.0 + - @navikt/sif-common-forms-ds@6.1.0 + - @navikt/sif-common-core-ds@7.1.0 + - @navikt/sif-common-sentry@0.14.0 + - @navikt/sif-common-utils@3.32.0 ## 2.9.0 ### Minor Changes -- 6017341: Logge informasjon om bruker er sn, frilanser eller arbeidstaker +- 6017341: Logge informasjon om bruker er sn, frilanser eller arbeidstaker ## 2.8.0 ### Minor Changes -- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring +- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring ### Patch Changes -- Updated dependencies [cb189915] - - @navikt/sif-common-amplitude@2.13.0 - - @navikt/sif-common-core-ds@7.1.0 - - @navikt/sif-common-formik-ds@0.17.0 - - @navikt/sif-common-forms-ds@7.0.0 - - @navikt/sif-common-sentry@0.13.0 - - @navikt/sif-common-soknad-ds@8.0.0 - - @navikt/sif-common-utils@3.31.0 +- Updated dependencies [cb189915] + - @navikt/sif-common-amplitude@2.13.0 + - @navikt/sif-common-core-ds@7.1.0 + - @navikt/sif-common-formik-ds@0.17.0 + - @navikt/sif-common-forms-ds@7.0.0 + - @navikt/sif-common-sentry@0.13.0 + - @navikt/sif-common-soknad-ds@8.0.0 + - @navikt/sif-common-utils@3.31.0 ## 2.7.0 ### Minor Changes -- e044ef1: Utvide tillatt endringsperiode til å være fra 6 måned bakover i tid (fra 3 måneder) +- e044ef1: Utvide tillatt endringsperiode til å være fra 6 måned bakover i tid (fra 3 måneder) ### Patch Changes -- 28e0e75: Diverse tekstoppdateringer +- 28e0e75: Diverse tekstoppdateringer ## 2.6.3 ### Patch Changes -- 5384b1c: API URL endret til service discovery, endret ingress i Q +- 5384b1c: API URL endret til service discovery, endret ingress i Q ## 2.6.2 ### Patch Changes -- 0a874c2: Bugfix. Forhindre oppslag på arbeidsgiver hvis søknadsperioder er utenfor tillatt endringsperiode eller fra-dato for oppslaget er etter til-dato. +- 0a874c2: Bugfix. Forhindre oppslag på arbeidsgiver hvis søknadsperioder er utenfor tillatt endringsperiode eller fra-dato for oppslaget er etter til-dato. ## 2.6.1 ### Patch Changes -- 0adf41c1: Pakkeoppdateringer -- Updated dependencies [0adf41c1] - - @navikt/sif-common-amplitude@2.12.1 - - @navikt/sif-common-formik-ds@0.16.1 - - @navikt/sif-common-soknad-ds@7.0.1 - - @navikt/sif-common-forms-ds@6.0.1 - - @navikt/sif-common-core-ds@7.0.2 - - @navikt/sif-common-sentry@0.12.1 - - @navikt/sif-common-utils@3.30.1 +- 0adf41c1: Pakkeoppdateringer +- Updated dependencies [0adf41c1] + - @navikt/sif-common-amplitude@2.12.1 + - @navikt/sif-common-formik-ds@0.16.1 + - @navikt/sif-common-soknad-ds@7.0.1 + - @navikt/sif-common-forms-ds@6.0.1 + - @navikt/sif-common-core-ds@7.0.2 + - @navikt/sif-common-sentry@0.12.1 + - @navikt/sif-common-utils@3.30.1 ## 2.6.0 ### Minor Changes -- 2ea6493: Refactor folderstruktur +- 2ea6493: Refactor folderstruktur ### Patch Changes -- Updated dependencies [2ea6493] - - @navikt/sif-common-utils@3.30.0 +- Updated dependencies [2ea6493] + - @navikt/sif-common-utils@3.30.0 ## 2.5.1 ### Patch Changes -- 2312c0c: Logge at bruker ikke har noen sak når dette er tilfelle, i stedet for "ingenPerioder" +- 2312c0c: Logge at bruker ikke har noen sak når dette er tilfelle, i stedet for "ingenPerioder" ## 2.5.0 ### Minor Changes -- c5e7f21: Bugfix - manglende ingress medførte feil ved redirect av bruker. Logikken er nå endret litt for å fikse dette +- c5e7f21: Bugfix - manglende ingress medførte feil ved redirect av bruker. Logikken er nå endret litt for å fikse dette ## 2.4.0 ### Minor Changes -- d730839: Refactor av initialData henting og SøknadRouter +- d730839: Refactor av initialData henting og SøknadRouter ## 2.3.0 ### Minor Changes -- 5aea4f1: Vise dialog når bruker kommer tilbake til velkommen-siden vha back i nettleser. +- 5aea4f1: Vise dialog når bruker kommer tilbake til velkommen-siden vha back i nettleser. ### Patch Changes -- 0bc3551: Bugfix - validere at antall timer oppgitt er mulig innenfor periodens varighet -- Updated dependencies [5aea4f1] - - @navikt/sif-common-core-ds@7.0.1 +- 0bc3551: Bugfix - validere at antall timer oppgitt er mulig innenfor periodens varighet +- Updated dependencies [5aea4f1] + - @navikt/sif-common-core-ds@7.0.1 ## 2.2.0 ### Minor Changes -- 93b8104e: Oppdatere packages +- 93b8104e: Oppdatere packages ### Patch Changes -- Updated dependencies [93b8104e] - - @navikt/sif-common-amplitude@2.12.0 - - @navikt/sif-common-formik-ds@0.16.0 - - @navikt/sif-common-soknad-ds@7.0.0 - - @navikt/sif-common-forms-ds@6.0.0 - - @navikt/sif-common-core-ds@7.0.0 - - @navikt/sif-common-utils@3.29.0 +- Updated dependencies [93b8104e] + - @navikt/sif-common-amplitude@2.12.0 + - @navikt/sif-common-formik-ds@0.16.0 + - @navikt/sif-common-soknad-ds@7.0.0 + - @navikt/sif-common-forms-ds@6.0.0 + - @navikt/sif-common-core-ds@7.0.0 + - @navikt/sif-common-utils@3.29.0 ## 2.1.0 ### Minor Changes -- 9a1fa3a7: Sjekke om søknadsperioder er innenfor tillatt endringsperiode +- 9a1fa3a7: Sjekke om søknadsperioder er innenfor tillatt endringsperiode ## 2.0.1 ### Patch Changes -- 8f046e3f: Mulighet for restart i errorBoundary +- 8f046e3f: Mulighet for restart i errorBoundary ## 2.0.0 ### Major Changes -- 96e09117: Legge til endring av ferie. +- 96e09117: Legge til endring av ferie. ### Patch Changes -- Updated dependencies [96e09117] -- Updated dependencies [96e09117] -- Updated dependencies [96e09117] -- Updated dependencies [96e09117] -- Updated dependencies [96e09117] - - @navikt/sif-common-formik-ds@0.15.0 - - @navikt/sif-common-core-ds@7.0.0 - - @navikt/sif-common-forms-ds@5.0.0 - - @navikt/sif-common-utils@3.28.0 - - @navikt/sif-common-soknad-ds@7.0.0 +- Updated dependencies [96e09117] +- Updated dependencies [96e09117] +- Updated dependencies [96e09117] +- Updated dependencies [96e09117] +- Updated dependencies [96e09117] + - @navikt/sif-common-formik-ds@0.15.0 + - @navikt/sif-common-core-ds@7.0.0 + - @navikt/sif-common-forms-ds@5.0.0 + - @navikt/sif-common-utils@3.28.0 + - @navikt/sif-common-soknad-ds@7.0.0 ## 1.10.1 ### Patch Changes -- 8badb53: Bugfix på at all mistmatch mellom arbeidsgivere i sak og registrerte arbeidsforhold ble tolket som harUkjentArbeidsforhold +- 8badb53: Bugfix på at all mistmatch mellom arbeidsgivere i sak og registrerte arbeidsforhold ble tolket som harUkjentArbeidsforhold ## 1.10.0 ### Minor Changes -- ca33226c: Oppdatere pakker +- ca33226c: Oppdatere pakker ### Patch Changes -- Updated dependencies [ca33226c] - - @navikt/sif-common-amplitude@2.11.0 - - @navikt/sif-common-formik-ds@0.14.0 - - @navikt/sif-common-soknad-ds@7.0.0 - - @navikt/sif-common-forms-ds@5.0.0 - - @navikt/sif-common-core-ds@7.0.0 - - @navikt/sif-common-sentry@0.12.0 - - @navikt/sif-common-utils@3.27.0 +- Updated dependencies [ca33226c] + - @navikt/sif-common-amplitude@2.11.0 + - @navikt/sif-common-formik-ds@0.14.0 + - @navikt/sif-common-soknad-ds@7.0.0 + - @navikt/sif-common-forms-ds@5.0.0 + - @navikt/sif-common-core-ds@7.0.0 + - @navikt/sif-common-sentry@0.12.0 + - @navikt/sif-common-utils@3.27.0 ## 1.9.0 ### Minor Changes -- 9187c41: Bugfix - knappen Vis flere uker var ikke synlig på mobil vising. Dette gjort at bruker ikke kunne endre alle ukene en ønsket å endre. +- 9187c41: Bugfix - knappen Vis flere uker var ikke synlig på mobil vising. Dette gjort at bruker ikke kunne endre alle ukene en ønsket å endre. ## 1.8.1 ### Patch Changes -- a8f8a431: Oppdatere ingress til innsyn -- 47c76689: Bugfix - legge til sjekk på at det faktisk er gjort endringer. Dette ble ikke fanget opp hvis bruker satte verdiene tilbake til slik det opprinnelig var på saken. +- a8f8a431: Oppdatere ingress til innsyn +- 47c76689: Bugfix - legge til sjekk på at det faktisk er gjort endringer. Dette ble ikke fanget opp hvis bruker satte verdiene tilbake til slik det opprinnelig var på saken. ## 1.8.0 ### Minor Changes -- 908bb770: Pakkeoppdateringer +- 908bb770: Pakkeoppdateringer ### Patch Changes -- Updated dependencies [908bb770] - - @navikt/sif-common-amplitude@2.10.0 - - @navikt/sif-common-formik-ds@0.12.0 - - @navikt/sif-common-soknad-ds@7.0.0 - - @navikt/sif-common-forms-ds@5.0.0 - - @navikt/sif-common-core-ds@6.1.0 - - @navikt/sif-common-sentry@0.11.0 - - @navikt/sif-common-utils@3.25.0 +- Updated dependencies [908bb770] + - @navikt/sif-common-amplitude@2.10.0 + - @navikt/sif-common-formik-ds@0.12.0 + - @navikt/sif-common-soknad-ds@7.0.0 + - @navikt/sif-common-forms-ds@5.0.0 + - @navikt/sif-common-core-ds@6.1.0 + - @navikt/sif-common-sentry@0.11.0 + - @navikt/sif-common-utils@3.25.0 ## 1.7.0 ### Minor Changes -- 6f6bf8d: Tillate 5 tegn i input for arbeidstimer og prosent, slik at en godtar f.eks. 20,75 timer. Endret fra 4 tegn. +- 6f6bf8d: Tillate 5 tegn i input for arbeidstimer og prosent, slik at en godtar f.eks. 20,75 timer. Endret fra 4 tegn. ## 1.6.1 ### Patch Changes -- ecd4b4f: Pakkeoppdateringer -- f033a9b: Env toggle for å styre logging av debuginfo til sentry -- f033a9b: Patch-oppdatering av ds pakker -- Updated dependencies [ecd4b4f] -- Updated dependencies [f033a9b] - - @navikt/sif-common-amplitude@2.9.3 - - @navikt/sif-common-formik-ds@0.11.5 - - @navikt/sif-common-soknad-ds@6.0.3 - - @navikt/sif-common-forms-ds@4.0.3 - - @navikt/sif-common-core-ds@6.0.4 - - @navikt/sif-common-sentry@0.9.6 +- ecd4b4f: Pakkeoppdateringer +- f033a9b: Env toggle for å styre logging av debuginfo til sentry +- f033a9b: Patch-oppdatering av ds pakker +- Updated dependencies [ecd4b4f] +- Updated dependencies [f033a9b] + - @navikt/sif-common-amplitude@2.9.3 + - @navikt/sif-common-formik-ds@0.11.5 + - @navikt/sif-common-soknad-ds@6.0.3 + - @navikt/sif-common-forms-ds@4.0.3 + - @navikt/sif-common-core-ds@6.0.4 + - @navikt/sif-common-sentry@0.9.6 ## 1.6.0 ### Minor Changes -- ed5db1e: Håndtere at bruker kan ha arbeidsgiver i sak som ikke finnes i aareg for perioden. +- ed5db1e: Håndtere at bruker kan ha arbeidsgiver i sak som ikke finnes i aareg for perioden. ## 1.5.5 ### Patch Changes -- 7637a0b: Oppdatere packages -- Updated dependencies [7637a0b] - - @navikt/sif-common-amplitude@2.9.2 - - @navikt/sif-common-formik-ds@0.11.4 - - @navikt/sif-common-soknad-ds@6.0.2 - - @navikt/sif-common-forms-ds@4.0.2 - - @navikt/sif-common-core-ds@6.0.3 - - @navikt/sif-common-sentry@0.9.5 - - @navikt/sif-common-utils@3.24.1 +- 7637a0b: Oppdatere packages +- Updated dependencies [7637a0b] + - @navikt/sif-common-amplitude@2.9.2 + - @navikt/sif-common-formik-ds@0.11.4 + - @navikt/sif-common-soknad-ds@6.0.2 + - @navikt/sif-common-forms-ds@4.0.2 + - @navikt/sif-common-core-ds@6.0.3 + - @navikt/sif-common-sentry@0.9.5 + - @navikt/sif-common-utils@3.24.1 ## 1.5.4 ### Patch Changes -- Utvide med 401 ignore i sentry +- Utvide med 401 ignore i sentry ## 1.5.3 ### Patch Changes -- Oppdatere debug-info +- Oppdatere debug-info ## 1.5.2 ### Patch Changes -- Utvide logging - logger masked k9format +- Utvide logging - logger masked k9format ## 1.5.1 ### Patch Changes -- cb524e65: Korrigere avvik i beregning ved prosent - feil visning i arbeidstid-step. Var korrekt på oppsummering. -- ab096d35: Logge debug-informasjon når sak hentes. Informasjonen som logges er et subsett hvor sensitive data ikke er med. -- Updated dependencies [ab096d35] -- Updated dependencies [cb524e65] - - @navikt/sif-common-sentry@0.8.2 - - @navikt/sif-common-utils@3.24.0 +- cb524e65: Korrigere avvik i beregning ved prosent - feil visning i arbeidstid-step. Var korrekt på oppsummering. +- ab096d35: Logge debug-informasjon når sak hentes. Informasjonen som logges er et subsett hvor sensitive data ikke er med. +- Updated dependencies [ab096d35] +- Updated dependencies [cb524e65] + - @navikt/sif-common-sentry@0.8.2 + - @navikt/sif-common-utils@3.24.0 ## 1.5.0 ### Minor Changes -- 5dd8ad5: Vise informasjon til bruker når vi ikke klarer å parse saken +- 5dd8ad5: Vise informasjon til bruker når vi ikke klarer å parse saken ### Patch Changes -- 633547b: Utvide feillogging verifyK9FormatArbeidstidTid -- 7c6db10: Pakkeoppdateringer -- Updated dependencies [7c6db10] - - @navikt/sif-common-formik-ds@0.11.2 - - @navikt/sif-common-soknad-ds@6.0.1 - - @navikt/sif-common-forms-ds@4.0.1 - - @navikt/sif-common-core-ds@6.0.1 +- 633547b: Utvide feillogging verifyK9FormatArbeidstidTid +- 7c6db10: Pakkeoppdateringer +- Updated dependencies [7c6db10] + - @navikt/sif-common-formik-ds@0.11.2 + - @navikt/sif-common-soknad-ds@6.0.1 + - @navikt/sif-common-forms-ds@4.0.1 + - @navikt/sif-common-core-ds@6.0.1 ## 1.4.0 ### Minor Changes -- 42583ea: Utvide logging ved ugyldig k9format +- 42583ea: Utvide logging ved ugyldig k9format ## 1.3.0 ### Minor Changes -- 66e4350: Legge til ytelse.dataBruktTilUtledning.soknadDialogCommitSha +- 66e4350: Legge til ytelse.dataBruktTilUtledning.soknadDialogCommitSha ### Patch Changes -- d2d634b: Utvide med å logge antall arbeidsaktiviteter som kan endres når bruker starter en endring -- d2d634b: Logge axiosError til sentry hvis innsending av melding feiler +- d2d634b: Utvide med å logge antall arbeidsaktiviteter som kan endres når bruker starter en endring +- d2d634b: Logge axiosError til sentry hvis innsending av melding feiler ## 1.2.1 ### Patch Changes -- dde26c4: Oppdatere packageversjoner -- Updated dependencies [dde26c4] - - @navikt/sif-common-amplitude@2.9.1 - - @navikt/sif-common-formik-ds@0.11.1 - - @navikt/sif-common-soknad-ds@6.0.0 - - @navikt/sif-common-forms-ds@4.0.0 - - @navikt/sif-common-core-ds@6.0.0 - - @navikt/sif-common-sentry@0.8.1 - - @navikt/sif-common-utils@3.23.1 +- dde26c4: Oppdatere packageversjoner +- Updated dependencies [dde26c4] + - @navikt/sif-common-amplitude@2.9.1 + - @navikt/sif-common-formik-ds@0.11.1 + - @navikt/sif-common-soknad-ds@6.0.0 + - @navikt/sif-common-forms-ds@4.0.0 + - @navikt/sif-common-core-ds@6.0.0 + - @navikt/sif-common-sentry@0.8.1 + - @navikt/sif-common-utils@3.23.1 ## 1.2.0 ### Minor Changes -- e6c5ea70: Oppdatere packages, inkludert major på axios +- e6c5ea70: Oppdatere packages, inkludert major på axios ### Patch Changes -- Updated dependencies [e6c5ea70] - - @navikt/sif-common-amplitude@2.9.0 - - @navikt/sif-common-formik-ds@0.11.0 - - @navikt/sif-common-soknad-ds@6.0.0 - - @navikt/sif-common-forms-ds@4.0.0 - - @navikt/sif-common-core-ds@6.0.0 - - @navikt/sif-common-sentry@0.8.0 - - @navikt/sif-common-utils@3.23.0 +- Updated dependencies [e6c5ea70] + - @navikt/sif-common-amplitude@2.9.0 + - @navikt/sif-common-formik-ds@0.11.0 + - @navikt/sif-common-soknad-ds@6.0.0 + - @navikt/sif-common-forms-ds@4.0.0 + - @navikt/sif-common-core-ds@6.0.0 + - @navikt/sif-common-sentry@0.8.0 + - @navikt/sif-common-utils@3.23.0 ## 1.1.0 ### Minor Changes -- bfc208e7: Legge til GitSha ved innsending av søknader i alle apper +- bfc208e7: Legge til GitSha ved innsending av søknader i alle apper ### Patch Changes -- ac7641bf: Legge på commit_sha i søknadApiData -- Updated dependencies [ac7641bf] -- Updated dependencies [bfc208e7] - - @navikt/sif-common-core-ds@5.6.0 - - @navikt/sif-common-forms-ds@4.0.0 +- ac7641bf: Legge på commit_sha i søknadApiData +- Updated dependencies [ac7641bf] +- Updated dependencies [bfc208e7] + - @navikt/sif-common-core-ds@5.6.0 + - @navikt/sif-common-forms-ds@4.0.0 ## 1.0.3 ### Patch Changes -- a0d61e2: Redirect til ikke-tilgang-page +- a0d61e2: Redirect til ikke-tilgang-page ## 1.0.2 ### Patch Changes -- af0debb: Fjerne dobbel logging av ikkeTilgangÅrsak +- af0debb: Fjerne dobbel logging av ikkeTilgangÅrsak ## 1.0.1 ### Patch Changes -- 9501b4c: Oppdatere tekst, korrigere log at søknad startes, korrigere ikkeTilgang log. tokenx update +- 9501b4c: Oppdatere tekst, korrigere log at søknad startes, korrigere ikkeTilgang log. tokenx update ## 1.0.0 ### Major Changes -- d0a2c73: Første versjon som legges ut i produksjon. +- d0a2c73: Første versjon som legges ut i produksjon. ### Minor Changes -- ef1a7bf: Oppdatert endringsdialog +- ef1a7bf: Oppdatert endringsdialog ### Patch Changes -- Updated dependencies [ef1a7bf] -- Updated dependencies [d0a2c73] - - @navikt/sif-common-utils@3.22.0 - - @navikt/sif-common-amplitude@2.8.0 - - @navikt/sif-common-formik-ds@0.10.0 - - @navikt/sif-common-soknad-ds@6.0.0 - - @navikt/sif-common-forms-ds@4.0.0 - - @navikt/sif-common-core-ds@6.0.0 - - @navikt/sif-common-sentry@0.7.0 +- Updated dependencies [ef1a7bf] +- Updated dependencies [d0a2c73] + - @navikt/sif-common-utils@3.22.0 + - @navikt/sif-common-amplitude@2.8.0 + - @navikt/sif-common-formik-ds@0.10.0 + - @navikt/sif-common-soknad-ds@6.0.0 + - @navikt/sif-common-forms-ds@4.0.0 + - @navikt/sif-common-core-ds@6.0.0 + - @navikt/sif-common-sentry@0.7.0 ## 0.5.2 ### Patch Changes -- 10f034bd: Forbedre oppstart av applikasjon og håndtering av 401 - bruker ikke logget inn. -- 41408691: Pakkeoppdateringer -- Updated dependencies [41408691] -- Updated dependencies [10f034bd] -- Updated dependencies [4e110301] -- Updated dependencies [4325d8dc] - - @navikt/sif-common-amplitude@2.7.3 - - @navikt/sif-common-sentry@0.6.2 - - @navikt/sif-common-core-ds@5.4.0 - - @navikt/sif-common-utils@3.21.0 - - @navikt/sif-common-forms-ds@4.0.0 +- 10f034bd: Forbedre oppstart av applikasjon og håndtering av 401 - bruker ikke logget inn. +- 41408691: Pakkeoppdateringer +- Updated dependencies [41408691] +- Updated dependencies [10f034bd] +- Updated dependencies [4e110301] +- Updated dependencies [4325d8dc] + - @navikt/sif-common-amplitude@2.7.3 + - @navikt/sif-common-sentry@0.6.2 + - @navikt/sif-common-core-ds@5.4.0 + - @navikt/sif-common-utils@3.21.0 + - @navikt/sif-common-forms-ds@4.0.0 ## 0.5.1 ### Patch Changes -- bfd9a33: Oppdatere pakker -- Updated dependencies [bfd9a33] - - @navikt/sif-common-amplitude@2.7.2 - - @navikt/sif-common-formik-ds@0.9.6 - - @navikt/sif-common-soknad-ds@5.3.7 - - @navikt/sif-common-forms-ds@3.3.4 - - @navikt/sif-common-core-ds@5.3.5 - - @navikt/sif-common-sentry@0.6.1 +- bfd9a33: Oppdatere pakker +- Updated dependencies [bfd9a33] + - @navikt/sif-common-amplitude@2.7.2 + - @navikt/sif-common-formik-ds@0.9.6 + - @navikt/sif-common-soknad-ds@5.3.7 + - @navikt/sif-common-forms-ds@3.3.4 + - @navikt/sif-common-core-ds@5.3.5 + - @navikt/sif-common-sentry@0.6.1 ## 0.5.0 ### Minor Changes -- 3165914: Migrering endringsmelding til k9-brukerdialog api, IDporten, tokenX +- 3165914: Migrering endringsmelding til k9-brukerdialog api, IDporten, tokenX ### Patch Changes -- Updated dependencies [c681e36] - - @navikt/sif-common-formik-ds@0.9.5 +- Updated dependencies [c681e36] + - @navikt/sif-common-formik-ds@0.9.5 ## 0.4.3 ### Patch Changes -- 4afefff: Oppdatere pakker -- Updated dependencies [4afefff] - - @navikt/sif-common-amplitude@2.7.1 - - @navikt/sif-common-formik-ds@0.9.4 - - @navikt/sif-common-soknad-ds@5.3.5 - - @navikt/sif-common-forms-ds@3.3.3 - - @navikt/sif-common-core-ds@5.3.3 - - @navikt/sif-common-utils@3.18.2 +- 4afefff: Oppdatere pakker +- Updated dependencies [4afefff] + - @navikt/sif-common-amplitude@2.7.1 + - @navikt/sif-common-formik-ds@0.9.4 + - @navikt/sif-common-soknad-ds@5.3.5 + - @navikt/sif-common-forms-ds@3.3.3 + - @navikt/sif-common-core-ds@5.3.3 + - @navikt/sif-common-utils@3.18.2 ## 0.4.2 ### Patch Changes -- af051b61: Diverse pakkeoppdateringer -- Updated dependencies [af051b61] - - @navikt/sif-common-amplitude@2.6.6 - - @navikt/sif-common-formik-ds@0.9.3 - - @navikt/sif-common-soknad-ds@5.3.3 - - @navikt/sif-common-forms-ds@3.3.2 - - @navikt/sif-common-core-ds@5.3.2 - - @navikt/sif-common-sentry@0.5.6 +- af051b61: Diverse pakkeoppdateringer +- Updated dependencies [af051b61] + - @navikt/sif-common-amplitude@2.6.6 + - @navikt/sif-common-formik-ds@0.9.3 + - @navikt/sif-common-soknad-ds@5.3.3 + - @navikt/sif-common-forms-ds@3.3.2 + - @navikt/sif-common-core-ds@5.3.2 + - @navikt/sif-common-sentry@0.5.6 ## 0.4.1 ### Patch Changes -- e1997dd: Pakkeoppdateringer -- Updated dependencies [e1997dd] - - @navikt/sif-common-amplitude@2.6.5 - - @navikt/sif-common-formik-ds@0.9.2 - - @navikt/sif-common-soknad-ds@5.3.2 - - @navikt/sif-common-forms-ds@3.3.1 - - @navikt/sif-common-core-ds@5.3.1 - - @navikt/sif-common-sentry@0.5.5 - - @navikt/sif-common-utils@3.18.1 +- e1997dd: Pakkeoppdateringer +- Updated dependencies [e1997dd] + - @navikt/sif-common-amplitude@2.6.5 + - @navikt/sif-common-formik-ds@0.9.2 + - @navikt/sif-common-soknad-ds@5.3.2 + - @navikt/sif-common-forms-ds@3.3.1 + - @navikt/sif-common-core-ds@5.3.1 + - @navikt/sif-common-sentry@0.5.5 + - @navikt/sif-common-utils@3.18.1 ## 0.4.0 ### Minor Changes -- 1492b0a: Endre unknownRoute feilmelding +- 1492b0a: Endre unknownRoute feilmelding ### Patch Changes -- Updated dependencies [1492b0a] - - @navikt/sif-common-soknad-ds@5.3.0 +- Updated dependencies [1492b0a] + - @navikt/sif-common-soknad-ds@5.3.0 ## 0.3.0 ### Minor Changes -- 451fef8: Legge til sjekk som gjør at bruker sendes til publicPath hvis en kommer til root (/) +- 451fef8: Legge til sjekk som gjør at bruker sendes til publicPath hvis en kommer til root (/) ### Patch Changes -- Updated dependencies [451fef8] - - @navikt/sif-common-soknad-ds@5.2.0 +- Updated dependencies [451fef8] + - @navikt/sif-common-soknad-ds@5.2.0 ## 0.2.0 ### Minor Changes -- 225b95e: DurationText komponent + oppdatert endringsdialog -- dd0a865: I hovedsak utvikling av endringsdialog, men noen endringer på fellespakker, f.eks. desimaltid i sif-common-utils +- 225b95e: DurationText komponent + oppdatert endringsdialog +- dd0a865: I hovedsak utvikling av endringsdialog, men noen endringer på fellespakker, f.eks. desimaltid i sif-common-utils ### Patch Changes -- 5101688: Oppdaterte pakker -- 5101688: Oppdatere pakker -- d99ac0a: Pakkeoppdateringer - objec-hash, uuid -- Updated dependencies [225b95e] -- Updated dependencies [dd0a865] -- Updated dependencies [5101688] -- Updated dependencies [5101688] -- Updated dependencies [d99ac0a] - - @navikt/sif-common-core-ds@5.3.0 - - @navikt/sif-common-amplitude@2.6.4 - - @navikt/sif-common-formik-ds@0.9.1 - - @navikt/sif-common-forms-ds@4.0.0 - - @navikt/sif-common-sentry@0.5.4 - - @navikt/sif-common-soknad-ds@5.1.3 - - @navikt/sif-common-utils@3.18.0 +- 5101688: Oppdaterte pakker +- 5101688: Oppdatere pakker +- d99ac0a: Pakkeoppdateringer - objec-hash, uuid +- Updated dependencies [225b95e] +- Updated dependencies [dd0a865] +- Updated dependencies [5101688] +- Updated dependencies [5101688] +- Updated dependencies [d99ac0a] + - @navikt/sif-common-core-ds@5.3.0 + - @navikt/sif-common-amplitude@2.6.4 + - @navikt/sif-common-formik-ds@0.9.1 + - @navikt/sif-common-forms-ds@4.0.0 + - @navikt/sif-common-sentry@0.5.4 + - @navikt/sif-common-soknad-ds@5.1.3 + - @navikt/sif-common-utils@3.18.0 ## 0.1.1 ### Patch Changes -- c735b7f: Oppdatere pakker -- 369914d: Oppdatert pakke av designsystemet -- Updated dependencies [c735b7f] -- Updated dependencies [369914d] -- Updated dependencies [9afe1a5] -- Updated dependencies [9afe1a5] - - @navikt/sif-common-amplitude@2.6.3 - - @navikt/sif-common-core-ds@6.0.0 - - @navikt/sif-common-formik-ds@0.9.0 - - @navikt/sif-common-forms-ds@4.0.0 - - @navikt/sif-common-sentry@0.5.3 - - @navikt/sif-common-soknad-ds@6.0.0 - - @navikt/sif-common-utils@3.17.2 +- c735b7f: Oppdatere pakker +- 369914d: Oppdatert pakke av designsystemet +- Updated dependencies [c735b7f] +- Updated dependencies [369914d] +- Updated dependencies [9afe1a5] +- Updated dependencies [9afe1a5] + - @navikt/sif-common-amplitude@2.6.3 + - @navikt/sif-common-core-ds@6.0.0 + - @navikt/sif-common-formik-ds@0.9.0 + - @navikt/sif-common-forms-ds@4.0.0 + - @navikt/sif-common-sentry@0.5.3 + - @navikt/sif-common-soknad-ds@6.0.0 + - @navikt/sif-common-utils@3.17.2 ## 0.1.0 ### Minor Changes -- 827d044: Diverse UU justeringer +- 827d044: Diverse UU justeringer ### Patch Changes -- Updated dependencies [827d044] - - @navikt/sif-common-amplitude@2.6.1 - - @navikt/sif-common-core-ds@5.0.1 - - @navikt/sif-common-formik-ds@0.8.1 - - @navikt/sif-common-forms-ds@3.0.1 - - @navikt/sif-common-sentry@0.5.1 - - @navikt/sif-common-soknad-ds@5.0.1 - - @navikt/sif-common-utils@3.16.1 +- Updated dependencies [827d044] + - @navikt/sif-common-amplitude@2.6.1 + - @navikt/sif-common-core-ds@5.0.1 + - @navikt/sif-common-formik-ds@0.8.1 + - @navikt/sif-common-forms-ds@3.0.1 + - @navikt/sif-common-sentry@0.5.1 + - @navikt/sif-common-soknad-ds@5.0.1 + - @navikt/sif-common-utils@3.16.1 diff --git a/apps/endringsmelding-pleiepenger/Dockerfile b/apps/endringsmelding-pleiepenger/Dockerfile index 5fe4e28e67..00ee5b3463 100644 --- a/apps/endringsmelding-pleiepenger/Dockerfile +++ b/apps/endringsmelding-pleiepenger/Dockerfile @@ -14,7 +14,7 @@ COPY . . RUN yarn RUN yarn turbo run build-app --filter=${SCOPE} -FROM pruner AS server +FROM gcr.io/distroless/nodejs18-debian11:nonroot WORKDIR /apps/endringsmelding-pleiepenger COPY --from=pruner /app/node_modules ./node_modules/ COPY --from=pruner /app/apps/endringsmelding-pleiepenger/server.cjs . @@ -25,4 +25,4 @@ COPY --from=pruner /app/apps/endringsmelding-pleiepenger/src/build/AppSettings.c COPY --from=pruner /app/apps/endringsmelding-pleiepenger/dist ./dist EXPOSE 8080 -CMD ["yarn","--cwd", "apps/endringsmelding-pleiepenger", "start-express"] +CMD ["server.cjs"] diff --git a/apps/endringsmelding-pleiepenger/e2e/cypress/e2e/tester/1-utfylling-av-dialog/cyHelpers.ts b/apps/endringsmelding-pleiepenger/e2e/cypress/e2e/tester/1-utfylling-av-dialog/cyHelpers.ts index 323787ccf4..fa788811ef 100644 --- a/apps/endringsmelding-pleiepenger/e2e/cypress/e2e/tester/1-utfylling-av-dialog/cyHelpers.ts +++ b/apps/endringsmelding-pleiepenger/e2e/cypress/e2e/tester/1-utfylling-av-dialog/cyHelpers.ts @@ -8,12 +8,12 @@ const enkeltuke = 45; const flereUker = [46, 47]; const getAktivitet = () => { - getTestElement('aktivitet_a_947064649').should('be.visible').wait(200); + getTestElement('aktivitet_a_947064649').should('be.visible').wait(500); return getTestElement('aktivitet_a_947064649'); }; const getPeriode = () => { - getTestElement('dateRangeAccordion_0').should('be.visible').wait(200); + getTestElement('dateRangeAccordion_0').should('be.visible').wait(500); return getTestElement('dateRangeAccordion_0'); }; @@ -213,7 +213,7 @@ const endreArbeidFlereUker = (uker: number[] = flereUker) => { it('velger uker for endring', () => { getAktivitet().within(() => { getPeriode().within(() => { - getTestElement('endre-flere-uker-cb').click(); + getTestElement('endre-flere-uker-cb').wait(500).click(); const rows = uker.map((uke) => getUkeRow(uke)); rows.forEach((row) => { row.within(() => { diff --git a/apps/endringsmelding-pleiepenger/nais/dev-gcp.json b/apps/endringsmelding-pleiepenger/nais/dev-gcp.json index dd602b3666..873093fd17 100644 --- a/apps/endringsmelding-pleiepenger/nais/dev-gcp.json +++ b/apps/endringsmelding-pleiepenger/nais/dev-gcp.json @@ -23,6 +23,9 @@ "USE_AMPLITUDE": "true" }, "externalHosts": ["www.nav.no", "dekoratoren.ekstern.dev.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api", "sif-innsyn-api"], + "minReplicas": 1, + "maxReplicas": 1, "ingresses": ["https://endringsmelding-pleiepenger.intern.dev.nav.no"], "livenessPath": "/familie/sykdom-i-familien/soknad/endringsmelding-pleiepenger/health/isAlive", "namespace": "dusseldorf", diff --git a/apps/endringsmelding-pleiepenger/nais/prod-gcp.json b/apps/endringsmelding-pleiepenger/nais/prod-gcp.json index 215aa94f56..51eb213dad 100644 --- a/apps/endringsmelding-pleiepenger/nais/prod-gcp.json +++ b/apps/endringsmelding-pleiepenger/nais/prod-gcp.json @@ -22,6 +22,9 @@ "USE_AMPLITUDE": "true" }, "externalHosts": ["www.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api", "sif-innsyn-api"], + "minReplicas": 2, + "maxReplicas": 2, "ingresses": ["https://www.nav.no/familie/sykdom-i-familien/soknad/endringsmelding-pleiepenger"], "livenessPath": "/familie/sykdom-i-familien/soknad/endringsmelding-pleiepenger/health/isAlive", "namespace": "dusseldorf", diff --git a/apps/endringsmelding-pleiepenger/package.json b/apps/endringsmelding-pleiepenger/package.json index 7e3f5f94ad..9f3a0f25b3 100644 --- a/apps/endringsmelding-pleiepenger/package.json +++ b/apps/endringsmelding-pleiepenger/package.json @@ -5,15 +5,13 @@ "license": "MIT", "name": "@navikt/endringsmelding-pleiepenger", "repository": "https://github.com/navikt/sif-brukerdialog", - "version": "2.20.18", + "version": "2.24.5", "private": true, "dependencies": { - "@formatjs/intl-pluralrules": "5.2.9", - "@navikt/ds-css": "5.10.1", + "@navikt/ds-css": "5.11.4", "@navikt/ds-icons": "3.4.3", - "@navikt/ds-react": "5.10.1", - "@navikt/ds-tailwind": "5.10.1", - "@navikt/fnrvalidator": "1.3.0", + "@navikt/ds-react": "5.11.4", + "@navikt/ds-tailwind": "5.11.4", "@navikt/sif-common-amplitude": "workspace:*", "@navikt/sif-common-core-ds": "workspace:*", "@navikt/sif-common-formik-ds": "workspace:*", @@ -22,100 +20,74 @@ "@navikt/sif-common-sentry": "workspace:*", "@navikt/sif-common-soknad-ds": "workspace:*", "@navikt/sif-common-utils": "workspace:*", - "@testing-library/react": "14.1.0", - "axios": "1.6.1", + "@testing-library/react": "14.1.2", + "axios": "1.6.2", "compression": "1.7.4", "cookie-parser": "1.4.6", "dayjs": "1.11.10", "dotenv": "16.3.1", "express": "4.18.2", - "express-rate-limit": "7.1.4", + "express-rate-limit": "7.1.5", "flat": "6.0.1", "formik": "2.4.5", "http-proxy-middleware": "2.0.6", "intl": "1.2.5", - "jose": "5.1.0", + "jose": "5.1.3", "lodash": "4.17.21", "mustache-express": "1.3.2", "object-hash": "3.0.0", "openid-client": "5.6.1", - "promise": "8.3.0", "react": "18.2.0", - "react-collapse": "5.1.1", "react-day-picker": "8.9.1", "react-dom": "18.2.0", - "react-intl": "6.5.4", + "react-intl": "6.5.5", "react-modal": "3.16.1", - "react-router-dom": "6.18.0" + "react-router-dom": "6.20.1" }, "devDependencies": { - "@babel/core": "7.23.3", + "@babel/core": "7.23.5", "@babel/plugin-proposal-object-rest-spread": "7.20.7", "@babel/plugin-transform-modules-commonjs": "7.23.3", - "@babel/preset-env": "7.23.3", + "@babel/preset-env": "7.23.5", "@babel/preset-react": "7.23.3", "@babel/preset-typescript": "7.23.3", - "@mswjs/data": "0.15.0", - "@navikt/ds-tailwind": "5.10.1", - "@sentry/vite-plugin": "2.10.0", - "@storybook/addon-actions": "7.5.3", - "@storybook/addon-essentials": "7.5.3", - "@storybook/addon-interactions": "7.5.3", - "@storybook/addon-links": "7.5.3", - "@storybook/node-logger": "7.5.3", - "@storybook/preset-create-react-app": "7.5.3", - "@storybook/react": "7.5.3", - "@storybook/react-webpack5": "7.5.3", + "@mswjs/data": "0.16.1", + "@navikt/ds-tailwind": "5.11.4", + "@sentry/vite-plugin": "2.10.2", + "@storybook/addon-actions": "7.6.4", + "@storybook/addon-essentials": "7.6.4", + "@storybook/addon-interactions": "7.6.4", + "@storybook/addon-links": "7.6.4", + "@storybook/node-logger": "7.6.4", + "@storybook/preset-create-react-app": "7.6.4", + "@storybook/react": "7.6.4", "@storybook/testing-library": "0.2.2", "@types/flat": "5.0.5", "@types/intl": "1.2.2", - "@types/jest": "29.5.8", "@types/js-cookie": "3.0.6", "@types/object-hash": "3.0.6", - "@types/react": "18.2.37", - "@types/react-collapse": "5.0.4", + "@types/react": "18.2.43", "@types/react-document-title": "2.0.8", - "@types/react-dom": "18.2.15", + "@types/react-dom": "18.2.17", "@types/react-modal": "3.16.3", "@types/react-router-dom": "5.3.3", - "@vitejs/plugin-react": "4.1.1", + "@vitejs/plugin-react": "4.2.1", "axe-core": "4.8.2", "babel-polyfill": "6.26.0", "cross-env": "7.0.3", - "css-loader": "6.8.1", - "cypress": "13.5.0", + "cypress": "13.6.1", "cypress-axe": "1.5.0", "cypress-file-upload": "5.0.8", - "jsdom": "22.1.0", - "mini-css-extract-plugin": "2.7.6", - "msw": "2.0.6", - "postcss": "8.4.31", + "jsdom": "23.0.1", + "msw": "2.0.10", + "postcss": "8.4.32", "postcss-import": "15.1.0", - "postcss-loader": "7.3.3", - "react-scripts": "5.0.1", - "regenerator-runtime": "0.14.0", - "rimraf": "5.0.5", - "sass": "1.69.5", - "sass-loader": "13.3.2", - "start-server-and-test": "2.0.2", - "storybook": "7.5.3", - "style-loader": "3.3.3", - "tailwindcss": "3.3.5", - "typescript": "5.2.2", - "vite": "4.5.0", - "vite-plugin-checker": "0.6.2" - }, - "jest": { - "transformIgnorePatterns": [ - "node_modules/(?!(@navikt)).*\\.js$", - "node_modules/(?!(axios)).*\\.js$" - ], - "moduleNameMapper": { - "@hooks$": "/src/app/hooks/index.ts", - "@types$": "/src/app/types/index.ts", - "@utils$": "/src/app/utils/index.ts", - "axios": "axios/dist/node/axios.cjs" - } + "storybook": "7.6.4", + "tailwindcss": "3.3.6", + "typescript": "5.3.3", + "vite": "5.0.7", + "vite-plugin-checker": "0.6.2", + "vitest": "1.0.4" }, "scripts": { "build-app": "vite build --base=/familie/sykdom-i-familien/soknad/endringsmelding-pleiepenger", @@ -125,12 +97,11 @@ "cypress-run": "cypress run --project $PWD/e2e", "dev-api": "PORT=8089 node ./src/mocks/server.cjs", "lint": "eslint ./src --ext js,ts,tsx", - "snd": "cross-env NODE_ENV=development node ./server.cjs", + "dev": "cross-env NODE_ENV=development node ./server.cjs", "start-e2e-server": "cross-env NODE_ENV=development node ./server-e2e.cjs", "start-express": "node ./server.cjs", "storybook": "storybook dev -p 6006 -s public", - "test-watch": "react-scripts test --watchAll=true --env=jsdom", - "test": "react-scripts test --watchAll=false --env=jsdom" + "test": "vitest" }, "eslintConfig": { "overrides": [ @@ -146,8 +117,5 @@ }, "msw": { "workerDirectory": "dist" - }, - "resolutions": { - "babel-core": "7.0.0-bridge.0" } } diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts index 7d9b153eba..148b9a39c1 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/getSakFromK9Sak.test.ts @@ -324,7 +324,7 @@ describe('getSakFromK9Sak', () => { }); }); describe('med ansattTom', () => { - describe('returnerer true når ansattFom er før søknadsperiode og ansattTom er etter søknadsperioder', () => { + it('returnerer true når ansattFom er før søknadsperiode og ansattTom er etter søknadsperioder', () => { expect( erArbeidsgiverInnenforSøknadsperioder( { @@ -335,7 +335,7 @@ describe('getSakFromK9Sak', () => { ), ).toBeTruthy(); }); - describe('returnerer true når ansattTom er i mellom søknadsperioder', () => { + it('returnerer true når ansattTom er i mellom søknadsperioder', () => { expect( erArbeidsgiverInnenforSøknadsperioder( { @@ -346,7 +346,7 @@ describe('getSakFromK9Sak', () => { ), ).toBeTruthy(); }); - describe('returnerer false når ansattTom er før søknadsperioder', () => { + it('returnerer false når ansattTom er før søknadsperioder', () => { expect( erArbeidsgiverInnenforSøknadsperioder( { @@ -357,7 +357,7 @@ describe('getSakFromK9Sak', () => { ), ).toBeFalsy(); }); - describe('returnerer false når ansattFom og ansattTom er mellom to søknadsperioder', () => { + it('returnerer false når ansattFom og ansattTom er mellom to søknadsperioder', () => { expect( erArbeidsgiverInnenforSøknadsperioder( { diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts index 7a8a919cbc..11b3db4057 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/__tests__/tilgangskontroll.test.ts @@ -1,6 +1,7 @@ import { DateRange, ISODateRangeToDateRange, ISODurationToDuration } from '@navikt/sif-common-utils'; import { Arbeidsgiver, K9SakArbeidstaker, K9SakArbeidstidPeriodeMap } from '@types'; import { tilgangskontroll, tilgangskontrollUtils } from '../tilgangskontroll'; +import { vi } from 'vitest'; const arbeidsgiver1: Arbeidsgiver = { key: 'a_1', organisasjonsnummer: '1' } as Arbeidsgiver; const arbeidsgiver2: Arbeidsgiver = { key: 'a_2', organisasjonsnummer: '2' } as Arbeidsgiver; @@ -9,13 +10,13 @@ const arbeidsgiver3: Arbeidsgiver = { key: 'a_3', organisasjonsnummer: '3' } as const arbeidstaker1: K9SakArbeidstaker = { organisasjonsnummer: '1' } as K9SakArbeidstaker; const arbeidstaker2: K9SakArbeidstaker = { organisasjonsnummer: '2' } as K9SakArbeidstaker; -jest.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => ({ +vi.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => ({ getEnvironmentVariable: () => { return false; }, })); -jest.mock('../featureToggleUtils', () => ({ +vi.mock('../featureToggleUtils', () => ({ Feature: { UKJENT_ARBEIDSFOHOLD: 'on', }, diff --git a/apps/endringsmelding-pleiepenger/src/app/utils/index.ts b/apps/endringsmelding-pleiepenger/src/app/utils/index.ts index 344f384aa6..aef164b1a5 100644 --- a/apps/endringsmelding-pleiepenger/src/app/utils/index.ts +++ b/apps/endringsmelding-pleiepenger/src/app/utils/index.ts @@ -1,4 +1,4 @@ -// export * from './lagreSøknadState'; // Tatt ut pga jest feil: encountered an unexpected token. Kan nok fikses med config endringer +export * from './lagreSøknadState'; export * from './apiDataUtils'; export * from './appSentryLogger'; export * from './arbeidsukeUtils'; diff --git "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" index de29f0cf9b..e21179711a 100644 --- "a/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" +++ "b/apps/endringsmelding-pleiepenger/src/app/utils/s\303\270knadsdataToApiData/__tests__/getDataBruktTilUtledning.test.ts" @@ -11,10 +11,11 @@ import { getUkjentArbeidsforholdApiDataFromSøknadsdata, mapArbeidsforholdToArbeidsforholdApiData, } from '../getDataBruktTilUtledning'; +import { vi } from 'vitest'; const commitSha = 'abc'; -jest.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => ({ +vi.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => ({ getCommitShaFromEnv: () => { return commitSha; }, diff --git a/apps/endringsmelding-pleiepenger/vitest.config.ts b/apps/endringsmelding-pleiepenger/vitest.config.ts new file mode 100644 index 0000000000..435a2dbde5 --- /dev/null +++ b/apps/endringsmelding-pleiepenger/vitest.config.ts @@ -0,0 +1,21 @@ +/// +/// + +import path from 'path'; +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + exclude: ['./e2e/**/*', './build/**/*', './dist/**/*', '**/*.spec.tsx'], + globals: true, + environment: 'jsdom', + css: false, + }, + resolve: { + alias: { + '@utils': path.resolve(__dirname, './src/app/utils'), + '@types': path.resolve(__dirname, './src/app/types'), + '@hooks': path.resolve(__dirname, './src/app/hooks'), + }, + }, +}); diff --git a/apps/omsorgsdager-aleneomsorg-dialog/CHANGELOG.md b/apps/omsorgsdager-aleneomsorg-dialog/CHANGELOG.md index 91fe5e4a6e..3af034387e 100644 --- a/apps/omsorgsdager-aleneomsorg-dialog/CHANGELOG.md +++ b/apps/omsorgsdager-aleneomsorg-dialog/CHANGELOG.md @@ -1,484 +1,649 @@ # @navikt/omsorgsdager-aleneomsorg-dialog +## 2.14.4 + +### Patch Changes + +- Patch oppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.24.5 + - @navikt/sif-common-formik-ds@1.6.2 + - @navikt/sif-common-soknad-ds@10.12.2 + - @navikt/sif-common-forms-ds@8.16.2 + - @navikt/sif-common-core-ds@9.12.2 + - @navikt/sif-common-hooks@0.1.3 + - @navikt/sif-common-utils@3.43.5 + +## 2.14.3 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker +- Updated dependencies [e7bf8d1] + - @navikt/sif-common-amplitude@2.24.4 + - @navikt/sif-common-formik-ds@1.6.1 + - @navikt/sif-common-soknad-ds@10.12.1 + - @navikt/sif-common-forms-ds@8.16.1 + - @navikt/sif-common-core-ds@9.12.1 + - @navikt/sif-common-sentry@0.25.4 + - @navikt/sif-common-utils@3.43.4 + +## 2.14.2 + +### Patch Changes + +- Updated dependencies [573c55d] + - @navikt/sif-common-formik-ds@1.6.0 + - @navikt/sif-common-soknad-ds@10.12.0 + - @navikt/sif-common-forms-ds@8.16.0 + - @navikt/sif-common-core-ds@9.12.0 + +## 2.14.1 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer +- Updated dependencies [406b044] + - @navikt/sif-common-amplitude@2.24.3 + - @navikt/sif-common-formik-ds@1.5.3 + - @navikt/sif-common-soknad-ds@10.11.1 + - @navikt/sif-common-forms-ds@8.15.1 + - @navikt/sif-common-core-ds@9.11.3 + - @navikt/sif-common-sentry@0.25.3 + - @navikt/sif-common-utils@3.43.3 + +## 2.14.0 + +### Minor Changes + +- 2331115: Oppdatert react-router-dom. Endringer i ettersending og pleiepenger på grunn av feil bruk av navigate i ny versjon. + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [2331115] +- Updated dependencies [6084e23] + - @navikt/sif-common-soknad-ds@10.11.0 + - @navikt/sif-common-forms-ds@8.15.0 + - @navikt/sif-app-register@0.0.4 + - @navikt/sif-common-amplitude@2.24.2 + - @navikt/sif-common-core-ds@9.11.2 + - @navikt/sif-common-formik-ds@1.5.2 + - @navikt/sif-common-hooks@0.1.2 + - @navikt/sif-common-sentry@0.25.2 + - @navikt/sif-common-utils@3.43.2 + +## 2.13.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [295d3ad] + - @navikt/sif-app-register@0.0.3 + - @navikt/sif-common-amplitude@2.24.1 + - @navikt/sif-common-core-ds@9.11.1 + - @navikt/sif-common-formik-ds@1.5.1 + - @navikt/sif-common-forms-ds@8.14.1 + - @navikt/sif-common-hooks@0.1.1 + - @navikt/sif-common-sentry@0.25.1 + - @navikt/sif-common-soknad-ds@10.10.1 + - @navikt/sif-common-utils@3.43.1 + +## 2.13.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +### Patch Changes + +- Updated dependencies [53b47be] + - @navikt/sif-common-amplitude@2.24.0 + - @navikt/sif-common-formik-ds@1.5.0 + - @navikt/sif-common-soknad-ds@10.10.0 + - @navikt/sif-common-forms-ds@8.14.0 + - @navikt/sif-common-core-ds@9.11.0 + - @navikt/sif-common-sentry@0.25.0 + - @navikt/sif-common-utils@3.43.0 + +## 2.12.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +### Patch Changes + +- Updated dependencies + - @navikt/sif-common-amplitude@2.23.0 + - @navikt/sif-common-formik-ds@1.4.0 + - @navikt/sif-common-soknad-ds@10.9.0 + - @navikt/sif-common-forms-ds@8.13.0 + - @navikt/sif-common-core-ds@9.10.0 + - @navikt/sif-common-sentry@0.24.0 + - @navikt/sif-common-hooks@0.1.0 + - @navikt/sif-common-utils@3.42.0 + +## 2.11.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + +### Patch Changes + +- Updated dependencies [d31f28ec] + - @navikt/sif-common-amplitude@2.22.0 + - @navikt/sif-common-formik-ds@1.3.0 + - @navikt/sif-common-soknad-ds@10.8.0 + - @navikt/sif-common-forms-ds@8.12.0 + - @navikt/sif-common-core-ds@9.9.0 + - @navikt/sif-common-sentry@0.23.0 + - @navikt/sif-common-utils@3.41.0 + +## 2.10.20 + +### Patch Changes + +- 6d3b3cbe: Minor og patch oppdateringer + nextjs major -> 14 +- Updated dependencies [6d3b3cbe] + - @navikt/sif-common-formik-ds@1.2.3 + - @navikt/sif-common-soknad-ds@10.7.11 + - @navikt/sif-common-forms-ds@8.11.4 + - @navikt/sif-common-core-ds@9.8.11 + - @navikt/sif-common-sentry@0.22.7 + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-utils@3.40.11 + +## 2.10.19 + +### Patch Changes + +- Updated dependencies [19c424d7] + - @navikt/sif-app-register@0.0.2 + ## 2.10.18 ### Patch Changes -- 09ae5814: Patch-oppdateringer -- Updated dependencies [09ae5814] - - @navikt/sif-common-formik-ds@1.2.2 - - @navikt/sif-common-soknad-ds@10.7.10 - - @navikt/sif-common-forms-ds@8.11.3 - - @navikt/sif-common-core-ds@9.8.10 - - @navikt/sif-common-utils@3.40.11 +- 09ae5814: Patch-oppdateringer +- Updated dependencies [09ae5814] + - @navikt/sif-common-formik-ds@1.2.2 + - @navikt/sif-common-soknad-ds@10.7.10 + - @navikt/sif-common-forms-ds@8.11.3 + - @navikt/sif-common-core-ds@9.8.10 + - @navikt/sif-common-utils@3.40.11 ## 2.10.17 ### Patch Changes -- b4d45cf9: Diverse mindre pakkeoppdateringer -- Updated dependencies [b4d45cf9] - - @navikt/sif-common-amplitude@2.21.9 - - @navikt/sif-common-formik-ds@1.2.1 - - @navikt/sif-common-soknad-ds@10.7.9 - - @navikt/sif-common-forms-ds@8.11.2 - - @navikt/sif-common-core-ds@9.8.9 - - @navikt/sif-common-sentry@0.22.6 - - @navikt/sif-common-utils@3.40.10 +- b4d45cf9: Diverse mindre pakkeoppdateringer +- Updated dependencies [b4d45cf9] + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-formik-ds@1.2.1 + - @navikt/sif-common-soknad-ds@10.7.9 + - @navikt/sif-common-forms-ds@8.11.2 + - @navikt/sif-common-core-ds@9.8.9 + - @navikt/sif-common-sentry@0.22.6 + - @navikt/sif-common-utils@3.40.10 ## 2.10.16 ### Patch Changes -- Updated dependencies [e815a9a8] - - @navikt/sif-common-formik-ds@1.2.0 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-forms-ds@8.11.1 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [e815a9a8] + - @navikt/sif-common-formik-ds@1.2.0 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-forms-ds@8.11.1 + - @navikt/sif-common-soknad-ds@10.7.8 ## 2.10.15 ### Patch Changes -- Updated dependencies [66c8522a] - - @navikt/sif-common-forms-ds@8.11.1 +- Updated dependencies [66c8522a] + - @navikt/sif-common-forms-ds@8.11.1 ## 2.10.14 ### Patch Changes -- Updated dependencies [ce769b8e] -- Updated dependencies [afe04538] - - @navikt/sif-common-forms-ds@8.11.0 - - @navikt/sif-common-formik-ds@1.1.6 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [ce769b8e] +- Updated dependencies [afe04538] + - @navikt/sif-common-forms-ds@8.11.0 + - @navikt/sif-common-formik-ds@1.1.6 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-soknad-ds@10.7.8 ## 2.10.13 ### Patch Changes -- Updated dependencies [1d7c508f] - - @navikt/sif-common-formik-ds@1.1.5 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-forms-ds@8.10.0 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [1d7c508f] + - @navikt/sif-common-formik-ds@1.1.5 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-forms-ds@8.10.0 + - @navikt/sif-common-soknad-ds@10.7.8 ## 2.10.12 ### Patch Changes -- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 -- Updated dependencies [5c44f78b] -- Updated dependencies [5c44f78b] -- Updated dependencies [cb7e6653] - - @navikt/sif-common-forms-ds@8.10.0 - - @navikt/sif-common-formik-ds@1.1.4 - - @navikt/sif-common-amplitude@2.21.8 - - @navikt/sif-common-soknad-ds@10.7.8 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-utils@3.40.9 +- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 +- Updated dependencies [5c44f78b] +- Updated dependencies [5c44f78b] +- Updated dependencies [cb7e6653] + - @navikt/sif-common-forms-ds@8.10.0 + - @navikt/sif-common-formik-ds@1.1.4 + - @navikt/sif-common-amplitude@2.21.8 + - @navikt/sif-common-soknad-ds@10.7.8 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-utils@3.40.9 ## 2.10.11 ### Patch Changes -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.7 - - @navikt/sif-common-formik-ds@1.1.3 - - @navikt/sif-common-soknad-ds@10.7.7 - - @navikt/sif-common-forms-ds@8.9.7 - - @navikt/sif-common-core-ds@9.8.7 - - @navikt/sif-common-sentry@0.22.5 - - @navikt/sif-common-utils@3.40.8 +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.7 + - @navikt/sif-common-formik-ds@1.1.3 + - @navikt/sif-common-soknad-ds@10.7.7 + - @navikt/sif-common-forms-ds@8.9.7 + - @navikt/sif-common-core-ds@9.8.7 + - @navikt/sif-common-sentry@0.22.5 + - @navikt/sif-common-utils@3.40.8 ## 2.10.10 ### Patch Changes -- Pakkeoppdatering som fikser datepicker + modal bug -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.6 - - @navikt/sif-common-formik-ds@1.1.2 - - @navikt/sif-common-soknad-ds@10.7.6 - - @navikt/sif-common-forms-ds@8.9.6 - - @navikt/sif-common-core-ds@9.8.6 - - @navikt/sif-common-utils@3.40.7 +- Pakkeoppdatering som fikser datepicker + modal bug +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.6 + - @navikt/sif-common-formik-ds@1.1.2 + - @navikt/sif-common-soknad-ds@10.7.6 + - @navikt/sif-common-forms-ds@8.9.6 + - @navikt/sif-common-core-ds@9.8.6 + - @navikt/sif-common-utils@3.40.7 ## 2.10.9 ### Patch Changes -- 71381778: Patch pakkeoppdateringer -- Updated dependencies [71381778] - - @navikt/sif-common-amplitude@2.21.5 - - @navikt/sif-common-formik-ds@1.1.1 - - @navikt/sif-common-soknad-ds@10.7.5 - - @navikt/sif-common-forms-ds@8.9.5 - - @navikt/sif-common-core-ds@9.8.5 - - @navikt/sif-common-sentry@0.22.4 - - @navikt/sif-common-utils@3.40.6 +- 71381778: Patch pakkeoppdateringer +- Updated dependencies [71381778] + - @navikt/sif-common-amplitude@2.21.5 + - @navikt/sif-common-formik-ds@1.1.1 + - @navikt/sif-common-soknad-ds@10.7.5 + - @navikt/sif-common-forms-ds@8.9.5 + - @navikt/sif-common-core-ds@9.8.5 + - @navikt/sif-common-sentry@0.22.4 + - @navikt/sif-common-utils@3.40.6 ## 2.10.8 ### Patch Changes -- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds -- Updated dependencies [60eb7ee9] - - @navikt/sif-common-formik-ds@1.1.0 - - @navikt/sif-common-amplitude@2.21.4 - - @navikt/sif-common-soknad-ds@10.7.4 - - @navikt/sif-common-forms-ds@8.9.4 - - @navikt/sif-common-core-ds@9.8.4 - - @navikt/sif-common-sentry@0.22.3 - - @navikt/sif-common-utils@3.40.5 +- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds +- Updated dependencies [60eb7ee9] + - @navikt/sif-common-formik-ds@1.1.0 + - @navikt/sif-common-amplitude@2.21.4 + - @navikt/sif-common-soknad-ds@10.7.4 + - @navikt/sif-common-forms-ds@8.9.4 + - @navikt/sif-common-core-ds@9.8.4 + - @navikt/sif-common-sentry@0.22.3 + - @navikt/sif-common-utils@3.40.5 ## 2.10.7 ### Patch Changes -- 2a1e2526: Pakkeoppdateringer -- Updated dependencies [2a1e2526] - - @navikt/sif-common-amplitude@2.21.3 - - @navikt/sif-common-formik-ds@1.0.5 - - @navikt/sif-common-soknad-ds@10.7.3 - - @navikt/sif-common-forms-ds@8.9.3 - - @navikt/sif-common-core-ds@9.8.3 - - @navikt/sif-common-sentry@0.22.2 - - @navikt/sif-common-utils@3.40.4 +- 2a1e2526: Pakkeoppdateringer +- Updated dependencies [2a1e2526] + - @navikt/sif-common-amplitude@2.21.3 + - @navikt/sif-common-formik-ds@1.0.5 + - @navikt/sif-common-soknad-ds@10.7.3 + - @navikt/sif-common-forms-ds@8.9.3 + - @navikt/sif-common-core-ds@9.8.3 + - @navikt/sif-common-sentry@0.22.2 + - @navikt/sif-common-utils@3.40.4 ## 2.10.6 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.2 - - @navikt/sif-common-formik-ds@1.0.4 - - @navikt/sif-common-soknad-ds@10.7.2 - - @navikt/sif-common-forms-ds@8.9.2 - - @navikt/sif-common-core-ds@9.8.2 - - @navikt/sif-common-utils@3.40.3 +- Pakkeoppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.2 + - @navikt/sif-common-formik-ds@1.0.4 + - @navikt/sif-common-soknad-ds@10.7.2 + - @navikt/sif-common-forms-ds@8.9.2 + - @navikt/sif-common-core-ds@9.8.2 + - @navikt/sif-common-utils@3.40.3 ## 2.10.5 ### Patch Changes -- 81e7e155: Bruke BodyLong i alle SifGuidePanel -- Updated dependencies [81e7e155] - - @navikt/sif-common-formik-ds@1.0.3 - - @navikt/sif-common-forms-ds@8.9.1 - - @navikt/sif-common-core-ds@9.8.1 - - @navikt/sif-common-utils@3.40.2 - - @navikt/sif-common-soknad-ds@10.7.1 +- 81e7e155: Bruke BodyLong i alle SifGuidePanel +- Updated dependencies [81e7e155] + - @navikt/sif-common-formik-ds@1.0.3 + - @navikt/sif-common-forms-ds@8.9.1 + - @navikt/sif-common-core-ds@9.8.1 + - @navikt/sif-common-utils@3.40.2 + - @navikt/sif-common-soknad-ds@10.7.1 ## 2.10.4 ### Patch Changes -- Updated dependencies [c129755f] - - @navikt/sif-common-formik-ds@1.0.2 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-forms-ds@8.9.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [c129755f] + - @navikt/sif-common-formik-ds@1.0.2 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-forms-ds@8.9.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 2.10.3 ### Patch Changes -- Updated dependencies [92fbd8f8] - - @navikt/sif-common-formik-ds@1.0.1 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-forms-ds@8.9.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [92fbd8f8] + - @navikt/sif-common-formik-ds@1.0.1 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-forms-ds@8.9.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 2.10.2 ### Patch Changes -- Updated dependencies [d12fcbb5] - - @navikt/sif-common-forms-ds@8.9.0 +- Updated dependencies [d12fcbb5] + - @navikt/sif-common-forms-ds@8.9.0 ## 2.10.1 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies [55e1f323] -- Updated dependencies - - @navikt/sif-common-core-ds@9.7.0 - - @navikt/sif-common-amplitude@2.21.1 - - @navikt/sif-common-formik-ds@0.6.1 - - @navikt/sif-common-soknad-ds@10.7.1 - - @navikt/sif-common-forms-ds@8.8.1 - - @navikt/sif-common-sentry@0.22.1 - - @navikt/sif-common-utils@3.40.1 +- Pakkeoppdateringer +- Updated dependencies [55e1f323] +- Updated dependencies + - @navikt/sif-common-core-ds@9.7.0 + - @navikt/sif-common-amplitude@2.21.1 + - @navikt/sif-common-formik-ds@0.6.1 + - @navikt/sif-common-soknad-ds@10.7.1 + - @navikt/sif-common-forms-ds@8.8.1 + - @navikt/sif-common-sentry@0.22.1 + - @navikt/sif-common-utils@3.40.1 ## 2.10.0 ### Minor Changes -- 96810cd6: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. +- 96810cd6: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. ### Patch Changes -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] - - @navikt/sif-common-formik-ds@0.5.0 - - @navikt/sif-common-amplitude@2.21.0 - - @navikt/sif-common-soknad-ds@10.6.0 - - @navikt/sif-common-forms-ds@8.7.0 - - @navikt/sif-common-core-ds@9.5.0 - - @navikt/sif-common-sentry@0.22.0 - - @navikt/sif-common-utils@3.40.0 +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] + - @navikt/sif-common-formik-ds@0.5.0 + - @navikt/sif-common-amplitude@2.21.0 + - @navikt/sif-common-soknad-ds@10.6.0 + - @navikt/sif-common-forms-ds@8.7.0 + - @navikt/sif-common-core-ds@9.5.0 + - @navikt/sif-common-sentry@0.22.0 + - @navikt/sif-common-utils@3.40.0 ## 2.9.0 ### Minor Changes -- ad5092d1: Sette document.title basert på søknadsnavn og stegnavn -- 4cde9eca: Redirect til min side ved fortsett senere +- ad5092d1: Sette document.title basert på søknadsnavn og stegnavn +- 4cde9eca: Redirect til min side ved fortsett senere ### Patch Changes -- Updated dependencies [ad5092d1] - - @navikt/sif-common-soknad-ds@10.5.0 +- Updated dependencies [ad5092d1] + - @navikt/sif-common-soknad-ds@10.5.0 ## 2.8.0 ### Minor Changes -- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer +- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer ### Patch Changes -- Updated dependencies [c976be57] - - @navikt/sif-common-amplitude@2.20.0 - - @navikt/sif-common-formik-ds@0.4.0 - - @navikt/sif-common-soknad-ds@10.4.0 - - @navikt/sif-common-forms-ds@8.6.0 - - @navikt/sif-common-core-ds@9.4.0 - - @navikt/sif-common-sentry@0.21.0 - - @navikt/sif-common-utils@3.39.0 +- Updated dependencies [c976be57] + - @navikt/sif-common-amplitude@2.20.0 + - @navikt/sif-common-formik-ds@0.4.0 + - @navikt/sif-common-soknad-ds@10.4.0 + - @navikt/sif-common-forms-ds@8.6.0 + - @navikt/sif-common-core-ds@9.4.0 + - @navikt/sif-common-sentry@0.21.0 + - @navikt/sif-common-utils@3.39.0 ## 2.7.0 ### Minor Changes -- 026fc373: Oppdatere til versjon 5 av designsystemet aksel +- 026fc373: Oppdatere til versjon 5 av designsystemet aksel ### Patch Changes -- Updated dependencies [41d0a03c] -- Updated dependencies [026fc373] - - @navikt/sif-common-formik-ds@0.3.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-forms-ds@8.5.0 - - @navikt/sif-common-core-ds@9.3.0 +- Updated dependencies [41d0a03c] +- Updated dependencies [026fc373] + - @navikt/sif-common-formik-ds@0.3.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-forms-ds@8.5.0 + - @navikt/sif-common-core-ds@9.3.0 ## 2.6.0 ### Minor Changes -- 1ebdcb58: Pakkeoppdateringer -- Pakkeoppdateringer +- 1ebdcb58: Pakkeoppdateringer +- Pakkeoppdateringer ### Patch Changes -- Updated dependencies - - @navikt/sif-common-amplitude@2.19.0 - - @navikt/sif-common-formik-ds@0.24.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-forms-ds@8.5.0 - - @navikt/sif-common-core-ds@9.3.0 - - @navikt/sif-common-sentry@0.20.0 - - @navikt/sif-common-utils@3.38.0 +- Updated dependencies + - @navikt/sif-common-amplitude@2.19.0 + - @navikt/sif-common-formik-ds@0.24.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-forms-ds@8.5.0 + - @navikt/sif-common-core-ds@9.3.0 + - @navikt/sif-common-sentry@0.20.0 + - @navikt/sif-common-utils@3.38.0 ## 2.5.3 ### Patch Changes -- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react -- Updated dependencies [0e25e34f] - - @navikt/sif-common-amplitude@2.18.1 - - @navikt/sif-common-formik-ds@0.23.3 - - @navikt/sif-common-soknad-ds@10.1.3 - - @navikt/sif-common-forms-ds@8.1.3 - - @navikt/sif-common-core-ds@9.1.3 - - @navikt/sif-common-sentry@0.19.1 - - @navikt/sif-common-utils@3.37.1 +- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react +- Updated dependencies [0e25e34f] + - @navikt/sif-common-amplitude@2.18.1 + - @navikt/sif-common-formik-ds@0.23.3 + - @navikt/sif-common-soknad-ds@10.1.3 + - @navikt/sif-common-forms-ds@8.1.3 + - @navikt/sif-common-core-ds@9.1.3 + - @navikt/sif-common-sentry@0.19.1 + - @navikt/sif-common-utils@3.37.1 ## 2.5.2 ### Patch Changes -- 7e9863c7: Oppdatert versjon av pakker for test og bygg -- Updated dependencies [7e9863c7] - - @navikt/sif-common-formik-ds@0.23.2 - - @navikt/sif-common-soknad-ds@10.1.2 - - @navikt/sif-common-forms-ds@8.1.2 - - @navikt/sif-common-core-ds@9.1.2 +- 7e9863c7: Oppdatert versjon av pakker for test og bygg +- Updated dependencies [7e9863c7] + - @navikt/sif-common-formik-ds@0.23.2 + - @navikt/sif-common-soknad-ds@10.1.2 + - @navikt/sif-common-forms-ds@8.1.2 + - @navikt/sif-common-core-ds@9.1.2 ## 2.5.1 ### Patch Changes -- cc50b642: Diverse mindre pakkeoppdateringer -- Updated dependencies [cc50b642] - - @navikt/sif-common-formik-ds@0.23.1 - - @navikt/sif-common-soknad-ds@10.1.1 - - @navikt/sif-common-forms-ds@8.1.1 - - @navikt/sif-common-core-ds@9.1.1 +- cc50b642: Diverse mindre pakkeoppdateringer +- Updated dependencies [cc50b642] + - @navikt/sif-common-formik-ds@0.23.1 + - @navikt/sif-common-soknad-ds@10.1.1 + - @navikt/sif-common-forms-ds@8.1.1 + - @navikt/sif-common-core-ds@9.1.1 ## 2.5.0 ### Minor Changes -- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene +- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene ### Patch Changes -- Updated dependencies [ea79f31c] - - @navikt/sif-common-formik-ds@0.23.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-forms-ds@8.5.0 - - @navikt/sif-common-core-ds@8.1.0 - - @navikt/sif-common-sentry@0.19.0 +- Updated dependencies [ea79f31c] + - @navikt/sif-common-formik-ds@0.23.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-forms-ds@8.5.0 + - @navikt/sif-common-core-ds@8.1.0 + - @navikt/sif-common-sentry@0.19.0 ## 2.4.0 ### Minor Changes -- d3ae045: Oppdatere minor og patch +- d3ae045: Oppdatere minor og patch ### Patch Changes -- Updated dependencies [d3ae045] - - @navikt/sif-common-amplitude@2.18.0 - - @navikt/sif-common-formik-ds@0.22.0 - - @navikt/sif-common-soknad-ds@10.0.0 - - @navikt/sif-common-forms-ds@8.0.0 - - @navikt/sif-common-core-ds@9.0.0 - - @navikt/sif-common-sentry@0.18.0 - - @navikt/sif-common-utils@3.37.0 +- Updated dependencies [d3ae045] + - @navikt/sif-common-amplitude@2.18.0 + - @navikt/sif-common-formik-ds@0.22.0 + - @navikt/sif-common-soknad-ds@10.0.0 + - @navikt/sif-common-forms-ds@8.0.0 + - @navikt/sif-common-core-ds@9.0.0 + - @navikt/sif-common-sentry@0.18.0 + - @navikt/sif-common-utils@3.37.0 ## 2.3.1 ### Patch Changes -- ebebab7: Pakkeoppdateringer -- Updated dependencies [ebebab7] - - @navikt/sif-common-formik-ds@0.21.1 - - @navikt/sif-common-soknad-ds@9.0.1 - - @navikt/sif-common-forms-ds@7.0.1 - - @navikt/sif-common-core-ds@8.0.1 - - @navikt/sif-common-utils@3.36.1 +- ebebab7: Pakkeoppdateringer +- Updated dependencies [ebebab7] + - @navikt/sif-common-formik-ds@0.21.1 + - @navikt/sif-common-soknad-ds@9.0.1 + - @navikt/sif-common-forms-ds@7.0.1 + - @navikt/sif-common-core-ds@8.0.1 + - @navikt/sif-common-utils@3.36.1 ## 2.3.0 ### Minor Changes -- 5beb8c9: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. +- 5beb8c9: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. ### Patch Changes -- Updated dependencies [5beb8c9] - - @navikt/sif-common-amplitude@2.17.0 - - @navikt/sif-common-formik-ds@0.21.0 - - @navikt/sif-common-soknad-ds@9.0.0 - - @navikt/sif-common-forms-ds@7.0.0 - - @navikt/sif-common-core-ds@8.0.0 - - @navikt/sif-common-sentry@0.17.0 - - @navikt/sif-common-utils@3.36.0 +- Updated dependencies [5beb8c9] + - @navikt/sif-common-amplitude@2.17.0 + - @navikt/sif-common-formik-ds@0.21.0 + - @navikt/sif-common-soknad-ds@9.0.0 + - @navikt/sif-common-forms-ds@7.0.0 + - @navikt/sif-common-core-ds@8.0.0 + - @navikt/sif-common-sentry@0.17.0 + - @navikt/sif-common-utils@3.36.0 ## 2.2.2 ### Patch Changes -- bd6fae3: Pakkeoppdateringer -- Updated dependencies [bd6fae3] - - @navikt/sif-common-amplitude@2.16.2 - - @navikt/sif-common-formik-ds@0.20.2 - - @navikt/sif-common-soknad-ds@7.4.2 - - @navikt/sif-common-forms-ds@6.5.1 - - @navikt/sif-common-core-ds@7.4.2 - - @navikt/sif-common-sentry@0.16.2 - - @navikt/sif-common-utils@3.34.2 +- bd6fae3: Pakkeoppdateringer +- Updated dependencies [bd6fae3] + - @navikt/sif-common-amplitude@2.16.2 + - @navikt/sif-common-formik-ds@0.20.2 + - @navikt/sif-common-soknad-ds@7.4.2 + - @navikt/sif-common-forms-ds@6.5.1 + - @navikt/sif-common-core-ds@7.4.2 + - @navikt/sif-common-sentry@0.16.2 + - @navikt/sif-common-utils@3.34.2 ## 2.2.1 ### Patch Changes -- 4d1cb8b: Pakkeoppdateringer -- Updated dependencies [4d1cb8b] - - @navikt/sif-common-amplitude@2.16.1 - - @navikt/sif-common-formik-ds@0.20.1 - - @navikt/sif-common-soknad-ds@7.4.1 - - @navikt/sif-common-forms-ds@6.4.1 - - @navikt/sif-common-core-ds@7.4.1 - - @navikt/sif-common-sentry@0.16.1 - - @navikt/sif-common-utils@3.34.1 +- 4d1cb8b: Pakkeoppdateringer +- Updated dependencies [4d1cb8b] + - @navikt/sif-common-amplitude@2.16.1 + - @navikt/sif-common-formik-ds@0.20.1 + - @navikt/sif-common-soknad-ds@7.4.1 + - @navikt/sif-common-forms-ds@6.4.1 + - @navikt/sif-common-core-ds@7.4.1 + - @navikt/sif-common-sentry@0.16.1 + - @navikt/sif-common-utils@3.34.1 ## 2.2.0 ### Minor Changes -- ae1fdbf7: Pakkeoppdateringer +- ae1fdbf7: Pakkeoppdateringer ### Patch Changes -- Updated dependencies [a1e69480] -- Updated dependencies [ae1fdbf7] - - @navikt/sif-common-core-ds@8.0.0 - - @navikt/sif-common-amplitude@2.16.0 - - @navikt/sif-common-formik-ds@0.20.0 - - @navikt/sif-common-soknad-ds@8.0.0 - - @navikt/sif-common-forms-ds@7.0.0 - - @navikt/sif-common-sentry@0.16.0 - - @navikt/sif-common-utils@3.34.0 +- Updated dependencies [a1e69480] +- Updated dependencies [ae1fdbf7] + - @navikt/sif-common-core-ds@8.0.0 + - @navikt/sif-common-amplitude@2.16.0 + - @navikt/sif-common-formik-ds@0.20.0 + - @navikt/sif-common-soknad-ds@8.0.0 + - @navikt/sif-common-forms-ds@7.0.0 + - @navikt/sif-common-sentry@0.16.0 + - @navikt/sif-common-utils@3.34.0 ## 2.1.0 ### Minor Changes -- 7d66a381: Oppdatere pakker, fjerne snyk +- 7d66a381: Oppdatere pakker, fjerne snyk ### Patch Changes -- Updated dependencies [7d66a381] - - @navikt/sif-common-amplitude@2.15.0 - - @navikt/sif-common-formik-ds@0.19.0 - - @navikt/sif-common-soknad-ds@8.0.0 - - @navikt/sif-common-forms-ds@7.0.0 - - @navikt/sif-common-core-ds@8.0.0 - - @navikt/sif-common-sentry@0.15.0 - - @navikt/sif-common-utils@3.33.0 +- Updated dependencies [7d66a381] + - @navikt/sif-common-amplitude@2.15.0 + - @navikt/sif-common-formik-ds@0.19.0 + - @navikt/sif-common-soknad-ds@8.0.0 + - @navikt/sif-common-forms-ds@7.0.0 + - @navikt/sif-common-core-ds@8.0.0 + - @navikt/sif-common-sentry@0.15.0 + - @navikt/sif-common-utils@3.33.0 ## 2.0.2 ### Patch Changes -- cbfe50a: Bugfix - harBekreftetOpplysninger manglet +- cbfe50a: Bugfix - harBekreftetOpplysninger manglet ## 2.0.1 ### Patch Changes -- 38c8814: Pakkeoppdateringer -- Updated dependencies [38c8814] - - @navikt/sif-common-amplitude@2.14.1 - - @navikt/sif-common-formik-ds@0.18.2 - - @navikt/sif-common-soknad-ds@7.2.2 - - @navikt/sif-common-forms-ds@6.2.2 - - @navikt/sif-common-core-ds@7.2.2 - - @navikt/sif-common-sentry@0.14.1 - - @navikt/sif-common-utils@3.32.2 +- 38c8814: Pakkeoppdateringer +- Updated dependencies [38c8814] + - @navikt/sif-common-amplitude@2.14.1 + - @navikt/sif-common-formik-ds@0.18.2 + - @navikt/sif-common-soknad-ds@7.2.2 + - @navikt/sif-common-forms-ds@6.2.2 + - @navikt/sif-common-core-ds@7.2.2 + - @navikt/sif-common-sentry@0.14.1 + - @navikt/sif-common-utils@3.32.2 ## 2.0.0 ### Major Changes -- 5519a00: Ny design og oppset +- 5519a00: Ny design og oppset diff --git a/apps/omsorgsdager-aleneomsorg-dialog/Dockerfile b/apps/omsorgsdager-aleneomsorg-dialog/Dockerfile index d157108017..0c8983d2ba 100644 --- a/apps/omsorgsdager-aleneomsorg-dialog/Dockerfile +++ b/apps/omsorgsdager-aleneomsorg-dialog/Dockerfile @@ -14,7 +14,7 @@ COPY . . RUN yarn RUN yarn turbo run build-app --filter=${SCOPE} -FROM pruner AS server +FROM gcr.io/distroless/nodejs18-debian11:nonroot WORKDIR /apps/omsorgsdager-aleneomsorg-dialog COPY --from=pruner /app/node_modules ./node_modules/ COPY --from=pruner /app/apps/omsorgsdager-aleneomsorg-dialog/server.cjs . @@ -25,4 +25,4 @@ COPY --from=pruner /app/apps/omsorgsdager-aleneomsorg-dialog/src/build/AppSettin COPY --from=pruner /app/apps/omsorgsdager-aleneomsorg-dialog/dist ./dist EXPOSE 8080 -CMD ["yarn","--cwd", "apps/omsorgsdager-aleneomsorg-dialog", "start-express"] +CMD ["server.cjs"] diff --git a/apps/omsorgsdager-aleneomsorg-dialog/README.md b/apps/omsorgsdager-aleneomsorg-dialog/README.md index 9796c27466..e14aada9db 100644 --- a/apps/omsorgsdager-aleneomsorg-dialog/README.md +++ b/apps/omsorgsdager-aleneomsorg-dialog/README.md @@ -9,7 +9,7 @@ For å kjøre opp app-en i dev: 3. `yarn bp` i root sif-brukerdialog. 4. `yarn dev-api` i root omsorgsdager-aleneomsorg-dialog. -5. `yarn snd` i root omsorgsdager-aleneomsorg-dialog. +5. `yarn dev` i root omsorgsdager-aleneomsorg-dialog. For å kjøre enhetstester: @@ -27,4 +27,4 @@ Interne henvendelser kan sendes via Slack i kanalen #sif-brukerdialog ## Icon License -This project uses [Streamline Icons](http://www.streamlineicons.com/). If you use them in your project please adhere to the [Streamline Icons license agreement](http://www.streamlineicons.com/license.html). +This project uses [Streamline Icons](http://www.streamlineicons.com/). If you use them in your project please adhere to the [Streamline Icons license agreement](http://www.streamlineicons.com/license.html) diff --git a/apps/omsorgsdager-aleneomsorg-dialog/nais/dev-gcp.json b/apps/omsorgsdager-aleneomsorg-dialog/nais/dev-gcp.json index 67ac1ee202..1819faf6de 100644 --- a/apps/omsorgsdager-aleneomsorg-dialog/nais/dev-gcp.json +++ b/apps/omsorgsdager-aleneomsorg-dialog/nais/dev-gcp.json @@ -6,7 +6,10 @@ "livenessPath": "/familie/sykdom-i-familien/soknad/omsorgsdager-aleneomsorg/health/isAlive", "readinessPath": "/familie/sykdom-i-familien/soknad/omsorgsdager-aleneomsorg/health/isReady", "externalHosts": ["www.nav.no", "dekoratoren.ekstern.dev.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], "cluster": "dev-gcp", + "minReplicas": 1, + "maxReplicas": 1, "env": { "DEKORATOR_URL": "https://dekoratoren.ekstern.dev.nav.no/?simple=true&chatbot=false&urlLookupTable=false&logoutUrl=https://omsorgsdager-aleneomsorg-dialog.intern.dev.nav.no/oauth2/logout&redirectToApp=true", "API_URL": "http://k9-brukerdialog-api", diff --git a/apps/omsorgsdager-aleneomsorg-dialog/nais/prod-gcp.json b/apps/omsorgsdager-aleneomsorg-dialog/nais/prod-gcp.json index d8e1da3faf..23a92bd400 100644 --- a/apps/omsorgsdager-aleneomsorg-dialog/nais/prod-gcp.json +++ b/apps/omsorgsdager-aleneomsorg-dialog/nais/prod-gcp.json @@ -6,7 +6,10 @@ "livenessPath": "/familie/sykdom-i-familien/soknad/omsorgsdager-aleneomsorg/health/isAlive", "readinessPath": "/familie/sykdom-i-familien/soknad/omsorgsdager-aleneomsorg/health/isReady", "externalHosts": ["www.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], "cluster": "prod-gcp", + "minReplicas": 2, + "maxReplicas": 2, "env": { "API_TOKENX_AUDIENCE": "prod-gcp:dusseldorf:k9-brukerdialog-api", "API_URL": "http://k9-brukerdialog-api", diff --git a/apps/omsorgsdager-aleneomsorg-dialog/package.json b/apps/omsorgsdager-aleneomsorg-dialog/package.json index 85df9c4b35..9ece857ce1 100644 --- a/apps/omsorgsdager-aleneomsorg-dialog/package.json +++ b/apps/omsorgsdager-aleneomsorg-dialog/package.json @@ -4,7 +4,7 @@ "license": "MIT", "name": "@navikt/omsorgsdager-aleneomsorg-dialog", "repository": "https://github.com/navikt/sif-brukerdialog", - "version": "2.10.18", + "version": "2.14.4", "private": true, "type": "module", "scripts": { @@ -17,17 +17,15 @@ "e2e": "playwright test", "lint": "eslint ./src --ext ts,tsx", "playwright-test": "playwright test", - "snd": "cross-env NODE_ENV=development node ./server.cjs", + "dev": "cross-env NODE_ENV=development node ./server.cjs", "start-e2e-server": "node ./server-e2e.cjs", "start-express": "node ./server.cjs", - "storybook": "storybook dev -p 6006 -s public", - "test-watch": "react-scripts test --watchAll=true --env=jsdom", - "test": "react-scripts test --watchAll=false --env=jsdom" + "storybook": "storybook dev -p 6006 -s public" }, "dependencies": { - "@navikt/ds-css": "5.10.1", - "@navikt/ds-react": "5.10.1", - "@navikt/ds-tailwind": "5.10.1", + "@navikt/ds-css": "5.11.4", + "@navikt/ds-react": "5.11.4", + "@navikt/ds-tailwind": "5.11.4", "@navikt/sif-app-register": "workspace:*", "@navikt/sif-common-amplitude": "workspace:*", "@navikt/sif-common-core-ds": "workspace:*", @@ -37,67 +35,47 @@ "@navikt/sif-common-sentry": "workspace:*", "@navikt/sif-common-soknad-ds": "workspace:*", "@navikt/sif-common-utils": "workspace:*", - "@testing-library/react": "14.1.0", - "axios": "1.6.1", + "@testing-library/react": "14.1.2", + "axios": "1.6.2", "compression": "1.7.4", "cookie-parser": "1.4.6", "dayjs": "1.11.10", "express": "4.18.2", "formik": "2.4.5", "helmet": "7.1.0", - "history": "5.3.0", "http-proxy-middleware": "2.0.6", - "jose": "5.1.0", + "jose": "5.1.3", "mustache-express": "1.3.2", "object-hash": "3.0.0", "openid-client": "5.6.1", - "promise": "8.3.0", "react": "18.2.0", "react-dom": "18.2.0", "react-fast-compare": "3.2.2", - "react-intl": "6.5.4", - "react-router-dom": "6.18.0", - "ulid": "2.3.0", + "react-intl": "6.5.5", + "react-router-dom": "6.20.1", "uuid": "9.0.1" }, "devDependencies": { - "@axe-core/playwright": "4.8.1", + "@axe-core/playwright": "4.8.2", "@babel/plugin-proposal-object-rest-spread": "7.20.7", "@babel/plugin-transform-modules-commonjs": "7.23.3", - "@babel/preset-env": "7.23.3", + "@babel/preset-env": "7.23.5", "@babel/preset-react": "7.23.3", - "@playwright/test": "^1.39.0", + "@playwright/test": "1.40.1", "@types/object-hash": "3.0.6", - "@types/react": "18.2.37", - "@types/react-dom": "18.2.15", + "@types/react": "18.2.43", + "@types/react-dom": "18.2.17", "@types/react-router-dom": "5.3.3", - "@vitejs/plugin-react": "4.1.1", + "@vitejs/plugin-react": "4.2.1", "babel-polyfill": "6.26.0", "cross-env": "7.0.3", - "css-loader": "6.8.1", "dotenv": "16.3.1", - "jsdom": "22.1.0", + "jsdom": "23.0.1", "less": "4.2.0", - "less-loader": "11.1.3", "mini-css-extract-plugin": "2.7.6", - "npm-run-all": "4.1.5", - "react-scripts": "5.0.1", - "rimraf": "5.0.5", - "source-map-loader": "4.0.1", - "start-server-and-test": "2.0.2", - "style-loader": "3.3.3", - "ts-loader": "9.5.0", - "vite": "4.5.0", + "vite": "5.0.7", "vite-plugin-checker": "0.6.2" }, - "resolutions": { - "babel-core": "7.0.0-bridge.0" - }, - "jest": { - "transformIgnorePatterns": [ - "node_modules/(?!(@navikt)).*\\.js$" - ] - }, "eslintConfig": { "overrides": [ { diff --git a/apps/omsorgsdager-aleneomsorg-dialog/src/app/App.test.ts b/apps/omsorgsdager-aleneomsorg-dialog/src/app/App.test.ts deleted file mode 100644 index fa54c27242..0000000000 --- a/apps/omsorgsdager-aleneomsorg-dialog/src/app/App.test.ts +++ /dev/null @@ -1,5 +0,0 @@ -describe('App', () => { - it('runs', () => { - expect(1).toBe(1); - }); -}); diff --git a/apps/omsorgsdager-kalkulator/.eslintrc.js b/apps/omsorgsdager-kalkulator/.eslintrc.js new file mode 100644 index 0000000000..8934362580 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + ...require('config/eslint-next'), + parserOptions: { + root: true, + tsconfigRootDir: __dirname, + }, +}; diff --git a/apps/omsorgsdager-kalkulator/.gitignore b/apps/omsorgsdager-kalkulator/.gitignore new file mode 100644 index 0000000000..68c5d18f00 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/apps/omsorgsdager-kalkulator/.prettierignore b/apps/omsorgsdager-kalkulator/.prettierignore new file mode 100644 index 0000000000..2f3dc3ba43 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/.prettierignore @@ -0,0 +1,3 @@ +build +coverage +*.yaml \ No newline at end of file diff --git a/apps/omsorgsdager-kalkulator/CHANGELOG.md b/apps/omsorgsdager-kalkulator/CHANGELOG.md new file mode 100644 index 0000000000..1bc8f2faac --- /dev/null +++ b/apps/omsorgsdager-kalkulator/CHANGELOG.md @@ -0,0 +1,64 @@ +# @navikt/omsorgsdager-kalkulator + +## 3.5.2 + +### Patch Changes + +- Patch oppdateringer + +## 3.5.1 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker + +## 3.5.0 + +### Minor Changes + +- 573c55d: Diverse oppdateringer i forbindelse med uu-gjennomgang. + +## 3.4.3 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer + +## 3.4.2 + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger + +## 3.4.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger + +## 3.4.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +## 3.3.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +## 3.2.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + +## 3.1.0 + +### Minor Changes + +- 6d3b3cbe: Minor og patch oppdateringer + nextjs major -> 14 diff --git a/apps/omsorgsdager-kalkulator/CODEOWNERS b/apps/omsorgsdager-kalkulator/CODEOWNERS new file mode 100644 index 0000000000..bcf20cb3f0 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/CODEOWNERS @@ -0,0 +1 @@ +* @navikt/dusseldorf diff --git a/apps/omsorgsdager-kalkulator/Dockerfile b/apps/omsorgsdager-kalkulator/Dockerfile new file mode 100644 index 0000000000..0fbbd6662e --- /dev/null +++ b/apps/omsorgsdager-kalkulator/Dockerfile @@ -0,0 +1,16 @@ +FROM gcr.io/distroless/nodejs18-debian11:nonroot +WORKDIR /app + +COPY /apps/omsorgsdager-kalkulator/next.config.js . + +COPY /apps/omsorgsdager-kalkulator/.next/standalone ./ +COPY /apps/omsorgsdager-kalkulator/.next/static ./apps/omsorgsdager-kalkulator/.next/static + +COPY /apps/omsorgsdager-kalkulator/public ./public + +ENV NODE_ENV=production +ENV PORT 8080 + +EXPOSE 8080 + +CMD ["apps/omsorgsdager-kalkulator/server.js"] \ No newline at end of file diff --git a/apps/omsorgsdager-kalkulator/LICENSE.md b/apps/omsorgsdager-kalkulator/LICENSE.md new file mode 100644 index 0000000000..6d8046d82f --- /dev/null +++ b/apps/omsorgsdager-kalkulator/LICENSE.md @@ -0,0 +1,21 @@ +# The MIT License + +Copyright 2022 NAV (Arbeids- og velferdsdirektoratet) - The Norwegian Labour and Welfare Administration + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/apps/omsorgsdager-kalkulator/README.md b/apps/omsorgsdager-kalkulator/README.md new file mode 100644 index 0000000000..c4e7b6831d --- /dev/null +++ b/apps/omsorgsdager-kalkulator/README.md @@ -0,0 +1,19 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +yarn dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file. + +[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`. + +The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. diff --git a/apps/omsorgsdager-kalkulator/components/banner/Banner.tsx b/apps/omsorgsdager-kalkulator/components/banner/Banner.tsx new file mode 100644 index 0000000000..6c3334db87 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/banner/Banner.tsx @@ -0,0 +1,34 @@ +import { Heading } from '@navikt/ds-react'; +import { CalculatorSquareIcon } from '../icons/CalculatorSquareIcon'; +import { FormattedMessage, useIntl } from 'react-intl'; +import { intlHelper } from '@/utils/intlHelper'; + +const Banner = () => { + const intl = useIntl(); + const dato = '13. november 2023'; + return ( +
    +
    + +
    + + {intlHelper(intl, 'banner.title')} + +
    +

    + +

    + +

    + +

    +
    +
    +
    +
    + ); +}; + +export default Banner; diff --git a/apps/omsorgsdager-kalkulator/components/barnPanel/BarnPanelView.tsx b/apps/omsorgsdager-kalkulator/components/barnPanel/BarnPanelView.tsx new file mode 100644 index 0000000000..b213ce346c --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/barnPanel/BarnPanelView.tsx @@ -0,0 +1,39 @@ +import * as React from 'react'; +import { ExpansionCard } from '@navikt/ds-react'; + +interface Props { + id: string; + index: number; + length: number; + children: React.ReactNode; + valideringsFeil?: boolean; +} + +const BarnPanelView: React.FC = ({ + id, + index, + length, + children, + valideringsFeil, +}: React.PropsWithChildren) => { + const [open, setOpen] = React.useState(index === 0); + + if (!open && valideringsFeil) { + setOpen(true); + } + if (length === 1) { + return <>{children}; + } + + const barnNavn = `Barn ${index + 1}`; + return ( + setOpen(!open)}> + + Barn {index + 1} + + {children} + + ); +}; + +export default BarnPanelView; diff --git a/apps/omsorgsdager-kalkulator/components/beregningsmodul/beregningsmodul.test.ts b/apps/omsorgsdager-kalkulator/components/beregningsmodul/beregningsmodul.test.ts new file mode 100644 index 0000000000..7d3fb1631b --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/beregningsmodul/beregningsmodul.test.ts @@ -0,0 +1,145 @@ +import { + ALENEOMSORG_KRONISK_SYKT_BARN_DAGER, + ALENEOMSORGDAGER_1_2_BARN, + ALENEOMSORGDAGER_3_ELLER_FLERE_BARN, + GRUNNRETTSDAGER_3_ELLER_FLER_BARN, + beregnOmsorgsdager, +} from './beregningsmodul'; +import Barn, { AlderType } from './types/Barn'; + +interface OmsorgsdagerExpected { + grunnrettExpected?: number; + aleneomsorgExpected?: number; + kroniskSyktExpected?: number; + aleneomsorgKroniskSykeExpected?: number; +} + +const isNumber = (value: any): boolean => typeof value === 'number'; + +const assertOmsorgsdager = ( + barn: Barn[], + { + grunnrettExpected, + aleneomsorgExpected, + kroniskSyktExpected, + aleneomsorgKroniskSykeExpected, + }: OmsorgsdagerExpected, +) => { + const { grunnrett, aleneomsorg, kroniskSyktSumm, aleneomsorgKroniskSykeSumm } = beregnOmsorgsdager(barn); + + if (isNumber(grunnrettExpected)) { + expect(grunnrett).toEqual(grunnrettExpected); + } + if (isNumber(aleneomsorgExpected)) { + expect(aleneomsorg).toEqual(aleneomsorgExpected); + } + if (isNumber(kroniskSyktExpected)) { + expect(kroniskSyktSumm).toEqual(kroniskSyktExpected); + } + if (isNumber(aleneomsorgKroniskSykeExpected)) { + expect(aleneomsorgKroniskSykeSumm).toEqual(aleneomsorgKroniskSykeExpected); + } +}; + +describe('omsorgsdager', () => { + test('3 barn derav ett man har aleneomsorg for og er kronisk sykt', () => { + const barn: Barn[] = [ + { + søkerHarAleneomsorgFor: true, + kroniskSykt: true, + alder: AlderType.UNDER12, + id: '1', + navn: 1, + }, + { + alder: AlderType.UNDER12, + id: '2', + navn: 2, + }, + { + alder: AlderType.UNDER12, + id: '3', + navn: 3, + }, + ]; + + assertOmsorgsdager(barn, { + grunnrettExpected: GRUNNRETTSDAGER_3_ELLER_FLER_BARN, + aleneomsorgExpected: ALENEOMSORGDAGER_1_2_BARN, + kroniskSyktExpected: 0, + aleneomsorgKroniskSykeExpected: ALENEOMSORG_KRONISK_SYKT_BARN_DAGER, + }); + }); + + describe('Bruker har aleneomsorg for barn', () => { + test('får ikke aleneomsorgsdager hvis over 12', () => { + const ettBarnOver12: Barn[] = [ + { + alder: AlderType.OVER12, + søkerHarAleneomsorgFor: true, + id: '1', + navn: 1, + }, + ]; + + const expected = { aleneomsorgExpected: 0 }; + assertOmsorgsdager(ettBarnOver12, expected); + }); + + test('får aleneomsorgsdager hvis under 12', () => { + const ettBarnUnder12: Barn[] = [ + { + alder: AlderType.UNDER12, + søkerHarAleneomsorgFor: true, + id: '3', + navn: 3, + }, + ]; + + const expected = { aleneomsorgExpected: ALENEOMSORGDAGER_1_2_BARN }; + + assertOmsorgsdager(ettBarnUnder12, expected); + }); + + test('får aleneomsorgsdager hvis kronisk over 12', () => { + const ettKroniskSyktBarnOver12: Barn[] = [ + { + alder: AlderType.OVER12, + kroniskSykt: true, + søkerHarAleneomsorgFor: true, + id: '2', + navn: 2, + }, + ]; + + const expected = { aleneomsorgExpected: ALENEOMSORGDAGER_1_2_BARN }; + + assertOmsorgsdager(ettKroniskSyktBarnOver12, expected); + }); + + test('får ekstra aleneomsorgsdager hvis man har 3 barn eller mer', () => { + const barn: Barn[] = [ + { + søkerHarAleneomsorgFor: true, + alder: AlderType.UNDER12, + id: '1', + navn: 1, + }, + { + søkerHarAleneomsorgFor: true, + alder: AlderType.UNDER12, + id: '2', + navn: 2, + }, + { + søkerHarAleneomsorgFor: true, + alder: AlderType.UNDER12, + id: '3', + navn: 3, + }, + ]; + + assertOmsorgsdager(barn, { aleneomsorgExpected: ALENEOMSORGDAGER_3_ELLER_FLERE_BARN }); + }); + }); +}); diff --git a/apps/omsorgsdager-kalkulator/components/beregningsmodul/beregningsmodul.ts b/apps/omsorgsdager-kalkulator/components/beregningsmodul/beregningsmodul.ts new file mode 100644 index 0000000000..f7f56c5dda --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/beregningsmodul/beregningsmodul.ts @@ -0,0 +1,83 @@ +import Barn, { AlderType } from './types/Barn'; +import Omsorgsprinsipper, { BarnResult } from './types/Omsorgsprinsipper'; + +export const GRUNNRETTSDAGER_1_2_BARN = 10; +export const GRUNNRETTSDAGER_3_ELLER_FLER_BARN = 15; + +export const KRONISK_SYKT_BARN_DAGER = 10; +export const ALENEOMSORG_KRONISK_SYKT_BARN_DAGER: number = KRONISK_SYKT_BARN_DAGER * 2; + +export const ALENEOMSORGDAGER_1_2_BARN = 10; // Eller midlertidig aleneomsorg +export const ALENEOMSORGDAGER_3_ELLER_FLERE_BARN = 15; // Eller midlertidig aleneomsorg + +const harOmsorg = (barn: Barn): boolean => !!(barn.alder === AlderType.UNDER12 || barn.kroniskSykt); + +export const grunnrettsdager = (barn: Barn[]): number => { + const antallTellendeBarn = barn.filter(harOmsorg).length; + if (antallTellendeBarn === 0) { + return 0; + } + + if (antallTellendeBarn < 3) { + return GRUNNRETTSDAGER_1_2_BARN; + } + return GRUNNRETTSDAGER_3_ELLER_FLER_BARN; +}; + +export const kroniskSyktDagerSumm = (barn: Barn[]): number => { + const kroniskOgDeltOmsorg = barn.filter((b) => b.kroniskSykt && !b.søkerHarAleneomsorgFor); + const dager = KRONISK_SYKT_BARN_DAGER * kroniskOgDeltOmsorg.length; + + return dager; +}; + +export const kroniskSyktDager = (barn: Barn[]): BarnResult[] => { + const barnResult: BarnResult[] = barn.map((b) => { + const antallDager = b.kroniskSykt ? KRONISK_SYKT_BARN_DAGER : 0; + return { antallDager, barnIndex: b.navn }; + }); + + return barnResult.filter((b) => b.antallDager !== 0); +}; + +export const aleneomsorgKroniskSykeDagerSumm = (barn: Barn[]): number => { + const kroniskOgAleneomsorg = barn.filter((b) => b.kroniskSykt && b.søkerHarAleneomsorgFor); + const dager = ALENEOMSORG_KRONISK_SYKT_BARN_DAGER * kroniskOgAleneomsorg.length; + + return dager; +}; + +export const aleneomsorgKroniskSykeDager = (barn: Barn[]): BarnResult[] => { + const barnResult: BarnResult[] = barn.map((b) => { + const antallDager = b.kroniskSykt && b.søkerHarAleneomsorgFor ? ALENEOMSORG_KRONISK_SYKT_BARN_DAGER : 0; + return { antallDager, barnIndex: b.navn }; + }); + + return barnResult.filter((b) => b.antallDager !== 0); +}; + +export const aleneomsorgsdager = (barn: Barn[]): number => { + const antallTellendeBarn = barn.filter(harOmsorg).filter((b) => b.søkerHarAleneomsorgFor).length; + + if (antallTellendeBarn === 0) { + return 0; + } + if (antallTellendeBarn < 3) { + return ALENEOMSORGDAGER_1_2_BARN; + } + return ALENEOMSORGDAGER_3_ELLER_FLERE_BARN; +}; + +export const beregnOmsorgsdager = (barn: Barn[] = []): Omsorgsprinsipper => { + const barnMinimumUtfylt: Barn[] = barn.filter((b) => b.alder); + + return { + grunnrett: grunnrettsdager(barnMinimumUtfylt), + kroniskSykt: kroniskSyktDager(barnMinimumUtfylt), + kroniskSyktSumm: kroniskSyktDagerSumm(barnMinimumUtfylt), + aleneomsorg: aleneomsorgsdager(barnMinimumUtfylt), + aleneomsorgKroniskSyke: aleneomsorgKroniskSykeDager(barnMinimumUtfylt), + aleneomsorgKroniskSykeSumm: aleneomsorgKroniskSykeDagerSumm(barnMinimumUtfylt), + antallBarn: barnMinimumUtfylt.length, + }; +}; diff --git a/apps/omsorgsdager-kalkulator/components/beregningsmodul/types/Barn.ts b/apps/omsorgsdager-kalkulator/components/beregningsmodul/types/Barn.ts new file mode 100644 index 0000000000..78e1cff496 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/beregningsmodul/types/Barn.ts @@ -0,0 +1,14 @@ +export enum AlderType { + UNDER12 = 'under12', + OVER12 = 'over12', +} + +interface Barn { + kroniskSykt?: boolean; + alder?: AlderType; + søkerHarAleneomsorgFor?: boolean; + id: string; + navn: number; +} + +export default Barn; diff --git a/apps/omsorgsdager-kalkulator/components/beregningsmodul/types/Omsorgsprinsipper.ts b/apps/omsorgsdager-kalkulator/components/beregningsmodul/types/Omsorgsprinsipper.ts new file mode 100644 index 0000000000..c336c81290 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/beregningsmodul/types/Omsorgsprinsipper.ts @@ -0,0 +1,15 @@ +export interface BarnResult { + antallDager: number; + barnIndex: number; +} +interface Omsorgsprinsipper { + grunnrett: number; + kroniskSykt: BarnResult[]; + kroniskSyktSumm: number; + aleneomsorgKroniskSyke: BarnResult[]; + aleneomsorgKroniskSykeSumm: number; + aleneomsorg: number; + antallBarn: number; +} + +export default Omsorgsprinsipper; diff --git a/apps/omsorgsdager-kalkulator/components/container/Container.tsx b/apps/omsorgsdager-kalkulator/components/container/Container.tsx new file mode 100644 index 0000000000..b487086496 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/container/Container.tsx @@ -0,0 +1,16 @@ +import { ReactNode } from 'react'; +import React from 'react'; +import Banner from '../banner/Banner'; + +const Container = ({ children }: { children: ReactNode }) => { + return ( +
    + +
    +
    {children}
    +
    +
    + ); +}; + +export default Container; diff --git a/apps/omsorgsdager-kalkulator/components/icons/CalculatorSquareIcon.tsx b/apps/omsorgsdager-kalkulator/components/icons/CalculatorSquareIcon.tsx new file mode 100644 index 0000000000..2f97aff823 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/icons/CalculatorSquareIcon.tsx @@ -0,0 +1,54 @@ +import React from 'react'; + +export const CalculatorSquareIcon = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + ); +}; diff --git a/apps/omsorgsdager-kalkulator/components/info/info.tsx b/apps/omsorgsdager-kalkulator/components/info/info.tsx new file mode 100644 index 0000000000..9640b738f0 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/info/info.tsx @@ -0,0 +1,34 @@ +import { BodyLong, Heading, ReadMore } from '@navikt/ds-react'; +import { FormattedMessage, useIntl } from 'react-intl'; +import { intlHelper } from '../../utils/intlHelper'; + +const Info = () => { + const intl = useIntl(); + + return ( +
    + + + + + + + + + + + + + + + + + + + + +
    + ); +}; + +export default Info; diff --git a/apps/omsorgsdager-kalkulator/components/kalkulator/Kalkulator.tsx b/apps/omsorgsdager-kalkulator/components/kalkulator/Kalkulator.tsx new file mode 100644 index 0000000000..eddcc8d79b --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/kalkulator/Kalkulator.tsx @@ -0,0 +1,139 @@ +import { FormattedMessage, useIntl } from 'react-intl'; +import { v4 as uuid } from 'uuid'; +import { YesOrNo } from '../sif-formik/types'; +import { getTypedFormComponents } from '../sif-formik/getTypedFormComponents'; +import { ValidationError } from '../sif-formik/validation/types'; +import getIntlFormErrorHandler from '../sif-formik/validation/intlFormErrorHandler'; +import { mapBarnKalkulatorToBarn, summerAntallOmsorgsdager } from '../../utils/utils'; +import { beregnOmsorgsdager } from '../beregningsmodul/beregningsmodul'; +import ResultatArea from '../result/ResultatArea'; +import { useState } from 'react'; +import { ResultView, empty, noValidChildrenOrange } from '../result/ResultView'; +import Omsorgsprinsipper from '../beregningsmodul/types/Omsorgsprinsipper'; +import FormikValuesObserver from '../sif-formik/helpers/formik-values-observer/FormikValuesObserver'; +import BarnFormPart from './kalkulator-form-parts/BarnFormPart'; +import AntallBarnFormPart from './kalkulator-form-parts/AntallBarnFormPart'; +import { Heading } from '@navikt/ds-react'; + +export type Result = { + sumDager: number; + omsorgsprinsipper: Omsorgsprinsipper; +}; + +export interface BarnKalkulator { + årFødt: number; + kroniskSykt?: YesOrNo; + borSammen?: YesOrNo; + aleneOmOmsorgen?: YesOrNo; + id: string; + index: number; +} + +export enum BarnFormFiels { + kroniskSykt = 'kroniskSykt', + årFødt = 'årFødt', + borSammen = 'borSammen', + aleneOmOmsorgen = 'aleneOmOmsorgen', + id = 'id', + index = 'index', +} + +export enum KlakulatorFormFields { + antallBarn = 'antallBarn', + barn = 'barn', +} + +export interface KlakulatorFormValues { + [KlakulatorFormFields.antallBarn]: number; + [KlakulatorFormFields.barn]: BarnKalkulator[]; +} + +const { FormikWrapper, Form } = getTypedFormComponents(); + +const Kalkulator = () => { + const intl = useIntl(); + + const [resultViewData, setResultViewData] = useState>(empty); + + const onValidSubmit = (values: Partial) => { + const mappedBarn = values.barn ? mapBarnKalkulatorToBarn(values.barn) : []; + + if (mappedBarn.length === 0) { + setResultViewData(noValidChildrenOrange); + } + + const omsorgsprinsipper: Omsorgsprinsipper = beregnOmsorgsdager(mappedBarn); + + const sumDager: number = summerAntallOmsorgsdager(omsorgsprinsipper); + if (sumDager === 0) { + setResultViewData(noValidChildrenOrange); + } else { + setResultViewData({ + _tag: 'ResultBox', + result: { sumDager: sumDager, omsorgsprinsipper: omsorgsprinsipper }, + }); + } + }; + + return ( + { + return onValidSubmit(values); + }} + renderForm={({ values: { barn = [] }, status, setErrors, setFieldValue }) => { + const setBarn = (value: string) => { + const valueNumber = parseInt(value, 10); + setErrors({}); + setFieldValue( + KlakulatorFormFields.barn, + Array.from({ length: valueNumber }, (_, i) => i).map((index) => { + return { id: uuid(), index: index + 1 }; + }), + ); + }; + + return ( + <> + { + setResultViewData(empty); + }} + /> +
    + + {barn.length > 0 && ( + + + + )} + + {barn.map((b, index) => { + return ( + + ); + })} + + + + ); + }} + /> + ); +}; + +export default Kalkulator; diff --git a/apps/omsorgsdager-kalkulator/components/kalkulator/kalkulator-form-parts/AntallBarnFormPart.tsx b/apps/omsorgsdager-kalkulator/components/kalkulator/kalkulator-form-parts/AntallBarnFormPart.tsx new file mode 100644 index 0000000000..d087119082 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/kalkulator/kalkulator-form-parts/AntallBarnFormPart.tsx @@ -0,0 +1,53 @@ +import { ValidationError } from '../../sif-formik/validation/types'; +import { KlakulatorFormFields, KlakulatorFormValues } from '../Kalkulator'; +import { getTypedFormComponents } from '../../sif-formik/getTypedFormComponents'; +import { ReadMore } from '@navikt/ds-react'; +import { FormattedMessage, useIntl } from 'react-intl'; +import { intlHelper } from '../../../utils/intlHelper'; + +interface Props { + setBarn: (value: string) => void; +} + +const { Select } = getTypedFormComponents(); + +const AntallBarnFormPart: React.FC = ({ setBarn }: Props) => { + const intl = useIntl(); + const nBarnMaks = 20; + + return ( +
    + +
    + ); +}; + +export default AntallBarnFormPart; diff --git a/apps/omsorgsdager-kalkulator/components/kalkulator/kalkulator-form-parts/BarnFormPart.tsx b/apps/omsorgsdager-kalkulator/components/kalkulator/kalkulator-form-parts/BarnFormPart.tsx new file mode 100644 index 0000000000..9d1a259e61 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/kalkulator/kalkulator-form-parts/BarnFormPart.tsx @@ -0,0 +1,229 @@ +import { BarnFormFiels, BarnKalkulator, KlakulatorFormFields, KlakulatorFormValues } from '../Kalkulator'; +import BarnPanelView from '../../barnPanel/BarnPanelView'; +import { ValidationError } from '../../sif-formik/validation/types'; +import { getTypedFormComponents } from '../../sif-formik/getTypedFormComponents'; +import { Alert, BodyLong, Link, ReadMore } from '@navikt/ds-react'; +import { FormattedMessage, useIntl } from 'react-intl'; +import dayjs from 'dayjs'; +import getYesOrNoValidator from '../../sif-formik/validation/getYesOrNoValidator'; +import { YesOrNo } from '../../sif-formik/types'; +import getRequiredFieldValidator from '../../sif-formik/validation/getRequiredFieldValidator'; +import { barnetErForbiDetTolvteKalenderårOgIkkeKroniskSykt, erForbiDetAttendeKalenderår } from '../../../utils/utils'; +import { intlHelper } from '@/utils/intlHelper'; +import { lenker } from '@/utils/lenker'; + +interface Props { + barn: BarnKalkulator; + index: number; + antallBarn: number; + valideringsFeil?: boolean; +} + +const { YesOrNoQuestion, Select } = getTypedFormComponents< + KlakulatorFormFields, + KlakulatorFormValues, + ValidationError +>(); + +const BarnFormPart: React.FC = ({ barn, index, antallBarn, valideringsFeil }: Props) => { + const intl = useIntl(); + + const getFieldName = (index: number, field: BarnFormFiels): string => { + return `${KlakulatorFormFields.barn}.${index}.${field}`; + }; + + const barnName = () => { + if (antallBarn > 1) { + return `barn ${index + 1}`; + } else return 'barnet'; + }; + + return ( + <> +
    + + + + {barn.årFødt && !erForbiDetAttendeKalenderår(barn.årFødt) && ( + <> +
    + { + const error = getYesOrNoValidator()(value); + + return error + ? { + key: 'validation.barn.borSammen.yesOrNoIsUnanswered', + values: { barnName: barnName() }, + keepKeyUnaltered: true, + } + : undefined; + }} + description={ + + + + } + /> +
    +
    + {barn.borSammen === YesOrNo.NO && ( + + + + )} +
    + {barn.borSammen === YesOrNo.YES && ( + <> +
    + { + const error = getYesOrNoValidator()(value); + + return error + ? { + key: 'validation.barn.kroniskSykt.yesOrNoIsUnanswered', + values: { barnName: barnName() }, + keepKeyUnaltered: true, + } + : undefined; + }} + description={ + + + + + + + + + + + + } + /> +
    + {barnetErForbiDetTolvteKalenderårOgIkkeKroniskSykt(barn) && ( + + + + )} + {!barnetErForbiDetTolvteKalenderårOgIkkeKroniskSykt(barn) && ( +
    + { + const error = getYesOrNoValidator()(value); + + return error + ? { + key: 'validation.barn.aleneOmOmsorgen.yesOrNoIsUnanswered', + values: { barnName: barnName() }, + keepKeyUnaltered: true, + } + : undefined; + }} + description={ + + + + + + + + + + + + + {' '} + + + + + + } + /> +
    + )} + + )} + + )} + {erForbiDetAttendeKalenderår(barn.årFødt) && ( + + + + )} +
    +
    + + ); +}; + +export default BarnFormPart; diff --git a/apps/omsorgsdager-kalkulator/components/result/ResultBox.tsx b/apps/omsorgsdager-kalkulator/components/result/ResultBox.tsx new file mode 100644 index 0000000000..fac3f12f2a --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/result/ResultBox.tsx @@ -0,0 +1,76 @@ +import * as React from 'react'; +import { PropsWithChildren, useEffect } from 'react'; +import SvgChild from '../svgs/SvgChild'; +import SvgChildSad from '../svgs/SvgChildSad'; +import bemUtils from '../../utils/bemUtils'; +import { BodyLong, Heading } from '@navikt/ds-react'; +import { FormattedMessage } from 'react-intl'; +export const bem = bemUtils('OmsCalcResultBox'); + +const resultWrapperClassName = (type: ResultBoxType): string => { + switch (type) { + case 'WARNING': + return bem.element('result-wrapper-orange'); + default: + return bem.element('result-wrapper-green'); + } +}; + +const resultTopArrowClassName = (type: ResultBoxType): string => { + switch (type) { + case 'WARNING': + return bem.element('result-top-arrow-orange'); + default: + return bem.element('result-top-arrow-green'); + } +}; + +type ResultBoxType = 'SUCCESS' | 'WARNING'; + +interface Props { + type: ResultBoxType; + children: React.ReactNode; +} + +const ResultBox: React.FC = ({ type, children }: PropsWithChildren) => { + const box = React.useRef(null); + + useEffect(() => { + if (box && box.current) { + box.current.focus({ preventScroll: false }); + box.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); + } + }, []); + + return ( +
    +
    +
    +
    +
    +
    +
    +
    + {type === 'SUCCESS' && } + {type === 'WARNING' && } + +
    + + + + + + +
    +
    +
    +
    {children}
    +
    +
    +
    +
    +
    + ); +}; + +export default ResultBox; diff --git a/apps/omsorgsdager-kalkulator/components/result/ResultView.ts b/apps/omsorgsdager-kalkulator/components/result/ResultView.ts new file mode 100644 index 0000000000..54462a7e58 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/result/ResultView.ts @@ -0,0 +1,48 @@ +export type Empty = { + readonly _tag: 'Empty'; +}; + +export type NoValidChildrenOrange = { + readonly _tag: 'NoValidChildrenOrange'; +}; +export type ResultBox = { + readonly _tag: 'ResultBox'; + readonly result: A; +}; + +export type ResultView = Empty | NoValidChildrenOrange | ResultBox; + +// constructors +export const empty: ResultView = { + _tag: 'Empty', +}; + +export const noValidChildrenOrange: ResultView = { + _tag: 'NoValidChildrenOrange', +}; +export const resultBox = (result: A): ResultView => ({ + _tag: 'ResultBox', + result, +}); +// filters +export const isEmpty = (data: ResultView): data is Empty => data._tag === 'Empty'; +export const isNoValidChildrenOrange = (data: ResultView): data is NoValidChildrenOrange => + data._tag === 'NoValidChildrenOrange'; +export const isResultBox = (data: ResultView): data is ResultBox => data._tag === 'ResultBox'; + +// fold +export const caseResultViewOf = + (empty: () => B, noValidChildrenOrange: () => B, resultBox: (result: A) => B) => + (resultView: ResultView): B => { + switch (resultView._tag) { + case 'Empty': { + return empty(); + } + case 'NoValidChildrenOrange': { + return noValidChildrenOrange(); + } + case 'ResultBox': { + return resultBox(resultView.result); + } + } + }; diff --git a/apps/omsorgsdager-kalkulator/components/result/ResultatArea.tsx b/apps/omsorgsdager-kalkulator/components/result/ResultatArea.tsx new file mode 100644 index 0000000000..c37f942d60 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/result/ResultatArea.tsx @@ -0,0 +1,212 @@ +import { FormattedMessage, useIntl } from 'react-intl'; +import { caseResultViewOf, ResultView } from './ResultView'; +import ResultBox from './ResultBox'; +import { BodyLong, Box, ExpansionCard, Heading, VStack } from '@navikt/ds-react'; +import Link from 'next/link'; +import { getYear } from '../../utils/utils'; +import { lenker } from '../../utils/lenker'; +import { Result } from '../kalkulator/Kalkulator'; +import bemUtils from '@/utils/bemUtils'; +import { intlHelper } from '../../utils/intlHelper'; + +interface Props { + resultView: ResultView; +} + +const ResultatArea: React.FC = ({ resultView }: Props) => { + const year = getYear(); + const intl = useIntl(); + const bem = bemUtils('OmsCalcResultBox'); + return caseResultViewOf( + () => null, + () => ( + + + + {' '} + + + + + + + + + + + + + + + ), + (result: Result) => { + const { grunnrett, kroniskSykt, aleneomsorg, aleneomsorgKroniskSykeSumm, antallBarn } = + result.omsorgsprinsipper; + + return ( + <> + + + + + {' '} + + + + + + +
    + + + + + + + + + + + +
    +
    + + + + + + + +
    + {aleneomsorg > 0 && ( +
    + + + + + + + +
    + )} + + {kroniskSykt.length > 0 && ( + <> +
    + + + +
    +
    + {kroniskSykt.map((b) => { + return ( +
    + + 1 ? b.barnIndex : '', + }} + /> + + + + + +
    + ); + })} + + {aleneomsorgKroniskSykeSumm > 0 && ( +
    + + + + + + + +
    + )} +
    + + )} + +
    +
    + + + + + + + +
    +
    +
    +
    +
    + + + + + + + + +
    + + ); + }, + )(resultView); +}; + +export default ResultatArea; diff --git a/apps/omsorgsdager-kalkulator/components/section-panel/SectionPanel.tsx b/apps/omsorgsdager-kalkulator/components/section-panel/SectionPanel.tsx new file mode 100644 index 0000000000..c46676f5ad --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/section-panel/SectionPanel.tsx @@ -0,0 +1,80 @@ +import React, { ReactNode } from 'react'; +import bemUtils from '../../utils/bemUtils'; +import CircleIllustration from './circle-illustration/CircleIllustration'; +import { Heading, HeadingProps, Panel } from '@navikt/ds-react'; + +const bem = bemUtils('sectionPanel'); + +interface Props { + id?: string; + title?: React.ReactNode; + additionalInfo?: React.ReactNode; + ariaTitle?: string; + illustration?: React.ReactNode; + children: ReactNode; + titleTag?: HeadingProps['level']; + titleSize?: HeadingProps['size']; + illustrationPlacement?: 'inside' | 'outside'; + introHeader?: React.ReactNode; + tag?: 'section' | 'article'; +} + +const SectionOrArticle = ( + props: { tag: 'section' | 'article'; children: React.ReactNode } & React.PropsWithChildren, +) => { + const { tag, children, ...rest } = props; + return React.createElement(tag, rest, children); +}; + +const SectionPanel = ({ + id, + title, + additionalInfo, + ariaTitle, + illustration, + children, + titleTag = '1', + titleSize = 'medium', + tag = 'section', + illustrationPlacement = 'inside', + introHeader, +}: Props) => { + return ( + + + {illustration && ( +
    + +
    + )} + {(introHeader || title) && ( +
    + {introHeader &&
    {introHeader}
    } + {title && ( +
    + + {title} + + {additionalInfo &&
    {additionalInfo}
    } +
    + )} +
    + )} + {children} +
    +
    + ); +}; + +export default SectionPanel; diff --git a/apps/omsorgsdager-kalkulator/components/section-panel/circle-illustration/CircleIllustration.tsx b/apps/omsorgsdager-kalkulator/components/section-panel/circle-illustration/CircleIllustration.tsx new file mode 100644 index 0000000000..4b7686398e --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/section-panel/circle-illustration/CircleIllustration.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import CircleMask from '../circle-mask/CircleMask'; + +interface Props { + illustration: React.ReactNode; + backgroundColor?: string; + size?: string; +} + +const CircleIllustration: React.FC = ({ illustration, backgroundColor = '#99dead', size = '3.5rem' }: Props) => ( + + {illustration} + +); + +export default CircleIllustration; diff --git a/apps/omsorgsdager-kalkulator/components/section-panel/circle-mask/CircleMask.tsx b/apps/omsorgsdager-kalkulator/components/section-panel/circle-mask/CircleMask.tsx new file mode 100644 index 0000000000..c2f6db64ab --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/section-panel/circle-mask/CircleMask.tsx @@ -0,0 +1,35 @@ +import React, { CSSProperties } from 'react'; +import bemUtils from '../../../utils/bemUtils'; + +interface Props { + active?: boolean; + color?: string; + size?: string; + scaleSvg?: boolean; + valign?: 'top' | 'bottom'; + children: React.ReactNode; +} + +const bem = bemUtils('circleMask'); + +const CircleMask = ({ size, active = true, scaleSvg = true, valign, children }: Props) => { + const style: Partial = {}; + if (size) { + style.width = size; + style.height = size; + } + return ( +
    +
    {children}
    +
    + ); +}; + +export default CircleMask; diff --git a/apps/omsorgsdager-kalkulator/components/section-panel/circle-mask/circleMask.scss b/apps/omsorgsdager-kalkulator/components/section-panel/circle-mask/circleMask.scss new file mode 100644 index 0000000000..f54931270d --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/section-panel/circle-mask/circleMask.scss @@ -0,0 +1,39 @@ +.circleMask { + border-radius: 100%; + background: #99dead; + display: inline-block; + + &__content { + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + + .circleMask--valign-bottom & { + align-items: flex-end; + } + + .circleMask--valign-top & { + align-items: flex-start; + } + + > div { + width: 100%; + height: 100%; + } + } + + &--inactive { + border-radius: 0; + overflow: visible; + background: none !important; + } + + &--scaleSvg { + svg { + width: inherit; + height: inherit; + } + } +} diff --git a/apps/omsorgsdager-kalkulator/components/section-panel/sectionPanel.scss b/apps/omsorgsdager-kalkulator/components/section-panel/sectionPanel.scss new file mode 100644 index 0000000000..c7b0ebf2b6 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/section-panel/sectionPanel.scss @@ -0,0 +1,92 @@ +.sectionPanel { + $mobile-breakpoint: 576px; + $tablet-breakpoint: 800px; + max-width: 800px; + margin-top: 3.5rem; + margin-bottom: 1rem; + + @media (min-width: $tablet-breakpoint) { + margin-bottom: 2rem; + } + + &:focus { + outline: none; + } + + &__headerAndTitle { + display: flex; + flex-direction: column; + } + + &__illustration { + margin-bottom: 1rem; + text-align: center; + } + + &__header { + order: 1; + } + + &__title { + margin-bottom: 0.5rem; + + @media (min-width: $tablet-breakpoint) { + margin-bottom: 1rem; + } + + order: 2; + } + + &__panel { + width: 100%; + padding: 1rem 1rem 1.5rem 1rem; + + @media (min-width: $tablet-breakpoint) { + padding: 2rem 2rem 2.5rem 2rem; + } + + @media (max-width: $mobile-breakpoint) { + padding: 1rem 1rem 1.5rem 1rem; + } + } + + &--illustrationOutside { + .sectionPanel { + &__panel { + margin-bottom: 2.5rem; + padding: 0rem 2rem 3.5rem 2rem; + + @media (min-width: $tablet-breakpoint) { + margin-bottom: 4.5rem; + } + @media (max-width: $mobile-breakpoint) { + padding: 0rem 1rem 3.5rem 1rem; + } + } + + &__illustration { + margin-bottom: -2.5rem; + transform: translateY(calc(-50%)) scale(0.8); + + @media (min-width: $tablet-breakpoint) { + margin-bottom: -2rem; + transform: translateY(calc(-50%)) scale(1); + } + } + } + } + + @media print { + &__panel { + padding: 0 1rem; + } + + &__illustration { + display: none; + } + + h3 { + margin-bottom: 0.5rem; + } + } +} diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/formik-radio-group/FormikRadioGroup.tsx b/apps/omsorgsdager-kalkulator/components/sif-formik/formik-radio-group/FormikRadioGroup.tsx new file mode 100644 index 0000000000..0895c2c25b --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/formik-radio-group/FormikRadioGroup.tsx @@ -0,0 +1,74 @@ +import { BodyShort, Radio, RadioGroup, RadioGroupProps, RadioProps } from '@navikt/ds-react'; +import React, { useContext } from 'react'; +import { FastField, Field, FieldProps } from 'formik'; +import { TestProps, TypedFormInputValidationProps, UseFastFieldProps } from '../types'; +import { getErrorPropForFormikInput } from '../utils/typedFormErrorUtils'; +import { TypedFormikFormContext } from '../typed-formik-form/TypedFormikForm'; + +export type FormikRadioProp = Omit & { + label: React.ReactNode; +} & TestProps; + +interface OwnProps extends Omit { + name: FieldName; + radios: FormikRadioProp[]; + afterOnChange?: (newValue: string) => void; +} + +export type FormikRadioGroupProps = OwnProps & + TypedFormInputValidationProps & + UseFastFieldProps & + TestProps; + +function FormikRadioGroup({ + name, + validate, + radios, + error, + useFastField, + afterOnChange, + ...restProps +}: FormikRadioGroupProps) { + const context = useContext(TypedFormikFormContext); + const FieldComponent = useFastField ? FastField : Field; + return ( + validate(value, name) : undefined} name={name}> + {({ field, form }: FieldProps) => { + return ( + {restProps.description} : undefined + } + name={field.name} + error={getErrorPropForFormikInput({ field, form, context, error })} + value={field.value || ''}> + {radios.map((rb, idx) => { + const { label, ...rest } = rb; + return ( + { + form.setFieldValue(field.name, evt.target.value); + const newValue = evt.target.value; + if (afterOnChange) { + afterOnChange(newValue); + } + if (context) { + context.onAfterFieldValueSet(); + } + }}> + {label} + + ); + })} + + ); + }} + + ); +} + +export default FormikRadioGroup; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/formik-select/FormikSelect.tsx b/apps/omsorgsdager-kalkulator/components/sif-formik/formik-select/FormikSelect.tsx new file mode 100644 index 0000000000..2efd2e02a2 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/formik-select/FormikSelect.tsx @@ -0,0 +1,57 @@ +import React from 'react'; +import { FastField, Field, FieldProps } from 'formik'; +import { TestProps, TypedFormInputValidationProps, UseFastFieldProps } from '../types'; +import { getErrorPropForFormikInput } from '../utils/typedFormErrorUtils'; +import { TypedFormikFormContext } from '../typed-formik-form/TypedFormikForm'; +import { Select, SelectProps } from '@navikt/ds-react'; + +interface OwnProps extends Omit { + name: FieldName; + afterOnChange?: (newValue: string) => void; +} + +export type FormikSelectProps = OwnProps & + TypedFormInputValidationProps & + UseFastFieldProps & + TestProps; + +function FormikSelect({ + name, + children, + validate, + error, + afterOnChange, + useFastField, + ...restProps +}: FormikSelectProps) { + const context = React.useContext(TypedFormikFormContext); + const FieldComponent = useFastField ? FastField : Field; + return ( + validate(value, name) : undefined} name={name}> + {({ field, form }: FieldProps) => { + return ( + + ); + }} + + ); +} + +export default FormikSelect; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/formik-validation-error-summary/FormikValidationErrorSummary.tsx b/apps/omsorgsdager-kalkulator/components/sif-formik/formik-validation-error-summary/FormikValidationErrorSummary.tsx new file mode 100644 index 0000000000..8e22887e5f --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/formik-validation-error-summary/FormikValidationErrorSummary.tsx @@ -0,0 +1,42 @@ +import React, { RefObject } from 'react'; +import { useFormikContext } from 'formik'; +import { getAllFieldsWithErrors, getErrorForField } from '../utils/typedFormErrorUtils'; +import ValidationSummary, { ValidationSummaryError } from '../helpers/ValidationSummary'; +import { TypedFormikFormContext } from '../typed-formik-form/TypedFormikForm'; + +interface Props { + heading?: string; + summaryRef?: RefObject; + wrapper?: (errorSummary: JSX.Element) => JSX.Element; +} + +const FormikValidationErrorSummary: React.FunctionComponent = ({ heading, summaryRef, wrapper }) => { + const context = React.useContext(TypedFormikFormContext); + const formik = useFormikContext(); + if (formik && context && context.showErrors) { + const fieldsWithErrors = + !formik.isValid && getAllFieldsWithErrors(formik.errors, context.isHandledErrorTypeChecker); + const errors: ValidationSummaryError[] | undefined = fieldsWithErrors + ? fieldsWithErrors.map((fieldName) => { + const fieldError = getErrorForField(fieldName, formik.errors); + const error: ValidationSummaryError = { + errorMessage: context.fieldErrorHandler + ? context.fieldErrorHandler(fieldError, fieldName) + : fieldError, + fieldName, + }; + return error; + }) + : undefined; + + if (errors) { + if (wrapper) { + return wrapper(); + } + return ; + } + } + return null; +}; + +export default FormikValidationErrorSummary; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/formik-yes-or-no-question/FormikYesOrNoQuestion.tsx b/apps/omsorgsdager-kalkulator/components/sif-formik/formik-yes-or-no-question/FormikYesOrNoQuestion.tsx new file mode 100644 index 0000000000..2d8065dcc5 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/formik-yes-or-no-question/FormikYesOrNoQuestion.tsx @@ -0,0 +1,43 @@ +import { TestProps, TypedFormInputValidationProps, YesOrNo } from '../types'; +import FormikRadioGroup, { FormikRadioGroupProps } from '../formik-radio-group/FormikRadioGroup'; + +export interface FormikYesOrNoQuestionProps + extends TestProps, + Omit, 'radios'> { + labels?: { + [YesOrNo.YES]?: string; + [YesOrNo.NO]?: string; + }; +} + +function FormikYesOrNoQuestion({ + name, + labels, + ...restProps +}: FormikYesOrNoQuestionProps & TypedFormInputValidationProps) { + const { yes: yesLabel = 'Ja', no: noLabel = 'Nei' } = labels || {}; + const testKey = restProps['data-testid']; + delete restProps['data-testid']; + + return ( + + data-testid={testKey} + {...restProps} + radios={[ + { + label: yesLabel, + value: YesOrNo.YES, + ['data-testid']: testKey ? `${testKey}_yes` : undefined, + }, + { + label: noLabel, + value: YesOrNo.NO, + ['data-testid']: testKey ? `${testKey}_no` : undefined, + }, + ]} + name={name} + /> + ); +} + +export default FormikYesOrNoQuestion; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/getTypedFormComponents.tsx b/apps/omsorgsdager-kalkulator/components/sif-formik/getTypedFormComponents.tsx new file mode 100644 index 0000000000..e5a53128be --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/getTypedFormComponents.tsx @@ -0,0 +1,31 @@ +import FormikRadioGroup, { FormikRadioGroupProps } from './formik-radio-group/FormikRadioGroup'; +import FormikSelect, { FormikSelectProps } from './formik-select/FormikSelect'; +import FormikYesOrNoQuestion, { FormikYesOrNoQuestionProps } from './formik-yes-or-no-question/FormikYesOrNoQuestion'; +import TypedFormikForm, { TypedFormikFormProps } from './typed-formik-form/TypedFormikForm'; +import TypedFormikWrapper, { TypedFormikWrapperProps } from './typed-formik-wrapper/TypedFormikWrapper'; + +export interface TypedFormComponents { + Form: (props: TypedFormikFormProps) => JSX.Element; + FormikWrapper: (props: TypedFormikWrapperProps) => JSX.Element; + RadioGroup: (props: FormikRadioGroupProps) => JSX.Element; + Select: (props: FormikSelectProps) => JSX.Element; + YesOrNoQuestion: (props: FormikYesOrNoQuestionProps) => JSX.Element; +} + +export function getTypedFormComponents(): TypedFormComponents< + FieldName, + FormValues, + ErrorType +> { + return { + Form: (props: TypedFormikFormProps) => , + FormikWrapper: (props: TypedFormikWrapperProps) => , + RadioGroup: (props: FormikRadioGroupProps) => ( + {...props} /> + ), + Select: (props: FormikSelectProps) => {...props} />, + YesOrNoQuestion: (props: FormikYesOrNoQuestionProps) => ( + {...props} /> + ), + }; +} diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/helpers/ValidationErrorLink.tsx b/apps/omsorgsdager-kalkulator/components/sif-formik/helpers/ValidationErrorLink.tsx new file mode 100644 index 0000000000..5986402a3f --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/helpers/ValidationErrorLink.tsx @@ -0,0 +1,29 @@ +import { Link } from '@navikt/ds-react'; +import React from 'react'; + +interface Props { + children: React.ReactNode; + className?: string; + onClick: () => void; +} + +const stopClickEvent = (evt: React.MouseEvent) => { + evt.stopPropagation(); + evt.preventDefault(); +}; + +const ValidationErrorLink: React.FunctionComponent = ({ onClick, children, className }) => { + return ( + { + stopClickEvent(evt); + onClick(); + }}> + {children} + + ); +}; + +export default ValidationErrorLink; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/helpers/ValidationSummary.tsx b/apps/omsorgsdager-kalkulator/components/sif-formik/helpers/ValidationSummary.tsx new file mode 100644 index 0000000000..bb09f272f3 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/helpers/ValidationSummary.tsx @@ -0,0 +1,37 @@ +import { ErrorSummary, ErrorSummaryProps } from '@navikt/ds-react'; +import React, { RefObject } from 'react'; +import ValidationErrorLink from './ValidationErrorLink'; + +export interface Props extends Pick { + errors: ValidationSummaryError[]; + summaryRef?: RefObject; +} + +export interface ValidationSummaryError { + errorMessage: string; + fieldName: string; +} + +const ValidationSummary: React.FunctionComponent = ({ errors, heading, headingTag, summaryRef }) => { + return ( + + {errors.map((error, idx) => ( + { + const elementById = document.getElementById(error.fieldName); + const elementByName = document.getElementsByName(error.fieldName)[0]; + if (elementById) { + elementById.focus(); + } else if (elementByName) { + elementByName.focus(); + } + }}> + {error.errorMessage} + + ))} + + ); +}; +export default ValidationSummary; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/helpers/button-row/ButtonRow.tsx b/apps/omsorgsdager-kalkulator/components/sif-formik/helpers/button-row/ButtonRow.tsx new file mode 100644 index 0000000000..9140d63100 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/helpers/button-row/ButtonRow.tsx @@ -0,0 +1,24 @@ +import React from 'react'; + +export interface Props { + align?: 'left' | 'right' | 'center'; + layout?: 'normal' | 'mobile-50-50' | 'stretch'; + children: React.ReactNode; +} + +const ButtonRow: React.FunctionComponent = ({ children, align = 'left', layout = 'normal' }) => { + const cls = `buttonRow buttonRow--${align} buttonRow--${layout}`; + return ( +
    + {React.Children.map(children, (knapp, index) => + knapp ? ( + + {knapp} + + ) : undefined, + )} +
    + ); +}; + +export default ButtonRow; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/helpers/formik-values-observer/FormikValuesObserver.tsx b/apps/omsorgsdager-kalkulator/components/sif-formik/helpers/formik-values-observer/FormikValuesObserver.tsx new file mode 100644 index 0000000000..e353f0ae2a --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/helpers/formik-values-observer/FormikValuesObserver.tsx @@ -0,0 +1,51 @@ +import { useEffect, useRef, useState } from 'react'; +import isEqual from 'react-fast-compare'; +import { useFormikContext } from 'formik'; +import { debounce } from '@navikt/ds-react'; + +interface Props { + onChange: (values: FormValues) => void; + delay?: number; +} + +const useEffectOnce = (callback?: () => void) => { + const [hasRun, setHasRun] = useState(false); + useEffect(() => { + if (callback) { + if (!hasRun) { + callback(); + setHasRun(true); + } + } + }, [hasRun, callback]); +}; + +function FormikValuesObserver({ onChange, delay = 100 }: Props) { + const { values } = useFormikContext(); + const prefValuesRef = useRef(); + const [mounted, setMounted] = useState(false); + + const emitChanged = debounce((values: FormValues) => { + onChange(values); + }, delay); + + useEffect(() => { + if (mounted || true) { + if (!isEqual(prefValuesRef.current, values)) { + emitChanged(values); + } + } + }, [mounted, emitChanged, prefValuesRef, values]); + + useEffectOnce(() => { + setMounted(true); + }); + + useEffect(() => { + prefValuesRef.current = values; + }); + + return null; +} + +export default FormikValuesObserver; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/typed-formik-form/TypedFormikForm.tsx b/apps/omsorgsdager-kalkulator/components/sif-formik/typed-formik-form/TypedFormikForm.tsx new file mode 100644 index 0000000000..fdf019c373 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/typed-formik-form/TypedFormikForm.tsx @@ -0,0 +1,232 @@ +import { Button } from '@navikt/ds-react'; +import React, { createContext, useEffect, useRef, useState } from 'react'; +import { Back, Next } from '@navikt/ds-icons'; +import { FieldInputProps, FormikProps, useFormikContext } from 'formik'; +import { CancelButtonTypes, CustomFormErrorHandler, ErrorTypeChecker, FieldErrorHandler, FormError } from '../types'; +import { getErrorForField, isValidationErrorsVisible } from '../utils/typedFormErrorUtils'; +import FormikValidationErrorSummary from '../formik-validation-error-summary/FormikValidationErrorSummary'; +import ButtonRow from '../helpers/button-row/ButtonRow'; +export interface TypedFormikFormProps { + children: React.ReactNode; + className?: string; + includeValidationSummary?: boolean; + includeButtons?: boolean; + resetFormOnCancel?: boolean; + submitButtonLabel?: string; + cancelButtonLabel?: string; + backButtonLabel?: string; + id?: string; + showSubmitButton?: boolean; + cancelButtonType?: CancelButtonTypes; + runDelayedFormValidation?: boolean; + formErrorHandler?: CustomFormErrorHandler; + formFooter?: React.ReactNode; + errorSummaryTitle?: string; + submitPending?: boolean; + submitDisabled?: boolean; + backButtonDisabled?: boolean; + showButtonArrows?: boolean; + noButtonsContentRenderer?: () => React.ReactNode; + cleanup?: (values: FormValues) => FormValues; + onValidSubmit?: () => void; + onCancel?: () => void; + onBack?: (values: FormValues) => void; +} + +export type TypedFormikFormContextType = { + showErrors: boolean; + fieldErrorHandler?: FieldErrorHandler; + isHandledErrorTypeChecker?: ErrorTypeChecker; + getAndRenderFieldErrorMessage: (field: FieldInputProps, form: FormikProps) => FormError; + onAfterFieldValueSet: () => void; +}; + +interface SubmitProps { + isSubmitting: boolean; + isValid: boolean; +} + +const userHasSubmittedValidForm = (oldProps: SubmitProps, currentProps: SubmitProps) => + oldProps.isSubmitting === true && currentProps.isSubmitting === false && currentProps.isValid === true; + +export const TypedFormikFormContext = createContext(undefined); + +function TypedFormikForm({ + children, + resetFormOnCancel, + className, + includeValidationSummary, + submitButtonLabel, + cancelButtonLabel, + backButtonLabel, + id, + includeButtons = true, + showSubmitButton = true, + runDelayedFormValidation, + cancelButtonType, + formErrorHandler, + formFooter, + errorSummaryTitle, + submitPending, + submitDisabled, + backButtonDisabled: backDisabled, + showButtonArrows = true, + onCancel, + onBack, + onValidSubmit, + noButtonsContentRenderer, + cleanup, +}: TypedFormikFormProps) { + const formik = useFormikContext(); + const { handleSubmit, submitCount, setStatus, resetForm, isSubmitting, isValid } = formik; + const [formSubmitCount, setFormSubmitCout] = useState(submitCount); + + const ref = useRef({ isSubmitting, isValid }); + const summaryRef = useRef(null); + + const showErrors = formik?.status?.showErrors === true || formik?.initialStatus?.showErrors === true; + + useEffect(() => { + ref.current = { + isSubmitting, + isValid, + }; + if (!isSubmitting) { + if (submitCount > formSubmitCount) { + if (isValid) { + setFormSubmitCout(submitCount); + } else { + setStatus({ showErrors: true }); + if (summaryRef && summaryRef.current) { + summaryRef.current.focus(); + } + } + } else { + if (showErrors) { + setStatus({ showErrors: false }); + } + } + } + }, [submitCount, showErrors, setStatus, formSubmitCount, isSubmitting, isValid]); + + if (userHasSubmittedValidForm(ref.current, { isValid, isSubmitting })) { + if (onValidSubmit) { + onValidSubmit(); + } + } + + const runCleanup = (evt: React.FormEvent) => { + evt.stopPropagation(); + evt.preventDefault(); + formik.setValues(cleanup ? cleanup(formik.values) : formik.values); + }; + + const onSubmit = (evt: React.FormEvent) => { + if (cleanup !== undefined) { + runCleanup(evt); + // La values oppdatere seg før en kaller handleSubmit + setTimeout(() => { + handleSubmit(evt); + }); + } else { + handleSubmit(evt); + } + }; + + const createTypedFormikFormContext = (): TypedFormikFormContextType => { + const showErrors = isValidationErrorsVisible(formik); + return { + showErrors, + fieldErrorHandler: (error, fieldName) => { + return formErrorHandler ? formErrorHandler.fieldErrorHandler(error, fieldName) : error; + }, + isHandledErrorTypeChecker: formErrorHandler?.isHandledErrorTypeFunc, + getAndRenderFieldErrorMessage: (field, form) => { + if (showErrors) { + const error = getErrorForField(field.name, form.errors); + if (error) { + return formErrorHandler ? formErrorHandler.fieldErrorHandler(error, field.name) : error; + } + } + return undefined; + }, + onAfterFieldValueSet: () => { + if (runDelayedFormValidation && formik.status && formik.status.showErrors) { + setTimeout(() => { + formik.validateForm(); + }); + } + }, + }; + }; + + return ( +
    + + {children} + {includeValidationSummary && !formik.isValid && isValidationErrorsVisible(formik) && ( +
    + +
    + )} + {includeButtons && ( +
    + + {onBack && ( + + )} + {showSubmitButton && ( + + )} + + {onCancel && ( + + )} + +
    + )} + {includeButtons === false && noButtonsContentRenderer && ( +
    {noButtonsContentRenderer()}
    + )} + {formFooter &&
    {formFooter}
    } +
    +
    + ); +} + +export default TypedFormikForm; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/typed-formik-wrapper/TypedFormikWrapper.tsx b/apps/omsorgsdager-kalkulator/components/sif-formik/typed-formik-wrapper/TypedFormikWrapper.tsx new file mode 100644 index 0000000000..c0ca18add5 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/typed-formik-wrapper/TypedFormikWrapper.tsx @@ -0,0 +1,28 @@ +import React from 'react'; +import { Formik, FormikConfig, FormikProps } from 'formik'; + +export interface TypedFormikWrapperProps extends Omit>, 'initialValues'> { + innerRef?: any; + initialValues: Partial; + renderForm: (formik: FormikProps>) => React.ReactNode; + onSubmit: (values: Partial) => void; +} + +type Props = TypedFormikWrapperProps & FormikConfig>; + +function TypedFormikWrapper(props: Props) { + const { onSubmit, initialValues, renderForm, ...restProps } = props; + return ( + > + initialValues={initialValues} + onSubmit={(values, { setSubmitting, setTouched }) => { + setTouched({}); + setSubmitting(false); + onSubmit(values); + }} + {...restProps}> + {(formik: FormikProps>) => renderForm(formik)} + + ); +} +export default TypedFormikWrapper; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/types/index.ts b/apps/omsorgsdager-kalkulator/components/sif-formik/types/index.ts new file mode 100644 index 0000000000..4abecbf041 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/types/index.ts @@ -0,0 +1,29 @@ +export enum YesOrNo { + 'YES' = 'yes', + 'NO' = 'no', + 'UNANSWERED' = 'unanswered', +} + +export type CancelButtonTypes = 'primary' | 'secondary' | 'tertiary' | 'danger'; + +export type FormError = React.ReactNode | boolean; + +export interface TestProps { + 'data-testid'?: string; +} + +export interface TypedFormInputValidationProps { + validate?: (value: any, fieldName: FieldName) => ErrorType | undefined; +} + +export interface UseFastFieldProps { + useFastField?: boolean; +} + +export interface CustomFormErrorHandler { + fieldErrorHandler: FieldErrorHandler; + isHandledErrorTypeFunc?: ErrorTypeChecker; +} + +export type FieldErrorHandler = (error: ErrorType, fieldName: string) => string; +export type ErrorTypeChecker = (error: ErrorType) => boolean; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/utils/typedFormErrorUtils.ts b/apps/omsorgsdager-kalkulator/components/sif-formik/utils/typedFormErrorUtils.ts new file mode 100644 index 0000000000..db7cec277e --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/utils/typedFormErrorUtils.ts @@ -0,0 +1,79 @@ +import { FieldInputProps, FormikErrors, FormikProps, getIn, isObject } from 'formik'; +import { TypedFormikFormContextType } from '../typed-formik-form/TypedFormikForm'; +import { ErrorTypeChecker, FormError } from '../types'; + +export const getErrorPropForFormikInput = ({ + error, + field, + form, + context, +}: { + error: FormError; + field: FieldInputProps; + form: FormikProps; + context?: TypedFormikFormContextType; +}): FormError | undefined => { + return error || (context ? context.getAndRenderFieldErrorMessage(field, form) : undefined); +}; + +export const getErrorForField = ( + elementName: string, + errors: FormikErrors, +): any | undefined => { + const fieldErrors: Array | string = getIn(errors, elementName); + if (fieldErrors === null) { + return undefined; + } + if (Array.isArray(fieldErrors)) { + if (fieldErrors.length === 1 && fieldErrors[0] === null) { + /** Filter out fieldArray errors containing only null item */ + return undefined; + } + if (fieldErrors.length >= 1) { + return fieldErrors[0]; + } + } else { + return fieldErrors; + } +}; + +export const isValidationErrorsVisible = (formik: FormikProps): boolean => { + return formik?.status?.showErrors === true; +}; + +export const getAllFieldsWithErrors = (allErrors: any, errorObjectChecker?: ErrorTypeChecker): string[] => { + const getFieldsWithErrors = (errors: any, keys: string[] = [], parentKey?: string): string[] => { + const createFieldKey = (fieldName: string): string => { + return parentKey ? `${parentKey}.${fieldName}` : fieldName; + }; + if (errors) { + if ( + (parentKey && isObject(errors) && errorObjectChecker && errorObjectChecker(errors)) || + (parentKey && typeof errors === 'string') + ) { + keys.push(parentKey); + return keys; + } + Object.keys(errors).forEach((key) => { + const error = errors[key]; + if (Array.isArray(error)) { + error.forEach((err, idx) => { + getFieldsWithErrors(err, keys, createFieldKey(`${key}.${idx}`)); + }); + } else { + if (isObject(error)) { + if (errorObjectChecker && errorObjectChecker(error)) { + keys.push(createFieldKey(key)); + return; + } + return getFieldsWithErrors(error, keys, createFieldKey(`${key}`)); + } + keys.push(createFieldKey(key)); + } + return undefined; + }); + } + return keys; + }; + return getFieldsWithErrors(allErrors, []); +}; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/validation/getRequiredFieldValidator.ts b/apps/omsorgsdager-kalkulator/components/sif-formik/validation/getRequiredFieldValidator.ts new file mode 100644 index 0000000000..fef0c71892 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/validation/getRequiredFieldValidator.ts @@ -0,0 +1,17 @@ +import { ValidationFunction } from './types'; +import { hasValue } from './validationUtils'; + +export enum ValidateRequiredFieldError { + 'noValue' = 'noValue', +} + +type RequiredFieldValidationResult = ValidateRequiredFieldError.noValue | undefined; + +const getRequiredFieldValidator = (): ValidationFunction => (value: any) => { + if (hasValue(value) === false) { + return ValidateRequiredFieldError.noValue; + } + return undefined; +}; + +export default getRequiredFieldValidator; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/validation/getYesOrNoValidator.ts b/apps/omsorgsdager-kalkulator/components/sif-formik/validation/getYesOrNoValidator.ts new file mode 100644 index 0000000000..565a119a16 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/validation/getYesOrNoValidator.ts @@ -0,0 +1,15 @@ +import { YesOrNo } from '../types'; +import { ValidationFunction } from './types'; + +export enum ValidateYesOrNoError { + 'yesOrNoIsUnanswered' = 'yesOrNoIsUnanswered', +} + +type YesOrNoValidationResult = ValidateYesOrNoError.yesOrNoIsUnanswered | undefined; + +const getYesOrNoValidator = (): ValidationFunction => (value: any) => { + const isAnswered = value === YesOrNo.YES || value === YesOrNo.NO; + return isAnswered ? undefined : ValidateYesOrNoError.yesOrNoIsUnanswered; +}; + +export default getYesOrNoValidator; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/validation/intlFormErrorHandler.ts b/apps/omsorgsdager-kalkulator/components/sif-formik/validation/intlFormErrorHandler.ts new file mode 100644 index 0000000000..01cb43c16d --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/validation/intlFormErrorHandler.ts @@ -0,0 +1,40 @@ +import { IntlShape } from 'react-intl'; +import { CustomFormErrorHandler, FieldErrorHandler } from '../types'; +import { isIntlErrorObject, ValidationError } from './types'; + +const createFieldErrorIntlKey = ( + error: string, + fieldName: string, + keySeparator: string, + errorPrefix?: string, +): string => `${errorPrefix ? `${errorPrefix}${keySeparator}` : ''}${fieldName}${keySeparator}${error}`; + +const getFieldErrorHandler = + (intl: IntlShape, keySeparator: string, errorPrefix?: string): FieldErrorHandler => + (error: ValidationError, fieldName: string) => { + return isIntlErrorObject(error) + ? intl.formatMessage( + { + id: error.keepKeyUnaltered + ? error.key + : createFieldErrorIntlKey(error.key, fieldName, keySeparator, errorPrefix), + }, + error.values, + ) + : intl.formatMessage({ id: createFieldErrorIntlKey(error, fieldName, keySeparator, errorPrefix) }); + }; + +const getIntlFormErrorHandler = (intl: IntlShape, errorPrefix?: string): CustomFormErrorHandler => ({ + fieldErrorHandler: getFieldErrorHandler(intl, '.', errorPrefix), + isHandledErrorTypeFunc: isIntlErrorObject, +}); + +export const getIntlFormErrorHandler_underscoreKeys = ( + intl: IntlShape, + errorPrefix?: string, +): CustomFormErrorHandler => ({ + fieldErrorHandler: getFieldErrorHandler(intl, '_', errorPrefix), + isHandledErrorTypeFunc: isIntlErrorObject, +}); + +export default getIntlFormErrorHandler; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/validation/types.ts b/apps/omsorgsdager-kalkulator/components/sif-formik/validation/types.ts new file mode 100644 index 0000000000..7dd2b14c7f --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/validation/types.ts @@ -0,0 +1,18 @@ +export interface IntlErrorObject { + /** If passed in, the key is not transformed with field name and error */ + key: string; + /** Values passed through to intl formatMessage */ + values?: { [key: string]: any }; + /** Set if error key is not to be altered by fieldErrorHandler */ + keepKeyUnaltered?: boolean; +} + +export const isIntlErrorObject = (error: any): error is IntlErrorObject => { + return typeof error === 'object' && typeof error.key === 'string'; +}; + +export type ValidationError = string | IntlErrorObject; + +export type ValidationResult = ValidationErrors | undefined; + +export type ValidationFunction = (value: any) => ValidationResult; diff --git a/apps/omsorgsdager-kalkulator/components/sif-formik/validation/validationUtils.ts b/apps/omsorgsdager-kalkulator/components/sif-formik/validation/validationUtils.ts new file mode 100644 index 0000000000..211f49f1bd --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/sif-formik/validation/validationUtils.ts @@ -0,0 +1,33 @@ +import { ValidationError, ValidationResult } from './types'; + +export const hasValue = (value: any): boolean => value !== '' && value !== undefined && value !== null; + +export const validateAll = ( + validations: Array<() => ValidationResult>, +): ErrorType | undefined => { + let result: ValidationResult; + validations.some((validateFunc) => { + const validationResult = validateFunc(); + if (validationResult) { + result = validationResult; + return true; + } + return false; + }); + return result; +}; + +export const getNumberFromStringInput = (inputValue: string | undefined): number | undefined => { + if (inputValue === undefined || inputValue === '' || Array.isArray(inputValue)) { + return undefined; + } + if (typeof inputValue === 'number' && isNaN(inputValue)) { + return undefined; + } + const value = `${inputValue}`.replace(/\,/g, '.').trim(); + const numValue = Number(value); + if (isNaN(numValue)) { + return undefined; + } + return numValue; +}; diff --git a/apps/omsorgsdager-kalkulator/components/svgs/SvgChild.tsx b/apps/omsorgsdager-kalkulator/components/svgs/SvgChild.tsx new file mode 100644 index 0000000000..4bbbe6756c --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/svgs/SvgChild.tsx @@ -0,0 +1,56 @@ +import React from 'react'; + +const SvgChild = () => ( + + + + + + + + + + + +); + +export default SvgChild; diff --git a/apps/omsorgsdager-kalkulator/components/svgs/SvgChildSad.tsx b/apps/omsorgsdager-kalkulator/components/svgs/SvgChildSad.tsx new file mode 100644 index 0000000000..fa2e04722f --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/svgs/SvgChildSad.tsx @@ -0,0 +1,48 @@ +import * as React from 'react'; + +const SvgChildSad = () => ( + + + + + + + + + +); + +export default SvgChildSad; diff --git a/apps/omsorgsdager-kalkulator/components/svgs/SvgSuccessCircle.tsx b/apps/omsorgsdager-kalkulator/components/svgs/SvgSuccessCircle.tsx new file mode 100644 index 0000000000..0e7c26b17a --- /dev/null +++ b/apps/omsorgsdager-kalkulator/components/svgs/SvgSuccessCircle.tsx @@ -0,0 +1,13 @@ +import * as React from 'react'; + +const SvgSuccessCircle = () => ( + + + + +); + +export default SvgSuccessCircle; diff --git a/apps/omsorgsdager-kalkulator/e2e/WCAG.spec.ts b/apps/omsorgsdager-kalkulator/e2e/WCAG.spec.ts new file mode 100644 index 0000000000..8251886064 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/e2e/WCAG.spec.ts @@ -0,0 +1,34 @@ +import AxeBuilder from '@axe-core/playwright'; +import { expect, test } from '@playwright/test'; + +const year = new Date().getFullYear(); + +test('Gå gjennom kalkulatoren og sjekk WCAG', async ({ page }) => { + await page.goto('http://localhost:8080/omsorgspenger/kalkulator-antall-omsorgsdager'); + + await page.getByRole('button', { name: 'Hva betyr egne barn?' }).click(); + await page.getByLabel('Hvor mange egne barn bor med deg?').selectOption('1'); + await page.getByRole('button', { name: 'Hvorfor spør vi om det?' }).click(); + await page.getByLabel('Hvilket årstall er barnet født?').selectOption(year.toString()); + await page.getByLabel('Ja').check(); + await page + .getByRole('group', { + name: 'Har du fått ekstra omsorgsdager fordi barnet har en sykdom eller funksjonshemning som gjør at du oftere må være borte fra jobb?', + }) + .getByLabel('Ja') + .check(); + await page + .getByRole('group', { + name: 'Har du fått vedtak om ekstra omsorgsdager fordi du er alene om omsorgen for barnet?', + }) + .getByLabel('Ja') + .check(); + await page.getByTestId('typedFormikForm-submitButton').click(); + await page.getByTestId('typedFormikForm-submitButton').click(); + + await page.locator('#__kalkulator-kontainer').waitFor(); + + const accessibilityScanResults = await new AxeBuilder({ page }).include('#__kalkulator-kontainer').analyze(); + + expect(accessibilityScanResults.violations).toEqual([]); +}); diff --git a/apps/omsorgsdager-kalkulator/e2e/test.spec.ts b/apps/omsorgsdager-kalkulator/e2e/test.spec.ts new file mode 100644 index 0000000000..32eab31973 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/e2e/test.spec.ts @@ -0,0 +1,174 @@ +import { test, expect } from '@playwright/test'; + +const year = new Date().getFullYear(); + +test('Test text info part', async ({ page }) => { + await page.goto('http://localhost:8080/omsorgspenger/kalkulator-antall-omsorgsdager'); + + const appTitle = page.getByRole('heading', { + name: 'Kalkulator for omsorgsdager', + }); + await expect(appTitle).toBeVisible(); + await expect(appTitle).toHaveText('Kalkulator for omsorgsdager'); + + const appTitleDescription = page.getByText('Finn ut hvor mange omsorgsdager du kan ha rett til'); + await expect(appTitleDescription).toBeVisible(); + + const infoHeader = page.getByRole('heading', { + name: 'Her kan du se hvor mange omsorgsdager du kan ha rett til.', + }); + await expect(infoHeader).toBeVisible(); + + const infoAvsnitt1 = page.getByText( + 'Kalkulatoren regner ut hvor mange omsorgsdager du har rett til for barn som bor fast hos deg. Hvis dere som foreldre ikke bor sammen, men har avtale om delt fast bosted, har barnet fast bosted hos begge foreldre.', + ); + await expect(infoAvsnitt1).toBeVisible(); + + await page.getByRole('button', { name: 'Er du samværsforelder?' }).click(); + + const samværsforelderInfoAvsnitt1 = page.getByText( + 'Kalkulatoren beregner kun omsorgsdager for den forelderen som bor fast med barnet', + ); + await expect(samværsforelderInfoAvsnitt1).toBeVisible(); + + const samværsforelderInfoAvsnitt2 = page.getByText( + 'Hvis du har fått omsorgsdager av forelderen som bor med barnet, vil du ha rett til disse dagene selv om de ikke vises i kalkulatoren.', + ); + await expect(samværsforelderInfoAvsnitt2).toBeVisible(); +}); + +test('Test kalkulator 1 barn', async ({ page }) => { + await page.goto('http://localhost:8080/omsorgspenger/kalkulator-antall-omsorgsdager'); + + await page.getByLabel('Hvor mange egne barn bor med deg?').selectOption('1'); + + await page.getByLabel('Hvilket årstall er barnet født?').selectOption(year.toString()); + + await page.getByRole('group', { name: 'Bor barnet fast hos deg?' }).getByLabel('Ja').check(); + + await page + .getByRole('group', { + name: 'Har du fått ekstra omsorgsdager fordi barnet har en sykdom eller funksjonshemning som gjør at du oftere må være borte fra jobb?', + }) + .getByLabel('Ja') + .check(); + + await page + .getByRole('group', { + name: 'Har du fått vedtak om ekstra omsorgsdager fordi du er alene om omsorgen for barnet?', + }) + .getByLabel('Ja') + .check(); + + await page.getByRole('button').getByText('Beregn').click(); + await page.getByRole('button').getByText('Beregn').click(); + + await page.getByRole('heading', { name: 'Nyheter og presse' }).click(); + await page.getByRole('heading', { name: '40 omsorgsdager' }).isVisible(); + + await page.getByRole('button', { name: 'Vis mer' }).click(); + + await page.getByText('Grunnrett for 1 barn10 dager').isVisible(); + await page.getByText('Ekstra pga. aleneomsorg10 dager').first().isVisible(); + await page.getByText('Barn med kronisk sykdom10 dager').isVisible(); + await page.getByText('Ekstra pga. aleneomsorg10 dager').nth(1).isVisible(); + await page.getByText('Totalt antall omsorgsdager= 40 dager').isVisible(); +}); + +test('Test kalkulator Barn bor ikke fast med', async ({ page }) => { + await page.goto('http://localhost:8080/omsorgspenger/kalkulator-antall-omsorgsdager'); + + await page.getByLabel('Hvor mange egne barn bor med deg?').selectOption('1'); + + await page.getByLabel('Hvilket årstall er barnet født?').selectOption(year.toString()); + + await page.getByRole('group', { name: 'Bor barnet fast hos deg?' }).getByLabel('Nei').check(); + + await page.getByText('For å ha rett på omsorgsdager for dette barnet, må barnet bo fast hos deg.').isVisible(); + + await page.getByRole('button').getByText('Beregn').click(); + await page.getByRole('button').getByText('Beregn').click(); + + await page.getByRole('heading', { name: 'Nyheter og presse' }).click(); + await page.getByRole('heading', { name: '0 omsorgsdager' }).isVisible(); +}); + +test('Test kalkulator Barn 18 år', async ({ page }) => { + await page.goto('http://localhost:8080/omsorgspenger/kalkulator-antall-omsorgsdager'); + + await page.getByLabel('Hvor mange egne barn bor med deg?').selectOption('1'); + + await page.getByLabel('Hvilket årstall er barnet født?').selectOption((year - 19).toString()); + + await page + .getByText('Du har ikke rett på omsorgsdager for barn som er 19 år eller eldre. Omsorgsdager') + .isVisible(); + + await page.getByRole('button').getByText('Beregn').click(); + await page.getByRole('button').getByText('Beregn').click(); + + await page.getByRole('heading', { name: 'Resultat' }).isVisible(); + await page.getByRole('heading', { name: '0 omsorgsdager' }).isVisible(); +}); + +test('Test kalkulator Barn 13 år', async ({ page }) => { + await page.goto('http://localhost:8080/omsorgspenger/kalkulator-antall-omsorgsdager'); + + await page.getByLabel('Hvor mange egne barn bor med deg?').selectOption('1'); + + await page.getByLabel('Hvilket årstall er barnet født?').selectOption((year - 13).toString()); + + await page.getByRole('group', { name: 'Bor barnet fast hos deg?' }).getByLabel('Ja').check(); + + await page + .getByRole('group', { + name: 'Har du fått ekstra omsorgsdager fordi barnet har en sykdom eller funksjonshemning som gjør at du oftere må være borte fra jobb?', + }) + .getByLabel('Nei') + .check(); + + await page + .getByText('For å få omsorgsdager for barn som er 13 år eller eldre, må du ha søkt og fått i') + .isVisible(); + + await page + .getByRole('group', { + name: 'Har du fått ekstra omsorgsdager fordi barnet har en sykdom eller funksjonshemning som gjør at du oftere må være borte fra jobb?', + }) + .getByLabel('Ja') + .check(); + + await page + .getByRole('group', { + name: 'Har du fått vedtak om ekstra omsorgsdager fordi du er alene om omsorgen for barnet?', + }) + .getByLabel('Nei') + .check(); + + await page.getByRole('button').getByText('Beregn').click(); + await page.getByRole('button').getByText('Beregn').click(); + + await page.getByRole('heading', { name: 'Resultat' }).isVisible(); + await page.getByRole('heading', { name: '20 omsorgsdager' }).isVisible(); + + await page.getByRole('button', { name: 'Vis mer' }).click(); + await page.getByText('Grunnrett for 1 barn10 dager').isVisible(); + await page.getByText('Barn med kronisk sykdom10 dager').isVisible(); + await page.getByText('Totalt antall omsorgsdager= 20 dager').isVisible(); +}); + +test('Test kalkulator 2 barn test paneler', async ({ page }) => { + await page.goto('http://localhost:8080/omsorgspenger/kalkulator-antall-omsorgsdager'); + + await page.getByLabel('Hvor mange egne barn bor med deg?').selectOption('2'); + await page + .locator('div') + .filter({ hasText: /^Barn 1Vis mer$/ }) + .getByRole('button') + .click(); + await page + .locator('div') + .filter({ hasText: /^Barn 2Vis mer$/ }) + .getByRole('button') + .click(); +}); diff --git a/apps/omsorgsdager-kalkulator/jest.config.js b/apps/omsorgsdager-kalkulator/jest.config.js new file mode 100644 index 0000000000..17c711dabd --- /dev/null +++ b/apps/omsorgsdager-kalkulator/jest.config.js @@ -0,0 +1,31 @@ +const nextJest = require('next/jest'); + +const createJestConfig = nextJest({ + // Provide the path to your Next.js app to load next.config.js and .env files in your test environment + dir: './', +}); + +// Add any custom config to be passed to Jest +const customJestConfig = { + // Add more setup options before each test is run + // setupFilesAfterEnv: ['/jest.setup.js'], + // if using TypeScript with a baseUrl set to the root directory then you need the below for alias' to work + moduleDirectories: ['node_modules', '/'], + modulePathIgnorePatterns: ['playwright', 'e2e', 'tests-examples'], + testEnvironment: 'jest-environment-jsdom', +}; + +// createJestConfig is exported this way to ensure that next/jest can load the Next.js config which is async +module.exports = async (...args) => { + const fn = createJestConfig(customJestConfig); + const res = await fn(...args); + + res.transformIgnorePatterns = res.transformIgnorePatterns.map((pattern) => { + if (pattern === '/node_modules/') { + return '/node_modules/(?!(uuid)/)'; + } + return pattern; + }); + + return res; +}; diff --git a/apps/omsorgsdager-kalkulator/nais/dev-gcp.json b/apps/omsorgsdager-kalkulator/nais/dev-gcp.json new file mode 100644 index 0000000000..cb4b33d5ac --- /dev/null +++ b/apps/omsorgsdager-kalkulator/nais/dev-gcp.json @@ -0,0 +1,17 @@ +{ + "app": "omsorgsdager-kalkulator", + "cluster": "dev-gcp", + "namespace": "dusseldorf", + "team": "dusseldorf", + "ingresses": ["https://omsorgsdager-kalkulator.intern.dev.nav.no"], + "externalHosts": ["www.nav.no", "dekoratoren.ekstern.dev.nav.no"], + "livenessPath": "/omsorgspenger/kalkulator-antall-omsorgsdager/api/health/isAlive", + "readinessPath": "/omsorgspenger/kalkulator-antall-omsorgsdager/api/health/isReady", + "minReplicas": 1, + "maxReplicas": 1, + "env": { + "NEXT_PUBLIC_DEKORATOR_ENV": "dev", + "NEXT_PUBLIC_ENVIRONMENT": "dev", + "NPM_CONFIG_CACHE": "/tmp" + } +} diff --git a/apps/omsorgsdager-kalkulator/nais/prod-gcp.json b/apps/omsorgsdager-kalkulator/nais/prod-gcp.json new file mode 100644 index 0000000000..197db567f2 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/nais/prod-gcp.json @@ -0,0 +1,17 @@ +{ + "app": "omsorgsdager-kalkulator", + "cluster": "prod-gcp", + "namespace": "dusseldorf", + "team": "dusseldorf", + "ingresses": ["https://www.nav.no/omsorgspenger/kalkulator-antall-omsorgsdager"], + "externalHosts": ["www.nav.no"], + "livenessPath": "/omsorgspenger/kalkulator-antall-omsorgsdager/api/health/isAlive", + "readinessPath": "/omsorgspenger/kalkulator-antall-omsorgsdager/api/health/isReady", + "minReplicas": 1, + "maxReplicas": 1, + "env": { + "NEXT_PUBLIC_DEKORATOR_ENV": "prod", + "NEXT_PUBLIC_ENVIRONMENT": "prod", + "NPM_CONFIG_CACHE": "/tmp" + } +} diff --git a/apps/omsorgsdager-kalkulator/next.config.js b/apps/omsorgsdager-kalkulator/next.config.js new file mode 100644 index 0000000000..86572e3dfb --- /dev/null +++ b/apps/omsorgsdager-kalkulator/next.config.js @@ -0,0 +1,21 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + basePath: '/omsorgspenger/kalkulator-antall-omsorgsdager', + reactStrictMode: true, + output: 'standalone', + i18n: { + locales: ['nb'], + defaultLocale: 'nb', + }, + async redirects() { + return [ + { + source: '/beregne', + destination: '/', + permanent: true, + }, + ]; + }, +}; + +module.exports = nextConfig; diff --git a/apps/omsorgsdager-kalkulator/package.json b/apps/omsorgsdager-kalkulator/package.json new file mode 100644 index 0000000000..7f49cb2faa --- /dev/null +++ b/apps/omsorgsdager-kalkulator/package.json @@ -0,0 +1,48 @@ +{ + "author": "NAV", + "description": "En kalkulator for beregning av omsorgsdager.", + "license": "MIT", + "name": "@navikt/omsorgsdager-kalkulator", + "version": "3.5.2", + "private": true, + "scripts": { + "dev": "next dev -p 8080", + "build": "next build", + "start": "next start -p 8080", + "lint": "next lint", + "test": "jest", + "playwright-test": "playwright test" + }, + "dependencies": { + "@navikt/ds-css": "5.11.4", + "@navikt/ds-icons": "3.4.3", + "@navikt/ds-react": "5.11.4", + "@navikt/ds-tailwind": "5.11.4", + "@navikt/nav-dekoratoren-moduler": "2.1.5", + "classnames": "2.3.2", + "dayjs": "1.11.10", + "formik": "2.4.5", + "jest": "29.7.0", + "jest-environment-jsdom": "29.7.0", + "next": "14.0.4", + "node-fetch": "3.3.2", + "react": "18.2.0", + "react-day-picker": "8.9.1", + "react-dom": "18.2.0", + "react-intl": "6.5.5", + "uuid": "9.0.1" + }, + "devDependencies": { + "@axe-core/playwright": "4.8.2", + "@playwright/test": "1.40.1", + "@types/node": "20.10.4", + "@types/react": "18.2.43", + "@types/react-dom": "18.2.17", + "@types/uuid": "9.0.7", + "eslint": "8.55.0", + "eslint-config-next": "14.0.4", + "postcss": "8.4.32", + "tailwindcss": "3.3.6", + "typescript": "5.3.3" + } +} diff --git a/apps/omsorgsdager-kalkulator/pages/_app.tsx b/apps/omsorgsdager-kalkulator/pages/_app.tsx new file mode 100644 index 0000000000..74deb6c550 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/pages/_app.tsx @@ -0,0 +1,42 @@ +import type { AppProps } from 'next/app'; +import { IntlProvider } from 'react-intl'; +import { DecoratorLocale } from '@navikt/nav-dekoratoren-moduler'; +import Container from '../components/container/Container'; +import { useRouter } from 'next/router'; +import Head from 'next/head'; +import { messages } from '../utils/message'; +import '../styles/globals.css'; +import '../styles/buttonRow.scss'; +import '../styles/ResultBox.scss'; +import '../styles/customExpCard.scss'; + +import '../components/section-panel/sectionPanel.scss'; +import '../components/section-panel/circle-mask/circleMask.scss'; + +import '@navikt/ds-css'; + +const getLocaleOrFallback = (locale?: string) => { + if (locale && ['nb', 'nn'].includes(locale)) { + return locale; + } + + return 'nb'; +}; + +export default function App({ Component, pageProps }: AppProps) { + const router = useRouter(); + const locale = getLocaleOrFallback(router.locale); + return ( + + <> + + {process.env.NEXT_PUBLIC_ENVIRONMENT != 'prod' ? : ''} + Omsorgdager kalkulator - www.nav.no + + + + + + + ); +} diff --git a/apps/omsorgsdager-kalkulator/pages/_document.tsx b/apps/omsorgsdager-kalkulator/pages/_document.tsx new file mode 100644 index 0000000000..56d5866485 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/pages/_document.tsx @@ -0,0 +1,61 @@ +import { DecoratorComponents, fetchDecoratorReact, DecoratorEnvProps } from '@navikt/nav-dekoratoren-moduler/ssr'; +import Document, { DocumentContext, DocumentInitialProps, Head, Html, Main, NextScript } from 'next/document'; +import 'node-fetch'; + +const decoratorEnv = (process.env.NEXT_PUBLIC_DEKORATOR_ENV ?? 'prod') as Exclude< + DecoratorEnvProps['env'], + 'localhost' +>; + +// The 'head'-field of the document initialProps contains data from (meta-tags etc) +const getDocumentParameter = (initialProps: DocumentInitialProps, name: string) => { + return initialProps.head?.find((element) => element?.props?.name === name)?.props?.content; +}; + +interface Props { + Decorator: DecoratorComponents; + language: string; +} + +class MyDocument extends Document { + static async getInitialProps(ctx: DocumentContext): Promise { + const initialProps = await Document.getInitialProps(ctx); + const Decorator = await fetchDecoratorReact({ + env: decoratorEnv, + params: { + simple: false, + chatbot: true, + feedback: true, + urlLookupTable: false, + context: 'privatperson', + }, + }); + + const language = getDocumentParameter(initialProps, 'lang'); + + return { ...initialProps, Decorator, language }; + } + + render(): JSX.Element { + const { Decorator, language } = this.props; + const showDecorator = true; + return ( + + {showDecorator && } + + {showDecorator && } +
    + {showDecorator && ( + <> + + + + )} + + + + ); + } +} + +export default MyDocument; diff --git a/apps/omsorgsdager-kalkulator/pages/api/health/isAlive.ts b/apps/omsorgsdager-kalkulator/pages/api/health/isAlive.ts new file mode 100644 index 0000000000..0ddc7857d0 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/pages/api/health/isAlive.ts @@ -0,0 +1,5 @@ +import { NextApiRequest, NextApiResponse } from 'next'; + +export default async function handler(req: NextApiRequest, res: NextApiResponse) { + res.status(200).json({}); +} diff --git a/apps/omsorgsdager-kalkulator/pages/api/health/isReady.ts b/apps/omsorgsdager-kalkulator/pages/api/health/isReady.ts new file mode 100644 index 0000000000..0ddc7857d0 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/pages/api/health/isReady.ts @@ -0,0 +1,5 @@ +import { NextApiRequest, NextApiResponse } from 'next'; + +export default async function handler(req: NextApiRequest, res: NextApiResponse) { + res.status(200).json({}); +} diff --git a/apps/omsorgsdager-kalkulator/pages/index.tsx b/apps/omsorgsdager-kalkulator/pages/index.tsx new file mode 100644 index 0000000000..cc765abfed --- /dev/null +++ b/apps/omsorgsdager-kalkulator/pages/index.tsx @@ -0,0 +1,25 @@ +import { Panel } from '@navikt/ds-react'; +import type { NextPage } from 'next'; +import Info from '../components/info/info'; +import Kalkulator from '../components/kalkulator/Kalkulator'; +import SectionPanel from '@/components/section-panel/SectionPanel'; +import { CalculatorIcon } from '@navikt/aksel-icons'; + +const Home: NextPage = () => { + return ( +
    + + + + } + illustrationPlacement="outside"> +
    + +
    +
    +
    + ); +}; + +export default Home; diff --git a/apps/omsorgsdager-kalkulator/playwright.config.ts b/apps/omsorgsdager-kalkulator/playwright.config.ts new file mode 100644 index 0000000000..a9e84b5813 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/playwright.config.ts @@ -0,0 +1,47 @@ +import { defineConfig, devices } from '@playwright/test'; + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// require('dotenv').config(); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: './e2e', + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'html', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + // baseURL: 'http://127.0.0.1:3000', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'yarn dev', + url: 'http://localhost:8080/omsorgspenger/kalkulator-antall-omsorgsdager', + reuseExistingServer: !process.env.CI, + }, +}); diff --git a/apps/omsorgsdager-kalkulator/postcss.config.js b/apps/omsorgsdager-kalkulator/postcss.config.js new file mode 100644 index 0000000000..67cdf1a55f --- /dev/null +++ b/apps/omsorgsdager-kalkulator/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/apps/omsorgsdager-kalkulator/public/favicon.ico b/apps/omsorgsdager-kalkulator/public/favicon.ico new file mode 100644 index 0000000000..718d6fea48 Binary files /dev/null and b/apps/omsorgsdager-kalkulator/public/favicon.ico differ diff --git a/apps/omsorgsdager-kalkulator/public/next.svg b/apps/omsorgsdager-kalkulator/public/next.svg new file mode 100644 index 0000000000..5174b28c56 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/omsorgsdager-kalkulator/public/vercel.svg b/apps/omsorgsdager-kalkulator/public/vercel.svg new file mode 100644 index 0000000000..d2f8422273 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/omsorgsdager-kalkulator/styles/ResultBox.scss b/apps/omsorgsdager-kalkulator/styles/ResultBox.scss new file mode 100644 index 0000000000..473abe1d0c --- /dev/null +++ b/apps/omsorgsdager-kalkulator/styles/ResultBox.scss @@ -0,0 +1,82 @@ +$OmsKalkResultBoxBorderGreen: #06893a; +$OmsKalkResultTopLineGreen: #cde7d8; + +$OmsKalkResultBoxBorderOrange: #d97b00; +$OmsKalkResultTopLineOrange: #ffdeb4; + +.OmsCalcResultBox { + &__result-wrapper-green { + border: 1px solid $OmsKalkResultBoxBorderGreen; + border-radius: 4px; + background-color: $OmsKalkResultTopLineGreen; + overflow: hidden; + } + &__result-wrapper-orange { + border: 1px solid $OmsKalkResultBoxBorderOrange; + border-radius: 4px; + background-color: $OmsKalkResultTopLineOrange; + overflow: hidden; + } + &__result-top-arrow-wrapper { + display: flex; + justify-content: center; + background-color: white; + margin-top: 11px; + } + &__result-top-arrow-green { + background: $OmsKalkResultTopLineGreen; + width: 40px; + height: 40px; + transform: rotate(45deg) translate(-20px, -20px); + } + &__result-top-arrow-orange { + background: $OmsKalkResultTopLineOrange; + width: 40px; + height: 40px; + transform: rotate(45deg) translate(-20px, -20px); + } + &__result-content { + background: white; + overflow: hidden; + padding-bottom: 1rem; + @media (max-width: 768px) { + flex-flow: column; + padding-right: 0; + } + } + &__result-child-wrapper { + display: flex; + margin-left: 1rem; + padding: 0rem 1rem 0.5rem 1rem; + + @media (max-width: 768px) { + margin-left: 0rem; + padding: 0rem 1rem 1rem 1rem; + } + } + &__result-content-wrapper { + padding-left: 0.5rem; + padding-right: 0.5rem; + @media (min-width: 768px) { + padding: 0rem 7rem 0rem 8rem; + margin-bottom: 1.5rem; + } + } + + &__result-utregning { + display: flex; + justify-content: space-between; + padding-left: 0.5rem; + padding-right: 0.5rem; + } + + &__result-utregning-beskrivelse { + @media (max-width: 430px) { + width: 8rem; + } + } + &__result-utregning-dager { + font-weight: 800; + align-self: flex-end; + } +} diff --git a/apps/omsorgsdager-kalkulator/styles/buttonRow.scss b/apps/omsorgsdager-kalkulator/styles/buttonRow.scss new file mode 100644 index 0000000000..e6811d7c74 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/styles/buttonRow.scss @@ -0,0 +1,47 @@ +$mobile-breakpoint: 576px; + +.buttonRow { + display: flex; + flex-wrap: wrap; + gap: 1rem; + flex-direction: row; + justify-content: center; + button { + min-width: 5rem; + } + &--left { + justify-content: left; + } + &--stretch { + display: flex; + justify-items: stretch; + .buttonRow__button { + flex: 1 1 0; + button { + width: 100%; + } + } + @media (max-width: $mobile-breakpoint) { + flex-direction: column; + gap: 0.5rem; + } + } + &--mobile-50-50 { + @media (max-width: $mobile-breakpoint) { + .buttonRow__button + .buttonRow__button { + padding: 0; + } + .buttonRow__button { + padding: 0; + width: 50%; + > .knapp { + height: 100%; + white-space: normal; + width: 100%; + padding-left: 1rem; + padding-right: 1rem; + } + } + } + } +} diff --git a/apps/omsorgsdager-kalkulator/styles/customExpCard.scss b/apps/omsorgsdager-kalkulator/styles/customExpCard.scss new file mode 100644 index 0000000000..7914c21172 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/styles/customExpCard.scss @@ -0,0 +1,5 @@ +.navds-expansioncard__content { + @media (max-width: 480px) { + padding: var(--a-spacing-3) var(--a-spacing-2) var(--a-spacing-6); + } +} diff --git a/apps/omsorgsdager-kalkulator/styles/globals.css b/apps/omsorgsdager-kalkulator/styles/globals.css new file mode 100644 index 0000000000..a27778f26c --- /dev/null +++ b/apps/omsorgsdager-kalkulator/styles/globals.css @@ -0,0 +1,28 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +html, +body { + padding: 0; + margin: 0; +} + +a { + color: inherit; + text-decoration: none; +} + +* { + box-sizing: border-box; +} +.subtle-card { + --ac-expansioncard-bg: var(--a-green-100); + --ac-expansioncard-border-open-color: var(--a-green-100); + --ac-expansioncard-border-color: var(--a-green-100); + --ac-expansioncard-border-hover-color: var(--a-green-100); +} + +.customBox { + --__ac-box-background: var(--a-green-100); +} diff --git a/apps/omsorgsdager-kalkulator/tailwind.config.js b/apps/omsorgsdager-kalkulator/tailwind.config.js new file mode 100644 index 0000000000..5cf1f81c6a --- /dev/null +++ b/apps/omsorgsdager-kalkulator/tailwind.config.js @@ -0,0 +1,12 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['./pages/**/*.{js,ts,jsx,tsx}', './components/**/*.{js,ts,jsx,tsx}'], + theme: { + extend: {}, + minHeight: { + container: '80vh', + }, + }, + plugins: [], + presets: [require('@navikt/ds-tailwind')], +}; diff --git a/apps/omsorgsdager-kalkulator/translations/nb.json b/apps/omsorgsdager-kalkulator/translations/nb.json new file mode 100644 index 0000000000..659d8e650e --- /dev/null +++ b/apps/omsorgsdager-kalkulator/translations/nb.json @@ -0,0 +1,81 @@ +{ + "banner": { + "title": "Kalkulator for omsorgsdager", + "description": "Finn ut hvor mange omsorgsdager du kan ha rett til", + "updated": "Oppdatert {dato}" + }, + + "info": { + "title": "Her kan du se hvor mange omsorgsdager du kan ha rett til.", + "avsnitt1": "Kalkulatoren regner ut hvor mange omsorgsdager du har rett til for barn som bor fast hos deg. Hvis dere som foreldre ikke bor sammen, men har avtale om delt fast bosted, har barnet fast bosted hos begge foreldre.", + "readMore.tittel": "Er du samværsforelder?", + "readMore.avsnitt1": "Kalkulatoren beregner kun omsorgsdager for den forelderen som bor fast med barnet.", + "readMore.avsnitt2": "Hvis du har fått omsorgsdager av forelderen som bor med barnet, vil du ha rett til disse dagene selv om de ikke vises i kalkulatoren.", + "avsnitt2": "Kalkulatoren beregner hvor mange omsorgsdager du har ut fra svarene du oppgir. Det betyr at riktig resultat er avhengig av at du gir riktige opplysninger. Kalkulatoren er ment som et hjelpeverktøy for deg, det er ikke et vedtak eller en bekreftelse fra NAV.", + "avsnitt3": "Du må svare på alle spørsmålene nedenfor for å få et resultat." + }, + + "kalkulator": { + "antallBarn": "Hvor mange egne barn bor med deg?", + "antallBarn.readMore.title": "Hva betyr egne barn?", + "antallBarn.readMore": "Med egne barn mener vi biologiske barn, adoptivbarn og fosterbarn." + }, + + "barn": { + "tittel": "Opplysninger om {antall, plural, one {barnet} other {barna}}", + "panel.tittel": "Barn {barnNumber}", + "årFødt": "Hvilket årstall er barnet født?", + "årFødt.readMore.title": "Hvorfor spør vi om det?", + "årFødt.readMore.avsnitt1": "Omsorgsdager gjelder i utgangspunktet ut kalenderåret barnet er 12 år.", + "årFødt.readMore.avsnitt2": "Hvis du har fått vedtak om ekstra omsorgsdager fordi barnet har en kronisk/langvarig sykdom eller funksjonshemning, kan du bruke omsorgsdager ut kalenderåret barnet fyller 18 år.", + "årFødt.alert": "Du har ikke rett på omsorgsdager for barn som er 19 år eller eldre. Omsorgsdager gjelder i utgangspunktet ut kalenderåret barnet er 12 år. I noen tilfeller kan du få omsorgsdager ut kalenderåret barnet er 18 år.", + + "kroniskSykt": "Har du fått ekstra omsorgsdager fordi barnet har en sykdom eller funksjonshemning som gjør at du oftere må være borte fra jobb?", + "kroniskSykt.readMore.title": "Hva betyr dette?", + "kroniskSykt.readMore.avsnitt1": "Hvis barnet har en kronisk/langvarig sykdom eller funksjonshemning som gir høyere risiko for at du må være borte fra jobb, kan du ha rett til ekstra omsorgsdager. Du skal svare ja hvis du har søkt og fått innvilget ekstra omsorgsdager fra NAV. ", + "kroniskSykt.readMore.avsnitt2": "Du finner informasjon og søknad på ", + "kroniskSykt.readMore.avsnitt2.lenke": "nav.no/omsorgspenger#situasjon.", + "kroniskSykt.alert": "For å få omsorgsdager for barn som er 13 år eller eldre, må du ha søkt og fått innvilget ekstra omsorgsdager fra NAV fordi barnet har en kronisk sykdom eller en funksjonshemning.", + + "borSammen": "Bor barnet fast hos deg?", + "borSammen.readMore.title": "Hva betyr dette?", + "borSammen.readMore": "Du skal svare ja på dette spørsmålet hvis barnet bor fast hos deg, eller hvis du har avtale om delt fast bosted med den andre forelderen.", + "borSammen.alert": "For å ha rett på omsorgsdager for dette barnet, må barnet bo fast hos deg.", + + "aleneOmOmsorgen": "Har du fått vedtak om ekstra omsorgsdager fordi du er alene om omsorgen for barnet?", + "aleneOmOmsorgen.readMore.title": "Hva betyr det å være alene om omsorgen?", + "aleneOmOmsorgen.readMore.avsnitt.1": "Du er alene om omsorgen hvis barnet bor fast hos deg, og du ikke bor sammen med den andre forelderen. Hvis du og den andre forelderen har en avtale om delt fast bosted, er du ikke alene om omsorgen for barnet.", + "aleneOmOmsorgen.readMore.avsnitt.2": "Du kan også regnes som alene om omsorgen hvis den andre forelderen ikke kan ha tilsyn med barnet i minst 6 måneder, for eksempel på grunn av egen sykdom eller fengselsopphold.", + "aleneOmOmsorgen.readMore.avsnitt.3": "Du kan svare ja på dette spørsmålet hvis du har søkt og fått godkjent ekstra omsorgsdager fra NAV.", + "aleneOmOmsorgen.readMore.avsnitt.4": "Du finner informasjon og søknad på ", + "aleneOmOmsorgen.readMore.avsnitt.4.lenke": "nav.no/omsorgspenger#situasjon" + }, + "resultat-area": { + "title": "Resultat", + "orange.3": "Opplysningene du har gitt om din situasjon gir ikke rett til omsorgsdager.", + + "green.1": "Ut fra opplysningene dine, har du rett til:", + "green.expansionCard.title": "Slik er det regnet ut", + "green.grunnrett.title": "Grunnrett", + "green.grunnrett": "Grunnrett for {antallBarn} barn", + "green.aleneomsorg": "Ekstra pga. aleneomsorg", + "green.barnKroniskSyk.title": "Barn med langvarig sykdom", + "green.barnKroniskSyk": "Barn {navn} med langvarig sykdom", + "green.2.1.a": "{result} omsorgsdager", + "green.2.1.b": "i {year}", + "green.dager": "{antallDager} dager", + "green.dager.totalt": "= {antallDager} dager", + "green.totalt": "Totalt antall omsorgsdager", + "green.3.1": "Du må selv trekke fra dager som du allerede har brukt eller delt med en annen omsorgsperson.", + + "tilbake-til-omsorgspenger": "Tilbake til informasjonssiden for omsorgspenger" + }, + + "validation": { + "antallBarn.noValue": "Du må velge hvor mange barn som bor hos deg.", + "barn.årFødt.noValue": "Du må svare på hvilket årstall {barnName} er født.", + "barn.kroniskSykt.yesOrNoIsUnanswered": "Du må svare på om du har fått ekstra omsorgsdager fordi {barnName} har en sykdom eller funksjonshemning som gjør at du oftere må være borte fra jobb.", + "barn.borSammen.yesOrNoIsUnanswered": "Du må svare på om {barnName} bor fast hos deg.", + "barn.aleneOmOmsorgen.yesOrNoIsUnanswered": "Du må svare på om du har vedtak om ekstra omsorgsdager på grunn av aleneomsorg for {barnName}." + } +} diff --git a/apps/omsorgsdager-kalkulator/tsconfig.json b/apps/omsorgsdager-kalkulator/tsconfig.json new file mode 100644 index 0000000000..670224f3e9 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} diff --git a/apps/omsorgsdager-kalkulator/utils/bemUtils.ts b/apps/omsorgsdager-kalkulator/utils/bemUtils.ts new file mode 100644 index 0000000000..3fedb69da0 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/utils/bemUtils.ts @@ -0,0 +1,13 @@ +import classNames from 'classnames'; + +const bemUtils = (cls: string) => ({ + block: cls, + element: (e?: string, m?: string) => `${cls}__${e}${m ? ` ${cls}__${e}--${m}` : ''}`, + modifier: (m?: string) => `${cls}--${m}`, + modifierConditional: (m: string | undefined, condition: boolean | undefined) => + condition === true && m !== undefined ? `${cls}--${m}` : undefined, + child: (c: string) => bemUtils(bemUtils(cls).element(c)), + classNames, +}); + +export default bemUtils; diff --git a/apps/omsorgsdager-kalkulator/utils/intlHelper.ts b/apps/omsorgsdager-kalkulator/utils/intlHelper.ts new file mode 100644 index 0000000000..dce02d4bc2 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/utils/intlHelper.ts @@ -0,0 +1,7 @@ +import { IntlShape } from 'react-intl'; + +export const intlHelper = ( + intl: IntlShape, + id: string, + value?: Record, +): string => intl.formatMessage({ id }, value); diff --git a/apps/omsorgsdager-kalkulator/utils/lenker.ts b/apps/omsorgsdager-kalkulator/utils/lenker.ts new file mode 100644 index 0000000000..e12df6731e --- /dev/null +++ b/apps/omsorgsdager-kalkulator/utils/lenker.ts @@ -0,0 +1,5 @@ +export const lenker = { + omsorgspengerNavno: 'https://www.nav.no/omsorgspenger#hvor-mange', + fastBosted: 'https://www.regjeringen.no/no/tema/familie-og-barn/innsiktsartikler/bosted-og-samvar/samvar/id749587/', + omsorgspengerEkstraDager: 'https://www.nav.no/omsorgspenger#situasjon', +}; diff --git a/apps/omsorgsdager-kalkulator/utils/message.ts b/apps/omsorgsdager-kalkulator/utils/message.ts new file mode 100644 index 0000000000..57ec2729f2 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/utils/message.ts @@ -0,0 +1,30 @@ +import { DecoratorLocale } from '@navikt/nav-dekoratoren-moduler'; + +import messagesNb from '../translations/nb.json'; + +export type Messages = { + [K in DecoratorLocale]?: { [name: string]: string }; +}; + +export function flattenMessages(nestedMessages: object, prefix = '') { + return Object.keys(nestedMessages).reduce((messages, key) => { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + const value = nestedMessages[key]; + const prefixedKey = prefix ? `${prefix}.${key}` : key; + + if (typeof value === 'string') { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + messages[prefixedKey] = value; + } else { + Object.assign(messages, flattenMessages(value, prefixedKey)); + } + + return messages; + }, {}); +} + +export const messages: Messages = { + nb: flattenMessages(messagesNb), +}; diff --git a/apps/omsorgsdager-kalkulator/utils/utils.ts b/apps/omsorgsdager-kalkulator/utils/utils.ts new file mode 100644 index 0000000000..5be5171ba9 --- /dev/null +++ b/apps/omsorgsdager-kalkulator/utils/utils.ts @@ -0,0 +1,48 @@ +import Barn, { AlderType } from '../components/beregningsmodul/types/Barn'; +import Omsorgsprinsipper from '../components/beregningsmodul/types/Omsorgsprinsipper'; +import { YesOrNo } from '../components/sif-formik/types'; +import { BarnKalkulator } from '../components/kalkulator/Kalkulator'; +import dayjs from 'dayjs'; + +export const getYear = (): number => dayjs().year(); + +export const erForbiDetTolvteKalenderår = (årFødt: number): boolean => getYear() - årFødt > 12; + +export const erForbiDetAttendeKalenderår = (årFødt: number): boolean => getYear() - årFødt > 18; + +export const barnetErForbiDetTolvteKalenderårOgIkkeKroniskSykt = (barn: BarnKalkulator): boolean => + erForbiDetTolvteKalenderår(barn.årFødt) && barn.kroniskSykt !== undefined && barn.kroniskSykt === YesOrNo.NO; + +export const årFødtToAlderType = (årFødt: number): AlderType => + erForbiDetTolvteKalenderår(årFødt) ? AlderType.OVER12 : AlderType.UNDER12; + +export const borIkkeSammen = (barn: BarnKalkulator): boolean => + barn.borSammen !== undefined && barn.borSammen === YesOrNo.NO; + +export const excludeChild = (barn: BarnKalkulator): boolean => + erForbiDetAttendeKalenderår(barn.årFødt) || + barnetErForbiDetTolvteKalenderårOgIkkeKroniskSykt(barn) || + borIkkeSammen(barn); + +export const includeChild = (barn: BarnKalkulator): boolean => !excludeChild(barn); + +export const summerAntallOmsorgsdager = (result: Omsorgsprinsipper): number => { + const { grunnrett, kroniskSyktSumm, aleneomsorg, aleneomsorgKroniskSykeSumm } = result; + return grunnrett + kroniskSyktSumm + aleneomsorg + aleneomsorgKroniskSykeSumm; +}; + +export const mapBarnKalkulatorToBarn = (barn: BarnKalkulator[]): Barn[] => { + const barnToBeregn: Barn[] = []; + const filtrertBarn = barn.filter(includeChild); + filtrertBarn.map((b) => + barnToBeregn.push({ + id: b.id, + navn: b.index, + alder: årFødtToAlderType(b.årFødt), + søkerHarAleneomsorgFor: b.aleneOmOmsorgen === YesOrNo.YES, + kroniskSykt: b.kroniskSykt === YesOrNo.YES, + }), + ); + + return barnToBeregn; +}; diff --git a/apps/omsorgspengerutbetaling-soknad/CHANGELOG.md b/apps/omsorgspengerutbetaling-soknad/CHANGELOG.md index eaa24382c8..db7a6f51f4 100644 --- a/apps/omsorgspengerutbetaling-soknad/CHANGELOG.md +++ b/apps/omsorgspengerutbetaling-soknad/CHANGELOG.md @@ -1,275 +1,444 @@ # @navikt/omsorgspengerutbetaling-soknad +## 1.8.2 + +### Patch Changes + +- Patch oppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.24.5 + - @navikt/sif-common-formik-ds@1.6.2 + - @navikt/sif-common-soknad-ds@10.12.2 + - @navikt/sif-common-forms-ds@8.16.2 + - @navikt/sif-common-core-ds@9.12.2 + - @navikt/sif-common-hooks@0.1.3 + - @navikt/sif-common-utils@3.43.5 + +## 1.8.1 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker +- Updated dependencies [e7bf8d1] + - @navikt/sif-common-amplitude@2.24.4 + - @navikt/sif-common-formik-ds@1.6.1 + - @navikt/sif-common-soknad-ds@10.12.1 + - @navikt/sif-common-forms-ds@8.16.1 + - @navikt/sif-common-core-ds@9.12.1 + - @navikt/sif-common-sentry@0.25.4 + - @navikt/sif-common-utils@3.43.4 + +## 1.8.0 + +### Minor Changes + +- 573c55d: Diverse oppdateringer i forbindelse med uu-gjennomgang. + +### Patch Changes + +- Updated dependencies [573c55d] + - @navikt/sif-common-formik-ds@1.6.0 + - @navikt/sif-common-soknad-ds@10.12.0 + - @navikt/sif-common-forms-ds@8.16.0 + - @navikt/sif-common-core-ds@9.12.0 + +## 1.7.1 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer +- Updated dependencies [406b044] + - @navikt/sif-common-amplitude@2.24.3 + - @navikt/sif-common-formik-ds@1.5.3 + - @navikt/sif-common-soknad-ds@10.11.1 + - @navikt/sif-common-forms-ds@8.15.1 + - @navikt/sif-common-core-ds@9.11.3 + - @navikt/sif-common-sentry@0.25.3 + - @navikt/sif-common-utils@3.43.3 + +## 1.7.0 + +### Minor Changes + +- 2331115: Oppdatert react-router-dom. Endringer i ettersending og pleiepenger på grunn av feil bruk av navigate i ny versjon. + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [2331115] +- Updated dependencies [6084e23] + - @navikt/sif-common-soknad-ds@10.11.0 + - @navikt/sif-common-forms-ds@8.15.0 + - @navikt/sif-app-register@0.0.4 + - @navikt/sif-common-amplitude@2.24.2 + - @navikt/sif-common-core-ds@9.11.2 + - @navikt/sif-common-formik-ds@1.5.2 + - @navikt/sif-common-hooks@0.1.2 + - @navikt/sif-common-sentry@0.25.2 + - @navikt/sif-common-utils@3.43.2 + +## 1.6.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [295d3ad] + - @navikt/sif-app-register@0.0.3 + - @navikt/sif-common-amplitude@2.24.1 + - @navikt/sif-common-core-ds@9.11.1 + - @navikt/sif-common-formik-ds@1.5.1 + - @navikt/sif-common-forms-ds@8.14.1 + - @navikt/sif-common-hooks@0.1.1 + - @navikt/sif-common-sentry@0.25.1 + - @navikt/sif-common-soknad-ds@10.10.1 + - @navikt/sif-common-utils@3.43.1 + +## 1.6.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +### Patch Changes + +- Updated dependencies [53b47be] + - @navikt/sif-common-amplitude@2.24.0 + - @navikt/sif-common-formik-ds@1.5.0 + - @navikt/sif-common-soknad-ds@10.10.0 + - @navikt/sif-common-forms-ds@8.14.0 + - @navikt/sif-common-core-ds@9.11.0 + - @navikt/sif-common-sentry@0.25.0 + - @navikt/sif-common-utils@3.43.0 + +## 1.5.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +### Patch Changes + +- Updated dependencies + - @navikt/sif-common-amplitude@2.23.0 + - @navikt/sif-common-formik-ds@1.4.0 + - @navikt/sif-common-soknad-ds@10.9.0 + - @navikt/sif-common-forms-ds@8.13.0 + - @navikt/sif-common-core-ds@9.10.0 + - @navikt/sif-common-sentry@0.24.0 + - @navikt/sif-common-hooks@0.1.0 + - @navikt/sif-common-utils@3.42.0 + +## 1.4.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + +### Patch Changes + +- Updated dependencies [d31f28ec] + - @navikt/sif-common-amplitude@2.22.0 + - @navikt/sif-common-formik-ds@1.3.0 + - @navikt/sif-common-soknad-ds@10.8.0 + - @navikt/sif-common-forms-ds@8.12.0 + - @navikt/sif-common-core-ds@9.9.0 + - @navikt/sif-common-sentry@0.23.0 + - @navikt/sif-common-utils@3.41.0 + +## 1.3.21 + +### Patch Changes + +- 6d3b3cbe: Minor og patch oppdateringer + nextjs major -> 14 +- Updated dependencies [6d3b3cbe] + - @navikt/sif-common-formik-ds@1.2.3 + - @navikt/sif-common-soknad-ds@10.7.11 + - @navikt/sif-common-forms-ds@8.11.4 + - @navikt/sif-common-core-ds@9.8.11 + - @navikt/sif-common-sentry@0.22.7 + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-utils@3.40.11 + +## 1.3.20 + +### Patch Changes + +- Updated dependencies [19c424d7] + - @navikt/sif-app-register@0.0.2 + ## 1.3.19 ### Patch Changes -- 09ae5814: Patch-oppdateringer -- Updated dependencies [09ae5814] - - @navikt/sif-common-formik-ds@1.2.2 - - @navikt/sif-common-soknad-ds@10.7.10 - - @navikt/sif-common-forms-ds@8.11.3 - - @navikt/sif-common-core-ds@9.8.10 - - @navikt/sif-common-utils@3.40.11 +- 09ae5814: Patch-oppdateringer +- Updated dependencies [09ae5814] + - @navikt/sif-common-formik-ds@1.2.2 + - @navikt/sif-common-soknad-ds@10.7.10 + - @navikt/sif-common-forms-ds@8.11.3 + - @navikt/sif-common-core-ds@9.8.10 + - @navikt/sif-common-utils@3.40.11 ## 1.3.18 ### Patch Changes -- b4d45cf9: Diverse mindre pakkeoppdateringer -- Updated dependencies [b4d45cf9] - - @navikt/sif-common-amplitude@2.21.9 - - @navikt/sif-common-formik-ds@1.2.1 - - @navikt/sif-common-soknad-ds@10.7.9 - - @navikt/sif-common-forms-ds@8.11.2 - - @navikt/sif-common-core-ds@9.8.9 - - @navikt/sif-common-sentry@0.22.6 - - @navikt/sif-common-utils@3.40.10 +- b4d45cf9: Diverse mindre pakkeoppdateringer +- Updated dependencies [b4d45cf9] + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-formik-ds@1.2.1 + - @navikt/sif-common-soknad-ds@10.7.9 + - @navikt/sif-common-forms-ds@8.11.2 + - @navikt/sif-common-core-ds@9.8.9 + - @navikt/sif-common-sentry@0.22.6 + - @navikt/sif-common-utils@3.40.10 ## 1.3.17 ### Patch Changes -- Updated dependencies [e815a9a8] - - @navikt/sif-common-formik-ds@1.2.0 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-forms-ds@8.11.1 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [e815a9a8] + - @navikt/sif-common-formik-ds@1.2.0 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-forms-ds@8.11.1 + - @navikt/sif-common-soknad-ds@10.7.8 ## 1.3.16 ### Patch Changes -- Updated dependencies [66c8522a] - - @navikt/sif-common-forms-ds@8.11.1 +- Updated dependencies [66c8522a] + - @navikt/sif-common-forms-ds@8.11.1 ## 1.3.15 ### Patch Changes -- Updated dependencies [ce769b8e] -- Updated dependencies [afe04538] - - @navikt/sif-common-forms-ds@8.11.0 - - @navikt/sif-common-formik-ds@1.1.6 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [ce769b8e] +- Updated dependencies [afe04538] + - @navikt/sif-common-forms-ds@8.11.0 + - @navikt/sif-common-formik-ds@1.1.6 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-soknad-ds@10.7.8 ## 1.3.14 ### Patch Changes -- Updated dependencies [1d7c508f] - - @navikt/sif-common-formik-ds@1.1.5 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-forms-ds@8.10.0 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [1d7c508f] + - @navikt/sif-common-formik-ds@1.1.5 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-forms-ds@8.10.0 + - @navikt/sif-common-soknad-ds@10.7.8 ## 1.3.13 ### Patch Changes -- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 -- 085ea0a1: Legge til manglende env variable USE_AMPLITUDE -- Updated dependencies [5c44f78b] -- Updated dependencies [5c44f78b] -- Updated dependencies [cb7e6653] - - @navikt/sif-common-forms-ds@8.10.0 - - @navikt/sif-common-formik-ds@1.1.4 - - @navikt/sif-common-amplitude@2.21.8 - - @navikt/sif-common-soknad-ds@10.7.8 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-utils@3.40.9 +- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 +- 085ea0a1: Legge til manglende env variable USE_AMPLITUDE +- Updated dependencies [5c44f78b] +- Updated dependencies [5c44f78b] +- Updated dependencies [cb7e6653] + - @navikt/sif-common-forms-ds@8.10.0 + - @navikt/sif-common-formik-ds@1.1.4 + - @navikt/sif-common-amplitude@2.21.8 + - @navikt/sif-common-soknad-ds@10.7.8 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-utils@3.40.9 ## 1.3.12 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.7 - - @navikt/sif-common-formik-ds@1.1.3 - - @navikt/sif-common-soknad-ds@10.7.7 - - @navikt/sif-common-forms-ds@8.9.7 - - @navikt/sif-common-core-ds@9.8.7 - - @navikt/sif-common-sentry@0.22.5 - - @navikt/sif-common-utils@3.40.8 +- Pakkeoppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.7 + - @navikt/sif-common-formik-ds@1.1.3 + - @navikt/sif-common-soknad-ds@10.7.7 + - @navikt/sif-common-forms-ds@8.9.7 + - @navikt/sif-common-core-ds@9.8.7 + - @navikt/sif-common-sentry@0.22.5 + - @navikt/sif-common-utils@3.40.8 ## 1.3.11 ### Patch Changes -- Pakkeoppdatering som fikser datepicker + modal bug -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.6 - - @navikt/sif-common-formik-ds@1.1.2 - - @navikt/sif-common-soknad-ds@10.7.6 - - @navikt/sif-common-forms-ds@8.9.6 - - @navikt/sif-common-core-ds@9.8.6 - - @navikt/sif-common-utils@3.40.7 +- Pakkeoppdatering som fikser datepicker + modal bug +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.6 + - @navikt/sif-common-formik-ds@1.1.2 + - @navikt/sif-common-soknad-ds@10.7.6 + - @navikt/sif-common-forms-ds@8.9.6 + - @navikt/sif-common-core-ds@9.8.6 + - @navikt/sif-common-utils@3.40.7 ## 1.3.10 ### Patch Changes -- 71381778: Patch pakkeoppdateringer -- Updated dependencies [71381778] - - @navikt/sif-common-amplitude@2.21.5 - - @navikt/sif-common-formik-ds@1.1.1 - - @navikt/sif-common-soknad-ds@10.7.5 - - @navikt/sif-common-forms-ds@8.9.5 - - @navikt/sif-common-core-ds@9.8.5 - - @navikt/sif-common-sentry@0.22.4 - - @navikt/sif-common-utils@3.40.6 +- 71381778: Patch pakkeoppdateringer +- Updated dependencies [71381778] + - @navikt/sif-common-amplitude@2.21.5 + - @navikt/sif-common-formik-ds@1.1.1 + - @navikt/sif-common-soknad-ds@10.7.5 + - @navikt/sif-common-forms-ds@8.9.5 + - @navikt/sif-common-core-ds@9.8.5 + - @navikt/sif-common-sentry@0.22.4 + - @navikt/sif-common-utils@3.40.6 ## 1.3.9 ### Patch Changes -- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds -- Updated dependencies [60eb7ee9] - - @navikt/sif-common-formik-ds@1.1.0 - - @navikt/sif-common-amplitude@2.21.4 - - @navikt/sif-common-soknad-ds@10.7.4 - - @navikt/sif-common-forms-ds@8.9.4 - - @navikt/sif-common-core-ds@9.8.4 - - @navikt/sif-common-sentry@0.22.3 - - @navikt/sif-common-utils@3.40.5 +- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds +- Updated dependencies [60eb7ee9] + - @navikt/sif-common-formik-ds@1.1.0 + - @navikt/sif-common-amplitude@2.21.4 + - @navikt/sif-common-soknad-ds@10.7.4 + - @navikt/sif-common-forms-ds@8.9.4 + - @navikt/sif-common-core-ds@9.8.4 + - @navikt/sif-common-sentry@0.22.3 + - @navikt/sif-common-utils@3.40.5 ## 1.3.8 ### Patch Changes -- 2a1e2526: Pakkeoppdateringer -- Updated dependencies [2a1e2526] - - @navikt/sif-common-amplitude@2.21.3 - - @navikt/sif-common-formik-ds@1.0.5 - - @navikt/sif-common-soknad-ds@10.7.3 - - @navikt/sif-common-forms-ds@8.9.3 - - @navikt/sif-common-core-ds@9.8.3 - - @navikt/sif-common-sentry@0.22.2 - - @navikt/sif-common-utils@3.40.4 +- 2a1e2526: Pakkeoppdateringer +- Updated dependencies [2a1e2526] + - @navikt/sif-common-amplitude@2.21.3 + - @navikt/sif-common-formik-ds@1.0.5 + - @navikt/sif-common-soknad-ds@10.7.3 + - @navikt/sif-common-forms-ds@8.9.3 + - @navikt/sif-common-core-ds@9.8.3 + - @navikt/sif-common-sentry@0.22.2 + - @navikt/sif-common-utils@3.40.4 ## 1.3.7 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.2 - - @navikt/sif-common-formik-ds@1.0.4 - - @navikt/sif-common-soknad-ds@10.7.2 - - @navikt/sif-common-forms-ds@8.9.2 - - @navikt/sif-common-core-ds@9.8.2 - - @navikt/sif-common-utils@3.40.3 +- Pakkeoppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.2 + - @navikt/sif-common-formik-ds@1.0.4 + - @navikt/sif-common-soknad-ds@10.7.2 + - @navikt/sif-common-forms-ds@8.9.2 + - @navikt/sif-common-core-ds@9.8.2 + - @navikt/sif-common-utils@3.40.3 ## 1.3.6 ### Patch Changes -- 81e7e155: Bruke BodyLong i alle SifGuidePanel -- Updated dependencies [81e7e155] - - @navikt/sif-common-formik-ds@1.0.3 - - @navikt/sif-common-forms-ds@8.9.1 - - @navikt/sif-common-core-ds@9.8.1 - - @navikt/sif-common-utils@3.40.2 - - @navikt/sif-common-soknad-ds@10.7.1 +- 81e7e155: Bruke BodyLong i alle SifGuidePanel +- Updated dependencies [81e7e155] + - @navikt/sif-common-formik-ds@1.0.3 + - @navikt/sif-common-forms-ds@8.9.1 + - @navikt/sif-common-core-ds@9.8.1 + - @navikt/sif-common-utils@3.40.2 + - @navikt/sif-common-soknad-ds@10.7.1 ## 1.3.5 ### Patch Changes -- Updated dependencies [c129755f] - - @navikt/sif-common-formik-ds@1.0.2 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-forms-ds@8.9.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [c129755f] + - @navikt/sif-common-formik-ds@1.0.2 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-forms-ds@8.9.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 1.3.4 ### Patch Changes -- Updated dependencies [92fbd8f8] - - @navikt/sif-common-formik-ds@1.0.1 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-forms-ds@8.9.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [92fbd8f8] + - @navikt/sif-common-formik-ds@1.0.1 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-forms-ds@8.9.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 1.3.3 ### Patch Changes -- Updated dependencies [d12fcbb5] - - @navikt/sif-common-forms-ds@8.9.0 +- Updated dependencies [d12fcbb5] + - @navikt/sif-common-forms-ds@8.9.0 ## 1.3.2 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies [55e1f323] -- Updated dependencies - - @navikt/sif-common-core-ds@9.7.0 - - @navikt/sif-common-amplitude@2.21.1 - - @navikt/sif-common-formik-ds@0.6.1 - - @navikt/sif-common-soknad-ds@10.7.1 - - @navikt/sif-common-forms-ds@8.8.1 - - @navikt/sif-common-sentry@0.22.1 - - @navikt/sif-common-utils@3.40.1 +- Pakkeoppdateringer +- Updated dependencies [55e1f323] +- Updated dependencies + - @navikt/sif-common-core-ds@9.7.0 + - @navikt/sif-common-amplitude@2.21.1 + - @navikt/sif-common-formik-ds@0.6.1 + - @navikt/sif-common-soknad-ds@10.7.1 + - @navikt/sif-common-forms-ds@8.8.1 + - @navikt/sif-common-sentry@0.22.1 + - @navikt/sif-common-utils@3.40.1 ## 1.3.1 ### Patch Changes -- 5f655843: Ersatte ordet funksjonshemming med funksjonshemning -- Updated dependencies [ad5092d1] - - @navikt/sif-common-soknad-ds@10.5.0 +- 5f655843: Ersatte ordet funksjonshemming med funksjonshemning +- Updated dependencies [ad5092d1] + - @navikt/sif-common-soknad-ds@10.5.0 ## 1.3.0 ### Minor Changes -- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer +- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer ### Patch Changes -- Updated dependencies [c976be57] - - @navikt/sif-common-amplitude@2.20.0 - - @navikt/sif-common-formik-ds@0.4.0 - - @navikt/sif-common-soknad-ds@10.4.0 - - @navikt/sif-common-forms-ds@8.6.0 - - @navikt/sif-common-core-ds@9.4.0 - - @navikt/sif-common-sentry@0.21.0 - - @navikt/sif-common-utils@3.39.0 +- Updated dependencies [c976be57] + - @navikt/sif-common-amplitude@2.20.0 + - @navikt/sif-common-formik-ds@0.4.0 + - @navikt/sif-common-soknad-ds@10.4.0 + - @navikt/sif-common-forms-ds@8.6.0 + - @navikt/sif-common-core-ds@9.4.0 + - @navikt/sif-common-sentry@0.21.0 + - @navikt/sif-common-utils@3.39.0 ## 1.2.0 ### Minor Changes -- 026fc373: Oppdatere til versjon 5 av designsystemet aksel +- 026fc373: Oppdatere til versjon 5 av designsystemet aksel ### Patch Changes -- Updated dependencies [41d0a03c] -- Updated dependencies [026fc373] - - @navikt/sif-common-formik-ds@0.3.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-forms-ds@8.5.0 - - @navikt/sif-common-core-ds@9.3.0 +- Updated dependencies [41d0a03c] +- Updated dependencies [026fc373] + - @navikt/sif-common-formik-ds@0.3.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-forms-ds@8.5.0 + - @navikt/sif-common-core-ds@9.3.0 ## 1.1.0 ### Minor Changes -- 1ebdcb58: Pakkeoppdateringer -- Pakkeoppdateringer +- 1ebdcb58: Pakkeoppdateringer +- Pakkeoppdateringer ### Patch Changes -- Updated dependencies - - @navikt/sif-common-amplitude@2.19.0 - - @navikt/sif-common-formik-ds@0.24.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-forms-ds@8.5.0 - - @navikt/sif-common-core-ds@9.3.0 - - @navikt/sif-common-sentry@0.20.0 - - @navikt/sif-common-utils@3.38.0 +- Updated dependencies + - @navikt/sif-common-amplitude@2.19.0 + - @navikt/sif-common-formik-ds@0.24.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-forms-ds@8.5.0 + - @navikt/sif-common-core-ds@9.3.0 + - @navikt/sif-common-sentry@0.20.0 + - @navikt/sif-common-utils@3.38.0 diff --git a/apps/omsorgspengerutbetaling-soknad/Dockerfile b/apps/omsorgspengerutbetaling-soknad/Dockerfile index 426a8dde62..4526f1b848 100644 --- a/apps/omsorgspengerutbetaling-soknad/Dockerfile +++ b/apps/omsorgspengerutbetaling-soknad/Dockerfile @@ -14,7 +14,7 @@ COPY . . RUN yarn RUN yarn turbo run build-app --filter=${SCOPE} -FROM pruner AS server +FROM gcr.io/distroless/nodejs18-debian11:nonroot WORKDIR /apps/omsorgspengerutbetaling-soknad COPY --from=pruner /app/node_modules ./node_modules/ COPY --from=pruner /app/apps/omsorgspengerutbetaling-soknad/server.cjs . @@ -25,4 +25,4 @@ COPY --from=pruner /app/apps/omsorgspengerutbetaling-soknad/src/build/AppSetting COPY --from=pruner /app/apps/omsorgspengerutbetaling-soknad/dist ./dist EXPOSE 8080 -CMD ["yarn","--cwd", "apps/omsorgspengerutbetaling-soknad", "start-express"] +CMD ["server.cjs"] diff --git a/apps/omsorgspengerutbetaling-soknad/README.md b/apps/omsorgspengerutbetaling-soknad/README.md index 664f35f307..ada632fd54 100644 --- a/apps/omsorgspengerutbetaling-soknad/README.md +++ b/apps/omsorgspengerutbetaling-soknad/README.md @@ -8,7 +8,7 @@ søknad om utbetaling av omsorgsdager for selvstendige og frilansere. For å kjøre opp app'en i dev: 1. `yarn dev-api` i en terminal. -2. `yarn snd` i en annen terminal. +2. `yarn dev` i en annen terminal. For å kjøre enhetstester: diff --git a/apps/omsorgspengerutbetaling-soknad/e2e/playwright/utils/utfyllingUtils.ts b/apps/omsorgspengerutbetaling-soknad/e2e/playwright/utils/utfyllingUtils.ts index 32aee23750..a71953ce22 100644 --- a/apps/omsorgspengerutbetaling-soknad/e2e/playwright/utils/utfyllingUtils.ts +++ b/apps/omsorgspengerutbetaling-soknad/e2e/playwright/utils/utfyllingUtils.ts @@ -89,12 +89,9 @@ const fyllUtFraværSteg = async (page: Page) => { const lastOppLegeerklæring = async (page: Page) => { await page.getByRole('heading', { name: 'Last opp legeerklæring' }); - await page.getByRole('button', { name: 'Last opp legeerklæringen' }).click(); - await page - .getByLabel('OpplastingsikonLast opp legeerklæringen') - .setInputFiles('./e2e/playwright/files/navlogopng.png'); - const list = await page.getByTestId('legeerklæring-liste'); - expect(list.locator('.attachmentListElement')).toHaveCount(1); + await page.locator('input[name="vedlegg"]').setInputFiles('./e2e/playwright/files/navlogopng.png'); + const listItems = await page.locator('.attachmentListElement'); + await expect(listItems).toHaveCount(1); await page.getByTestId('typedFormikForm-submitButton').click(); }; diff --git a/apps/omsorgspengerutbetaling-soknad/nais/dev-gcp.json b/apps/omsorgspengerutbetaling-soknad/nais/dev-gcp.json index 7610893b06..ebc139e326 100644 --- a/apps/omsorgspengerutbetaling-soknad/nais/dev-gcp.json +++ b/apps/omsorgspengerutbetaling-soknad/nais/dev-gcp.json @@ -5,8 +5,11 @@ "livenessPath": "/familie/sykdom-i-familien/soknad/omsorgspengerutbetaling/health/isAlive", "readinessPath": "/familie/sykdom-i-familien/soknad/omsorgspengerutbetaling/health/isReady", "externalHosts": ["www.nav.no", "dekoratoren.ekstern.dev.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], "ingresses": ["https://omsorgspengerutbetaling-soknad.intern.dev.nav.no"], "cluster": "dev-gcp", + "minReplicas": 1, + "maxReplicas": 1, "env": { "API_TOKENX_AUDIENCE": "dev-gcp:dusseldorf:k9-brukerdialog-api", "API_URL": "http://k9-brukerdialog-api", diff --git a/apps/omsorgspengerutbetaling-soknad/nais/prod-gcp.json b/apps/omsorgspengerutbetaling-soknad/nais/prod-gcp.json index 9730951313..a58b3cddb5 100644 --- a/apps/omsorgspengerutbetaling-soknad/nais/prod-gcp.json +++ b/apps/omsorgspengerutbetaling-soknad/nais/prod-gcp.json @@ -5,8 +5,11 @@ "livenessPath": "/familie/sykdom-i-familien/soknad/omsorgspengerutbetaling/health/isAlive", "readinessPath": "/familie/sykdom-i-familien/soknad/omsorgspengerutbetaling/health/isReady", "externalHosts": ["www.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], "ingresses": ["https://www.nav.no/familie/sykdom-i-familien/soknad/omsorgspengerutbetaling"], "cluster": "prod-gcp", + "minReplicas": 2, + "maxReplicas": 2, "env": { "API_TOKENX_AUDIENCE": "prod-gcp:dusseldorf:k9-brukerdialog-api", "API_URL": "http://k9-brukerdialog-api", diff --git a/apps/omsorgspengerutbetaling-soknad/package.json b/apps/omsorgspengerutbetaling-soknad/package.json index f7087cff5d..4ea057a982 100644 --- a/apps/omsorgspengerutbetaling-soknad/package.json +++ b/apps/omsorgspengerutbetaling-soknad/package.json @@ -4,14 +4,14 @@ "license": "MIT", "name": "@navikt/omsorgspengerutbetaling-soknad", "repository": "https://github.com/navikt/sif-brukerdialog", - "version": "1.3.19", + "version": "1.8.2", "private": true, "type": "module", "dependencies": { - "@navikt/ds-css": "5.10.1", + "@navikt/ds-css": "5.11.4", "@navikt/ds-icons": "3.4.3", - "@navikt/ds-react": "5.10.1", - "@navikt/ds-tailwind": "5.10.1", + "@navikt/ds-react": "5.11.4", + "@navikt/ds-tailwind": "5.11.4", "@navikt/sif-app-register": "workspace:*", "@navikt/sif-common-amplitude": "workspace:*", "@navikt/sif-common-core-ds": "workspace:*", @@ -21,68 +21,50 @@ "@navikt/sif-common-sentry": "workspace:*", "@navikt/sif-common-soknad-ds": "workspace:*", "@navikt/sif-common-utils": "workspace:*", - "@storybook/react-vite": "7.5.3", - "@testing-library/react": "14.1.0", - "@vitejs/plugin-react": "4.1.1", - "axios": "1.6.1", + "@storybook/react-vite": "7.6.4", + "@testing-library/react": "14.1.2", + "@vitejs/plugin-react": "4.2.1", + "axios": "1.6.2", "busboy": "1.6.0", "compression": "1.7.4", "cookie-parser": "1.4.6", "dotenv": "16.3.1", "express": "4.18.2", "helmet": "7.1.0", - "history": "5.3.0", "http-proxy-middleware": "2.0.6", - "jose": "5.1.0", + "jose": "5.1.3", "lodash": "4.17.21", "mustache-express": "1.3.2", "object-hash": "3.0.0", "openid-client": "5.6.1", - "promise": "8.3.0", "react": "18.2.0", "react-dom": "18.2.0", "react-fast-compare": "3.2.2", - "react-intl": "6.5.4", - "react-router-dom": "6.18.0", - "ulid": "2.3.0", + "react-intl": "6.5.5", + "react-router-dom": "6.20.1", "uuid": "9.0.1", - "vite": "4.5.0", + "vite": "5.0.7", "vite-plugin-checker": "0.6.2" }, "devDependencies": { - "@babel/core": "7.23.3", - "@babel/preset-env": "7.23.3", + "@babel/core": "7.23.5", + "@babel/preset-env": "7.23.5", "@babel/preset-react": "7.23.3", "@babel/preset-typescript": "7.23.3", - "@playwright/test": "1.39.0", - "@types/jest": "29.5.8", - "@types/node": "20.9.0", + "@playwright/test": "1.40.1", + "@types/node": "20.10.4", "@types/object-hash": "3.0.6", - "@types/react": "18.2.37", - "@types/react-dom": "18.2.15", + "@types/react": "18.2.43", + "@types/react-dom": "18.2.17", "@types/react-router-dom": "5.3.3", "babel-polyfill": "6.26.0", "cross-env": "7.0.3", - "css-loader": "6.8.1", - "express-rate-limit": "7.1.4", - "jsdom": "22.1.0", - "mini-css-extract-plugin": "2.7.6", - "postcss": "8.4.31", - "postcss-loader": "7.3.3", + "express-rate-limit": "7.1.5", + "jsdom": "23.0.1", "postcss-nesting": "12.0.1", - "react-scripts": "5.0.1", - "sass": "1.69.5", - "sass-loader": "13.3.2", - "source-map-loader": "4.0.1", - "start-server-and-test": "2.0.2", - "style-loader": "3.3.3", - "tailwindcss": "3.3.5", - "typescript": "5.2.2" - }, - "jest": { - "transformIgnorePatterns": [ - "node_modules/(?!(@navikt)).*\\.js$" - ] + "tailwindcss": "3.3.6", + "typescript": "5.3.3", + "vitest": "1.0.4" }, "scripts": { "build-app": "vite build --base=/familie/sykdom-i-familien/soknad/omsorgspengerutbetaling", @@ -90,12 +72,11 @@ "clean": "rm -rf node_modules .dist", "playwright-test": "playwright test", "dev-api": "PORT=8089 node ./api-mock/mock-server.cjs", - "snd": "cross-env NODE_ENV=development node ./server.cjs", + "dev": "cross-env NODE_ENV=development node ./server.cjs", "start-express": "node ./server.cjs", "start-e2e-server": "node ./server-e2e.cjs", "storybook": "storybook dev -p 6006 -s public", - "test": "react-scripts test --watchAll=false --env=jsdom", - "test-watch": "react-scripts test --watchAll=true --env=jsdom", + "test": "vitest", "lint": "eslint ./src --ext ts,tsx" }, "eslintConfig": { @@ -109,8 +90,5 @@ } } ] - }, - "resolutions": { - "babel-core": "7.0.0-bridge.0" } } diff --git a/apps/omsorgspengerutbetaling-soknad/src/app/components/formik-file-uploader/FormikFileUploader.tsx b/apps/omsorgspengerutbetaling-soknad/src/app/components/formik-file-uploader/FormikFileUploader.tsx deleted file mode 100644 index ea22dbeb2a..0000000000 --- a/apps/omsorgspengerutbetaling-soknad/src/app/components/formik-file-uploader/FormikFileUploader.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { Attachment } from '@navikt/sif-common-core-ds/lib/types/Attachment'; -import { VALID_EXTENSIONS } from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; -import { FormikFileInput, TypedFormInputValidationProps, ValidationError } from '@navikt/sif-common-formik-ds/lib'; -import { ApiEndpoint } from '../../api/api'; -import { useFormikFileUploader } from './useFormikFileUploader'; - -interface Props extends TypedFormInputValidationProps { - attachments: Attachment[]; - name: string; - legend?: string; - buttonLabel: string; - apiEndpoint: ApiEndpoint; - - onFileInputClick?: () => void; - onErrorUploadingAttachments: (files: File[]) => void; - onUnauthorizedOrForbiddenUpload: () => void; -} - -function FormikFileUploader({ - attachments, - name, - legend, - apiEndpoint, - onFileInputClick, - onErrorUploadingAttachments, - onUnauthorizedOrForbiddenUpload, - - ...otherProps -}: Props) { - const { onFilesSelect } = useFormikFileUploader({ - apiEndpoint, - onUnauthorizedOrForbiddenUpload, - onErrorUploadingAttachments, - value: attachments, - }); - - return ( - - ); -} - -export default FormikFileUploader; diff --git a/apps/omsorgspengerutbetaling-soknad/src/app/components/formik-file-uploader/useFormikFileUploader.ts b/apps/omsorgspengerutbetaling-soknad/src/app/components/formik-file-uploader/useFormikFileUploader.ts deleted file mode 100644 index 8c38dadd1f..0000000000 --- a/apps/omsorgspengerutbetaling-soknad/src/app/components/formik-file-uploader/useFormikFileUploader.ts +++ /dev/null @@ -1,125 +0,0 @@ -import { isForbidden, isUnauthorized } from '@navikt/sif-common-core-ds/lib/utils/apiUtils'; -import { - attachmentShouldBeProcessed, - attachmentShouldBeUploaded, - attachmentUploadHasFailed, - getPendingAttachmentFromFile, - isFileObject, - mapFileToPersistedFile, -} from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; -import { ArrayHelpers } from 'formik'; -import api, { ApiEndpoint } from '../../api/api'; -import { getAttachmentURLFrontend } from '../../utils/attachmentUtilsAuthToken'; - -export interface PersistedFile { - isPersistedFile: boolean; - name: string; - lastModified: number; - size: number; - type: string; -} - -export interface Attachment { - file: File | PersistedFile; - pending: boolean; - uploaded: boolean; - url?: string; -} - -export type FieldArrayReplaceFn = (index: number, value: any) => void; -export type FieldArrayPushFn = (obj: any) => void; -export type FieldArrayRemoveFn = (index: number) => undefined; - -export const useFormikFileUploader = ({ - value, - apiEndpoint, - onErrorUploadingAttachments, - onUnauthorizedOrForbiddenUpload, -}: { - value: Attachment[]; - apiEndpoint: ApiEndpoint; - onUnauthorizedOrForbiddenUpload: () => void; - onErrorUploadingAttachments: (files: File[]) => void; -}) => { - async function uploadAttachment(attachment: Attachment) { - const { file } = attachment; - if (isFileObject(file)) { - try { - const response = await api.uploadFile(apiEndpoint, file); - attachment = setAttachmentPendingToFalse(attachment); - attachment.url = getAttachmentURLFrontend(response.headers.location); - attachment.uploaded = true; - } catch (error) { - if (isForbidden(error) || isUnauthorized(error)) { - onUnauthorizedOrForbiddenUpload(); - } - setAttachmentPendingToFalse(attachment); - } - } - } - - async function uploadAttachments(allAttachments: Attachment[], replaceFn: FieldArrayReplaceFn) { - const attachmentsToProcess = findAttachmentsToProcess(allAttachments); - const attachmentsToUpload = findAttachmentsToUpload(attachmentsToProcess); - const attachmentsNotToUpload = attachmentsToProcess.filter((el) => !attachmentsToUpload.includes(el)); - - for (const attachment of attachmentsToUpload) { - await uploadAttachment(attachment); - updateAttachmentListElement(allAttachments, attachment, replaceFn); - } - - const failedAttachments = [...attachmentsNotToUpload, ...attachmentsToUpload.filter(attachmentUploadHasFailed)]; - updateFailedAttachments(allAttachments, failedAttachments, replaceFn); - } - - function updateFailedAttachments( - allAttachments: Attachment[], - failedAttachments: Attachment[], - replaceFn: FieldArrayReplaceFn, - ) { - failedAttachments.forEach((attachment) => { - attachment = setAttachmentPendingToFalse(attachment); - updateAttachmentListElement(allAttachments, attachment, replaceFn); - }); - const failedFiles: File[] = failedAttachments - .map(({ file }) => file) - .filter((f: File | PersistedFile) => isFileObject(f)) as File[]; - - onErrorUploadingAttachments(failedFiles); - } - - function findAttachmentsToProcess(attachments: Attachment[]): Attachment[] { - return attachments.filter(attachmentShouldBeProcessed); - } - - function findAttachmentsToUpload(attachments: Attachment[]): Attachment[] { - return attachments.filter(attachmentShouldBeUploaded); - } - - function updateAttachmentListElement( - attachments: Attachment[], - attachment: Attachment, - replaceFn: FieldArrayReplaceFn, - ) { - replaceFn(attachments.indexOf(attachment), { ...attachment, file: mapFileToPersistedFile(attachment.file) }); - } - - function setAttachmentPendingToFalse(attachment: Attachment) { - attachment.pending = false; - return attachment; - } - - function addPendingAttachmentToFieldArray(file: File, pushFn: FieldArrayPushFn) { - const attachment = getPendingAttachmentFromFile(file); - pushFn(attachment); - return attachment; - } - const onFilesSelect = async (files: File[], { push, replace }: ArrayHelpers) => { - const attachments = files.map((file) => addPendingAttachmentToFieldArray(file, push)); - await uploadAttachments([...value, ...attachments], replace); - }; - - return { - onFilesSelect, - }; -}; diff --git "a/apps/omsorgspengerutbetaling-soknad/src/app/s\303\270knad/steps/legeerkl\303\246ring/Legeerkl\303\246ringForm.tsx" "b/apps/omsorgspengerutbetaling-soknad/src/app/s\303\270knad/steps/legeerkl\303\246ring/Legeerkl\303\246ringForm.tsx" index b40c60a69f..90c0537048 100644 --- "a/apps/omsorgspengerutbetaling-soknad/src/app/s\303\270knad/steps/legeerkl\303\246ring/Legeerkl\303\246ringForm.tsx" +++ "b/apps/omsorgspengerutbetaling-soknad/src/app/s\303\270knad/steps/legeerkl\303\246ring/Legeerkl\303\246ringForm.tsx" @@ -1,25 +1,26 @@ import { Alert, Link } from '@navikt/ds-react'; +import React from 'react'; +import { FormattedMessage, useIntl } from 'react-intl'; import Block from '@navikt/sif-common-core-ds/lib/atoms/block/Block'; import FormBlock from '@navikt/sif-common-core-ds/lib/atoms/form-block/FormBlock'; import FileUploadErrors from '@navikt/sif-common-core-ds/lib/components/file-upload-errors/FileUploadErrors'; +import FormikFileUploader from '@navikt/sif-common-core-ds/lib/components/formik-file-uploader/FormikFileUploader'; import PictureScanningGuide from '@navikt/sif-common-core-ds/lib/components/picture-scanning-guide/PictureScanningGuide'; import SifGuidePanel from '@navikt/sif-common-core-ds/lib/components/sif-guide-panel/SifGuidePanel'; import { Attachment } from '@navikt/sif-common-core-ds/lib/types/Attachment'; import { - MAX_TOTAL_ATTACHMENT_SIZE_BYTES, attachmentHasBeenUploaded, getTotalSizeOfAttachments, + MAX_TOTAL_ATTACHMENT_SIZE_BYTES, } from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; import intlHelper from '@navikt/sif-common-core-ds/lib/utils/intlUtils'; -import { ValidationError, ValidationResult, getTypedFormComponents } from '@navikt/sif-common-formik-ds/lib'; +import { getTypedFormComponents, ValidationError, ValidationResult } from '@navikt/sif-common-formik-ds/lib'; import getIntlFormErrorHandler from '@navikt/sif-common-formik-ds/lib/validation/intlFormErrorHandler'; import { validateAll } from '@navikt/sif-common-formik-ds/lib/validation/validationUtils'; -import React from 'react'; -import { FormattedMessage, useIntl } from 'react-intl'; -import { ApiEndpoint } from '../../../api/api'; -import FormikFileUploader from '../../../components/formik-file-uploader/FormikFileUploader'; +import api, { ApiEndpoint } from '../../../api/api'; +import { getAttachmentURLFrontend } from '../../../utils/attachmentUtilsAuthToken'; import { relocateToLoginPage } from '../../../utils/navigationUtils'; -import { ValidateAttachmentsErrors, validateAttachments } from '../../../utils/validateAttachments'; +import { validateAttachments, ValidateAttachmentsErrors } from '../../../utils/validateAttachments'; import LegeerklæringAvtaleAttachmentList from './LegeerklæringAttachmentList'; interface Props { @@ -90,7 +91,8 @@ const LegeerklæringForm: React.FunctionComponent = ({ values, goBack, an attachments={legeerklæringAttachments} name={LegeerklæringFormFields.vedlegg} buttonLabel={intlHelper(intl, 'steg.legeerklæring.vedlegg.knappLabel')} - apiEndpoint={ApiEndpoint.vedlegg} + getAttachmentURLFrontend={getAttachmentURLFrontend} + uploadFile={(file) => api.uploadFile(ApiEndpoint.vedlegg, file)} onErrorUploadingAttachments={setFilesThatDidntGetUploaded} onFileInputClick={() => { setFilesThatDidntGetUploaded([]); diff --git "a/apps/omsorgspengerutbetaling-soknad/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" "b/apps/omsorgspengerutbetaling-soknad/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" index eb2b9e0657..ef420bee0d 100644 --- "a/apps/omsorgspengerutbetaling-soknad/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" +++ "b/apps/omsorgspengerutbetaling-soknad/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" @@ -1,17 +1,17 @@ +import { IntlShape } from 'react-intl'; +import { Attachment } from '@navikt/sif-common-core-ds/lib/types/Attachment'; import { attachmentIsUploadedAndIsValidFileFormat } from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; -import { Attachment } from '../../components/formik-file-uploader/useFormikFileUploader'; +import intlHelper from '@navikt/sif-common-core-ds/lib/utils/intlUtils'; +import { RegistrertBarn } from '../../types/RegistrertBarn'; import { SøknadApiData, YesNoSpørsmålOgSvar } from '../../types/søknadApiData/SøknadApiData'; import { Søknadsdata } from '../../types/søknadsdata/Søknadsdata'; import { getAttachmentURLBackend } from '../attachmentUtilsAuthToken'; -import { getUtenlansoppholdApiDataFromSøknadsdata } from './getUtenlandsoppholdApiDataFromSøknadsdata'; import { getDineBarnApiDataFromSøknadsdata } from './getDineBarnApiDataFromSøknadsdata'; -import { getMedlemskapApiDataFromSøknadsdata } from './getMedlemskapApiDataFromSøknadsdata'; -import { getUtbetalingsperioderApiDataFromSøknadsdata } from './getUtbetalingsperioderApiDataFromSøknadsdata'; -import { RegistrertBarn } from '../../types/RegistrertBarn'; import { getFrilansApiDataFromSøknadsdata } from './getFrilansApiDataFromSøknadsdata'; +import { getMedlemskapApiDataFromSøknadsdata } from './getMedlemskapApiDataFromSøknadsdata'; import { getSelvstendigApiDataFromSøknadsdata } from './getSelvstendigApiDataFromSøknadsdata'; -import intlHelper from '@navikt/sif-common-core-ds/lib/utils/intlUtils'; -import { IntlShape } from 'react-intl'; +import { getUtbetalingsperioderApiDataFromSøknadsdata } from './getUtbetalingsperioderApiDataFromSøknadsdata'; +import { getUtenlansoppholdApiDataFromSøknadsdata } from './getUtenlandsoppholdApiDataFromSøknadsdata'; const getVedleggApiData = (vedlegg?: Attachment[]): string[] => { if (!vedlegg || vedlegg.length === 0) { diff --git a/apps/omsorgspengerutbetaling-soknad/vitest.config.ts b/apps/omsorgspengerutbetaling-soknad/vitest.config.ts new file mode 100644 index 0000000000..ec336f5985 --- /dev/null +++ b/apps/omsorgspengerutbetaling-soknad/vitest.config.ts @@ -0,0 +1,13 @@ +/// +/// + +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + exclude: ['./e2e/**/*', './build/**/*', './dist/**/*', '**/*.spec.tsx'], + globals: true, + environment: 'jsdom', + css: false, + }, +}); diff --git a/apps/omsorgspengesoknad/CHANGELOG.md b/apps/omsorgspengesoknad/CHANGELOG.md index b8444e5f3a..4412867ece 100644 --- a/apps/omsorgspengesoknad/CHANGELOG.md +++ b/apps/omsorgspengesoknad/CHANGELOG.md @@ -1,871 +1,1046 @@ # @navikt/omsorgspengesoknad +## 1.24.3 + +### Patch Changes + +- Fjerne webpack + +## 1.24.2 + +### Patch Changes + +- Patch oppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.24.5 + - @navikt/sif-common-formik-ds@1.6.2 + - @navikt/sif-common-soknad-ds@10.12.2 + - @navikt/sif-common-forms-ds@8.16.2 + - @navikt/sif-common-core-ds@9.12.2 + - @navikt/sif-common-hooks@0.1.3 + - @navikt/sif-common-utils@3.43.5 + +## 1.24.1 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker +- Updated dependencies [e7bf8d1] + - @navikt/sif-common-amplitude@2.24.4 + - @navikt/sif-common-formik-ds@1.6.1 + - @navikt/sif-common-soknad-ds@10.12.1 + - @navikt/sif-common-forms-ds@8.16.1 + - @navikt/sif-common-core-ds@9.12.1 + - @navikt/sif-common-sentry@0.25.4 + - @navikt/sif-common-utils@3.43.4 + +## 1.24.0 + +### Minor Changes + +- 573c55d: Diverse oppdateringer i forbindelse med uu-gjennomgang. + +### Patch Changes + +- Updated dependencies [573c55d] + - @navikt/sif-common-formik-ds@1.6.0 + - @navikt/sif-common-soknad-ds@10.12.0 + - @navikt/sif-common-forms-ds@8.16.0 + - @navikt/sif-common-core-ds@9.12.0 + +## 1.23.1 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer +- Updated dependencies [406b044] + - @navikt/sif-common-amplitude@2.24.3 + - @navikt/sif-common-formik-ds@1.5.3 + - @navikt/sif-common-soknad-ds@10.11.1 + - @navikt/sif-common-forms-ds@8.15.1 + - @navikt/sif-common-core-ds@9.11.3 + - @navikt/sif-common-sentry@0.25.3 + - @navikt/sif-common-utils@3.43.3 + +## 1.23.0 + +### Minor Changes + +- 2331115: Oppdatert react-router-dom. Endringer i ettersending og pleiepenger på grunn av feil bruk av navigate i ny versjon. + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [2331115] +- Updated dependencies [6084e23] + - @navikt/sif-common-soknad-ds@10.11.0 + - @navikt/sif-common-forms-ds@8.15.0 + - @navikt/sif-app-register@0.0.4 + - @navikt/sif-common-amplitude@2.24.2 + - @navikt/sif-common-core-ds@9.11.2 + - @navikt/sif-common-formik-ds@1.5.2 + - @navikt/sif-common-hooks@0.1.2 + - @navikt/sif-common-sentry@0.25.2 + - @navikt/sif-common-utils@3.43.2 + +## 1.22.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [295d3ad] + - @navikt/sif-app-register@0.0.3 + - @navikt/sif-common-amplitude@2.24.1 + - @navikt/sif-common-core-ds@9.11.1 + - @navikt/sif-common-formik-ds@1.5.1 + - @navikt/sif-common-forms-ds@8.14.1 + - @navikt/sif-common-hooks@0.1.1 + - @navikt/sif-common-sentry@0.25.1 + - @navikt/sif-common-soknad-ds@10.10.1 + - @navikt/sif-common-utils@3.43.1 + +## 1.22.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +### Patch Changes + +- Updated dependencies [53b47be] + - @navikt/sif-common-amplitude@2.24.0 + - @navikt/sif-common-formik-ds@1.5.0 + - @navikt/sif-common-soknad-ds@10.10.0 + - @navikt/sif-common-forms-ds@8.14.0 + - @navikt/sif-common-core-ds@9.11.0 + - @navikt/sif-common-sentry@0.25.0 + - @navikt/sif-common-utils@3.43.0 + +## 1.21.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +### Patch Changes + +- Updated dependencies + - @navikt/sif-common-amplitude@2.23.0 + - @navikt/sif-common-formik-ds@1.4.0 + - @navikt/sif-common-soknad-ds@10.9.0 + - @navikt/sif-common-forms-ds@8.13.0 + - @navikt/sif-common-core-ds@9.10.0 + - @navikt/sif-common-sentry@0.24.0 + - @navikt/sif-common-hooks@0.1.0 + - @navikt/sif-common-utils@3.42.0 + +## 1.20.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + +### Patch Changes + +- Updated dependencies [d31f28ec] + - @navikt/sif-common-amplitude@2.22.0 + - @navikt/sif-common-formik-ds@1.3.0 + - @navikt/sif-common-soknad-ds@10.8.0 + - @navikt/sif-common-forms-ds@8.12.0 + - @navikt/sif-common-core-ds@9.9.0 + - @navikt/sif-common-sentry@0.23.0 + - @navikt/sif-common-utils@3.41.0 + +## 1.19.20 + +### Patch Changes + +- 6d3b3cbe: Minor og patch oppdateringer + nextjs major -> 14 +- Updated dependencies [6d3b3cbe] + - @navikt/sif-common-formik-ds@1.2.3 + - @navikt/sif-common-soknad-ds@10.7.11 + - @navikt/sif-common-forms-ds@8.11.4 + - @navikt/sif-common-core-ds@9.8.11 + - @navikt/sif-common-sentry@0.22.7 + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-utils@3.40.11 + +## 1.19.19 + +### Patch Changes + +- Updated dependencies [19c424d7] + - @navikt/sif-app-register@0.0.2 + ## 1.19.18 ### Patch Changes -- 09ae5814: Patch-oppdateringer -- Updated dependencies [09ae5814] - - @navikt/sif-common-formik-ds@1.2.2 - - @navikt/sif-common-soknad-ds@10.7.10 - - @navikt/sif-common-forms-ds@8.11.3 - - @navikt/sif-common-core-ds@9.8.10 - - @navikt/sif-common-utils@3.40.11 +- 09ae5814: Patch-oppdateringer +- Updated dependencies [09ae5814] + - @navikt/sif-common-formik-ds@1.2.2 + - @navikt/sif-common-soknad-ds@10.7.10 + - @navikt/sif-common-forms-ds@8.11.3 + - @navikt/sif-common-core-ds@9.8.10 + - @navikt/sif-common-utils@3.40.11 ## 1.19.17 ### Patch Changes -- b4d45cf9: Diverse mindre pakkeoppdateringer -- Updated dependencies [b4d45cf9] - - @navikt/sif-common-amplitude@2.21.9 - - @navikt/sif-common-formik-ds@1.2.1 - - @navikt/sif-common-soknad-ds@10.7.9 - - @navikt/sif-common-forms-ds@8.11.2 - - @navikt/sif-common-core-ds@9.8.9 - - @navikt/sif-common-sentry@0.22.6 - - @navikt/sif-common-utils@3.40.10 +- b4d45cf9: Diverse mindre pakkeoppdateringer +- Updated dependencies [b4d45cf9] + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-formik-ds@1.2.1 + - @navikt/sif-common-soknad-ds@10.7.9 + - @navikt/sif-common-forms-ds@8.11.2 + - @navikt/sif-common-core-ds@9.8.9 + - @navikt/sif-common-sentry@0.22.6 + - @navikt/sif-common-utils@3.40.10 ## 1.19.16 ### Patch Changes -- Updated dependencies [e815a9a8] - - @navikt/sif-common-formik-ds@1.2.0 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-forms-ds@8.11.1 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [e815a9a8] + - @navikt/sif-common-formik-ds@1.2.0 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-forms-ds@8.11.1 + - @navikt/sif-common-soknad-ds@10.7.8 ## 1.19.15 ### Patch Changes -- Updated dependencies [66c8522a] - - @navikt/sif-common-forms-ds@8.11.1 +- Updated dependencies [66c8522a] + - @navikt/sif-common-forms-ds@8.11.1 ## 1.19.14 ### Patch Changes -- Updated dependencies [ce769b8e] -- Updated dependencies [afe04538] - - @navikt/sif-common-forms-ds@8.11.0 - - @navikt/sif-common-formik-ds@1.1.6 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [ce769b8e] +- Updated dependencies [afe04538] + - @navikt/sif-common-forms-ds@8.11.0 + - @navikt/sif-common-formik-ds@1.1.6 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-soknad-ds@10.7.8 ## 1.19.13 ### Patch Changes -- Updated dependencies [1d7c508f] - - @navikt/sif-common-formik-ds@1.1.5 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-forms-ds@8.10.0 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [1d7c508f] + - @navikt/sif-common-formik-ds@1.1.5 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-forms-ds@8.10.0 + - @navikt/sif-common-soknad-ds@10.7.8 ## 1.19.12 ### Patch Changes -- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 -- Updated dependencies [5c44f78b] -- Updated dependencies [5c44f78b] -- Updated dependencies [cb7e6653] - - @navikt/sif-common-forms-ds@8.10.0 - - @navikt/sif-common-formik-ds@1.1.4 - - @navikt/sif-common-amplitude@2.21.8 - - @navikt/sif-common-soknad-ds@10.7.8 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-utils@3.40.9 +- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 +- Updated dependencies [5c44f78b] +- Updated dependencies [5c44f78b] +- Updated dependencies [cb7e6653] + - @navikt/sif-common-forms-ds@8.10.0 + - @navikt/sif-common-formik-ds@1.1.4 + - @navikt/sif-common-amplitude@2.21.8 + - @navikt/sif-common-soknad-ds@10.7.8 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-utils@3.40.9 ## 1.19.11 ### Patch Changes -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.7 - - @navikt/sif-common-formik-ds@1.1.3 - - @navikt/sif-common-soknad-ds@10.7.7 - - @navikt/sif-common-forms-ds@8.9.7 - - @navikt/sif-common-core-ds@9.8.7 - - @navikt/sif-common-sentry@0.22.5 - - @navikt/sif-common-utils@3.40.8 +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.7 + - @navikt/sif-common-formik-ds@1.1.3 + - @navikt/sif-common-soknad-ds@10.7.7 + - @navikt/sif-common-forms-ds@8.9.7 + - @navikt/sif-common-core-ds@9.8.7 + - @navikt/sif-common-sentry@0.22.5 + - @navikt/sif-common-utils@3.40.8 ## 1.19.10 ### Patch Changes -- Pakkeoppdatering som fikser datepicker + modal bug -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.6 - - @navikt/sif-common-formik-ds@1.1.2 - - @navikt/sif-common-soknad-ds@10.7.6 - - @navikt/sif-common-forms-ds@8.9.6 - - @navikt/sif-common-core-ds@9.8.6 - - @navikt/sif-common-utils@3.40.7 +- Pakkeoppdatering som fikser datepicker + modal bug +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.6 + - @navikt/sif-common-formik-ds@1.1.2 + - @navikt/sif-common-soknad-ds@10.7.6 + - @navikt/sif-common-forms-ds@8.9.6 + - @navikt/sif-common-core-ds@9.8.6 + - @navikt/sif-common-utils@3.40.7 ## 1.19.9 ### Patch Changes -- 71381778: Patch pakkeoppdateringer -- Updated dependencies [71381778] - - @navikt/sif-common-amplitude@2.21.5 - - @navikt/sif-common-formik-ds@1.1.1 - - @navikt/sif-common-soknad-ds@10.7.5 - - @navikt/sif-common-forms-ds@8.9.5 - - @navikt/sif-common-core-ds@9.8.5 - - @navikt/sif-common-sentry@0.22.4 - - @navikt/sif-common-utils@3.40.6 +- 71381778: Patch pakkeoppdateringer +- Updated dependencies [71381778] + - @navikt/sif-common-amplitude@2.21.5 + - @navikt/sif-common-formik-ds@1.1.1 + - @navikt/sif-common-soknad-ds@10.7.5 + - @navikt/sif-common-forms-ds@8.9.5 + - @navikt/sif-common-core-ds@9.8.5 + - @navikt/sif-common-sentry@0.22.4 + - @navikt/sif-common-utils@3.40.6 ## 1.19.8 ### Patch Changes -- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds -- Updated dependencies [60eb7ee9] - - @navikt/sif-common-formik-ds@1.1.0 - - @navikt/sif-common-amplitude@2.21.4 - - @navikt/sif-common-soknad-ds@10.7.4 - - @navikt/sif-common-forms-ds@8.9.4 - - @navikt/sif-common-core-ds@9.8.4 - - @navikt/sif-common-sentry@0.22.3 - - @navikt/sif-common-utils@3.40.5 +- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds +- Updated dependencies [60eb7ee9] + - @navikt/sif-common-formik-ds@1.1.0 + - @navikt/sif-common-amplitude@2.21.4 + - @navikt/sif-common-soknad-ds@10.7.4 + - @navikt/sif-common-forms-ds@8.9.4 + - @navikt/sif-common-core-ds@9.8.4 + - @navikt/sif-common-sentry@0.22.3 + - @navikt/sif-common-utils@3.40.5 ## 1.19.7 ### Patch Changes -- 2a1e2526: Pakkeoppdateringer -- Updated dependencies [2a1e2526] - - @navikt/sif-common-amplitude@2.21.3 - - @navikt/sif-common-formik-ds@1.0.5 - - @navikt/sif-common-soknad-ds@10.7.3 - - @navikt/sif-common-forms-ds@8.9.3 - - @navikt/sif-common-core-ds@9.8.3 - - @navikt/sif-common-sentry@0.22.2 - - @navikt/sif-common-utils@3.40.4 +- 2a1e2526: Pakkeoppdateringer +- Updated dependencies [2a1e2526] + - @navikt/sif-common-amplitude@2.21.3 + - @navikt/sif-common-formik-ds@1.0.5 + - @navikt/sif-common-soknad-ds@10.7.3 + - @navikt/sif-common-forms-ds@8.9.3 + - @navikt/sif-common-core-ds@9.8.3 + - @navikt/sif-common-sentry@0.22.2 + - @navikt/sif-common-utils@3.40.4 ## 1.19.6 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.2 - - @navikt/sif-common-formik-ds@1.0.4 - - @navikt/sif-common-soknad-ds@10.7.2 - - @navikt/sif-common-forms-ds@8.9.2 - - @navikt/sif-common-core-ds@9.8.2 - - @navikt/sif-common-utils@3.40.3 +- Pakkeoppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.2 + - @navikt/sif-common-formik-ds@1.0.4 + - @navikt/sif-common-soknad-ds@10.7.2 + - @navikt/sif-common-forms-ds@8.9.2 + - @navikt/sif-common-core-ds@9.8.2 + - @navikt/sif-common-utils@3.40.3 ## 1.19.5 ### Patch Changes -- 81e7e155: Bruke BodyLong i alle SifGuidePanel -- Updated dependencies [81e7e155] - - @navikt/sif-common-formik-ds@1.0.3 - - @navikt/sif-common-forms-ds@8.9.1 - - @navikt/sif-common-core-ds@9.8.1 - - @navikt/sif-common-utils@3.40.2 - - @navikt/sif-common-soknad-ds@10.7.1 +- 81e7e155: Bruke BodyLong i alle SifGuidePanel +- Updated dependencies [81e7e155] + - @navikt/sif-common-formik-ds@1.0.3 + - @navikt/sif-common-forms-ds@8.9.1 + - @navikt/sif-common-core-ds@9.8.1 + - @navikt/sif-common-utils@3.40.2 + - @navikt/sif-common-soknad-ds@10.7.1 ## 1.19.4 ### Patch Changes -- Updated dependencies [c129755f] - - @navikt/sif-common-formik-ds@1.0.2 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-forms-ds@8.9.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [c129755f] + - @navikt/sif-common-formik-ds@1.0.2 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-forms-ds@8.9.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 1.19.3 ### Patch Changes -- Updated dependencies [92fbd8f8] - - @navikt/sif-common-formik-ds@1.0.1 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-forms-ds@8.9.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [92fbd8f8] + - @navikt/sif-common-formik-ds@1.0.1 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-forms-ds@8.9.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 1.19.2 ### Patch Changes -- Updated dependencies [d12fcbb5] - - @navikt/sif-common-forms-ds@8.9.0 +- Updated dependencies [d12fcbb5] + - @navikt/sif-common-forms-ds@8.9.0 ## 1.19.1 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies [55e1f323] -- Updated dependencies - - @navikt/sif-common-core-ds@9.7.0 - - @navikt/sif-common-amplitude@2.21.1 - - @navikt/sif-common-formik-ds@0.6.1 - - @navikt/sif-common-soknad-ds@10.7.1 - - @navikt/sif-common-forms-ds@8.8.1 - - @navikt/sif-common-sentry@0.22.1 - - @navikt/sif-common-utils@3.40.1 +- Pakkeoppdateringer +- Updated dependencies [55e1f323] +- Updated dependencies + - @navikt/sif-common-core-ds@9.7.0 + - @navikt/sif-common-amplitude@2.21.1 + - @navikt/sif-common-formik-ds@0.6.1 + - @navikt/sif-common-soknad-ds@10.7.1 + - @navikt/sif-common-forms-ds@8.8.1 + - @navikt/sif-common-sentry@0.22.1 + - @navikt/sif-common-utils@3.40.1 ## 1.19.0 ### Minor Changes -- 96810cd6: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. +- 96810cd6: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. ### Patch Changes -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] - - @navikt/sif-common-formik-ds@0.5.0 - - @navikt/sif-common-amplitude@2.21.0 - - @navikt/sif-common-soknad-ds@10.6.0 - - @navikt/sif-common-forms-ds@8.7.0 - - @navikt/sif-common-core-ds@9.5.0 - - @navikt/sif-common-sentry@0.22.0 - - @navikt/sif-common-utils@3.40.0 +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] + - @navikt/sif-common-formik-ds@0.5.0 + - @navikt/sif-common-amplitude@2.21.0 + - @navikt/sif-common-soknad-ds@10.6.0 + - @navikt/sif-common-forms-ds@8.7.0 + - @navikt/sif-common-core-ds@9.5.0 + - @navikt/sif-common-sentry@0.22.0 + - @navikt/sif-common-utils@3.40.0 ## 1.18.0 ### Minor Changes -- ad5092d1: Sette document.title basert på søknadsnavn og stegnavn -- 4cde9eca: Redirect til Min side ved fortsett senere +- ad5092d1: Sette document.title basert på søknadsnavn og stegnavn +- 4cde9eca: Redirect til Min side ved fortsett senere ### Patch Changes -- 5f655843: Ersatte ordet funksjonshemming med funksjonshemning -- Updated dependencies [ad5092d1] - - @navikt/sif-common-soknad-ds@10.5.0 +- 5f655843: Ersatte ordet funksjonshemming med funksjonshemning +- Updated dependencies [ad5092d1] + - @navikt/sif-common-soknad-ds@10.5.0 ## 1.17.0 ### Minor Changes -- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer +- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer ### Patch Changes -- Updated dependencies [c976be57] - - @navikt/sif-common-amplitude@2.20.0 - - @navikt/sif-common-formik-ds@0.4.0 - - @navikt/sif-common-soknad-ds@10.4.0 - - @navikt/sif-common-forms-ds@8.6.0 - - @navikt/sif-common-core-ds@9.4.0 - - @navikt/sif-common-sentry@0.21.0 - - @navikt/sif-common-utils@3.39.0 +- Updated dependencies [c976be57] + - @navikt/sif-common-amplitude@2.20.0 + - @navikt/sif-common-formik-ds@0.4.0 + - @navikt/sif-common-soknad-ds@10.4.0 + - @navikt/sif-common-forms-ds@8.6.0 + - @navikt/sif-common-core-ds@9.4.0 + - @navikt/sif-common-sentry@0.21.0 + - @navikt/sif-common-utils@3.39.0 ## 1.16.0 ### Minor Changes -- 026fc373: Oppdatere til versjon 5 av designsystemet aksel +- 026fc373: Oppdatere til versjon 5 av designsystemet aksel ### Patch Changes -- Updated dependencies [41d0a03c] -- Updated dependencies [026fc373] - - @navikt/sif-common-formik-ds@0.3.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-forms-ds@8.5.0 - - @navikt/sif-common-core-ds@9.3.0 +- Updated dependencies [41d0a03c] +- Updated dependencies [026fc373] + - @navikt/sif-common-formik-ds@0.3.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-forms-ds@8.5.0 + - @navikt/sif-common-core-ds@9.3.0 ## 1.15.0 ### Minor Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ### Patch Changes -- Updated dependencies - - @navikt/sif-common-amplitude@2.19.0 - - @navikt/sif-common-formik-ds@0.24.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-forms-ds@8.5.0 - - @navikt/sif-common-core-ds@9.3.0 - - @navikt/sif-common-sentry@0.20.0 - - @navikt/sif-common-utils@3.38.0 +- Updated dependencies + - @navikt/sif-common-amplitude@2.19.0 + - @navikt/sif-common-formik-ds@0.24.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-forms-ds@8.5.0 + - @navikt/sif-common-core-ds@9.3.0 + - @navikt/sif-common-sentry@0.20.0 + - @navikt/sif-common-utils@3.38.0 ## 1.14.3 ### Patch Changes -- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react -- Updated dependencies [0e25e34f] - - @navikt/sif-common-amplitude@2.18.1 - - @navikt/sif-common-formik-ds@0.23.3 - - @navikt/sif-common-soknad-ds@10.1.3 - - @navikt/sif-common-forms-ds@8.1.3 - - @navikt/sif-common-core-ds@9.1.3 - - @navikt/sif-common-sentry@0.19.1 - - @navikt/sif-common-utils@3.37.1 +- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react +- Updated dependencies [0e25e34f] + - @navikt/sif-common-amplitude@2.18.1 + - @navikt/sif-common-formik-ds@0.23.3 + - @navikt/sif-common-soknad-ds@10.1.3 + - @navikt/sif-common-forms-ds@8.1.3 + - @navikt/sif-common-core-ds@9.1.3 + - @navikt/sif-common-sentry@0.19.1 + - @navikt/sif-common-utils@3.37.1 ## 1.14.2 ### Patch Changes -- 7e9863c7: Oppdatert versjon av pakker for test og bygg -- Updated dependencies [7e9863c7] - - @navikt/sif-common-formik-ds@0.23.2 - - @navikt/sif-common-soknad-ds@10.1.2 - - @navikt/sif-common-forms-ds@8.1.2 - - @navikt/sif-common-core-ds@9.1.2 +- 7e9863c7: Oppdatert versjon av pakker for test og bygg +- Updated dependencies [7e9863c7] + - @navikt/sif-common-formik-ds@0.23.2 + - @navikt/sif-common-soknad-ds@10.1.2 + - @navikt/sif-common-forms-ds@8.1.2 + - @navikt/sif-common-core-ds@9.1.2 ## 1.14.1 ### Patch Changes -- cc50b642: Diverse mindre pakkeoppdateringer -- Updated dependencies [cc50b642] - - @navikt/sif-common-formik-ds@0.23.1 - - @navikt/sif-common-soknad-ds@10.1.1 - - @navikt/sif-common-forms-ds@8.1.1 - - @navikt/sif-common-core-ds@9.1.1 +- cc50b642: Diverse mindre pakkeoppdateringer +- Updated dependencies [cc50b642] + - @navikt/sif-common-formik-ds@0.23.1 + - @navikt/sif-common-soknad-ds@10.1.1 + - @navikt/sif-common-forms-ds@8.1.1 + - @navikt/sif-common-core-ds@9.1.1 ## 1.14.0 ### Minor Changes -- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene +- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene ### Patch Changes -- Updated dependencies [ea79f31c] - - @navikt/sif-common-formik-ds@0.23.0 - - @navikt/sif-common-soknad-ds@10.3.0 - - @navikt/sif-common-forms-ds@8.5.0 - - @navikt/sif-common-core-ds@9.3.0 - - @navikt/sif-common-sentry@0.19.0 +- Updated dependencies [ea79f31c] + - @navikt/sif-common-formik-ds@0.23.0 + - @navikt/sif-common-soknad-ds@10.3.0 + - @navikt/sif-common-forms-ds@8.5.0 + - @navikt/sif-common-core-ds@9.3.0 + - @navikt/sif-common-sentry@0.19.0 ## 1.13.0 ### Minor Changes -- d3ae045: Oppdatere minor og patch +- d3ae045: Oppdatere minor og patch ### Patch Changes -- Updated dependencies [d3ae045] - - @navikt/sif-common-amplitude@2.18.0 - - @navikt/sif-common-formik-ds@0.22.0 - - @navikt/sif-common-soknad-ds@10.0.0 - - @navikt/sif-common-forms-ds@8.0.0 - - @navikt/sif-common-core-ds@9.0.0 - - @navikt/sif-common-sentry@0.18.0 - - @navikt/sif-common-utils@3.37.0 +- Updated dependencies [d3ae045] + - @navikt/sif-common-amplitude@2.18.0 + - @navikt/sif-common-formik-ds@0.22.0 + - @navikt/sif-common-soknad-ds@10.0.0 + - @navikt/sif-common-forms-ds@8.0.0 + - @navikt/sif-common-core-ds@9.0.0 + - @navikt/sif-common-sentry@0.18.0 + - @navikt/sif-common-utils@3.37.0 ## 1.12.1 ### Patch Changes -- ebebab7: Pakkeoppdateringer -- Updated dependencies [ebebab7] - - @navikt/sif-common-formik-ds@0.21.1 - - @navikt/sif-common-soknad-ds@9.0.1 - - @navikt/sif-common-forms-ds@7.0.1 - - @navikt/sif-common-core-ds@8.0.1 - - @navikt/sif-common-utils@3.36.1 +- ebebab7: Pakkeoppdateringer +- Updated dependencies [ebebab7] + - @navikt/sif-common-formik-ds@0.21.1 + - @navikt/sif-common-soknad-ds@9.0.1 + - @navikt/sif-common-forms-ds@7.0.1 + - @navikt/sif-common-core-ds@8.0.1 + - @navikt/sif-common-utils@3.36.1 ## 1.12.0 ### Minor Changes -- 5beb8c9: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. +- 5beb8c9: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. ### Patch Changes -- Updated dependencies [5beb8c9] - - @navikt/sif-common-amplitude@2.17.0 - - @navikt/sif-common-formik-ds@0.21.0 - - @navikt/sif-common-soknad-ds@9.0.0 - - @navikt/sif-common-forms-ds@7.0.0 - - @navikt/sif-common-core-ds@8.0.0 - - @navikt/sif-common-sentry@0.17.0 - - @navikt/sif-common-utils@3.36.0 +- Updated dependencies [5beb8c9] + - @navikt/sif-common-amplitude@2.17.0 + - @navikt/sif-common-formik-ds@0.21.0 + - @navikt/sif-common-soknad-ds@9.0.0 + - @navikt/sif-common-forms-ds@7.0.0 + - @navikt/sif-common-core-ds@8.0.0 + - @navikt/sif-common-sentry@0.17.0 + - @navikt/sif-common-utils@3.36.0 ## 1.11.2 ### Patch Changes -- bd6fae3: Pakkeoppdateringer -- Updated dependencies [bd6fae3] - - @navikt/sif-common-amplitude@2.16.2 - - @navikt/sif-common-formik-ds@0.20.2 - - @navikt/sif-common-soknad-ds@7.4.2 - - @navikt/sif-common-forms-ds@6.5.1 - - @navikt/sif-common-core-ds@7.4.2 - - @navikt/sif-common-sentry@0.16.2 - - @navikt/sif-common-utils@3.34.2 +- bd6fae3: Pakkeoppdateringer +- Updated dependencies [bd6fae3] + - @navikt/sif-common-amplitude@2.16.2 + - @navikt/sif-common-formik-ds@0.20.2 + - @navikt/sif-common-soknad-ds@7.4.2 + - @navikt/sif-common-forms-ds@6.5.1 + - @navikt/sif-common-core-ds@7.4.2 + - @navikt/sif-common-sentry@0.16.2 + - @navikt/sif-common-utils@3.34.2 ## 1.11.1 ### Patch Changes -- 4d1cb8b: Pakkeoppdateringer -- Updated dependencies [4d1cb8b] - - @navikt/sif-common-amplitude@2.16.1 - - @navikt/sif-common-formik-ds@0.20.1 - - @navikt/sif-common-soknad-ds@7.4.1 - - @navikt/sif-common-forms-ds@6.4.1 - - @navikt/sif-common-core-ds@7.4.1 - - @navikt/sif-common-sentry@0.16.1 - - @navikt/sif-common-utils@3.34.1 +- 4d1cb8b: Pakkeoppdateringer +- Updated dependencies [4d1cb8b] + - @navikt/sif-common-amplitude@2.16.1 + - @navikt/sif-common-formik-ds@0.20.1 + - @navikt/sif-common-soknad-ds@7.4.1 + - @navikt/sif-common-forms-ds@6.4.1 + - @navikt/sif-common-core-ds@7.4.1 + - @navikt/sif-common-sentry@0.16.1 + - @navikt/sif-common-utils@3.34.1 ## 1.11.0 ### Minor Changes -- ae1fdbf7: Pakkeoppdateringer +- ae1fdbf7: Pakkeoppdateringer ### Patch Changes -- Updated dependencies [a1e69480] -- Updated dependencies [ae1fdbf7] - - @navikt/sif-common-core-ds@8.0.0 - - @navikt/sif-common-amplitude@2.16.0 - - @navikt/sif-common-formik-ds@0.20.0 - - @navikt/sif-common-soknad-ds@8.0.0 - - @navikt/sif-common-forms-ds@7.0.0 - - @navikt/sif-common-sentry@0.16.0 - - @navikt/sif-common-utils@3.34.0 +- Updated dependencies [a1e69480] +- Updated dependencies [ae1fdbf7] + - @navikt/sif-common-core-ds@8.0.0 + - @navikt/sif-common-amplitude@2.16.0 + - @navikt/sif-common-formik-ds@0.20.0 + - @navikt/sif-common-soknad-ds@8.0.0 + - @navikt/sif-common-forms-ds@7.0.0 + - @navikt/sif-common-sentry@0.16.0 + - @navikt/sif-common-utils@3.34.0 ## 1.10.0 ### Minor Changes -- 7d66a381: Oppdatere pakker, fjerne snyk +- 7d66a381: Oppdatere pakker, fjerne snyk ### Patch Changes -- Updated dependencies [7d66a381] - - @navikt/sif-common-amplitude@2.15.0 - - @navikt/sif-common-formik-ds@0.19.0 - - @navikt/sif-common-soknad-ds@8.0.0 - - @navikt/sif-common-forms-ds@7.0.0 - - @navikt/sif-common-core-ds@8.0.0 - - @navikt/sif-common-sentry@0.15.0 - - @navikt/sif-common-utils@3.33.0 +- Updated dependencies [7d66a381] + - @navikt/sif-common-amplitude@2.15.0 + - @navikt/sif-common-formik-ds@0.19.0 + - @navikt/sif-common-soknad-ds@8.0.0 + - @navikt/sif-common-forms-ds@7.0.0 + - @navikt/sif-common-core-ds@8.0.0 + - @navikt/sif-common-sentry@0.15.0 + - @navikt/sif-common-utils@3.33.0 ## 1.9.2 ### Patch Changes -- 38c8814: Pakkeoppdateringer -- Updated dependencies [38c8814] - - @navikt/sif-common-amplitude@2.14.1 - - @navikt/sif-common-formik-ds@0.18.2 - - @navikt/sif-common-soknad-ds@7.2.2 - - @navikt/sif-common-forms-ds@6.2.2 - - @navikt/sif-common-core-ds@7.2.2 - - @navikt/sif-common-sentry@0.14.1 - - @navikt/sif-common-utils@3.32.2 +- 38c8814: Pakkeoppdateringer +- Updated dependencies [38c8814] + - @navikt/sif-common-amplitude@2.14.1 + - @navikt/sif-common-formik-ds@0.18.2 + - @navikt/sif-common-soknad-ds@7.2.2 + - @navikt/sif-common-forms-ds@6.2.2 + - @navikt/sif-common-core-ds@7.2.2 + - @navikt/sif-common-sentry@0.14.1 + - @navikt/sif-common-utils@3.32.2 ## 1.9.1 ### Patch Changes -- Oppdatere pakker -- Updated dependencies - - @navikt/sif-common-formik-ds@0.18.1 - - @navikt/sif-common-soknad-ds@7.2.1 - - @navikt/sif-common-forms-ds@6.2.1 - - @navikt/sif-common-core-ds@7.2.1 - - @navikt/sif-common-utils@3.32.1 +- Oppdatere pakker +- Updated dependencies + - @navikt/sif-common-formik-ds@0.18.1 + - @navikt/sif-common-soknad-ds@7.2.1 + - @navikt/sif-common-forms-ds@6.2.1 + - @navikt/sif-common-core-ds@7.2.1 + - @navikt/sif-common-utils@3.32.1 ## 1.9.0 ### Minor Changes -- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. +- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. ### Patch Changes -- Updated dependencies [1361721f] - - @navikt/sif-common-amplitude@2.14.0 - - @navikt/sif-common-formik-ds@0.18.0 - - @navikt/sif-common-soknad-ds@7.1.0 - - @navikt/sif-common-forms-ds@6.1.0 - - @navikt/sif-common-core-ds@7.1.0 - - @navikt/sif-common-sentry@0.14.0 - - @navikt/sif-common-utils@3.32.0 +- Updated dependencies [1361721f] + - @navikt/sif-common-amplitude@2.14.0 + - @navikt/sif-common-formik-ds@0.18.0 + - @navikt/sif-common-soknad-ds@7.1.0 + - @navikt/sif-common-forms-ds@6.1.0 + - @navikt/sif-common-core-ds@7.1.0 + - @navikt/sif-common-sentry@0.14.0 + - @navikt/sif-common-utils@3.32.0 ## 1.8.1 ### Patch Changes -- 314e473: Restarte søknad dersom bruker kommer i en ugyldig data-situasjon på velkommen søknadsdata +- 314e473: Restarte søknad dersom bruker kommer i en ugyldig data-situasjon på velkommen søknadsdata ## 1.8.0 ### Minor Changes -- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring +- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring ### Patch Changes -- Updated dependencies [cb189915] - - @navikt/sif-common-amplitude@2.13.0 - - @navikt/sif-common-core-ds@7.1.0 - - @navikt/sif-common-formik-ds@0.17.0 - - @navikt/sif-common-forms-ds@7.0.0 - - @navikt/sif-common-sentry@0.13.0 - - @navikt/sif-common-soknad-ds@8.0.0 - - @navikt/sif-common-utils@3.31.0 +- Updated dependencies [cb189915] + - @navikt/sif-common-amplitude@2.13.0 + - @navikt/sif-common-core-ds@7.1.0 + - @navikt/sif-common-formik-ds@0.17.0 + - @navikt/sif-common-forms-ds@7.0.0 + - @navikt/sif-common-sentry@0.13.0 + - @navikt/sif-common-soknad-ds@8.0.0 + - @navikt/sif-common-utils@3.31.0 ## 1.7.3 ### Patch Changes -- 9a2a0a9: API URL endret til service discovery, endret ingress i Q +- 9a2a0a9: API URL endret til service discovery, endret ingress i Q ## 1.7.2 ### Patch Changes -- 0adf41c1: Pakkeoppdateringer -- Updated dependencies [0adf41c1] - - @navikt/sif-common-amplitude@2.12.1 - - @navikt/sif-common-formik-ds@0.16.1 - - @navikt/sif-common-soknad-ds@7.0.1 - - @navikt/sif-common-forms-ds@6.0.1 - - @navikt/sif-common-core-ds@7.0.2 - - @navikt/sif-common-sentry@0.12.1 - - @navikt/sif-common-utils@3.30.1 +- 0adf41c1: Pakkeoppdateringer +- Updated dependencies [0adf41c1] + - @navikt/sif-common-amplitude@2.12.1 + - @navikt/sif-common-formik-ds@0.16.1 + - @navikt/sif-common-soknad-ds@7.0.1 + - @navikt/sif-common-forms-ds@6.0.1 + - @navikt/sif-common-core-ds@7.0.2 + - @navikt/sif-common-sentry@0.12.1 + - @navikt/sif-common-utils@3.30.1 ## 1.7.1 ### Patch Changes -- 74ac4dd: Bugfix - harBekreftetOpplysninger manglet +- 74ac4dd: Bugfix - harBekreftetOpplysninger manglet ## 1.7.0 ### Minor Changes -- 93b8104e: Oppdatere packages +- 93b8104e: Oppdatere packages ### Patch Changes -- Updated dependencies [93b8104e] - - @navikt/sif-common-amplitude@2.12.0 - - @navikt/sif-common-formik-ds@0.16.0 - - @navikt/sif-common-soknad-ds@7.0.0 - - @navikt/sif-common-forms-ds@6.0.0 - - @navikt/sif-common-core-ds@7.0.0 - - @navikt/sif-common-utils@3.29.0 +- Updated dependencies [93b8104e] + - @navikt/sif-common-amplitude@2.12.0 + - @navikt/sif-common-formik-ds@0.16.0 + - @navikt/sif-common-soknad-ds@7.0.0 + - @navikt/sif-common-forms-ds@6.0.0 + - @navikt/sif-common-core-ds@7.0.0 + - @navikt/sif-common-utils@3.29.0 ## 1.6.0 ### Minor Changes -- ca33226c: Oppdatere pakker +- ca33226c: Oppdatere pakker ### Patch Changes -- Updated dependencies [ca33226c] - - @navikt/sif-common-amplitude@2.11.0 - - @navikt/sif-common-formik-ds@0.14.0 - - @navikt/sif-common-soknad-ds@7.0.0 - - @navikt/sif-common-forms-ds@5.0.0 - - @navikt/sif-common-core-ds@7.0.0 - - @navikt/sif-common-sentry@0.12.0 - - @navikt/sif-common-utils@3.27.0 +- Updated dependencies [ca33226c] + - @navikt/sif-common-amplitude@2.11.0 + - @navikt/sif-common-formik-ds@0.14.0 + - @navikt/sif-common-soknad-ds@7.0.0 + - @navikt/sif-common-forms-ds@5.0.0 + - @navikt/sif-common-core-ds@7.0.0 + - @navikt/sif-common-sentry@0.12.0 + - @navikt/sif-common-utils@3.27.0 ## 1.5.0 ### Minor Changes -- 908bb770: Pakkeoppdateringer +- 908bb770: Pakkeoppdateringer ### Patch Changes -- Updated dependencies [908bb770] - - @navikt/sif-common-amplitude@2.10.0 - - @navikt/sif-common-formik-ds@0.12.0 - - @navikt/sif-common-soknad-ds@7.0.0 - - @navikt/sif-common-forms-ds@5.0.0 - - @navikt/sif-common-core-ds@6.1.0 - - @navikt/sif-common-sentry@0.11.0 - - @navikt/sif-common-utils@3.25.0 +- Updated dependencies [908bb770] + - @navikt/sif-common-amplitude@2.10.0 + - @navikt/sif-common-formik-ds@0.12.0 + - @navikt/sif-common-soknad-ds@7.0.0 + - @navikt/sif-common-forms-ds@5.0.0 + - @navikt/sif-common-core-ds@6.1.0 + - @navikt/sif-common-sentry@0.11.0 + - @navikt/sif-common-utils@3.25.0 ## 1.4.5 ### Patch Changes -- ecd4b4f: Pakkeoppdateringer -- f033a9b: Patch-oppdatering av ds pakker -- Updated dependencies [ecd4b4f] -- Updated dependencies [f033a9b] - - @navikt/sif-common-amplitude@2.9.3 - - @navikt/sif-common-formik-ds@0.11.5 - - @navikt/sif-common-soknad-ds@6.0.3 - - @navikt/sif-common-forms-ds@4.0.3 - - @navikt/sif-common-core-ds@6.0.4 - - @navikt/sif-common-sentry@0.9.6 +- ecd4b4f: Pakkeoppdateringer +- f033a9b: Patch-oppdatering av ds pakker +- Updated dependencies [ecd4b4f] +- Updated dependencies [f033a9b] + - @navikt/sif-common-amplitude@2.9.3 + - @navikt/sif-common-formik-ds@0.11.5 + - @navikt/sif-common-soknad-ds@6.0.3 + - @navikt/sif-common-forms-ds@4.0.3 + - @navikt/sif-common-core-ds@6.0.4 + - @navikt/sif-common-sentry@0.9.6 ## 1.4.4 ### Patch Changes -- 7637a0b: Oppdatere packages -- Updated dependencies [7637a0b] - - @navikt/sif-common-amplitude@2.9.2 - - @navikt/sif-common-formik-ds@0.11.4 - - @navikt/sif-common-soknad-ds@6.0.2 - - @navikt/sif-common-forms-ds@4.0.2 - - @navikt/sif-common-core-ds@6.0.3 - - @navikt/sif-common-sentry@0.9.5 - - @navikt/sif-common-utils@3.24.1 +- 7637a0b: Oppdatere packages +- Updated dependencies [7637a0b] + - @navikt/sif-common-amplitude@2.9.2 + - @navikt/sif-common-formik-ds@0.11.4 + - @navikt/sif-common-soknad-ds@6.0.2 + - @navikt/sif-common-forms-ds@4.0.2 + - @navikt/sif-common-core-ds@6.0.3 + - @navikt/sif-common-sentry@0.9.5 + - @navikt/sif-common-utils@3.24.1 ## 1.4.3 ### Patch Changes -- Utvide med 401 ignore i sentry +- Utvide med 401 ignore i sentry ## 1.4.2 ### Patch Changes -- 7c6db10: Pakkeoppdateringer -- Updated dependencies [7c6db10] - - @navikt/sif-common-formik-ds@0.11.2 - - @navikt/sif-common-soknad-ds@6.0.1 - - @navikt/sif-common-forms-ds@4.0.1 - - @navikt/sif-common-core-ds@6.0.1 +- 7c6db10: Pakkeoppdateringer +- Updated dependencies [7c6db10] + - @navikt/sif-common-formik-ds@0.11.2 + - @navikt/sif-common-soknad-ds@6.0.1 + - @navikt/sif-common-forms-ds@4.0.1 + - @navikt/sif-common-core-ds@6.0.1 ## 1.4.1 ### Patch Changes -- dde26c4: Oppdatere packageversjoner -- Updated dependencies [dde26c4] - - @navikt/sif-common-amplitude@2.9.1 - - @navikt/sif-common-formik-ds@0.11.1 - - @navikt/sif-common-soknad-ds@6.0.0 - - @navikt/sif-common-forms-ds@4.0.0 - - @navikt/sif-common-core-ds@6.0.0 - - @navikt/sif-common-sentry@0.8.1 - - @navikt/sif-common-utils@3.23.1 +- dde26c4: Oppdatere packageversjoner +- Updated dependencies [dde26c4] + - @navikt/sif-common-amplitude@2.9.1 + - @navikt/sif-common-formik-ds@0.11.1 + - @navikt/sif-common-soknad-ds@6.0.0 + - @navikt/sif-common-forms-ds@4.0.0 + - @navikt/sif-common-core-ds@6.0.0 + - @navikt/sif-common-sentry@0.8.1 + - @navikt/sif-common-utils@3.23.1 ## 1.4.0 ### Minor Changes -- e6c5ea70: Oppdatere packages, inkludert major på axios +- e6c5ea70: Oppdatere packages, inkludert major på axios ### Patch Changes -- Updated dependencies [e6c5ea70] - - @navikt/sif-common-amplitude@2.9.0 - - @navikt/sif-common-formik-ds@0.11.0 - - @navikt/sif-common-soknad-ds@6.0.0 - - @navikt/sif-common-forms-ds@4.0.0 - - @navikt/sif-common-core-ds@6.0.0 - - @navikt/sif-common-sentry@0.8.0 - - @navikt/sif-common-utils@3.23.0 +- Updated dependencies [e6c5ea70] + - @navikt/sif-common-amplitude@2.9.0 + - @navikt/sif-common-formik-ds@0.11.0 + - @navikt/sif-common-soknad-ds@6.0.0 + - @navikt/sif-common-forms-ds@4.0.0 + - @navikt/sif-common-core-ds@6.0.0 + - @navikt/sif-common-sentry@0.8.0 + - @navikt/sif-common-utils@3.23.0 ## 1.3.0 ### Minor Changes -- bfc208e7: Legge til GitSha ved innsending av søknader i alle apper +- bfc208e7: Legge til GitSha ved innsending av søknader i alle apper ### Patch Changes -- Updated dependencies [ac7641bf] -- Updated dependencies [bfc208e7] - - @navikt/sif-common-core-ds@5.6.0 - - @navikt/sif-common-forms-ds@4.0.0 +- Updated dependencies [ac7641bf] +- Updated dependencies [bfc208e7] + - @navikt/sif-common-core-ds@5.6.0 + - @navikt/sif-common-forms-ds@4.0.0 ## 1.2.2 ### Patch Changes -- 2dcaa07: La til headers ved alle førespørsel, ryddet opp i api-mock +- 2dcaa07: La til headers ved alle førespørsel, ryddet opp i api-mock ## 1.2.1 ### Patch Changes -- 0affc56: Bugfix for om steget delt bosted skal vises. Viser nå ikke steget når relasjon er fosterforelder. +- 0affc56: Bugfix for om steget delt bosted skal vises. Viser nå ikke steget når relasjon er fosterforelder. ## 1.2.0 ### Minor Changes -- 10f034bd: Forbedre oppstart av applikasjon og håndtering av 401 - bruker ikke logget inn. +- 10f034bd: Forbedre oppstart av applikasjon og håndtering av 401 - bruker ikke logget inn. ### Patch Changes -- 41408691: Pakkeoppdateringer -- Updated dependencies [41408691] -- Updated dependencies [10f034bd] -- Updated dependencies [4e110301] -- Updated dependencies [4325d8dc] - - @navikt/sif-common-amplitude@2.7.3 - - @navikt/sif-common-sentry@0.6.2 - - @navikt/sif-common-core-ds@5.4.0 - - @navikt/sif-common-utils@3.21.0 - - @navikt/sif-common-forms-ds@4.0.0 +- 41408691: Pakkeoppdateringer +- Updated dependencies [41408691] +- Updated dependencies [10f034bd] +- Updated dependencies [4e110301] +- Updated dependencies [4325d8dc] + - @navikt/sif-common-amplitude@2.7.3 + - @navikt/sif-common-sentry@0.6.2 + - @navikt/sif-common-core-ds@5.4.0 + - @navikt/sif-common-utils@3.21.0 + - @navikt/sif-common-forms-ds@4.0.0 ## 1.1.2 ### Patch Changes -- bfd9a33: Oppdatere pakker -- Updated dependencies [bfd9a33] - - @navikt/sif-common-amplitude@2.7.2 - - @navikt/sif-common-formik-ds@0.9.6 - - @navikt/sif-common-soknad-ds@5.3.7 - - @navikt/sif-common-forms-ds@3.3.4 - - @navikt/sif-common-core-ds@5.3.5 - - @navikt/sif-common-sentry@0.6.1 +- bfd9a33: Oppdatere pakker +- Updated dependencies [bfd9a33] + - @navikt/sif-common-amplitude@2.7.2 + - @navikt/sif-common-formik-ds@0.9.6 + - @navikt/sif-common-soknad-ds@5.3.7 + - @navikt/sif-common-forms-ds@3.3.4 + - @navikt/sif-common-core-ds@5.3.5 + - @navikt/sif-common-sentry@0.6.1 ## 1.1.1 ### Patch Changes -- ef582422: Justere logging til sentry -- Updated dependencies [09be8e05] - - @navikt/sif-common-utils@3.20.0 +- ef582422: Justere logging til sentry +- Updated dependencies [09be8e05] + - @navikt/sif-common-utils@3.20.0 ## 1.1.0 ### Minor Changes -- 3319f51: Utvide med å la bruker selv kunne slette mellomlagring fra feilside. Bugfix dersom bruker ikke har barn - dette var ikke håndtert ordentlig. - Noe feilretting på sync av vedlegg som lastes opp/slettes/feiler under opplasting og søknadsstate. Kunne medføre feil ved innsending. +- 3319f51: Utvide med å la bruker selv kunne slette mellomlagring fra feilside. Bugfix dersom bruker ikke har barn - dette var ikke håndtert ordentlig. + Noe feilretting på sync av vedlegg som lastes opp/slettes/feiler under opplasting og søknadsstate. Kunne medføre feil ved innsending. ### Patch Changes -- Updated dependencies [0c76e9d] -- Updated dependencies [b166e48] -- Updated dependencies [b166e48] - - @navikt/sif-common-utils@3.19.0 - - @navikt/sif-common-core-ds@5.3.4 +- Updated dependencies [0c76e9d] +- Updated dependencies [b166e48] +- Updated dependencies [b166e48] + - @navikt/sif-common-utils@3.19.0 + - @navikt/sif-common-core-ds@5.3.4 ## 1.0.3 ### Patch Changes -- 4afefff: Oppdatere pakker -- Updated dependencies [4afefff] - - @navikt/sif-common-amplitude@2.7.1 - - @navikt/sif-common-formik-ds@0.9.4 - - @navikt/sif-common-soknad-ds@5.3.5 - - @navikt/sif-common-forms-ds@3.3.3 - - @navikt/sif-common-core-ds@5.3.3 - - @navikt/sif-common-utils@3.18.2 +- 4afefff: Oppdatere pakker +- Updated dependencies [4afefff] + - @navikt/sif-common-amplitude@2.7.1 + - @navikt/sif-common-formik-ds@0.9.4 + - @navikt/sif-common-soknad-ds@5.3.5 + - @navikt/sif-common-forms-ds@3.3.3 + - @navikt/sif-common-core-ds@5.3.3 + - @navikt/sif-common-utils@3.18.2 ## 1.0.2 ### Patch Changes -- 3e5b7c76: Oppdatert logging til amplitude + noe bugfix +- 3e5b7c76: Oppdatert logging til amplitude + noe bugfix ## 1.0.1 ### Patch Changes -- 9147d2a3: Bugfix - visning av vedlegg i søknaden -- 0f5a8918: Legge til manglende intl-key -- Updated dependencies [0f5a8918] - - @navikt/sif-common-soknad-ds@5.3.4 +- 9147d2a3: Bugfix - visning av vedlegg i søknaden +- 0f5a8918: Legge til manglende intl-key +- Updated dependencies [0f5a8918] + - @navikt/sif-common-soknad-ds@5.3.4 ## 1.0.0 ### Major Changes -- Omsorgspengesøknad med nytt designsystem. +- Omsorgspengesøknad med nytt designsystem. ## 0.2.2 ### Patch Changes -- af051b61: Diverse pakkeoppdateringer -- Updated dependencies [af051b61] - - @navikt/sif-common-amplitude@2.6.6 - - @navikt/sif-common-formik-ds@0.9.3 - - @navikt/sif-common-soknad-ds@5.3.3 - - @navikt/sif-common-forms-ds@3.3.2 - - @navikt/sif-common-core-ds@5.3.2 - - @navikt/sif-common-sentry@0.5.6 +- af051b61: Diverse pakkeoppdateringer +- Updated dependencies [af051b61] + - @navikt/sif-common-amplitude@2.6.6 + - @navikt/sif-common-formik-ds@0.9.3 + - @navikt/sif-common-soknad-ds@5.3.3 + - @navikt/sif-common-forms-ds@3.3.2 + - @navikt/sif-common-core-ds@5.3.2 + - @navikt/sif-common-sentry@0.5.6 ## 0.2.1 ### Patch Changes -- e1997dd: Pakkeoppdateringer -- Updated dependencies [e1997dd] - - @navikt/sif-common-amplitude@2.6.5 - - @navikt/sif-common-formik-ds@0.9.2 - - @navikt/sif-common-soknad-ds@5.3.2 - - @navikt/sif-common-forms-ds@3.3.1 - - @navikt/sif-common-core-ds@5.3.1 - - @navikt/sif-common-sentry@0.5.5 - - @navikt/sif-common-utils@3.18.1 +- e1997dd: Pakkeoppdateringer +- Updated dependencies [e1997dd] + - @navikt/sif-common-amplitude@2.6.5 + - @navikt/sif-common-formik-ds@0.9.2 + - @navikt/sif-common-soknad-ds@5.3.2 + - @navikt/sif-common-forms-ds@3.3.1 + - @navikt/sif-common-core-ds@5.3.1 + - @navikt/sif-common-sentry@0.5.5 + - @navikt/sif-common-utils@3.18.1 ## 0.2.0 ### Minor Changes -- 1492b0a: Endre unknownRoute feilmelding +- 1492b0a: Endre unknownRoute feilmelding ### Patch Changes -- Updated dependencies [1492b0a] - - @navikt/sif-common-soknad-ds@5.3.0 +- Updated dependencies [1492b0a] + - @navikt/sif-common-soknad-ds@5.3.0 ## 0.1.0 ### Minor Changes -- 451fef8: Legge til sjekk som gjør at bruker sendes til publicPath dersom en kommer til root (/) +- 451fef8: Legge til sjekk som gjør at bruker sendes til publicPath dersom en kommer til root (/) ### Patch Changes -- Updated dependencies [451fef8] - - @navikt/sif-common-soknad-ds@5.2.0 +- Updated dependencies [451fef8] + - @navikt/sif-common-soknad-ds@5.2.0 ## 0.0.4 ### Patch Changes -- 225b95e: DurationText komponent + oppdatert endringsdialog -- dd0a865: I hovedsak utvikling av endringsdialog, men noen endringer på fellespakker, f.eks. desimaltid i sif-common-utils -- 5101688: Oppdaterte pakker -- 5101688: Oppdatere pakker -- d99ac0a: Pakkeoppdateringer - objec-hash, uuid -- Updated dependencies [225b95e] -- Updated dependencies [dd0a865] -- Updated dependencies [5101688] -- Updated dependencies [5101688] -- Updated dependencies [d99ac0a] - - @navikt/sif-common-core-ds@5.3.0 - - @navikt/sif-common-amplitude@2.6.4 - - @navikt/sif-common-formik-ds@0.9.1 - - @navikt/sif-common-forms-ds@4.0.0 - - @navikt/sif-common-sentry@0.5.4 - - @navikt/sif-common-soknad-ds@5.1.3 - - @navikt/sif-common-utils@3.18.0 +- 225b95e: DurationText komponent + oppdatert endringsdialog +- dd0a865: I hovedsak utvikling av endringsdialog, men noen endringer på fellespakker, f.eks. desimaltid i sif-common-utils +- 5101688: Oppdaterte pakker +- 5101688: Oppdatere pakker +- d99ac0a: Pakkeoppdateringer - objec-hash, uuid +- Updated dependencies [225b95e] +- Updated dependencies [dd0a865] +- Updated dependencies [5101688] +- Updated dependencies [5101688] +- Updated dependencies [d99ac0a] + - @navikt/sif-common-core-ds@5.3.0 + - @navikt/sif-common-amplitude@2.6.4 + - @navikt/sif-common-formik-ds@0.9.1 + - @navikt/sif-common-forms-ds@4.0.0 + - @navikt/sif-common-sentry@0.5.4 + - @navikt/sif-common-soknad-ds@5.1.3 + - @navikt/sif-common-utils@3.18.0 ## 0.0.3 ### Patch Changes -- 1faa7ad: Oppdatering av velkommensider og nye felles komponenter -- Updated dependencies [1faa7ad] - - @navikt/sif-common-core-ds@5.2.2 - - @navikt/sif-common-soknad-ds@5.1.2 +- 1faa7ad: Oppdatering av velkommensider og nye felles komponenter +- Updated dependencies [1faa7ad] + - @navikt/sif-common-core-ds@5.2.2 + - @navikt/sif-common-soknad-ds@5.1.2 diff --git a/apps/omsorgspengesoknad/Dockerfile b/apps/omsorgspengesoknad/Dockerfile index d6b6cbd8bf..8a3f62367a 100644 --- a/apps/omsorgspengesoknad/Dockerfile +++ b/apps/omsorgspengesoknad/Dockerfile @@ -14,7 +14,7 @@ COPY . . RUN yarn RUN yarn turbo run build-app --filter=${SCOPE} -FROM pruner AS server +FROM gcr.io/distroless/nodejs18-debian11:nonroot WORKDIR /apps/omsorgspengesoknad COPY --from=pruner /app/node_modules ./node_modules/ COPY --from=pruner /app/apps/omsorgspengesoknad/server.cjs . @@ -25,4 +25,4 @@ COPY --from=pruner /app/apps/omsorgspengesoknad/src/build/AppSettings.cjs ./src/ COPY --from=pruner /app/apps/omsorgspengesoknad/dist ./dist EXPOSE 8080 -CMD ["yarn","--cwd", "apps/omsorgspengesoknad", "start-express"] +CMD ["server.cjs"] diff --git "a/apps/omsorgspengesoknad/e2e/playwright/tests/fylle-ut-s\303\270knad-med-annet-barn.spec.ts" "b/apps/omsorgspengesoknad/e2e/playwright/tests/fylle-ut-s\303\270knad-med-annet-barn.spec.ts" index a6443559fe..407c402291 100644 --- "a/apps/omsorgspengesoknad/e2e/playwright/tests/fylle-ut-s\303\270knad-med-annet-barn.spec.ts" +++ "b/apps/omsorgspengesoknad/e2e/playwright/tests/fylle-ut-s\303\270knad-med-annet-barn.spec.ts" @@ -42,12 +42,8 @@ test('Fyll ut søknad med annet barn', async ({ page }) => { /** Legeerklæring */ await page.getByRole('heading', { level: 1, name: 'Legeerklæring' }); - await page.getByRole('button', { name: 'Last opp legeerklæringen' }).click(); - await page - .getByLabel('OpplastingsikonLast opp legeerklæringen') - .setInputFiles('./e2e/playwright/files/navlogopng.png'); + await page.locator('input[name="vedlegg"]').setInputFiles('./e2e/playwright/files/navlogopng.png'); await expect(await page.getByText('Fjern vedlegg').count()).toEqual(1); - await page.getByRole('button', { name: 'Neste', exact: true }).click(); /** Oppsummering */ diff --git "a/apps/omsorgspengesoknad/e2e/playwright/tests/fylle-ut-s\303\270knad-med-ikke-delt-bosted.spec.ts" "b/apps/omsorgspengesoknad/e2e/playwright/tests/fylle-ut-s\303\270knad-med-ikke-delt-bosted.spec.ts" index 2a89a1e752..a7081aa560 100644 --- "a/apps/omsorgspengesoknad/e2e/playwright/tests/fylle-ut-s\303\270knad-med-ikke-delt-bosted.spec.ts" +++ "b/apps/omsorgspengesoknad/e2e/playwright/tests/fylle-ut-s\303\270knad-med-ikke-delt-bosted.spec.ts" @@ -33,17 +33,13 @@ test('Fyll ut søknad med ikke delt bosted', async ({ page }) => { /** Legeerklæring */ await page.getByRole('heading', { level: 1, name: 'Legeerklæring' }); - await page.getByRole('button', { name: 'Last opp legeerklæringen' }).click(); - await page - .getByLabel('OpplastingsikonLast opp legeerklæringen') - .setInputFiles('./e2e/playwright/files/navlogopng.png'); + await page.locator('input[name="vedlegg"]').setInputFiles('./e2e/playwright/files/navlogopng.png'); await expect(await page.getByText('Fjern vedlegg').count()).toEqual(1); await page.getByRole('button', { name: 'Neste', exact: true }).click(); - /** Legeerklæring */ + /** Delt bosted */ await page.getByRole('heading', { level: 1, name: 'Delt bosted' }); - await page.getByRole('button', { name: 'Last opp avtalen' }).click(); - await page.getByLabel('OpplastingsikonLast opp avtalen').setInputFiles('./e2e/playwright/files/avtale.png'); + await page.locator('input[name="samværsavtale"]').setInputFiles('./e2e/playwright/files/avtale.png'); await expect(await page.getByText('Fjern vedlegg').count()).toEqual(1); await page.getByRole('button', { name: 'Neste', exact: true }).click(); diff --git "a/apps/omsorgspengesoknad/e2e/playwright/tests/fylle-ut-s\303\270knad-med-registrert-barn.spec.ts" "b/apps/omsorgspengesoknad/e2e/playwright/tests/fylle-ut-s\303\270knad-med-registrert-barn.spec.ts" index 9c57b9ca61..0dc7ae9098 100644 --- "a/apps/omsorgspengesoknad/e2e/playwright/tests/fylle-ut-s\303\270knad-med-registrert-barn.spec.ts" +++ "b/apps/omsorgspengesoknad/e2e/playwright/tests/fylle-ut-s\303\270knad-med-registrert-barn.spec.ts" @@ -33,12 +33,8 @@ test('Fyll ut søknad med registrert barn', async ({ page }) => { /** Legeerklæring */ await page.getByRole('heading', { level: 1, name: 'Legeerklæring' }); - await page.getByRole('button', { name: 'Last opp legeerklæringen' }).click(); - await page - .getByLabel('OpplastingsikonLast opp legeerklæringen') - .setInputFiles('./e2e/playwright/files/navlogopng.png'); + await page.locator('input[name="vedlegg"]').setInputFiles('./e2e/playwright/files/navlogopng.png'); await expect(await page.getByText('Fjern vedlegg').count()).toEqual(1); - await page.getByRole('button', { name: 'Neste', exact: true }).click(); /** Oppsummering */ diff --git a/apps/omsorgspengesoknad/nais/dev-gcp.json b/apps/omsorgspengesoknad/nais/dev-gcp.json index b88fdf7012..4d7cc03f50 100644 --- a/apps/omsorgspengesoknad/nais/dev-gcp.json +++ b/apps/omsorgspengesoknad/nais/dev-gcp.json @@ -5,8 +5,11 @@ "livenessPath": "/familie/sykdom-i-familien/soknad/omsorgspenger/health/isAlive", "readinessPath": "/familie/sykdom-i-familien/soknad/omsorgspenger/health/isReady", "externalHosts": ["www.nav.no", "dekoratoren.ekstern.dev.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], "ingresses": ["https://omsorgspengesoknad.intern.dev.nav.no"], "cluster": "dev-gcp", + "minReplicas": 1, + "maxReplicas": 1, "env": { "API_TOKENX_AUDIENCE": "dev-gcp:dusseldorf:k9-brukerdialog-api", "API_URL": "http://k9-brukerdialog-api", diff --git a/apps/omsorgspengesoknad/nais/prod-gcp.json b/apps/omsorgspengesoknad/nais/prod-gcp.json index fdb92e91a4..d0b38667a3 100644 --- a/apps/omsorgspengesoknad/nais/prod-gcp.json +++ b/apps/omsorgspengesoknad/nais/prod-gcp.json @@ -5,8 +5,11 @@ "livenessPath": "/familie/sykdom-i-familien/soknad/omsorgspenger/health/isAlive", "readinessPath": "/familie/sykdom-i-familien/soknad/omsorgspenger/health/isReady", "externalHosts": ["www.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], "ingresses": ["https://www.nav.no/familie/sykdom-i-familien/soknad/omsorgspenger"], "cluster": "prod-gcp", + "minReplicas": 2, + "maxReplicas": 2, "env": { "API_TOKENX_AUDIENCE": "prod-gcp:dusseldorf:k9-brukerdialog-api", "API_URL": "http://k9-brukerdialog-api", diff --git a/apps/omsorgspengesoknad/package.json b/apps/omsorgspengesoknad/package.json index 42bf132d7e..c0935109da 100644 --- a/apps/omsorgspengesoknad/package.json +++ b/apps/omsorgspengesoknad/package.json @@ -4,14 +4,14 @@ "license": "MIT", "name": "@navikt/omsorgspengesoknad", "repository": "https://github.com/navikt/sif-brukerdialog", - "version": "1.19.18", + "version": "1.24.3", "private": true, "type": "module", "dependencies": { - "@navikt/ds-css": "5.10.1", + "@navikt/ds-css": "5.11.4", "@navikt/ds-icons": "3.4.3", - "@navikt/ds-react": "5.10.1", - "@navikt/ds-tailwind": "5.10.1", + "@navikt/ds-react": "5.11.4", + "@navikt/ds-tailwind": "5.11.4", "@navikt/sif-app-register": "workspace:*", "@navikt/sif-common-amplitude": "workspace:*", "@navikt/sif-common-core-ds": "workspace:*", @@ -21,9 +21,9 @@ "@navikt/sif-common-sentry": "workspace:*", "@navikt/sif-common-soknad-ds": "workspace:*", "@navikt/sif-common-utils": "workspace:*", - "@testing-library/react": "14.1.0", - "@vitejs/plugin-react": "4.1.1", - "axios": "1.6.1", + "@testing-library/react": "14.1.2", + "@vitejs/plugin-react": "4.2.1", + "axios": "1.6.2", "busboy": "1.6.0", "compression": "1.7.4", "cookie-parser": "1.4.6", @@ -32,72 +32,48 @@ "express": "4.18.2", "formik": "2.4.5", "helmet": "7.1.0", - "history": "5.3.0", "http-proxy-middleware": "2.0.6", - "jose": "5.1.0", + "jose": "5.1.3", "lodash": "4.17.21", "mustache-express": "1.3.2", "object-hash": "3.0.0", "openid-client": "5.6.1", - "promise": "8.3.0", "react": "18.2.0", "react-dom": "18.2.0", "react-fast-compare": "3.2.2", - "react-intl": "6.5.4", - "react-router-dom": "6.18.0", - "vite": "4.5.0", + "react-intl": "6.5.5", + "react-router-dom": "6.20.1", + "vite": "5.0.7", "vite-plugin-checker": "0.6.2" }, "devDependencies": { - "@axe-core/playwright": "4.8.1", - "@babel/core": "7.23.3", - "@babel/preset-env": "7.23.3", + "@axe-core/playwright": "4.8.2", + "@babel/core": "7.23.5", + "@babel/preset-env": "7.23.5", "@babel/preset-react": "7.23.3", "@babel/preset-typescript": "7.23.3", - "@playwright/test": "^1.39.0", - "@storybook/addon-actions": "7.5.3", - "@storybook/addon-essentials": "7.5.3", - "@storybook/addon-interactions": "7.5.3", - "@storybook/addon-links": "7.5.3", - "@storybook/builder-webpack5": "7.5.3", - "@storybook/manager-webpack5": "6.5.16", - "@storybook/node-logger": "7.5.3", - "@storybook/preset-create-react-app": "7.5.3", - "@storybook/react": "7.5.3", + "@playwright/test": "1.40.1", + "@storybook/addon-actions": "7.6.4", + "@storybook/addon-essentials": "7.6.4", + "@storybook/addon-interactions": "7.6.4", + "@storybook/addon-links": "7.6.4", + "@storybook/node-logger": "7.6.4", + "@storybook/preset-create-react-app": "7.6.4", + "@storybook/react": "7.6.4", "@storybook/testing-library": "0.2.2", - "@types/jest": "29.5.8", "@types/object-hash": "3.0.6", - "@types/react": "18.2.37", - "@types/react-dom": "18.2.15", + "@types/react": "18.2.43", + "@types/react-dom": "18.2.17", "@types/react-router-dom": "5.3.3", "axe-core": "4.8.2", "babel-polyfill": "6.26.0", - "case-sensitive-paths-webpack-plugin": "2.4.0", "cross-env": "7.0.3", - "css-loader": "6.8.1", - "express-rate-limit": "7.1.4", - "html-webpack-harddisk-plugin": "2.0.0", - "html-webpack-plugin": "5.5.3", - "jsdom": "22.1.0", - "mini-css-extract-plugin": "2.7.6", - "postcss": "8.4.31", - "postcss-loader": "7.3.3", - "react-scripts": "5.0.1", - "sass": "1.69.5", - "sass-loader": "13.3.2", - "source-map-loader": "4.0.1", - "start-server-and-test": "2.0.2", - "storybook": "7.5.3", - "style-loader": "3.3.3", - "ts-loader": "9.5.0", - "typescript": "5.2.2", - "webpack": "5.89.0", - "webpack-dev-server": "4.15.1" - }, - "jest": { - "transformIgnorePatterns": [ - "node_modules/(?!(@navikt)).*\\.js$" - ] + "express-rate-limit": "7.1.5", + "jsdom": "23.0.1", + "postcss": "8.4.32", + "storybook": "7.6.4", + "typescript": "5.3.3", + "vitest": "1.0.4" }, "scripts": { "build-app": "vite build --base=/familie/sykdom-i-familien/soknad/omsorgspenger", @@ -109,12 +85,11 @@ "e2e": "playwright test", "lint": "eslint ./src --ext ts,tsx", "playwright-test": "playwright test", - "snd": "cross-env NODE_ENV=development node ./server.cjs", + "dev": "cross-env NODE_ENV=development node ./server.cjs", "start-e2e-server": "node ./server-e2e.cjs", "start-express": "node ./server.cjs", "storybook": "storybook dev -p 6006 -s public", - "test-watch": "react-scripts test --watchAll=true --env=jsdom", - "test": "react-scripts test --watchAll=false --env=jsdom" + "test": "vitest" }, "eslintConfig": { "overrides": [ @@ -127,8 +102,5 @@ } } ] - }, - "resolutions": { - "babel-core": "7.0.0-bridge.0" } } diff --git a/apps/omsorgspengesoknad/src/app/components/formik-file-uploader/FormikFileUploader.tsx b/apps/omsorgspengesoknad/src/app/components/formik-file-uploader/FormikFileUploader.tsx deleted file mode 100644 index 49ffaf7f8e..0000000000 --- a/apps/omsorgspengesoknad/src/app/components/formik-file-uploader/FormikFileUploader.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { Attachment } from '@navikt/sif-common-core-ds/lib/types/Attachment'; -import { VALID_EXTENSIONS } from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; -import { FormikFileInput, TypedFormInputValidationProps, ValidationError } from '@navikt/sif-common-formik-ds/lib'; -import { ApiEndpoint } from '../../api/api'; -import { useFormikFileUploader } from './useFormikFileUploader'; - -interface Props extends TypedFormInputValidationProps { - attachments: Attachment[]; - name: string; - legend?: string; - buttonLabel: string; - apiEndpoint: ApiEndpoint; - onFileInputClick?: () => void; - onErrorUploadingAttachments: (files: File[]) => void; - onUnauthorizedOrForbiddenUpload: () => void; -} - -function FormikFileUploader({ - attachments, - name, - legend, - apiEndpoint, - onFileInputClick, - onErrorUploadingAttachments, - onUnauthorizedOrForbiddenUpload, - - ...otherProps -}: Props) { - const { onFilesSelect } = useFormikFileUploader({ - apiEndpoint, - onUnauthorizedOrForbiddenUpload, - onErrorUploadingAttachments, - value: attachments, - }); - - return ( - - ); -} - -export default FormikFileUploader; diff --git a/apps/omsorgspengesoknad/src/app/components/formik-file-uploader/useFormikFileUploader.ts b/apps/omsorgspengesoknad/src/app/components/formik-file-uploader/useFormikFileUploader.ts deleted file mode 100644 index 0e29ce9ac4..0000000000 --- a/apps/omsorgspengesoknad/src/app/components/formik-file-uploader/useFormikFileUploader.ts +++ /dev/null @@ -1,125 +0,0 @@ -import { isForbidden, isUnauthorized } from '@navikt/sif-common-core-ds/lib/utils/apiUtils'; -import { - attachmentShouldBeProcessed, - attachmentShouldBeUploaded, - attachmentUploadHasFailed, - getPendingAttachmentFromFile, - isFileObject, - mapFileToPersistedFile, -} from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; -import { ArrayHelpers } from 'formik'; -import api, { ApiEndpoint } from '../../api/api'; -import { getAttachmentURLFrontend } from '../../utils/attachmentUtils'; - -export interface PersistedFile { - isPersistedFile: boolean; - name: string; - lastModified: number; - size: number; - type: string; -} - -export interface Attachment { - file: File | PersistedFile; - pending: boolean; - uploaded: boolean; - url?: string; -} - -export type FieldArrayReplaceFn = (index: number, value: any) => void; -export type FieldArrayPushFn = (obj: any) => void; -export type FieldArrayRemoveFn = (index: number) => undefined; - -export const useFormikFileUploader = ({ - value, - apiEndpoint, - onErrorUploadingAttachments, - onUnauthorizedOrForbiddenUpload, -}: { - value: Attachment[]; - apiEndpoint: ApiEndpoint; - onUnauthorizedOrForbiddenUpload: () => void; - onErrorUploadingAttachments: (files: File[]) => void; -}) => { - async function uploadAttachment(attachment: Attachment) { - const { file } = attachment; - if (isFileObject(file)) { - try { - const response = await api.uploadFile(apiEndpoint, file); - attachment = setAttachmentPendingToFalse(attachment); - attachment.url = getAttachmentURLFrontend(response.headers.location); - attachment.uploaded = true; - } catch (error) { - if (isForbidden(error) || isUnauthorized(error)) { - onUnauthorizedOrForbiddenUpload(); - } - setAttachmentPendingToFalse(attachment); - } - } - } - - async function uploadAttachments(allAttachments: Attachment[], replaceFn: FieldArrayReplaceFn) { - const attachmentsToProcess = findAttachmentsToProcess(allAttachments); - const attachmentsToUpload = findAttachmentsToUpload(attachmentsToProcess); - const attachmentsNotToUpload = attachmentsToProcess.filter((el) => !attachmentsToUpload.includes(el)); - - for (const attachment of attachmentsToUpload) { - await uploadAttachment(attachment); - updateAttachmentListElement(allAttachments, attachment, replaceFn); - } - - const failedAttachments = [...attachmentsNotToUpload, ...attachmentsToUpload.filter(attachmentUploadHasFailed)]; - updateFailedAttachments(allAttachments, failedAttachments, replaceFn); - } - - function updateFailedAttachments( - allAttachments: Attachment[], - failedAttachments: Attachment[], - replaceFn: FieldArrayReplaceFn, - ) { - failedAttachments.forEach((attachment) => { - attachment = setAttachmentPendingToFalse(attachment); - updateAttachmentListElement(allAttachments, attachment, replaceFn); - }); - const failedFiles: File[] = failedAttachments - .map(({ file }) => file) - .filter((f: File | PersistedFile) => isFileObject(f)) as File[]; - - onErrorUploadingAttachments(failedFiles); - } - - function findAttachmentsToProcess(attachments: Attachment[]): Attachment[] { - return attachments.filter(attachmentShouldBeProcessed); - } - - function findAttachmentsToUpload(attachments: Attachment[]): Attachment[] { - return attachments.filter(attachmentShouldBeUploaded); - } - - function updateAttachmentListElement( - attachments: Attachment[], - attachment: Attachment, - replaceFn: FieldArrayReplaceFn, - ) { - replaceFn(attachments.indexOf(attachment), { ...attachment, file: mapFileToPersistedFile(attachment.file) }); - } - - function setAttachmentPendingToFalse(attachment: Attachment) { - attachment.pending = false; - return attachment; - } - - function addPendingAttachmentToFieldArray(file: File, pushFn: FieldArrayPushFn) { - const attachment = getPendingAttachmentFromFile(file); - pushFn(attachment); - return attachment; - } - const onFilesSelect = async (files: File[], { push, replace }: ArrayHelpers) => { - const attachments = files.map((file) => addPendingAttachmentToFieldArray(file, push)); - await uploadAttachments([...value, ...attachments], replace); - }; - - return { - onFilesSelect, - }; -}; diff --git "a/apps/omsorgspengesoknad/src/app/s\303\270knad/steps/delt-bosted/DeltBostedForm.tsx" "b/apps/omsorgspengesoknad/src/app/s\303\270knad/steps/delt-bosted/DeltBostedForm.tsx" index 7ac7b53edb..888242b8af 100644 --- "a/apps/omsorgspengesoknad/src/app/s\303\270knad/steps/delt-bosted/DeltBostedForm.tsx" +++ "b/apps/omsorgspengesoknad/src/app/s\303\270knad/steps/delt-bosted/DeltBostedForm.tsx" @@ -1,27 +1,27 @@ import { Alert, Link } from '@navikt/ds-react'; +import React from 'react'; +import { FormattedMessage, useIntl } from 'react-intl'; import Block from '@navikt/sif-common-core-ds/lib/atoms/block/Block'; import FormBlock from '@navikt/sif-common-core-ds/lib/atoms/form-block/FormBlock'; import FileUploadErrors from '@navikt/sif-common-core-ds/lib/components/file-upload-errors/FileUploadErrors'; +import FormikFileUploader from '@navikt/sif-common-core-ds/lib/components/formik-file-uploader/FormikFileUploader'; import PictureScanningGuide from '@navikt/sif-common-core-ds/lib/components/picture-scanning-guide/PictureScanningGuide'; import SifGuidePanel from '@navikt/sif-common-core-ds/lib/components/sif-guide-panel/SifGuidePanel'; import { Attachment } from '@navikt/sif-common-core-ds/lib/types/Attachment'; import { - MAX_TOTAL_ATTACHMENT_SIZE_BYTES, attachmentHasBeenUploaded, getTotalSizeOfAttachments, + MAX_TOTAL_ATTACHMENT_SIZE_BYTES, } from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; import intlHelper from '@navikt/sif-common-core-ds/lib/utils/intlUtils'; -import { ValidationError, ValidationResult, getTypedFormComponents } from '@navikt/sif-common-formik-ds/lib'; +import { getTypedFormComponents, ValidationError, ValidationResult } from '@navikt/sif-common-formik-ds/lib'; import { getListValidator } from '@navikt/sif-common-formik-ds/lib/validation'; import getIntlFormErrorHandler from '@navikt/sif-common-formik-ds/lib/validation/intlFormErrorHandler'; import { validateAll } from '@navikt/sif-common-formik-ds/lib/validation/validationUtils'; -import React from 'react'; -import { FormattedMessage, useIntl } from 'react-intl'; -import { ApiEndpoint } from '../../../api/api'; -import FormikFileUploader from '../../../components/formik-file-uploader/FormikFileUploader'; -import { getUploadedAttachments } from '../../../utils/attachmentUtils'; +import api, { ApiEndpoint } from '../../../api/api'; +import { getAttachmentURLFrontend, getUploadedAttachments } from '../../../utils/attachmentUtils'; import { relocateToLoginPage } from '../../../utils/navigationUtils'; -import { ValidateAttachmentsErrors, validateAttachments } from '../../../utils/validateAttachments'; +import { validateAttachments, ValidateAttachmentsErrors } from '../../../utils/validateAttachments'; import DeltBostedAvtaleAttachmentList from './DeltBostedAvtaleAttachmentList'; interface Props { @@ -92,7 +92,8 @@ const DeltBostedForm: React.FunctionComponent = ({ values, goBack, andreV attachments={samværsavtaleAttachments} name={DeltBostedFormFields.samværsavtale} buttonLabel={intlHelper(intl, 'steg.deltBosted.vedlegg.knappLabel')} - apiEndpoint={ApiEndpoint.vedlegg} + getAttachmentURLFrontend={getAttachmentURLFrontend} + uploadFile={(file) => api.uploadFile(ApiEndpoint.vedlegg, file)} onErrorUploadingAttachments={setFilesThatDidntGetUploaded} onFileInputClick={() => { setFilesThatDidntGetUploaded([]); diff --git "a/apps/omsorgspengesoknad/src/app/s\303\270knad/steps/legeerkl\303\246ring/Legeerkl\303\246ringForm.tsx" "b/apps/omsorgspengesoknad/src/app/s\303\270knad/steps/legeerkl\303\246ring/Legeerkl\303\246ringForm.tsx" index 416042ec26..98f4287acd 100644 --- "a/apps/omsorgspengesoknad/src/app/s\303\270knad/steps/legeerkl\303\246ring/Legeerkl\303\246ringForm.tsx" +++ "b/apps/omsorgspengesoknad/src/app/s\303\270knad/steps/legeerkl\303\246ring/Legeerkl\303\246ringForm.tsx" @@ -1,25 +1,26 @@ import { Alert, Link } from '@navikt/ds-react'; +import React from 'react'; +import { FormattedMessage, useIntl } from 'react-intl'; import Block from '@navikt/sif-common-core-ds/lib/atoms/block/Block'; import FormBlock from '@navikt/sif-common-core-ds/lib/atoms/form-block/FormBlock'; import FileUploadErrors from '@navikt/sif-common-core-ds/lib/components/file-upload-errors/FileUploadErrors'; +import FormikFileUploader from '@navikt/sif-common-core-ds/lib/components/formik-file-uploader/FormikFileUploader'; import PictureScanningGuide from '@navikt/sif-common-core-ds/lib/components/picture-scanning-guide/PictureScanningGuide'; import SifGuidePanel from '@navikt/sif-common-core-ds/lib/components/sif-guide-panel/SifGuidePanel'; import { Attachment } from '@navikt/sif-common-core-ds/lib/types/Attachment'; import { - MAX_TOTAL_ATTACHMENT_SIZE_BYTES, attachmentHasBeenUploaded, getTotalSizeOfAttachments, + MAX_TOTAL_ATTACHMENT_SIZE_BYTES, } from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; import intlHelper from '@navikt/sif-common-core-ds/lib/utils/intlUtils'; -import { ValidationError, ValidationResult, getTypedFormComponents } from '@navikt/sif-common-formik-ds/lib'; +import { getTypedFormComponents, ValidationError, ValidationResult } from '@navikt/sif-common-formik-ds/lib'; import getIntlFormErrorHandler from '@navikt/sif-common-formik-ds/lib/validation/intlFormErrorHandler'; import { validateAll } from '@navikt/sif-common-formik-ds/lib/validation/validationUtils'; -import React from 'react'; -import { FormattedMessage, useIntl } from 'react-intl'; -import { ApiEndpoint } from '../../../api/api'; -import FormikFileUploader from '../../../components/formik-file-uploader/FormikFileUploader'; +import api, { ApiEndpoint } from '../../../api/api'; +import { getAttachmentURLFrontend } from '../../../utils/attachmentUtils'; import { relocateToLoginPage } from '../../../utils/navigationUtils'; -import { ValidateAttachmentsErrors, validateAttachments } from '../../../utils/validateAttachments'; +import { validateAttachments, ValidateAttachmentsErrors } from '../../../utils/validateAttachments'; import LegeerklæringAvtaleAttachmentList from './LegeerklæringAttachmentList'; interface Props { @@ -90,7 +91,8 @@ const LegeerklæringForm: React.FunctionComponent = ({ values, goBack, an attachments={legeerklæringAttachments} name={LegeerklæringFormFields.vedlegg} buttonLabel={intlHelper(intl, 'steg.legeerklaering.vedlegg.knappLabel')} - apiEndpoint={ApiEndpoint.vedlegg} + uploadFile={(file) => api.uploadFile(ApiEndpoint.vedlegg, file)} + getAttachmentURLFrontend={getAttachmentURLFrontend} onErrorUploadingAttachments={setFilesThatDidntGetUploaded} onFileInputClick={() => { setFilesThatDidntGetUploaded([]); diff --git "a/apps/omsorgspengesoknad/src/app/s\303\270knad/steps/om-barnet/__tests__/omBarnetStepUtils.test.ts" "b/apps/omsorgspengesoknad/src/app/s\303\270knad/steps/om-barnet/__tests__/omBarnetStepUtils.test.ts" index af15a712c9..6528a3dba2 100644 --- "a/apps/omsorgspengesoknad/src/app/s\303\270knad/steps/om-barnet/__tests__/omBarnetStepUtils.test.ts" +++ "b/apps/omsorgspengesoknad/src/app/s\303\270knad/steps/om-barnet/__tests__/omBarnetStepUtils.test.ts" @@ -1,49 +1,50 @@ import { getMinDatoForBarnetsFødselsdato, isBarnOver18år } from '../omBarnetStepUtils'; +import { vi } from 'vitest'; describe('isBarnOver18år', () => { it('should return false if the person is 18 years old and today is before April 1 of the following year', () => { - jest.useFakeTimers().setSystemTime(new Date('2023-03-31')); + vi.useFakeTimers().setSystemTime(new Date('2023-03-31')); const fødselsdato = new Date('2004-09-15'); const result = isBarnOver18år(fødselsdato); expect(result).toBe(false); }); it('should return true if the person is 18 years old and today is April 1 or later of the following year', () => { - jest.useFakeTimers().setSystemTime(new Date('2023-04-01')); + vi.useFakeTimers().setSystemTime(new Date('2023-04-01')); const fødselsdato = new Date('2004-09-15'); const result = isBarnOver18år(fødselsdato); expect(result).toBe(true); }); it('should return false if the person is not yet 18 years old Before 1 April', () => { - jest.useFakeTimers().setSystemTime(new Date('2023-03-15')); + vi.useFakeTimers().setSystemTime(new Date('2023-03-15')); const fødselsdato = new Date('2020-01-15'); const result = isBarnOver18år(fødselsdato); expect(result).toBe(false); }); it('should return false if the person is not yet 18 years old After 1 April', () => { - jest.useFakeTimers().setSystemTime(new Date('2023-04-15')); + vi.useFakeTimers().setSystemTime(new Date('2023-04-15')); const fødselsdato = new Date('2020-01-15'); const result = isBarnOver18år(fødselsdato); expect(result).toBe(false); }); it('should return false if the person is not yet 18 years old After 1 April', () => { - jest.useFakeTimers().setSystemTime(new Date('2023-04-15')); + vi.useFakeTimers().setSystemTime(new Date('2023-04-15')); const fødselsdato = new Date('2020-01-15'); const result = isBarnOver18år(fødselsdato); expect(result).toBe(false); }); it('should return false if the person is 18 years old and today is before April 1 (15 Februar) of the following year', () => { - jest.useFakeTimers().setSystemTime(new Date('2024-02-15')); + vi.useFakeTimers().setSystemTime(new Date('2024-02-15')); const fødselsdato = new Date('2005-01-01'); const result = isBarnOver18år(fødselsdato); expect(result).toBe(false); }); - afterAll(() => jest.useRealTimers()); + afterAll(() => vi.useRealTimers()); }); describe('getMinDatoForBarnetsFødselsdato', () => { @@ -53,10 +54,10 @@ describe('getMinDatoForBarnetsFødselsdato', () => { }); test('should return a date 19 years ago before April 1 of the current year', () => { - jest.useFakeTimers().setSystemTime(new Date('2023-03-31')); + vi.useFakeTimers().setSystemTime(new Date('2023-03-31')); const result = getMinDatoForBarnetsFødselsdato(); expect(result.getFullYear()).toBe(2004); // 2023 - 19 }); - afterAll(() => jest.useRealTimers()); + afterAll(() => vi.useRealTimers()); }); diff --git "a/apps/omsorgspengesoknad/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" "b/apps/omsorgspengesoknad/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" index 6c6a0d27a4..295f8ad767 100644 --- "a/apps/omsorgspengesoknad/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" +++ "b/apps/omsorgspengesoknad/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" @@ -1,5 +1,5 @@ +import { Attachment } from '@navikt/sif-common-core-ds/lib/types'; import { attachmentIsUploadedAndIsValidFileFormat } from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; -import { Attachment } from '../../components/formik-file-uploader/useFormikFileUploader'; import { includeDeltBostedStep } from '../../søknad/søknadStepConfig'; import { SøknadApiData } from '../../types/søknadApiData/SøknadApiData'; import { Søknadsdata } from '../../types/søknadsdata/Søknadsdata'; diff --git a/apps/omsorgspengesoknad/vitest.config.ts b/apps/omsorgspengesoknad/vitest.config.ts new file mode 100644 index 0000000000..ec336f5985 --- /dev/null +++ b/apps/omsorgspengesoknad/vitest.config.ts @@ -0,0 +1,13 @@ +/// +/// + +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + exclude: ['./e2e/**/*', './build/**/*', './dist/**/*', '**/*.spec.tsx'], + globals: true, + environment: 'jsdom', + css: false, + }, +}); diff --git a/apps/pleiepenger-i-livets-sluttfase-soknad/CHANGELOG.md b/apps/pleiepenger-i-livets-sluttfase-soknad/CHANGELOG.md index b32054e1bb..717c5643ec 100644 --- a/apps/pleiepenger-i-livets-sluttfase-soknad/CHANGELOG.md +++ b/apps/pleiepenger-i-livets-sluttfase-soknad/CHANGELOG.md @@ -1,219 +1,417 @@ # @navikt/pleiepenger-i-livets-sluttfase-soknad +## 2.5.3 + +### Patch Changes + +- Updated dependencies + - @navikt/sif-common-ui@0.4.3 + +## 2.5.2 + +### Patch Changes + +- Patch oppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.24.5 + - @navikt/sif-common-formik-ds@1.6.2 + - @navikt/sif-common-soknad-ds@10.12.2 + - @navikt/sif-common-forms-ds@8.16.2 + - @navikt/sif-common-core-ds@9.12.2 + - @navikt/sif-common-hooks@0.1.3 + - @navikt/sif-common-utils@3.43.5 + - @navikt/sif-common-ui@0.4.2 + +## 2.5.1 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker +- Updated dependencies [e7bf8d1] + - @navikt/sif-common-amplitude@2.24.4 + - @navikt/sif-common-formik-ds@1.6.1 + - @navikt/sif-common-soknad-ds@10.12.1 + - @navikt/sif-common-forms-ds@8.16.1 + - @navikt/sif-common-core-ds@9.12.1 + - @navikt/sif-common-sentry@0.25.4 + - @navikt/sif-common-utils@3.43.4 + - @navikt/sif-common-ui@0.4.1 + +## 2.5.0 + +### Minor Changes + +- 573c55d: Diverse oppdateringer i forbindelse med uu-gjennomgang. + +### Patch Changes + +- Updated dependencies [573c55d] + - @navikt/sif-common-formik-ds@1.6.0 + - @navikt/sif-common-soknad-ds@10.12.0 + - @navikt/sif-common-forms-ds@8.16.0 + - @navikt/sif-common-core-ds@9.12.0 + - @navikt/sif-common-ui@0.4.0 + +## 2.4.1 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer +- Updated dependencies [406b044] + - @navikt/sif-common-amplitude@2.24.3 + - @navikt/sif-common-formik-ds@1.5.3 + - @navikt/sif-common-soknad-ds@10.11.1 + - @navikt/sif-common-forms-ds@8.15.1 + - @navikt/sif-common-core-ds@9.11.3 + - @navikt/sif-common-sentry@0.25.3 + - @navikt/sif-common-utils@3.43.3 + - @navikt/sif-common-ui@0.3.3 + +## 2.4.0 + +### Minor Changes + +- 2331115: Oppdatert react-router-dom. Endringer i ettersending og pleiepenger på grunn av feil bruk av navigate i ny versjon. + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [2331115] +- Updated dependencies [6084e23] + - @navikt/sif-common-soknad-ds@10.11.0 + - @navikt/sif-common-forms-ds@8.15.0 + - @navikt/sif-app-register@0.0.4 + - @navikt/sif-common-amplitude@2.24.2 + - @navikt/sif-common-core-ds@9.11.2 + - @navikt/sif-common-formik-ds@1.5.2 + - @navikt/sif-common-hooks@0.1.2 + - @navikt/sif-common-sentry@0.25.2 + - @navikt/sif-common-ui@0.3.2 + - @navikt/sif-common-utils@3.43.2 + +## 2.3.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [295d3ad] + - @navikt/sif-app-register@0.0.3 + - @navikt/sif-common-amplitude@2.24.1 + - @navikt/sif-common-core-ds@9.11.1 + - @navikt/sif-common-formik-ds@1.5.1 + - @navikt/sif-common-forms-ds@8.14.1 + - @navikt/sif-common-hooks@0.1.1 + - @navikt/sif-common-sentry@0.25.1 + - @navikt/sif-common-soknad-ds@10.10.1 + - @navikt/sif-common-ui@0.3.1 + - @navikt/sif-common-utils@3.43.1 + +## 2.3.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +### Patch Changes + +- Updated dependencies [53b47be] + - @navikt/sif-common-amplitude@2.24.0 + - @navikt/sif-common-formik-ds@1.5.0 + - @navikt/sif-common-soknad-ds@10.10.0 + - @navikt/sif-common-forms-ds@8.14.0 + - @navikt/sif-common-core-ds@9.11.0 + - @navikt/sif-common-sentry@0.25.0 + - @navikt/sif-common-utils@3.43.0 + - @navikt/sif-common-ui@0.3.0 + +## 2.2.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +### Patch Changes + +- Updated dependencies + - @navikt/sif-common-amplitude@2.23.0 + - @navikt/sif-common-formik-ds@1.4.0 + - @navikt/sif-common-soknad-ds@10.9.0 + - @navikt/sif-common-forms-ds@8.13.0 + - @navikt/sif-common-core-ds@9.10.0 + - @navikt/sif-common-sentry@0.24.0 + - @navikt/sif-common-hooks@0.1.0 + - @navikt/sif-common-utils@3.42.0 + - @navikt/sif-common-ui@0.2.0 + +## 2.1.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + +### Patch Changes + +- Updated dependencies [d31f28ec] + - @navikt/sif-common-amplitude@2.22.0 + - @navikt/sif-common-formik-ds@1.3.0 + - @navikt/sif-common-soknad-ds@10.8.0 + - @navikt/sif-common-forms-ds@8.12.0 + - @navikt/sif-common-core-ds@9.9.0 + - @navikt/sif-common-sentry@0.23.0 + - @navikt/sif-common-utils@3.41.0 + - @navikt/sif-common-ui@0.1.0 + +## 2.0.3 + +### Patch Changes + +- fdb3b1a6: Tekstendring - valgte dager + +## 2.0.2 + +### Patch Changes + +- 6d3b3cbe: Minor og patch oppdateringer + nextjs major -> 14 +- Updated dependencies [6d3b3cbe] + - @navikt/sif-common-formik-ds@1.2.3 + - @navikt/sif-common-soknad-ds@10.7.11 + - @navikt/sif-common-forms-ds@8.11.4 + - @navikt/sif-common-core-ds@9.8.11 + - @navikt/sif-common-sentry@0.22.7 + - @navikt/sif-common-ui@0.0.18 + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-utils@3.40.11 + +## 2.0.1 + +### Patch Changes + +- Updated dependencies [19c424d7] + - @navikt/sif-app-register@0.0.2 + +## 2.0.0 + +### Major Changes + +- e24b09d2: Lansere pleiepengesøknad 2.0 + ## 1.1.4 ### Patch Changes -- 09ae5814: Patch-oppdateringer -- Updated dependencies [09ae5814] - - @navikt/sif-common-formik-ds@1.2.2 - - @navikt/sif-common-soknad-ds@10.7.10 - - @navikt/sif-common-forms-ds@8.11.3 - - @navikt/sif-common-core-ds@9.8.10 - - @navikt/sif-common-utils@3.40.11 - - @navikt/sif-common-ui@0.0.17 +- 09ae5814: Patch-oppdateringer +- Updated dependencies [09ae5814] + - @navikt/sif-common-formik-ds@1.2.2 + - @navikt/sif-common-soknad-ds@10.7.10 + - @navikt/sif-common-forms-ds@8.11.3 + - @navikt/sif-common-core-ds@9.8.10 + - @navikt/sif-common-utils@3.40.11 + - @navikt/sif-common-ui@0.0.17 ## 1.1.3 ### Patch Changes -- b4d45cf9: Diverse mindre pakkeoppdateringer -- Updated dependencies [b4d45cf9] - - @navikt/sif-common-amplitude@2.21.9 - - @navikt/sif-common-formik-ds@1.2.1 - - @navikt/sif-common-soknad-ds@10.7.9 - - @navikt/sif-common-forms-ds@8.11.2 - - @navikt/sif-common-core-ds@9.8.9 - - @navikt/sif-common-sentry@0.22.6 - - @navikt/sif-common-utils@3.40.10 - - @navikt/sif-common-ui@0.0.16 +- b4d45cf9: Diverse mindre pakkeoppdateringer +- Updated dependencies [b4d45cf9] + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-formik-ds@1.2.1 + - @navikt/sif-common-soknad-ds@10.7.9 + - @navikt/sif-common-forms-ds@8.11.2 + - @navikt/sif-common-core-ds@9.8.9 + - @navikt/sif-common-sentry@0.22.6 + - @navikt/sif-common-utils@3.40.10 + - @navikt/sif-common-ui@0.0.16 ## 1.1.2 ### Patch Changes -- Updated dependencies [e815a9a8] - - @navikt/sif-common-formik-ds@1.2.0 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-forms-ds@8.11.1 - - @navikt/sif-common-soknad-ds@10.7.8 - - @navikt/sif-common-ui@0.0.15 +- Updated dependencies [e815a9a8] + - @navikt/sif-common-formik-ds@1.2.0 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-forms-ds@8.11.1 + - @navikt/sif-common-soknad-ds@10.7.8 + - @navikt/sif-common-ui@0.0.15 ## 1.1.1 ### Patch Changes -- Updated dependencies [66c8522a] - - @navikt/sif-common-forms-ds@8.11.1 +- Updated dependencies [66c8522a] + - @navikt/sif-common-forms-ds@8.11.1 ## 1.1.0 ### Minor Changes -- ce769b8e: Endre UtenlandskNæringListAndDialog til å eksponere ModalFormAndListLabels, ikke ModalFormAndInfoLabels (som var feil) +- ce769b8e: Endre UtenlandskNæringListAndDialog til å eksponere ModalFormAndListLabels, ikke ModalFormAndInfoLabels (som var feil) ### Patch Changes -- Updated dependencies [ce769b8e] -- Updated dependencies [afe04538] - - @navikt/sif-common-forms-ds@8.11.0 - - @navikt/sif-common-formik-ds@1.1.6 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-soknad-ds@10.7.8 - - @navikt/sif-common-ui@0.0.14 +- Updated dependencies [ce769b8e] +- Updated dependencies [afe04538] + - @navikt/sif-common-forms-ds@8.11.0 + - @navikt/sif-common-formik-ds@1.1.6 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-soknad-ds@10.7.8 + - @navikt/sif-common-ui@0.0.14 ## 1.0.13 ### Patch Changes -- Updated dependencies [1d7c508f] - - @navikt/sif-common-formik-ds@1.1.5 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-forms-ds@8.10.0 - - @navikt/sif-common-soknad-ds@10.7.8 - - @navikt/sif-common-ui@0.0.13 +- Updated dependencies [1d7c508f] + - @navikt/sif-common-formik-ds@1.1.5 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-forms-ds@8.10.0 + - @navikt/sif-common-soknad-ds@10.7.8 + - @navikt/sif-common-ui@0.0.13 ## 1.0.12 ### Patch Changes -- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 -- Updated dependencies [5c44f78b] -- Updated dependencies [5c44f78b] -- Updated dependencies [cb7e6653] - - @navikt/sif-common-forms-ds@8.10.0 - - @navikt/sif-common-formik-ds@1.1.4 - - @navikt/sif-common-amplitude@2.21.8 - - @navikt/sif-common-soknad-ds@10.7.8 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-utils@3.40.9 - - @navikt/sif-common-ui@0.0.12 +- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 +- Updated dependencies [5c44f78b] +- Updated dependencies [5c44f78b] +- Updated dependencies [cb7e6653] + - @navikt/sif-common-forms-ds@8.10.0 + - @navikt/sif-common-formik-ds@1.1.4 + - @navikt/sif-common-amplitude@2.21.8 + - @navikt/sif-common-soknad-ds@10.7.8 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-utils@3.40.9 + - @navikt/sif-common-ui@0.0.12 ## 1.0.10 ### Patch Changes -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.7 - - @navikt/sif-common-formik-ds@1.1.3 - - @navikt/sif-common-soknad-ds@10.7.7 - - @navikt/sif-common-forms-ds@8.9.7 - - @navikt/sif-common-core-ds@9.8.7 - - @navikt/sif-common-sentry@0.22.5 - - @navikt/sif-common-utils@3.40.8 - - @navikt/sif-common-ui@0.0.11 +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.7 + - @navikt/sif-common-formik-ds@1.1.3 + - @navikt/sif-common-soknad-ds@10.7.7 + - @navikt/sif-common-forms-ds@8.9.7 + - @navikt/sif-common-core-ds@9.8.7 + - @navikt/sif-common-sentry@0.22.5 + - @navikt/sif-common-utils@3.40.8 + - @navikt/sif-common-ui@0.0.11 ## 1.0.9 ### Patch Changes -- Pakkeoppdatering som fikser datepicker + modal bug -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.6 - - @navikt/sif-common-formik-ds@1.1.2 - - @navikt/sif-common-soknad-ds@10.7.6 - - @navikt/sif-common-forms-ds@8.9.6 - - @navikt/sif-common-core-ds@9.8.6 - - @navikt/sif-common-utils@3.40.7 - - @navikt/sif-common-ui@0.0.10 +- Pakkeoppdatering som fikser datepicker + modal bug +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.6 + - @navikt/sif-common-formik-ds@1.1.2 + - @navikt/sif-common-soknad-ds@10.7.6 + - @navikt/sif-common-forms-ds@8.9.6 + - @navikt/sif-common-core-ds@9.8.6 + - @navikt/sif-common-utils@3.40.7 + - @navikt/sif-common-ui@0.0.10 ## 1.0.8 ### Patch Changes -- 71381778: Patch pakkeoppdateringer -- Updated dependencies [71381778] - - @navikt/sif-common-amplitude@2.21.5 - - @navikt/sif-common-formik-ds@1.1.1 - - @navikt/sif-common-soknad-ds@10.7.5 - - @navikt/sif-common-forms-ds@8.9.5 - - @navikt/sif-common-core-ds@9.8.5 - - @navikt/sif-common-sentry@0.22.4 - - @navikt/sif-common-utils@3.40.6 - - @navikt/sif-common-ui@0.0.9 +- 71381778: Patch pakkeoppdateringer +- Updated dependencies [71381778] + - @navikt/sif-common-amplitude@2.21.5 + - @navikt/sif-common-formik-ds@1.1.1 + - @navikt/sif-common-soknad-ds@10.7.5 + - @navikt/sif-common-forms-ds@8.9.5 + - @navikt/sif-common-core-ds@9.8.5 + - @navikt/sif-common-sentry@0.22.4 + - @navikt/sif-common-utils@3.40.6 + - @navikt/sif-common-ui@0.0.9 ## 1.0.7 ### Patch Changes -- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds -- Updated dependencies [60eb7ee9] - - @navikt/sif-common-formik-ds@1.1.0 - - @navikt/sif-common-amplitude@2.21.4 - - @navikt/sif-common-soknad-ds@10.7.4 - - @navikt/sif-common-forms-ds@8.9.4 - - @navikt/sif-common-core-ds@9.8.4 - - @navikt/sif-common-sentry@0.22.3 - - @navikt/sif-common-utils@3.40.5 - - @navikt/sif-common-ui@0.0.8 +- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds +- Updated dependencies [60eb7ee9] + - @navikt/sif-common-formik-ds@1.1.0 + - @navikt/sif-common-amplitude@2.21.4 + - @navikt/sif-common-soknad-ds@10.7.4 + - @navikt/sif-common-forms-ds@8.9.4 + - @navikt/sif-common-core-ds@9.8.4 + - @navikt/sif-common-sentry@0.22.3 + - @navikt/sif-common-utils@3.40.5 + - @navikt/sif-common-ui@0.0.8 ## 1.0.6 ### Patch Changes -- 2a1e2526: Pakkeoppdateringer -- Updated dependencies [2a1e2526] - - @navikt/sif-common-amplitude@2.21.3 - - @navikt/sif-common-formik-ds@1.0.5 - - @navikt/sif-common-soknad-ds@10.7.3 - - @navikt/sif-common-forms-ds@8.9.3 - - @navikt/sif-common-core-ds@9.8.3 - - @navikt/sif-common-sentry@0.22.2 - - @navikt/sif-common-utils@3.40.4 - - @navikt/sif-common-ui@0.0.7 +- 2a1e2526: Pakkeoppdateringer +- Updated dependencies [2a1e2526] + - @navikt/sif-common-amplitude@2.21.3 + - @navikt/sif-common-formik-ds@1.0.5 + - @navikt/sif-common-soknad-ds@10.7.3 + - @navikt/sif-common-forms-ds@8.9.3 + - @navikt/sif-common-core-ds@9.8.3 + - @navikt/sif-common-sentry@0.22.2 + - @navikt/sif-common-utils@3.40.4 + - @navikt/sif-common-ui@0.0.7 ## 1.0.5 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.2 - - @navikt/sif-common-formik-ds@1.0.4 - - @navikt/sif-common-soknad-ds@10.7.2 - - @navikt/sif-common-forms-ds@8.9.2 - - @navikt/sif-common-core-ds@9.8.2 - - @navikt/sif-common-utils@3.40.3 - - @navikt/sif-common-ui@0.0.6 +- Pakkeoppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.2 + - @navikt/sif-common-formik-ds@1.0.4 + - @navikt/sif-common-soknad-ds@10.7.2 + - @navikt/sif-common-forms-ds@8.9.2 + - @navikt/sif-common-core-ds@9.8.2 + - @navikt/sif-common-utils@3.40.3 + - @navikt/sif-common-ui@0.0.6 ## 1.0.4 ### Patch Changes -- 81e7e155: Bruke BodyLong i alle SifGuidePanel -- Updated dependencies [81e7e155] - - @navikt/sif-common-formik-ds@1.0.3 - - @navikt/sif-common-forms-ds@8.9.1 - - @navikt/sif-common-core-ds@9.8.1 - - @navikt/sif-common-utils@3.40.2 - - @navikt/sif-common-ui@0.0.5 - - @navikt/sif-common-soknad-ds@10.7.1 +- 81e7e155: Bruke BodyLong i alle SifGuidePanel +- Updated dependencies [81e7e155] + - @navikt/sif-common-formik-ds@1.0.3 + - @navikt/sif-common-forms-ds@8.9.1 + - @navikt/sif-common-core-ds@9.8.1 + - @navikt/sif-common-utils@3.40.2 + - @navikt/sif-common-ui@0.0.5 + - @navikt/sif-common-soknad-ds@10.7.1 ## 1.0.3 ### Patch Changes -- Updated dependencies [c129755f] - - @navikt/sif-common-formik-ds@1.0.2 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-forms-ds@8.9.0 - - @navikt/sif-common-soknad-ds@10.7.1 - - @navikt/sif-common-ui@0.0.4 +- Updated dependencies [c129755f] + - @navikt/sif-common-formik-ds@1.0.2 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-forms-ds@8.9.0 + - @navikt/sif-common-soknad-ds@10.7.1 + - @navikt/sif-common-ui@0.0.4 ## 1.0.2 ### Patch Changes -- Updated dependencies [92fbd8f8] - - @navikt/sif-common-formik-ds@1.0.1 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-forms-ds@8.9.0 - - @navikt/sif-common-soknad-ds@10.7.1 - - @navikt/sif-common-ui@0.0.3 +- Updated dependencies [92fbd8f8] + - @navikt/sif-common-formik-ds@1.0.1 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-forms-ds@8.9.0 + - @navikt/sif-common-soknad-ds@10.7.1 + - @navikt/sif-common-ui@0.0.3 ## 1.0.1 ### Patch Changes -- Updated dependencies [d12fcbb5] - - @navikt/sif-common-forms-ds@8.9.0 +- Updated dependencies [d12fcbb5] + - @navikt/sif-common-forms-ds@8.9.0 diff --git a/apps/pleiepenger-i-livets-sluttfase-soknad/Dockerfile b/apps/pleiepenger-i-livets-sluttfase-soknad/Dockerfile index 6811d7bf28..26b8381cb4 100644 --- a/apps/pleiepenger-i-livets-sluttfase-soknad/Dockerfile +++ b/apps/pleiepenger-i-livets-sluttfase-soknad/Dockerfile @@ -14,7 +14,7 @@ COPY . . RUN yarn RUN yarn turbo run build-app --filter=${SCOPE} -FROM pruner AS server +FROM gcr.io/distroless/nodejs18-debian11:nonroot WORKDIR /apps/pleiepenger-i-livets-sluttfase-soknad COPY --from=pruner /app/node_modules ./node_modules/ COPY --from=pruner /app/apps/pleiepenger-i-livets-sluttfase-soknad/server.cjs . @@ -25,4 +25,4 @@ COPY --from=pruner /app/apps/pleiepenger-i-livets-sluttfase-soknad/src/build/App COPY --from=pruner /app/apps/pleiepenger-i-livets-sluttfase-soknad/dist ./dist EXPOSE 8080 -CMD ["yarn","--cwd", "apps/pleiepenger-i-livets-sluttfase-soknad", "start-express"] +CMD ["server.cjs"] diff --git "a/apps/pleiepenger-i-livets-sluttfase-soknad/e2e/playwright/tests/fyll-ut-s\303\270knad-med-fnr.spec.ts" "b/apps/pleiepenger-i-livets-sluttfase-soknad/e2e/playwright/tests/fyll-ut-s\303\270knad-med-fnr.spec.ts" index 4c92134c98..b62c5d3c3e 100644 --- "a/apps/pleiepenger-i-livets-sluttfase-soknad/e2e/playwright/tests/fyll-ut-s\303\270knad-med-fnr.spec.ts" +++ "b/apps/pleiepenger-i-livets-sluttfase-soknad/e2e/playwright/tests/fyll-ut-s\303\270knad-med-fnr.spec.ts" @@ -86,17 +86,17 @@ test('Fyll ut søknad med fnr', async ({ page }) => { /** Jobb i søknadsperioden */ await expect(page.getByRole('heading', { level: 1, name: 'Jobb i søknadsperioden' })).toBeVisible(); - await page.getByRole('group', { name: 'mandag 14. august' }).getByLabel('TimerTimer').fill('3'); - await page.getByRole('group', { name: 'mandag 14. august' }).getByLabel('MinutterMin.').fill('30'); - await page.getByRole('group', { name: 'onsdag 16. august' }).getByLabel('TimerTimer').fill('3'); - await page.getByRole('group', { name: 'onsdag 16. august' }).getByLabel('MinutterMin.').fill('30'); - await page.getByRole('group', { name: 'Uke 36' }).getByLabel('TimerTimer').click(); - await page.getByRole('group', { name: 'Uke 36' }).getByLabel('TimerTimer').fill('3'); - await page.getByRole('group', { name: 'Uke 36' }).getByLabel('MinutterMin.').fill('30'); + await page.getByRole('group', { name: 'mandag 14. august' }).getByLabel('Timer').fill('3'); + await page.getByRole('group', { name: 'mandag 14. august' }).getByLabel('Minutter').fill('30'); + await page.getByRole('group', { name: 'onsdag 16. august' }).getByLabel('Timer').fill('3'); + await page.getByRole('group', { name: 'onsdag 16. august' }).getByLabel('Minutter').fill('30'); + await page.getByRole('group', { name: 'Uke 36' }).getByLabel('Timer').click(); + await page.getByRole('group', { name: 'Uke 36' }).getByLabel('Timer').fill('3'); + await page.getByRole('group', { name: 'Uke 36' }).getByLabel('Minutter').fill('30'); await page.getByRole('group', { name: 'mandag 18. september' }).click(); - await page.getByRole('group', { name: 'Uke 38' }).getByLabel('TimerTimer').click(); - await page.getByRole('group', { name: 'Uke 38' }).getByLabel('TimerTimer').fill('3'); - await page.getByRole('group', { name: 'Uke 38' }).getByLabel('MinutterMin.').fill('30'); + await page.getByRole('group', { name: 'Uke 38' }).getByLabel('Timer').click(); + await page.getByRole('group', { name: 'Uke 38' }).getByLabel('Timer').fill('3'); + await page.getByRole('group', { name: 'Uke 38' }).getByLabel('Minutter').fill('30'); await page.getByRole('button', { name: 'Neste', exact: true }).click(); /** Medlemsskap */ diff --git a/apps/pleiepenger-i-livets-sluttfase-soknad/nais/dev-gcp.json b/apps/pleiepenger-i-livets-sluttfase-soknad/nais/dev-gcp.json index 8efd6a7213..2ad13cf3d5 100644 --- a/apps/pleiepenger-i-livets-sluttfase-soknad/nais/dev-gcp.json +++ b/apps/pleiepenger-i-livets-sluttfase-soknad/nais/dev-gcp.json @@ -5,8 +5,11 @@ "team": "dusseldorf", "ingresses": ["https://pleiepenger-i-livets-sluttfase.intern.dev.nav.no"], "externalHosts": ["www.nav.no", "dekoratoren.ekstern.dev.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], "livenessPath": "/familie/sykdom-i-familien/soknad/pleiepenger-i-livets-sluttfase/health/isAlive", "readinessPath": "/familie/sykdom-i-familien/soknad/pleiepenger-i-livets-sluttfase/health/isReady", + "minReplicas": 1, + "maxReplicas": 1, "env": { "DEKORATOR_URL": "https://dekoratoren.ekstern.dev.nav.no/?simple=true&chatbot=false&urlLookupTable=false&logoutUrl=https://pleiepenger-i-livets-sluttfase.intern.dev.nav.no/oauth2/logout", "API_URL": "http://k9-brukerdialog-api", diff --git a/apps/pleiepenger-i-livets-sluttfase-soknad/nais/prod-gcp.json b/apps/pleiepenger-i-livets-sluttfase-soknad/nais/prod-gcp.json index 02d7a99263..b421bcd2ee 100644 --- a/apps/pleiepenger-i-livets-sluttfase-soknad/nais/prod-gcp.json +++ b/apps/pleiepenger-i-livets-sluttfase-soknad/nais/prod-gcp.json @@ -5,8 +5,11 @@ "team": "dusseldorf", "ingresses": ["https://www.nav.no/familie/sykdom-i-familien/soknad/pleiepenger-i-livets-sluttfase"], "externalHosts": ["www.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], "livenessPath": "/familie/sykdom-i-familien/soknad/pleiepenger-i-livets-sluttfase/health/isAlive", "readinessPath": "/familie/sykdom-i-familien/soknad/pleiepenger-i-livets-sluttfase/health/isReady", + "minReplicas": 2, + "maxReplicas": 2, "env": { "DEKORATOR_URL": "https://www.nav.no/dekoratoren/?simple=true&chatbot=false&logoutUrl=https://www.nav.no/familie/sykdom-i-familien/soknad/pleiepenger-i-livets-sluttfase/oauth2/logout", "API_URL": "http://k9-brukerdialog-api", diff --git a/apps/pleiepenger-i-livets-sluttfase-soknad/package.json b/apps/pleiepenger-i-livets-sluttfase-soknad/package.json index 4e4b6b8a78..2966b4a8c2 100644 --- a/apps/pleiepenger-i-livets-sluttfase-soknad/package.json +++ b/apps/pleiepenger-i-livets-sluttfase-soknad/package.json @@ -4,14 +4,14 @@ "license": "MIT", "name": "@navikt/pleiepenger-i-livets-sluttfase-soknad", "repository": "https://github.com/navikt/sif-brukerdialog", - "version": "1.1.4", + "version": "2.5.3", "private": true, "type": "module", "dependencies": { - "@navikt/ds-css": "5.10.1", + "@navikt/ds-css": "5.11.4", "@navikt/ds-icons": "3.4.3", - "@navikt/ds-react": "5.10.1", - "@navikt/ds-tailwind": "5.10.1", + "@navikt/ds-react": "5.11.4", + "@navikt/ds-tailwind": "5.11.4", "@navikt/sif-app-register": "workspace:*", "@navikt/sif-common-amplitude": "workspace:*", "@navikt/sif-common-core-ds": "workspace:*", @@ -22,8 +22,8 @@ "@navikt/sif-common-soknad-ds": "workspace:*", "@navikt/sif-common-ui": "workspace:*", "@navikt/sif-common-utils": "workspace:*", - "@testing-library/react": "14.1.0", - "axios": "1.6.1", + "@testing-library/react": "14.1.2", + "axios": "1.6.2", "busboy": "1.6.0", "compression": "1.7.4", "cookie-parser": "1.4.6", @@ -32,58 +32,40 @@ "express": "4.18.2", "formik": "2.4.5", "helmet": "7.1.0", - "history": "5.3.0", "http-proxy-middleware": "2.0.6", - "jose": "5.1.0", + "jose": "5.1.3", "lodash": "4.17.21", "mustache-express": "1.3.2", "object-hash": "3.0.0", "openid-client": "5.6.1", - "promise": "8.3.0", "react": "18.2.0", "react-dom": "18.2.0", "react-fast-compare": "3.2.2", - "react-intl": "6.5.4", - "react-router-dom": "6.18.0", - "uuid": "^9.0.1" + "react-intl": "6.5.5", + "react-router-dom": "6.20.1", + "uuid": "9.0.1" }, "devDependencies": { - "@axe-core/playwright": "4.8.1", - "@babel/core": "7.23.3", - "@babel/preset-env": "7.23.3", + "@axe-core/playwright": "4.8.2", + "@babel/core": "7.23.5", + "@babel/preset-env": "7.23.5", "@babel/preset-react": "7.23.3", "@babel/preset-typescript": "7.23.3", - "@playwright/test": "^1.39.0", - "@storybook/react-vite": "7.5.3", - "@testing-library/react": "14.1.0", - "@types/jest": "29.5.8", + "@playwright/test": "1.40.1", + "@storybook/react-vite": "7.6.4", + "@testing-library/react": "14.1.2", "@types/object-hash": "3.0.6", - "@types/react": "18.2.37", - "@types/react-dom": "18.2.15", + "@types/react": "18.2.43", + "@types/react-dom": "18.2.17", "@types/react-router-dom": "5.3.3", "babel-polyfill": "6.26.0", "cross-env": "7.0.3", - "css-loader": "6.8.1", - "css-minimizer-webpack-plugin": "5.0.1", - "express-rate-limit": "7.1.4", - "postcss": "8.4.31", - "postcss-loader": "7.3.3", - "react-scripts": "5.0.1", - "sass": "1.69.5", - "sass-loader": "13.3.2", - "sinon": "17.0.1", - "source-map-loader": "4.0.1", - "start-server-and-test": "2.0.2", - "style-loader": "3.3.3", - "ts-loader": "9.5.0", - "typescript": "5.2.2", - "vite": "4.5.0", - "vite-plugin-checker": "0.6.2" - }, - "jest": { - "transformIgnorePatterns": [ - "node_modules/(?!(@navikt)).*\\.js$" - ] + "express-rate-limit": "7.1.5", + "postcss": "8.4.32", + "typescript": "5.3.3", + "vite": "5.0.7", + "vite-plugin-checker": "0.6.2", + "vitest": "1.0.4" }, "scripts": { "build-app": "vite build --base=/familie/sykdom-i-familien/soknad/pleiepenger-i-livets-sluttfase", @@ -92,14 +74,11 @@ "codegen": "playwright codegen", "dev-api": "PORT=8089 node ./api-mock/mock-server.cjs", "e2e-ui": "playwright test --ui", - "e2e": "playwright test", - "playwright-test": "playwright test", - "snd": "cross-env NODE_ENV=development node ./server.cjs", + "dev": "cross-env NODE_ENV=development node ./server.cjs", "start-e2e-server": "node ./server-e2e.cjs", "start-express": "node ./server.cjs", "storybook": "storybook dev -p 6006 -s public", - "test-watch": "react-scripts test --watchAll=true --env=jsdom", - "test": "react-scripts test --watchAll=false --env=jsdom" + "test": "vitest" }, "eslintConfig": { "overrides": [ @@ -112,8 +91,5 @@ } } ] - }, - "resolutions": { - "babel-core": "7.0.0-bridge.0" } } diff --git a/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/local-sif-common-pleiepenger/arbeidstid/arbeidstid-uke-input/ArbeidstidUkeInput.tsx b/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/local-sif-common-pleiepenger/arbeidstid/arbeidstid-uke-input/ArbeidstidUkeInput.tsx index 0dbf6b2db5..7f8b193b18 100644 --- a/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/local-sif-common-pleiepenger/arbeidstid/arbeidstid-uke-input/ArbeidstidUkeInput.tsx +++ b/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/local-sif-common-pleiepenger/arbeidstid/arbeidstid-uke-input/ArbeidstidUkeInput.tsx @@ -164,9 +164,7 @@ const ArbeidstidUkeInput: React.FunctionComponent = ({ {tekst.ariaLabelTidInput(dayDateString)} - } + label={tekst.ariaLabelTidInput(dayDateString)} timeInputLayout={{ direction: 'horizontal', }} diff --git "a/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/s\303\270knad/steps/legeerkl\303\246ring/Legeerkl\303\246ringForm.tsx" "b/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/s\303\270knad/steps/legeerkl\303\246ring/Legeerkl\303\246ringForm.tsx" index 5feafe8cd4..5efe2c757c 100644 --- "a/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/s\303\270knad/steps/legeerkl\303\246ring/Legeerkl\303\246ringForm.tsx" +++ "b/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/s\303\270knad/steps/legeerkl\303\246ring/Legeerkl\303\246ringForm.tsx" @@ -1,26 +1,27 @@ import { Alert, Link } from '@navikt/ds-react'; +import React from 'react'; +import { FormattedMessage, useIntl } from 'react-intl'; import Block from '@navikt/sif-common-core-ds/lib/atoms/block/Block'; import FormBlock from '@navikt/sif-common-core-ds/lib/atoms/form-block/FormBlock'; import FileUploadErrors from '@navikt/sif-common-core-ds/lib/components/file-upload-errors/FileUploadErrors'; +import FormikFileUploader from '@navikt/sif-common-core-ds/lib/components/formik-file-uploader/FormikFileUploader'; import PictureScanningGuide from '@navikt/sif-common-core-ds/lib/components/picture-scanning-guide/PictureScanningGuide'; import SifGuidePanel from '@navikt/sif-common-core-ds/lib/components/sif-guide-panel/SifGuidePanel'; import { Attachment } from '@navikt/sif-common-core-ds/lib/types/Attachment'; import { - MAX_TOTAL_ATTACHMENT_SIZE_BYTES, attachmentHasBeenUploaded, getTotalSizeOfAttachments, + MAX_TOTAL_ATTACHMENT_SIZE_BYTES, } from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; import intlHelper from '@navikt/sif-common-core-ds/lib/utils/intlUtils'; -import { ValidationError, ValidationResult, getTypedFormComponents } from '@navikt/sif-common-formik-ds/lib'; +import { getTypedFormComponents, ValidationError, ValidationResult } from '@navikt/sif-common-formik-ds/lib'; import getIntlFormErrorHandler from '@navikt/sif-common-formik-ds/lib/validation/intlFormErrorHandler'; import { validateAll } from '@navikt/sif-common-formik-ds/lib/validation/validationUtils'; -import React from 'react'; -import { FormattedMessage, useIntl } from 'react-intl'; -import { ApiEndpoint } from '../../../api/api'; -import FormikFileUploader from '../../../components/formik-file-uploader/FormikFileUploader'; +import api, { ApiEndpoint } from '../../../api/api'; import { relocateToLoginPage } from '../../../utils/navigationUtils'; -import { ValidateAttachmentsErrors, validateAttachments } from '../../../utils/validateAttachments'; +import { validateAttachments, ValidateAttachmentsErrors } from '../../../utils/validateAttachments'; import LegeerklæringAvtaleAttachmentList from './LegeerklæringAttachmentList'; +import { getAttachmentURLFrontend } from '../../../utils/attachmentUtilsAuthToken'; interface Props { values: Partial; @@ -87,8 +88,9 @@ const LegeerklæringForm: React.FunctionComponent = ({ values, goBack, an attachments={legeerklæringAttachments} name={LegeerklæringFormFields.vedlegg} buttonLabel={intlHelper(intl, 'step.legeerklæring.vedlegg.knappLabel')} - apiEndpoint={ApiEndpoint.vedlegg} onErrorUploadingAttachments={setFilesThatDidntGetUploaded} + uploadFile={(file: File) => api.uploadFile(ApiEndpoint.vedlegg, file)} + getAttachmentURLFrontend={getAttachmentURLFrontend} onFileInputClick={() => { setFilesThatDidntGetUploaded([]); }} diff --git "a/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/s\303\270knad/steps/opplysninger-om-pleietrengende/form-parts/IdPart.tsx" "b/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/s\303\270knad/steps/opplysninger-om-pleietrengende/form-parts/IdPart.tsx" index ef8f3a5e73..398e2f611c 100644 --- "a/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/s\303\270knad/steps/opplysninger-om-pleietrengende/form-parts/IdPart.tsx" +++ "b/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/s\303\270knad/steps/opplysninger-om-pleietrengende/form-parts/IdPart.tsx" @@ -1,21 +1,22 @@ -import Block from '@navikt/sif-common-core-ds/lib/atoms/block/Block'; +import { useEffect, useMemo, useRef, useState } from 'react'; import { useIntl } from 'react-intl'; +import Block from '@navikt/sif-common-core-ds/lib/atoms/block/Block'; +import FileUploadErrors from '@navikt/sif-common-core-ds/lib/components/file-upload-errors/FileUploadErrors'; +import FormikFileUploader from '@navikt/sif-common-core-ds/lib/components/formik-file-uploader/FormikFileUploader'; import PictureScanningGuide from '@navikt/sif-common-core-ds/lib/components/picture-scanning-guide/PictureScanningGuide'; import { Attachment } from '@navikt/sif-common-core-ds/lib/types/Attachment'; +import intlHelper from '@navikt/sif-common-core-ds/lib/utils/intlUtils'; +import { ValidationError } from '@navikt/sif-common-formik-ds/lib'; +import { validateAll } from '@navikt/sif-common-formik-ds/lib/validation/validationUtils'; +import { useFormikContext } from 'formik'; +import api, { ApiEndpoint } from '../../../../api/api'; +import { getAttachmentURLFrontend } from '../../../../utils/attachmentUtilsAuthToken'; +import { relocateToLoginPage } from '../../../../utils/navigationUtils'; +import { validateAttachments, ValidateAttachmentsErrors } from '../../../../utils/validateAttachments'; import { OpplysningerOmPleietrengendeFormFields, OpplysningerOmPleietrengendeFormValues, } from '../OpplysningerOmPleietrengendeStep'; -import intlHelper from '@navikt/sif-common-core-ds/lib/utils/intlUtils'; -import { useFormikContext } from 'formik'; -import FormikFileUploader from '../../../../components/formik-file-uploader/FormikFileUploader'; -import { ApiEndpoint } from '../../../../api/api'; -import { ValidateAttachmentsErrors, validateAttachments } from '../../../../utils/validateAttachments'; -import { relocateToLoginPage } from '../../../../utils/navigationUtils'; -import FileUploadErrors from '@navikt/sif-common-core-ds/lib/components/file-upload-errors/FileUploadErrors'; -import { useEffect, useMemo, useRef, useState } from 'react'; -import { validateAll } from '@navikt/sif-common-formik-ds/lib/validation/validationUtils'; -import { ValidationError } from '@navikt/sif-common-formik-ds/lib'; import IdPartAttachmentList from './IdPartAttachmentList'; //TODO VALIDATE alleDokumenterISøknaden: Attachment[]; @@ -54,8 +55,9 @@ const IdPart = () => { attachments={values.pleietrengendeId} name={OpplysningerOmPleietrengendeFormFields.pleietrengendeId} buttonLabel={intlHelper(intl, 'step.opplysningerOmPleietrengende.id.uploadButtonLabel')} - apiEndpoint={ApiEndpoint.vedlegg} onErrorUploadingAttachments={setFilesThatDidntGetUploaded} + uploadFile={(file: File) => api.uploadFile(ApiEndpoint.vedlegg, file)} + getAttachmentURLFrontend={getAttachmentURLFrontend} onFileInputClick={() => { setFilesThatDidntGetUploaded([]); }} diff --git "a/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" "b/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" index fe8c0e4630..93a1eb82c3 100644 --- "a/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" +++ "b/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/utils/s\303\270knadsdataToApiData/getApiDataFromS\303\270knadsdata.ts" @@ -1,9 +1,9 @@ +import { Attachment } from '@navikt/sif-common-core-ds/lib/types'; import { attachmentIsUploadedAndIsValidFileFormat } from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; import { dateToISODate } from '@navikt/sif-common-utils/lib'; -import { Attachment } from '../../components/formik-file-uploader/useFormikFileUploader'; -import { YesOrNoDontKnow } from '../../types/YesOrNoDontKnow'; import { FlereSokereApiData, SøknadApiData } from '../../types/søknadApiData/SøknadApiData'; import { Søknadsdata } from '../../types/søknadsdata/Søknadsdata'; +import { YesOrNoDontKnow } from '../../types/YesOrNoDontKnow'; import { getAttachmentURLBackend } from '../attachmentUtilsAuthToken'; import { getDataBruktTilUtledning } from '../getDataBruktTilUtledning'; import { getArbeidsgivereApiDataFromSøknadsdata } from './getArbeidsgivereApiDataFromSøknadsdata'; diff --git a/apps/pleiepenger-i-livets-sluttfase-soknad/vitest.config.ts b/apps/pleiepenger-i-livets-sluttfase-soknad/vitest.config.ts new file mode 100644 index 0000000000..ec336f5985 --- /dev/null +++ b/apps/pleiepenger-i-livets-sluttfase-soknad/vitest.config.ts @@ -0,0 +1,13 @@ +/// +/// + +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + exclude: ['./e2e/**/*', './build/**/*', './dist/**/*', '**/*.spec.tsx'], + globals: true, + environment: 'jsdom', + css: false, + }, +}); diff --git a/apps/pleiepenger-sykt-barn/.vscode/launch.json b/apps/pleiepenger-sykt-barn/.vscode/launch.json deleted file mode 100644 index 7f977ba48f..0000000000 --- a/apps/pleiepenger-sykt-barn/.vscode/launch.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "name": "Debug CRA Tests", - "type": "node", - "request": "launch", - "runtimeExecutable": "${workspaceRoot}/../../node_modules/.bin/react-scripts", - "args": ["test", "--runInBand", "--no-cache", "--watchAll=true"], - "cwd": "${workspaceRoot}", - "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen", - "env": { "CI": "true" } - } - ] -} diff --git a/apps/pleiepenger-sykt-barn/CHANGELOG.md b/apps/pleiepenger-sykt-barn/CHANGELOG.md index 0f6023a98e..6a0b53732b 100644 --- a/apps/pleiepenger-sykt-barn/CHANGELOG.md +++ b/apps/pleiepenger-sykt-barn/CHANGELOG.md @@ -1,248 +1,426 @@ # @navikt/pleiepenger-sykt-barn +## 3.7.2 + +### Patch Changes + +- Patch oppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.24.5 + - @navikt/sif-common-formik-ds@1.6.2 + - @navikt/sif-common-soknad-ds@10.12.2 + - @navikt/sif-common-forms-ds@8.16.2 + - @navikt/appstatus-react-ds@2.17.5 + - @navikt/sif-common-core-ds@9.12.2 + - @navikt/sif-common-hooks@0.1.3 + - @navikt/sif-common-utils@3.43.5 + +## 3.7.1 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker +- Updated dependencies [e7bf8d1] + - @navikt/sif-common-amplitude@2.24.4 + - @navikt/sif-common-formik-ds@1.6.1 + - @navikt/sif-common-soknad-ds@10.12.1 + - @navikt/sif-common-forms-ds@8.16.1 + - @navikt/appstatus-react-ds@2.17.4 + - @navikt/sif-common-core-ds@9.12.1 + - @navikt/sif-common-sentry@0.25.4 + - @navikt/sif-common-utils@3.43.4 + +## 3.7.0 + +### Minor Changes + +- 573c55d: Diverse oppdateringer i forbindelse med uu-gjennomgang. + +### Patch Changes + +- Updated dependencies [573c55d] + - @navikt/sif-common-formik-ds@1.6.0 + - @navikt/sif-common-soknad-ds@10.12.0 + - @navikt/sif-common-forms-ds@8.16.0 + - @navikt/sif-common-core-ds@9.12.0 + +## 3.6.1 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer +- Updated dependencies [406b044] + - @navikt/sif-common-amplitude@2.24.3 + - @navikt/sif-common-formik-ds@1.5.3 + - @navikt/sif-common-soknad-ds@10.11.1 + - @navikt/sif-common-forms-ds@8.15.1 + - @navikt/appstatus-react-ds@2.17.3 + - @navikt/sif-common-core-ds@9.11.3 + - @navikt/sif-common-sentry@0.25.3 + - @navikt/sif-common-utils@3.43.3 + +## 3.6.0 + +### Minor Changes + +- 2331115: Oppdatert react-router-dom. Endringer i ettersending og pleiepenger på grunn av feil bruk av navigate i ny versjon. + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [2331115] +- Updated dependencies [6084e23] + - @navikt/sif-common-soknad-ds@10.11.0 + - @navikt/sif-common-forms-ds@8.15.0 + - @navikt/appstatus-react-ds@2.17.2 + - @navikt/sif-app-register@0.0.4 + - @navikt/sif-common-amplitude@2.24.2 + - @navikt/sif-common-core-ds@9.11.2 + - @navikt/sif-common-formik-ds@1.5.2 + - @navikt/sif-common-hooks@0.1.2 + - @navikt/sif-common-sentry@0.25.2 + - @navikt/sif-common-utils@3.43.2 + +## 3.5.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [295d3ad] + - @navikt/appstatus-react-ds@2.17.1 + - @navikt/sif-app-register@0.0.3 + - @navikt/sif-common-amplitude@2.24.1 + - @navikt/sif-common-core-ds@9.11.1 + - @navikt/sif-common-formik-ds@1.5.1 + - @navikt/sif-common-forms-ds@8.14.1 + - @navikt/sif-common-hooks@0.1.1 + - @navikt/sif-common-sentry@0.25.1 + - @navikt/sif-common-soknad-ds@10.10.1 + - @navikt/sif-common-utils@3.43.1 + +## 3.5.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +### Patch Changes + +- Updated dependencies [53b47be] + - @navikt/sif-common-amplitude@2.24.0 + - @navikt/sif-common-formik-ds@1.5.0 + - @navikt/sif-common-soknad-ds@10.10.0 + - @navikt/sif-common-forms-ds@8.14.0 + - @navikt/appstatus-react-ds@2.17.0 + - @navikt/sif-common-core-ds@9.11.0 + - @navikt/sif-common-sentry@0.25.0 + - @navikt/sif-common-utils@3.43.0 + +## 3.4.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +### Patch Changes + +- Updated dependencies + - @navikt/sif-common-amplitude@2.23.0 + - @navikt/sif-common-formik-ds@1.4.0 + - @navikt/sif-common-soknad-ds@10.9.0 + - @navikt/sif-common-forms-ds@8.13.0 + - @navikt/appstatus-react-ds@2.16.0 + - @navikt/sif-common-core-ds@9.10.0 + - @navikt/sif-common-sentry@0.24.0 + - @navikt/sif-common-hooks@0.1.0 + - @navikt/sif-common-utils@3.42.0 + +## 3.3.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + +### Patch Changes + +- Updated dependencies [d31f28ec] + - @navikt/sif-common-amplitude@2.22.0 + - @navikt/sif-common-formik-ds@1.3.0 + - @navikt/sif-common-soknad-ds@10.8.0 + - @navikt/sif-common-forms-ds@8.12.0 + - @navikt/appstatus-react-ds@2.15.0 + - @navikt/sif-common-core-ds@9.9.0 + - @navikt/sif-common-sentry@0.23.0 + - @navikt/sif-common-utils@3.41.0 + +## 3.2.6 + +### Patch Changes + +- 6d3b3cbe: Minor og patch oppdateringer + nextjs major -> 14 +- Updated dependencies [6d3b3cbe] + - @navikt/sif-common-formik-ds@1.2.3 + - @navikt/sif-common-soknad-ds@10.7.11 + - @navikt/sif-common-forms-ds@8.11.4 + - @navikt/appstatus-react-ds@2.14.11 + - @navikt/sif-common-core-ds@9.8.11 + - @navikt/sif-common-sentry@0.22.7 + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-utils@3.40.11 + +## 3.2.5 + +### Patch Changes + +- Updated dependencies [19c424d7] + - @navikt/sif-app-register@0.0.2 + ## 3.2.4 ### Patch Changes -- 09ae5814: Patch-oppdateringer -- Updated dependencies [09ae5814] - - @navikt/sif-common-formik-ds@1.2.2 - - @navikt/sif-common-soknad-ds@10.7.10 - - @navikt/sif-common-forms-ds@8.11.3 - - @navikt/appstatus-react-ds@2.14.10 - - @navikt/sif-common-core-ds@9.8.10 - - @navikt/sif-common-utils@3.40.11 +- 09ae5814: Patch-oppdateringer +- Updated dependencies [09ae5814] + - @navikt/sif-common-formik-ds@1.2.2 + - @navikt/sif-common-soknad-ds@10.7.10 + - @navikt/sif-common-forms-ds@8.11.3 + - @navikt/appstatus-react-ds@2.14.10 + - @navikt/sif-common-core-ds@9.8.10 + - @navikt/sif-common-utils@3.40.11 ## 3.2.3 ### Patch Changes -- b4d45cf9: Diverse mindre pakkeoppdateringer -- Updated dependencies [b4d45cf9] - - @navikt/sif-common-amplitude@2.21.9 - - @navikt/sif-common-formik-ds@1.2.1 - - @navikt/sif-common-soknad-ds@10.7.9 - - @navikt/sif-common-forms-ds@8.11.2 - - @navikt/appstatus-react-ds@2.14.9 - - @navikt/sif-common-core-ds@9.8.9 - - @navikt/sif-common-sentry@0.22.6 - - @navikt/sif-common-utils@3.40.10 +- b4d45cf9: Diverse mindre pakkeoppdateringer +- Updated dependencies [b4d45cf9] + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-formik-ds@1.2.1 + - @navikt/sif-common-soknad-ds@10.7.9 + - @navikt/sif-common-forms-ds@8.11.2 + - @navikt/appstatus-react-ds@2.14.9 + - @navikt/sif-common-core-ds@9.8.9 + - @navikt/sif-common-sentry@0.22.6 + - @navikt/sif-common-utils@3.40.10 ## 3.2.2 ### Patch Changes -- Updated dependencies [e815a9a8] - - @navikt/sif-common-formik-ds@1.2.0 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-forms-ds@8.11.1 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [e815a9a8] + - @navikt/sif-common-formik-ds@1.2.0 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-forms-ds@8.11.1 + - @navikt/sif-common-soknad-ds@10.7.8 ## 3.2.1 ### Patch Changes -- Updated dependencies [66c8522a] - - @navikt/sif-common-forms-ds@8.11.1 +- Updated dependencies [66c8522a] + - @navikt/sif-common-forms-ds@8.11.1 ## 3.2.0 ### Minor Changes -- ce769b8e: Endre UtenlandskNæringListAndDialog til å eksponere ModalFormAndListLabels, ikke ModalFormAndInfoLabels (som var feil) +- ce769b8e: Endre UtenlandskNæringListAndDialog til å eksponere ModalFormAndListLabels, ikke ModalFormAndInfoLabels (som var feil) ### Patch Changes -- Updated dependencies [ce769b8e] -- Updated dependencies [afe04538] - - @navikt/sif-common-forms-ds@8.11.0 - - @navikt/sif-common-formik-ds@1.1.6 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [ce769b8e] +- Updated dependencies [afe04538] + - @navikt/sif-common-forms-ds@8.11.0 + - @navikt/sif-common-formik-ds@1.1.6 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-soknad-ds@10.7.8 ## 3.1.2 ### Patch Changes -- Updated dependencies [1d7c508f] - - @navikt/sif-common-formik-ds@1.1.5 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-forms-ds@8.10.0 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [1d7c508f] + - @navikt/sif-common-formik-ds@1.1.5 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-forms-ds@8.10.0 + - @navikt/sif-common-soknad-ds@10.7.8 ## 3.1.1 ### Patch Changes -- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 -- 5c44f78b: Fjerne ubrukt tekst -- Updated dependencies [5c44f78b] -- Updated dependencies [5c44f78b] -- Updated dependencies [cb7e6653] - - @navikt/sif-common-forms-ds@8.10.0 - - @navikt/sif-common-formik-ds@1.1.4 - - @navikt/sif-common-amplitude@2.21.8 - - @navikt/sif-common-soknad-ds@10.7.8 - - @navikt/appstatus-react-ds@2.14.8 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-utils@3.40.9 +- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 +- 5c44f78b: Fjerne ubrukt tekst +- Updated dependencies [5c44f78b] +- Updated dependencies [5c44f78b] +- Updated dependencies [cb7e6653] + - @navikt/sif-common-forms-ds@8.10.0 + - @navikt/sif-common-formik-ds@1.1.4 + - @navikt/sif-common-amplitude@2.21.8 + - @navikt/sif-common-soknad-ds@10.7.8 + - @navikt/appstatus-react-ds@2.14.8 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-utils@3.40.9 ## 3.1.0 ### Minor Changes -- Legge til logging til aplitude når vedlegg lastes opp. Antall feilet og antall med suksess. +- Legge til logging til aplitude når vedlegg lastes opp. Antall feilet og antall med suksess. ## 3.0.12 ### Patch Changes -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.7 - - @navikt/sif-common-formik-ds@1.1.3 - - @navikt/sif-common-soknad-ds@10.7.7 - - @navikt/sif-common-forms-ds@8.9.7 - - @navikt/appstatus-react-ds@2.14.7 - - @navikt/sif-common-core-ds@9.8.7 - - @navikt/sif-common-sentry@0.22.5 - - @navikt/sif-common-utils@3.40.8 +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.7 + - @navikt/sif-common-formik-ds@1.1.3 + - @navikt/sif-common-soknad-ds@10.7.7 + - @navikt/sif-common-forms-ds@8.9.7 + - @navikt/appstatus-react-ds@2.14.7 + - @navikt/sif-common-core-ds@9.8.7 + - @navikt/sif-common-sentry@0.22.5 + - @navikt/sif-common-utils@3.40.8 ## 3.0.11 ### Patch Changes -- Pakkeoppdatering som fikser datepicker + modal bug -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.6 - - @navikt/sif-common-formik-ds@1.1.2 - - @navikt/sif-common-soknad-ds@10.7.6 - - @navikt/sif-common-forms-ds@8.9.6 - - @navikt/appstatus-react-ds@2.14.6 - - @navikt/sif-common-core-ds@9.8.6 - - @navikt/sif-common-utils@3.40.7 +- Pakkeoppdatering som fikser datepicker + modal bug +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.6 + - @navikt/sif-common-formik-ds@1.1.2 + - @navikt/sif-common-soknad-ds@10.7.6 + - @navikt/sif-common-forms-ds@8.9.6 + - @navikt/appstatus-react-ds@2.14.6 + - @navikt/sif-common-core-ds@9.8.6 + - @navikt/sif-common-utils@3.40.7 ## 3.0.10 ### Patch Changes -- 71381778: Patch pakkeoppdateringer -- Updated dependencies [71381778] - - @navikt/sif-common-amplitude@2.21.5 - - @navikt/sif-common-formik-ds@1.1.1 - - @navikt/sif-common-soknad-ds@10.7.5 - - @navikt/sif-common-forms-ds@8.9.5 - - @navikt/appstatus-react-ds@2.14.5 - - @navikt/sif-common-core-ds@9.8.5 - - @navikt/sif-common-sentry@0.22.4 - - @navikt/sif-common-utils@3.40.6 +- 71381778: Patch pakkeoppdateringer +- Updated dependencies [71381778] + - @navikt/sif-common-amplitude@2.21.5 + - @navikt/sif-common-formik-ds@1.1.1 + - @navikt/sif-common-soknad-ds@10.7.5 + - @navikt/sif-common-forms-ds@8.9.5 + - @navikt/appstatus-react-ds@2.14.5 + - @navikt/sif-common-core-ds@9.8.5 + - @navikt/sif-common-sentry@0.22.4 + - @navikt/sif-common-utils@3.40.6 ## 3.0.9 ### Patch Changes -- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds -- Updated dependencies [60eb7ee9] - - @navikt/sif-common-formik-ds@1.1.0 - - @navikt/sif-common-amplitude@2.21.4 - - @navikt/sif-common-soknad-ds@10.7.4 - - @navikt/sif-common-forms-ds@8.9.4 - - @navikt/appstatus-react-ds@2.14.4 - - @navikt/sif-common-core-ds@9.8.4 - - @navikt/sif-common-sentry@0.22.3 - - @navikt/sif-common-utils@3.40.5 +- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds +- Updated dependencies [60eb7ee9] + - @navikt/sif-common-formik-ds@1.1.0 + - @navikt/sif-common-amplitude@2.21.4 + - @navikt/sif-common-soknad-ds@10.7.4 + - @navikt/sif-common-forms-ds@8.9.4 + - @navikt/appstatus-react-ds@2.14.4 + - @navikt/sif-common-core-ds@9.8.4 + - @navikt/sif-common-sentry@0.22.3 + - @navikt/sif-common-utils@3.40.5 ## 3.0.8 ### Patch Changes -- 2a1e2526: Pakkeoppdateringer -- Updated dependencies [2a1e2526] - - @navikt/sif-common-amplitude@2.21.3 - - @navikt/sif-common-formik-ds@1.0.5 - - @navikt/sif-common-soknad-ds@10.7.3 - - @navikt/sif-common-forms-ds@8.9.3 - - @navikt/appstatus-react-ds@2.14.3 - - @navikt/sif-common-core-ds@9.8.3 - - @navikt/sif-common-sentry@0.22.2 - - @navikt/sif-common-utils@3.40.4 +- 2a1e2526: Pakkeoppdateringer +- Updated dependencies [2a1e2526] + - @navikt/sif-common-amplitude@2.21.3 + - @navikt/sif-common-formik-ds@1.0.5 + - @navikt/sif-common-soknad-ds@10.7.3 + - @navikt/sif-common-forms-ds@8.9.3 + - @navikt/appstatus-react-ds@2.14.3 + - @navikt/sif-common-core-ds@9.8.3 + - @navikt/sif-common-sentry@0.22.2 + - @navikt/sif-common-utils@3.40.4 ## 3.0.7 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.2 - - @navikt/sif-common-formik-ds@1.0.4 - - @navikt/sif-common-soknad-ds@10.7.2 - - @navikt/sif-common-forms-ds@8.9.2 - - @navikt/appstatus-react-ds@2.14.2 - - @navikt/sif-common-core-ds@9.8.2 - - @navikt/sif-common-utils@3.40.3 +- Pakkeoppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.2 + - @navikt/sif-common-formik-ds@1.0.4 + - @navikt/sif-common-soknad-ds@10.7.2 + - @navikt/sif-common-forms-ds@8.9.2 + - @navikt/appstatus-react-ds@2.14.2 + - @navikt/sif-common-core-ds@9.8.2 + - @navikt/sif-common-utils@3.40.3 ## 3.0.6 ### Patch Changes -- 81e7e155: Bruke BodyLong i alle SifGuidePanel -- Updated dependencies [81e7e155] - - @navikt/sif-common-formik-ds@1.0.3 - - @navikt/sif-common-forms-ds@8.9.1 - - @navikt/sif-common-core-ds@9.8.1 - - @navikt/sif-common-utils@3.40.2 - - @navikt/sif-common-soknad-ds@10.7.1 +- 81e7e155: Bruke BodyLong i alle SifGuidePanel +- Updated dependencies [81e7e155] + - @navikt/sif-common-formik-ds@1.0.3 + - @navikt/sif-common-forms-ds@8.9.1 + - @navikt/sif-common-core-ds@9.8.1 + - @navikt/sif-common-utils@3.40.2 + - @navikt/sif-common-soknad-ds@10.7.1 ## 3.0.5 ### Patch Changes -- Updated dependencies [c129755f] - - @navikt/sif-common-formik-ds@1.0.2 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-forms-ds@8.9.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [c129755f] + - @navikt/sif-common-formik-ds@1.0.2 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-forms-ds@8.9.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 3.0.4 ### Patch Changes -- Updated dependencies [92fbd8f8] - - @navikt/sif-common-formik-ds@1.0.1 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-forms-ds@8.9.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [92fbd8f8] + - @navikt/sif-common-formik-ds@1.0.1 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-forms-ds@8.9.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 3.0.3 ### Patch Changes -- 09f730b1: Korrigere skrivefeil -- Updated dependencies [d12fcbb5] - - @navikt/sif-common-forms-ds@8.9.0 +- 09f730b1: Korrigere skrivefeil +- Updated dependencies [d12fcbb5] + - @navikt/sif-common-forms-ds@8.9.0 ## 3.0.2 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies [55e1f323] -- Updated dependencies - - @navikt/sif-common-core-ds@9.7.0 - - @navikt/sif-common-amplitude@2.21.1 - - @navikt/sif-common-formik-ds@0.6.1 - - @navikt/sif-common-soknad-ds@10.7.1 - - @navikt/sif-common-forms-ds@8.8.1 - - @navikt/appstatus-react-ds@2.14.1 - - @navikt/sif-common-sentry@0.22.1 - - @navikt/sif-common-utils@3.40.1 +- Pakkeoppdateringer +- Updated dependencies [55e1f323] +- Updated dependencies + - @navikt/sif-common-core-ds@9.7.0 + - @navikt/sif-common-amplitude@2.21.1 + - @navikt/sif-common-formik-ds@0.6.1 + - @navikt/sif-common-soknad-ds@10.7.1 + - @navikt/sif-common-forms-ds@8.8.1 + - @navikt/appstatus-react-ds@2.14.1 + - @navikt/sif-common-sentry@0.22.1 + - @navikt/sif-common-utils@3.40.1 ## 3.0.1 ### Patch Changes -- f9236285: Oppdatere tekster som forklarer bedre at omsorgsstønad og fosterhjemsgodtgjørelse ikke skal tas med videre når en svarer på spørsmål som frilanser. -- Updated dependencies [61eee34c] - - @navikt/sif-common-formik-ds@0.6.0 - - @navikt/sif-common-core-ds@9.6.0 - - @navikt/sif-common-soknad-ds@10.7.0 - - @navikt/sif-common-forms-ds@8.8.0 +- f9236285: Oppdatere tekster som forklarer bedre at omsorgsstønad og fosterhjemsgodtgjørelse ikke skal tas med videre når en svarer på spørsmål som frilanser. +- Updated dependencies [61eee34c] + - @navikt/sif-common-formik-ds@0.6.0 + - @navikt/sif-common-core-ds@9.6.0 + - @navikt/sif-common-soknad-ds@10.7.0 + - @navikt/sif-common-forms-ds@8.8.0 diff --git a/apps/pleiepenger-sykt-barn/Dockerfile b/apps/pleiepenger-sykt-barn/Dockerfile index 0699cd7035..9ce5335e1e 100644 --- a/apps/pleiepenger-sykt-barn/Dockerfile +++ b/apps/pleiepenger-sykt-barn/Dockerfile @@ -14,7 +14,7 @@ COPY . . RUN yarn RUN yarn turbo run build-app --filter=${SCOPE} -FROM pruner AS server +FROM gcr.io/distroless/nodejs18-debian11:nonroot WORKDIR /apps/pleiepenger-sykt-barn COPY --from=pruner /app/node_modules ./node_modules/ COPY --from=pruner /app/apps/pleiepenger-sykt-barn/server.cjs . @@ -25,4 +25,4 @@ COPY --from=pruner /app/apps/pleiepenger-sykt-barn/src/build/AppSettings.cjs ./s COPY --from=pruner /app/apps/pleiepenger-sykt-barn/dist ./dist EXPOSE 8080 -CMD ["yarn","--cwd", "apps/pleiepenger-sykt-barn", "start-express"] +CMD ["server.cjs"] diff --git a/apps/pleiepenger-sykt-barn/envSettings.js b/apps/pleiepenger-sykt-barn/envSettings.js index 57a57c8f58..89af532cd2 100644 --- a/apps/pleiepenger-sykt-barn/envSettings.js +++ b/apps/pleiepenger-sykt-barn/envSettings.js @@ -4,25 +4,26 @@ require('dotenv').config(); const envSettings = () => { const appSettings = ` window.appSettings = { + API_URL_INNSYN: '${process.env.API_URL_INNSYN}', API_URL: '${process.env.API_URL}', APP_VERSION: '${process.env.APP_VERSION}', - VEDLEGG_API_URL: '${process.env.VEDLEGG_API_URL}', - API_URL_INNSYN: '${process.env.API_URL_INNSYN}', - FRONTEND_INNSYN_API_PATH: '${process.env.FRONTEND_INNSYN_API_PATH}', + APPSTATUS_DATASET: '${process.env.APPSTATUS_DATASET}', + APPSTATUS_PROJECT_ID: '${process.env.APPSTATUS_PROJECT_ID}', + FORENKLET_ARBEID: '${process.env.FORENKLET_ARBEID}', FRONTEND_API_PATH: '${process.env.FRONTEND_API_PATH}', + FRONTEND_INNSYN_API_PATH: '${process.env.FRONTEND_INNSYN_API_PATH}', FRONTEND_VEDLEGG_URL: '${process.env.FRONTEND_VEDLEGG_URL}', + GITHUB_REF_NAME: '${process.env.GITHUB_REF_NAME}', + IMAGE: '${process.env.IMAGE}', + INNSYN_URL: '${process.env.INNSYN_URL}', + INNSYN: '${process.env.INNSYN}', LOGIN_URL: '${process.env.LOGIN_URL}', - PUBLIC_PATH: '${process.env.PUBLIC_PATH}', - UTILGJENGELIG: '${process.env.UTILGJENGELIG}', + MIN_SIDE_URL: '${process.env.MIN_SIDE_URL}', NYNORSK: '${process.env.NYNORSK}', - INNSYN: '${process.env.INNSYN}', - APPSTATUS_PROJECT_ID: '${process.env.APPSTATUS_PROJECT_ID}', - APPSTATUS_DATASET: '${process.env.APPSTATUS_DATASET}', + PUBLIC_PATH: '${process.env.PUBLIC_PATH}', USE_AMPLITUDE: '${process.env.USE_AMPLITUDE}', - INNSYN_URL: '${process.env.INNSYN_URL}', - FORENKLET_ARBEID: '${process.env.FORENKLET_ARBEID}', - IMAGE: '${process.env.IMAGE}', - GITHUB_REF_NAME: '${process.env.GITHUB_REF_NAME}', + UTILGJENGELIG: '${process.env.UTILGJENGELIG}', + VEDLEGG_API_URL: '${process.env.VEDLEGG_API_URL}', };` .trim() .replace(/ /g, ''); diff --git a/apps/pleiepenger-sykt-barn/nais/dev-gcp.json b/apps/pleiepenger-sykt-barn/nais/dev-gcp.json index cedec1036c..8ffba2d1c2 100644 --- a/apps/pleiepenger-sykt-barn/nais/dev-gcp.json +++ b/apps/pleiepenger-sykt-barn/nais/dev-gcp.json @@ -5,8 +5,11 @@ "team": "dusseldorf", "ingresses": ["https://pleiepengesoknad.intern.dev.nav.no"], "externalHosts": ["www.nav.no", "dekoratoren.ekstern.dev.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], "livenessPath": "/familie/sykdom-i-familien/soknad/pleiepenger/health/isAlive", "readinessPath": "/familie/sykdom-i-familien/soknad/pleiepenger/health/isReady", + "minReplicas": 1, + "maxReplicas": 1, "env": { "API_TOKENX_AUDIENCE": "dev-gcp:dusseldorf:k9-brukerdialog-api", "API_URL_INNSYN": "http://sif-innsyn-api", @@ -23,6 +26,7 @@ "INNSYN_URL": "https://sif-innsyn.intern.dev.nav.no/familie/sykdom-i-familien/soknad/innsyn/", "INNSYN": "on", "LOGIN_URL": "https://pleiepengesoknad.intern.dev.nav.no/oauth2/login?redirect=/familie/sykdom-i-familien/soknad/pleiepenger/soknad", + "MIN_SIDE_URL": "https://www.intern.dev.nav.no/minside", "NPM_CONFIG_CACHE": "/tmp", "NYNORSK": "on", "PUBLIC_PATH": "/familie/sykdom-i-familien/soknad/pleiepenger", diff --git a/apps/pleiepenger-sykt-barn/nais/prod-gcp.json b/apps/pleiepenger-sykt-barn/nais/prod-gcp.json index eb145302aa..6a6b5a613e 100644 --- a/apps/pleiepenger-sykt-barn/nais/prod-gcp.json +++ b/apps/pleiepenger-sykt-barn/nais/prod-gcp.json @@ -5,28 +5,32 @@ "team": "dusseldorf", "ingresses": ["https://www.nav.no/familie/sykdom-i-familien/soknad/pleiepenger"], "externalHosts": ["www.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], "livenessPath": "/familie/sykdom-i-familien/soknad/pleiepenger/health/isAlive", "readinessPath": "/familie/sykdom-i-familien/soknad/pleiepenger/health/isReady", + "minReplicas": 2, + "maxReplicas": 2, "env": { - "DEKORATOR_URL": "https://www.nav.no/dekoratoren/?simple=true&chatbot=false&logoutUrl=https://www.nav.no/familie/sykdom-i-familien/soknad/pleiepenger/oauth2/logout", + "API_TOKENX_AUDIENCE": "prod-gcp:dusseldorf:k9-brukerdialog-api", + "API_URL_INNSYN": "http://sif-innsyn-api", "API_URL": "http://k9-brukerdialog-api", - "VEDLEGG_API_URL": "https://k9-brukerdialog-api", - "FRONTEND_VEDLEGG_URL": "https://www.nav.no/familie/sykdom-i-familien/soknad/pleiepenger/api", + "APPSTATUS_DATASET": "production", + "APPSTATUS_PROJECT_ID": "ryujtq87", + "DEKORATOR_URL": "https://www.nav.no/dekoratoren/?simple=true&chatbot=false&logoutUrl=https://www.nav.no/familie/sykdom-i-familien/soknad/pleiepenger/oauth2/logout", + "FORENKLET_ARBEID": "off", "FRONTEND_API_PATH": "/familie/sykdom-i-familien/soknad/pleiepenger/api", "FRONTEND_INNSYN_API_PATH": "/familie/sykdom-i-familien/soknad/pleiepenger/innsynapi", - "API_URL_INNSYN": "http://sif-innsyn-api", - "PUBLIC_PATH": "/familie/sykdom-i-familien/soknad/pleiepenger", - "LOGIN_URL": "https://www.nav.no/familie/sykdom-i-familien/soknad/pleiepenger/oauth2/login?redirect=/familie/sykdom-i-familien/soknad/pleiepenger/soknad", + "FRONTEND_VEDLEGG_URL": "https://www.nav.no/familie/sykdom-i-familien/soknad/pleiepenger/api", + "INNSYN_API_TOKENX_AUDIENCE": "prod-gcp:dusseldorf:sif-innsyn-api", "INNSYN_URL": "https://www.nav.no/familie/sykdom-i-familien/soknad/innsyn/", - "NYNORSK": "off", "INNSYN": "on", + "LOGIN_URL": "https://www.nav.no/familie/sykdom-i-familien/soknad/pleiepenger/oauth2/login?redirect=/familie/sykdom-i-familien/soknad/pleiepenger/soknad", + "MIN_SIDE_URL": "https://www.nav.no/minside", + "NPM_CONFIG_CACHE": "/tmp", + "NYNORSK": "off", + "PUBLIC_PATH": "/familie/sykdom-i-familien/soknad/pleiepenger", "TOGGLE_BEKREFT_OMSORG": "off", - "APPSTATUS_PROJECT_ID": "ryujtq87", - "APPSTATUS_DATASET": "production", "USE_AMPLITUDE": "true", - "FORENKLET_ARBEID": "off", - "API_TOKENX_AUDIENCE": "prod-gcp:dusseldorf:k9-brukerdialog-api", - "INNSYN_API_TOKENX_AUDIENCE": "prod-gcp:dusseldorf:sif-innsyn-api", - "NPM_CONFIG_CACHE": "/tmp" + "VEDLEGG_API_URL": "https://k9-brukerdialog-api" } } diff --git a/apps/pleiepenger-sykt-barn/package.json b/apps/pleiepenger-sykt-barn/package.json index a0c18bfb6f..7c6e881ba9 100644 --- a/apps/pleiepenger-sykt-barn/package.json +++ b/apps/pleiepenger-sykt-barn/package.json @@ -4,7 +4,7 @@ "license": "MIT", "name": "@navikt/pleiepenger-sykt-barn", "repository": "https://github.com/navikt/sif-brukerdialog", - "version": "3.2.4", + "version": "3.7.2", "private": true, "type": "module", "scripts": { @@ -12,26 +12,19 @@ "build-storybook": "storybook build", "clean": "rm -rf node_modules .dist", "codegen": "playwright codegen", - "dev": "yarn dev-api & yarn snd", "dev-api": "PORT=8089 node ./api-mock/mock-server.cjs", - "e2e-ui": "playwright test --ui", - "e2e": "playwright test", - "playwright-test": "playwright test --reporter=list", - "lint": "eslint ./src --ext ts,tsx", - "snd": "cross-env NODE_ENV=development node ./server.cjs", + "dev": "cross-env NODE_ENV=development node ./server.cjs", "start-e2e-server": "node ./server-e2e.cjs", "start-express": "node ./server.cjs", "storybook": "storybook dev -p 6006 -s public", - "test-watch": "react-scripts test --watchAll=true --env=jsdom", - "test": "react-scripts test --watchAll=false --env=jsdom" + "test": "vitest", + "lint": "eslint ./src --ext ts,tsx" }, "dependencies": { - "@formatjs/intl-pluralrules": "5.2.9", "@navikt/appstatus-react-ds": "workspace:*", - "@navikt/ds-css": "5.10.1", + "@navikt/ds-css": "5.11.4", "@navikt/ds-icons": "3.4.3", - "@navikt/ds-react": "5.10.1", - "@navikt/fnrvalidator": "1.3.0", + "@navikt/ds-react": "5.11.4", "@navikt/sif-app-register": "workspace:*", "@navikt/sif-common-amplitude": "workspace:*", "@navikt/sif-common-core-ds": "workspace:*", @@ -41,99 +34,65 @@ "@navikt/sif-common-sentry": "workspace:*", "@navikt/sif-common-soknad-ds": "workspace:*", "@navikt/sif-common-utils": "workspace:*", - "ajv": "8.12.0", "amplitude-js": "8.21.9", - "axios": "1.6.1", + "axios": "1.6.2", "compression": "1.7.4", - "constate": "3.3.2", "cookie-parser": "1.4.6", "dotenv": "16.3.1", "express": "4.18.2", "formik": "2.4.5", - "fs-extra": "11.1.1", "helmet": "7.1.0", "http-proxy-middleware": "2.0.6", "http-status-codes": "2.3.0", - "jose": "5.1.0", + "jose": "5.1.3", "lodash.debounce": "4.0.8", "lodash.groupby": "4.6.0", - "mini-css-extract-plugin": "2.7.6", "mustache-express": "1.3.2", "openid-client": "5.6.1", - "promise": "8.3.0", "react": "18.2.0", "react-day-picker": "8.9.1", - "react-responsive": "9.0.2", - "react-router-dom": "6.18.0", - "ts-loader": "9.5.0", + "react-router-dom": "6.20.1", "uuid": "9.0.1" }, "devDependencies": { "@axe-core/playwright": "4.8.1", "@babel/plugin-proposal-object-rest-spread": "7.20.7", "@babel/plugin-transform-modules-commonjs": "7.23.3", - "@babel/preset-env": "7.23.3", + "@babel/preset-env": "7.23.5", "@babel/preset-react": "7.23.3", - "@playwright/test": "^1.39.0", - "@sentry/vite-plugin": "2.10.0", - "@storybook/react-vite": "7.5.3", - "@testing-library/jest-dom": "6.1.4", - "@testing-library/react": "14.1.0", + "@sentry/vite-plugin": "2.10.2", + "@storybook/react-vite": "7.6.4", + "@testing-library/react": "14.1.2", "@testing-library/user-event": "14.5.1", "@types/lodash.debounce": "4.0.9", "@types/lodash.groupby": "4.6.9", - "@types/react": "18.2.37", - "@types/react-dom": "18.2.15", + "@types/react": "18.2.43", + "@types/react-dom": "18.2.17", "@types/react-router-dom": "5.3.3", - "@typescript-eslint/eslint-plugin": "6.10.0", - "@typescript-eslint/parser": "6.10.0", - "@vitejs/plugin-react": "4.1.1", + "@typescript-eslint/eslint-plugin": "6.14.0", + "@typescript-eslint/parser": "6.14.0", + "@vitejs/plugin-react": "4.2.1", "axe-core": "4.8.2", - "axios-mock-adapter": "1.22.0", - "babel-polyfill": "6.26.0", "busboy": "1.6.0", "cross-env": "7.0.3", - "css-loader": "6.8.1", - "cypress": "13.5.0", + "cypress": "13.6.1", "cypress-axe": "1.5.0", "cypress-file-upload": "5.0.8", "dayjs": "1.11.10", - "eslint-config-prettier": "9.0.0", + "eslint-config-prettier": "9.1.0", "eslint-plugin-jsx-a11y": "6.8.0", "eslint-plugin-prettier": "5.0.1", "eslint-plugin-react": "7.33.2", "eslint-plugin-react-hooks": "4.6.0", - "express-rate-limit": "7.1.4", + "express-rate-limit": "7.1.5", "intl": "1.2.5", - "jsdom": "22.1.0", + "jsdom": "23.0.1", "less": "4.2.0", - "less-loader": "11.1.3", - "npm-run-all": "4.1.5", "react-dom": "18.2.0", - "react-intl": "6.5.4", - "react-scripts": "5.0.1", - "sass": "1.69.5", - "sass-loader": "13.3.2", - "source-map-loader": "4.0.1", - "start-server-and-test": "2.0.2", - "style-loader": "3.3.3", - "typescript": "5.2.2", - "vite": "4.5.0", - "vite-plugin-checker": "0.6.2" - }, - "jest": { - "transformIgnorePatterns": [ - "node_modules/(?!(@navikt)).*\\.js$" - ], - "moduleNameMapper": { - "axios": "axios/dist/node/axios.cjs" - }, - "resetMocks": false - }, - "resolutions": { - "babel-core": "7.0.0-bridge.0" - }, - "overrides": { - "typescript": "5.0.4" + "react-intl": "6.5.5", + "typescript": "5.3.3", + "vite": "5.0.7", + "vite-plugin-checker": "0.6.2", + "vitest": "1.0.4" } } diff --git a/apps/pleiepenger-sykt-barn/src/app/api/__tests__/api.test.ts b/apps/pleiepenger-sykt-barn/src/app/api/__tests__/api.test.ts index 94cb79fa55..06b3ba46ba 100644 --- a/apps/pleiepenger-sykt-barn/src/app/api/__tests__/api.test.ts +++ b/apps/pleiepenger-sykt-barn/src/app/api/__tests__/api.test.ts @@ -1,7 +1,8 @@ import axios from 'axios'; +import { vi } from 'vitest'; import { axiosConfigPsb } from '../../config/axiosConfig'; import { ResourceType } from '../../types/ResourceType'; -import { axiosJsonConfig, sendMultipartPostRequest } from '../utils/apiUtils'; +import { StepID } from '../../types/StepID'; import { deleteFile, getArbeidsgiver, @@ -12,30 +13,35 @@ import { sendApplication, uploadFile, } from '../api'; -import { StepID } from '../../types/StepID'; +import { axiosJsonConfig, sendMultipartPostRequest } from '../utils/apiUtils'; -jest.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => { - return { getEnvironmentVariable: () => 'mockedApiUrl', getEnvVariableOrDefault: () => 'mockedApiUrl' }; +vi.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => { + return { + getEnvironmentVariable: () => 'mockedApiUrl', + getEnvVariableOrDefault: () => 'mockedApiUrl', + getCommitShaFromEnv: () => 'mockedCommitSha', + }; }); const mockedApiUrl = 'nav.no/api'; -jest.mock('../utils/apiUtils', () => { +vi.mock('../utils/apiUtils', () => { return { - getApiUrlByResourceType: jest.fn(() => mockedApiUrl), - getInnsynApiUrlByResourceType: jest.fn(() => mockedApiUrl), - sendMultipartPostRequest: jest.fn(), + getApiUrlByResourceType: vi.fn(() => mockedApiUrl), + getInnsynApiUrlByResourceType: vi.fn(() => mockedApiUrl), + sendMultipartPostRequest: vi.fn(), + axiosJsonConfig: {}, }; }); -jest.mock('../../utils/featureToggleUtils', () => { +vi.mock('../../utils/featureToggleUtils', () => { return { - isFeatureEnabled: jest.fn(() => false), + isFeatureEnabled: vi.fn(() => false), Feature: {}, }; }); -jest.mock('axios'); +vi.mock('axios'); describe('api', () => { describe('getBarn', () => { diff --git a/apps/pleiepenger-sykt-barn/src/app/api/__tests__/apiUtils.test.ts b/apps/pleiepenger-sykt-barn/src/app/api/__tests__/apiUtils.test.ts index ac324943e3..b3d81eb9ae 100644 --- a/apps/pleiepenger-sykt-barn/src/app/api/__tests__/apiUtils.test.ts +++ b/apps/pleiepenger-sykt-barn/src/app/api/__tests__/apiUtils.test.ts @@ -2,10 +2,11 @@ import axios from 'axios'; import { ResourceType } from '../../types/ResourceType'; import { getApiUrlByResourceType, multipartConfig, sendMultipartPostRequest } from '../utils/apiUtils'; +import { vi } from 'vitest'; const mockedApiUrl = 'mockedApiUrl'; -jest.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => { +vi.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => { return { getEnvironmentVariable: () => 'mockedApiUrl', getEnvVariableOrDefault: () => 'mockedApiUrl', @@ -13,7 +14,7 @@ jest.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => { }; }); -jest.mock('axios'); +vi.mock('axios'); describe('apiUtils', () => { describe('sendMultipartPostRequest', () => { diff --git a/apps/pleiepenger-sykt-barn/src/app/components/formik-file-uploader/FormikFileUploader.tsx b/apps/pleiepenger-sykt-barn/src/app/components/formik-file-uploader/FormikFileUploader.tsx deleted file mode 100644 index 1b605d2a1f..0000000000 --- a/apps/pleiepenger-sykt-barn/src/app/components/formik-file-uploader/FormikFileUploader.tsx +++ /dev/null @@ -1,149 +0,0 @@ -import { Attachment, PersistedFile } from '@navikt/sif-common-core-ds/lib/types/Attachment'; -import { FileRejection } from 'react-dropzone'; -import { - attachmentShouldBeProcessed, - attachmentShouldBeUploaded, - attachmentUploadHasFailed, - getAttachmentFromFile, - getPendingAttachmentFromFile, - isFileObject, - mapFileToPersistedFile, -} from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; -import { FileDropAcceptImagesAndPdf, TypedFormInputValidationProps } from '@navikt/sif-common-formik-ds'; -import { ArrayHelpers, connect, useFormikContext } from 'formik'; -import { SøknadFormField, SøknadFormValues } from '../../types/søknad-form-values/SøknadFormValues'; -import { ValidationError } from '@navikt/sif-common-formik-ds/lib/validation/types'; -import { getAttachmentURLFrontend } from '../../utils/attachmentUtilsAuthToken'; -import FormikFileDropInput from '@navikt/sif-common-formik-ds/lib/components/formik-file-drop-input/FormikFileDropInput'; -import { uploadFile } from '../../api/api'; -import { isForbidden, isUnauthorized } from '@navikt/sif-common-core-ds/lib/utils/apiUtils'; - -export type FieldArrayReplaceFn = (index: number, value: any) => void; -export type FieldArrayPushFn = (obj: any) => void; -export type FieldArrayRemoveFn = (index: number) => undefined; - -interface FormikFileUploader extends TypedFormInputValidationProps { - name: SøknadFormField; - buttonLabel: string; - legend: string; - onFilesUploaded?: (antall: number, antallFeilet: number) => void; - onFileInputClick?: () => void; - onErrorUploadingAttachments: (files: File[]) => void; - onUnauthorizedOrForbiddenUpload: () => void; -} - -type Props = FormikFileUploader; - -const FormikFileUploader = ({ - name, - buttonLabel, - legend, - onFileInputClick, - onFilesUploaded, - onErrorUploadingAttachments, - onUnauthorizedOrForbiddenUpload, - ...otherProps -}: Props) => { - const { values } = useFormikContext(); - - async function uploadAttachment(attachment: Attachment) { - const { file } = attachment; - if (isFileObject(file)) { - try { - const response = await uploadFile(file); - attachment = setAttachmentPendingToFalse(attachment); - attachment.url = getAttachmentURLFrontend(response.headers.location); - attachment.uploaded = true; - } catch (error) { - if (isForbidden(error) || isUnauthorized(error)) { - onUnauthorizedOrForbiddenUpload(); - } - setAttachmentPendingToFalse(attachment); - } - } - } - - async function uploadAttachments( - allAttachments: Attachment[], - fileRejections: FileRejection[], - replaceFn: FieldArrayReplaceFn, - ) { - const attachmentsToProcess = findAttachmentsToProcess(allAttachments); - const attachmentsToUpload = findAttachmentsToUpload(attachmentsToProcess); - - const attachmentsNotToUpload = [ - ...attachmentsToProcess.filter((el) => !attachmentsToUpload.includes(el)), - ...fileRejections.map((f) => getAttachmentFromFile(f.file)), - ]; - - for (const attachment of attachmentsToUpload) { - await uploadAttachment(attachment); - updateAttachmentListElement(allAttachments, attachment, replaceFn); - } - - const failedAttachments = [...attachmentsNotToUpload, ...attachmentsToUpload.filter(attachmentUploadHasFailed)]; - updateFailedAttachments(allAttachments, failedAttachments, replaceFn); - if (onFilesUploaded) { - onFilesUploaded(attachmentsToUpload.length, failedAttachments.length); - } - } - - function updateFailedAttachments( - allAttachments: Attachment[], - failedAttachments: Attachment[], - replaceFn: FieldArrayReplaceFn, - ) { - failedAttachments.forEach((attachment) => { - attachment = setAttachmentPendingToFalse(attachment); - updateAttachmentListElement(allAttachments, attachment, replaceFn); - }); - const failedFiles: File[] = failedAttachments - .map(({ file }) => file) - .filter((f: File | PersistedFile) => isFileObject(f)) as File[]; - - onErrorUploadingAttachments(failedFiles); - } - - function findAttachmentsToProcess(attachments: Attachment[]): Attachment[] { - return attachments.filter(attachmentShouldBeProcessed); - } - - function findAttachmentsToUpload(attachments: Attachment[]): Attachment[] { - return attachments.filter(attachmentShouldBeUploaded); - } - - function updateAttachmentListElement( - attachments: Attachment[], - attachment: Attachment, - replaceFn: FieldArrayReplaceFn, - ) { - replaceFn(attachments.indexOf(attachment), { ...attachment, file: mapFileToPersistedFile(attachment.file) }); - } - - function setAttachmentPendingToFalse(attachment: Attachment) { - attachment.pending = false; - return attachment; - } - - function addPendingAttachmentToFieldArray(file: File, pushFn: FieldArrayPushFn) { - const attachment = getPendingAttachmentFromFile(file); - pushFn(attachment); - return attachment; - } - return ( - - name={name} - legend={legend} - buttonLabel={buttonLabel} - accept={FileDropAcceptImagesAndPdf} - onFilesSelect={async (files: File[], rejectedFiles: FileRejection[], { push, replace }: ArrayHelpers) => { - const attachments = files.map((file) => addPendingAttachmentToFieldArray(file, push)); - await uploadAttachments([...(values as any)[name], ...attachments], rejectedFiles, replace); - }} - onClick={onFileInputClick} - {...otherProps} - /> - ); -}; - -export default connect(FormikFileUploader); diff --git a/apps/pleiepenger-sykt-barn/src/app/i18n/nb.ts b/apps/pleiepenger-sykt-barn/src/app/i18n/nb.ts index 8eab9aabe2..963267a3f1 100644 --- a/apps/pleiepenger-sykt-barn/src/app/i18n/nb.ts +++ b/apps/pleiepenger-sykt-barn/src/app/i18n/nb.ts @@ -643,7 +643,7 @@ export const appMessagesNb = { 'page.confirmation.dinePP.list.item.2': 'Ettersende dokumentasjon', 'page.confirmation.dinePP.list.item.3': 'Melde fra om endring', 'page.confirmation.dinePP.list.item.4': 'Få informasjon om saksgang', - 'page.confirmation.dinePP.lenke': 'GÅ TIL DINE PLEIEPENGER', + 'page.confirmation.dinePP.lenke': 'Gå til Dine pleiepenger', 'page.generalErrorPage.sidetittel': 'Feil', 'page.generalErrorPage.tittel': 'Noe gikk galt...', @@ -1078,6 +1078,9 @@ export const appMessagesNb = { 'validation.frilans.sluttdato.dateIsBeforeMin': 'Datoen for når du sluttet å jobbe som frilanser kan ikke være før datoen du startet.', + 'validation.frilans.startetFørSisteTreHeleMåneder.yesOrNoIsUnanswered': + 'Du må svare ja eller nei på om du startet som frilanser før {dato}.', + 'validation.frilans.erFortsattFrilanser.yesOrNoIsUnanswered': 'Du må svare ja eller nei på om du fortsatt jobber som frilanser.', diff --git "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/S\303\270knadContent.tsx" "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/S\303\270knadContent.tsx" index 3155f9efe2..c15964a552 100644 --- "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/S\303\270knadContent.tsx" +++ "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/S\303\270knadContent.tsx" @@ -24,7 +24,7 @@ import { cleanupAndSetFormikValues } from '../utils/cleanupAndSetFormikValues'; import { extractSøknadsdataFromFormValues } from '../utils/formValuesToSøknadsdata/extractSøknadsdataFromFormValues'; import { getSøknadsperiodeFromFormValues } from '../utils/formValuesUtils'; import { getKvitteringInfoFromApiData } from '../utils/kvitteringUtils'; -import { navigateTo, relocateToSoknad } from '../utils/navigationUtils'; +import { relocateToSoknad } from '../utils/navigationUtils'; import { getNextStepRoute, isAvailable } from '../utils/routeUtils'; import { getGyldigRedirectStepForMellomlagretSøknad } from '../utils/stepUtils'; import ArbeidssituasjonStep from './arbeidssituasjon-step/ArbeidssituasjonStep'; @@ -38,6 +38,7 @@ import OpplysningerOmBarnetStep from './opplysninger-om-barnet-step/Opplysninger import OppsummeringStep from './oppsummering-step/OppsummeringStep'; import { useSøknadsdataContext } from './SøknadsdataContext'; import TidsromStep from './tidsrom-step/TidsromStep'; +import { getSøknadStepConfig } from './søknadStepConfig'; interface PleiepengesøknadContentProps { /** Sist steg som bruker submittet skjema */ @@ -63,9 +64,10 @@ const SøknadContent = ({ mellomlagringMetadata, søker }: PleiepengesøknadCont const sendUserToStep = useCallback( async (step: StepID) => { await logHendelse(ApplikasjonHendelse.starterMedMellomlagring, { step }); - navigateTo(step, navigate); + const stepConfig = getSøknadStepConfig(values); + navigate(stepConfig[step].route); }, - [logHendelse, navigate], + [logHendelse, navigate, values], ); const isOnWelcomPage = location.pathname === RouteConfig.WELCOMING_PAGE_ROUTE; @@ -73,8 +75,8 @@ const SøknadContent = ({ mellomlagringMetadata, søker }: PleiepengesøknadCont const nextStepRoute = søknadHasBeenSent ? undefined : mellomlagringMetadata?.lastStepID - ? getNextStepRoute(mellomlagringMetadata.lastStepID, values) - : undefined; + ? getNextStepRoute(mellomlagringMetadata.lastStepID, values) + : undefined; /** Redirect til riktig side */ useEffect(() => { @@ -102,7 +104,7 @@ const SøknadContent = ({ mellomlagringMetadata, søker }: PleiepengesøknadCont const nextStepRoute = getNextStepRoute(stepId, formValues); if (nextStepRoute) { persistSoknad({ formValues, stepID: stepId }).then(() => { - navigateTo(nextStepRoute, navigate); + navigate(nextStepRoute); }); } }); @@ -118,7 +120,7 @@ const SøknadContent = ({ mellomlagringMetadata, søker }: PleiepengesøknadCont setTimeout(() => { setSøknadsdata(extractSøknadsdataFromFormValues(initialFormValues || values)); - navigateTo(`${RouteConfig.SØKNAD_ROUTE_PREFIX}/${StepID.OPPLYSNINGER_OM_BARNET}`, navigate); + navigate(`${RouteConfig.SØKNAD_ROUTE_PREFIX}/${StepID.OPPLYSNINGER_OM_BARNET}`); }); }; @@ -322,7 +324,7 @@ const SøknadContent = ({ mellomlagringMetadata, søker }: PleiepengesøknadCont onApplicationSent={(apiData: SøknadApiData, søkerdata: Søkerdata) => { setKvitteringInfo(getKvitteringInfoFromApiData(apiData, søkerdata)); setSøknadHasBeenSent(true); - navigateTo(RouteConfig.SØKNAD_SENDT_ROUTE, navigate); + navigate(RouteConfig.SØKNAD_SENDT_ROUTE); }} /> } diff --git "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/S\303\270knadFormStep.tsx" "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/S\303\270knadFormStep.tsx" index 3a7df947e8..74f5f4ee3f 100644 --- "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/S\303\270knadFormStep.tsx" +++ "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/S\303\270knadFormStep.tsx" @@ -11,7 +11,7 @@ import { purge } from '../api/api'; import usePersistSoknad from '../hooks/usePersistSoknad'; import { StepID } from '../types/StepID'; import { SøknadFormValues } from '../types/søknad-form-values/SøknadFormValues'; -import { relocateToDinePleiepenger, relocateToSoknad } from '../utils/navigationUtils'; +import { relocateToMinSide, relocateToSoknad } from '../utils/navigationUtils'; import SøknadFormComponents from './SøknadFormComponents'; import { getSøknadStepConfig } from './søknadStepConfig'; import InvalidStepPage from '../pages/invalid-step-page/InvalidStepPage'; @@ -64,7 +64,7 @@ const SøknadFormStep = (props: Props) => { /** Mellomlagring lagrer forrige steg, derfor må dette hentes ut her **/ await persistSoknad({ stepID: currentStepConfig.previousStep }); await logHendelse(ApplikasjonHendelse.fortsettSenere); - relocateToDinePleiepenger(); + relocateToMinSide(); }; const { previousStepRoute } = currentStepConfig; diff --git "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/arbeidssituasjon-step/components/frilans-form-parts/sp\303\270rsm\303\245l/FrilansSluttdatoSp\303\270rsm\303\245l.tsx" "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/arbeidssituasjon-step/components/frilans-form-parts/sp\303\270rsm\303\245l/FrilansSluttdatoSp\303\270rsm\303\245l.tsx" index ed50927769..ac038519d1 100644 --- "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/arbeidssituasjon-step/components/frilans-form-parts/sp\303\270rsm\303\245l/FrilansSluttdatoSp\303\270rsm\303\245l.tsx" +++ "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/arbeidssituasjon-step/components/frilans-form-parts/sp\303\270rsm\303\245l/FrilansSluttdatoSp\303\270rsm\303\245l.tsx" @@ -27,7 +27,7 @@ const FrilansSluttdatoSpørsmål: React.FunctionComponent = ({ name={FrilansFormField.sluttdato} label={intlHelper(intl, `frilanser.sluttdato.spm`)} dropdownCaption={true} - minDate={datepickerUtils.getDateFromDateString(startdatoValue) || dayjs().subtract(90, 'years').toDate()} + minDate={datepickerUtils.getDateFromDateString(startdatoValue) || dayjs().subtract(80, 'years').toDate()} maxDate={søknadsdato} validate={(value) => { const error = getFrilanserSluttdatoValidator( diff --git "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/arbeidssituasjon-step/components/frilans-form-parts/sp\303\270rsm\303\245l/FrilansStartetF\303\270rSisteTreHeleM\303\245nederSp\303\270rsm\303\245l.tsx" "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/arbeidssituasjon-step/components/frilans-form-parts/sp\303\270rsm\303\245l/FrilansStartetF\303\270rSisteTreHeleM\303\245nederSp\303\270rsm\303\245l.tsx" index a2001c1c5f..0f8c687c07 100644 --- "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/arbeidssituasjon-step/components/frilans-form-parts/sp\303\270rsm\303\245l/FrilansStartetF\303\270rSisteTreHeleM\303\245nederSp\303\270rsm\303\245l.tsx" +++ "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/arbeidssituasjon-step/components/frilans-form-parts/sp\303\270rsm\303\245l/FrilansStartetF\303\270rSisteTreHeleM\303\245nederSp\303\270rsm\303\245l.tsx" @@ -13,12 +13,13 @@ interface Props { const FrilansStartetFørSisteTreHeleMånederSpørsmål: React.FunctionComponent = ({ søknadsperiode }) => { const intl = useIntl(); + const dato = dateFormatter.dateShortMonthYear(getStartdatoForNySomFrilanser(søknadsperiode)); return ( { const error = getYesOrNoValidator()(value); @@ -26,7 +27,7 @@ const FrilansStartetFørSisteTreHeleMånederSpørsmål: React.FunctionComponent< ? { key: `${error}`, values: { - frilanstype: intlHelper(intl, `validation.frilans.startetFørSisteTreHeleMåneder`), + dato, }, } : undefined; diff --git "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/arbeidssituasjon-step/utils/__tests__/arbeidsgivereUtils.test.ts" "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/arbeidssituasjon-step/utils/__tests__/arbeidsgivereUtils.test.ts" index 51a2c4bd13..d668e8a1b3 100644 --- "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/arbeidssituasjon-step/utils/__tests__/arbeidsgivereUtils.test.ts" +++ "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/arbeidssituasjon-step/utils/__tests__/arbeidsgivereUtils.test.ts" @@ -2,6 +2,7 @@ import { YesOrNo } from '@navikt/sif-common-core-ds/lib/types/YesOrNo'; import { ArbeidsforholdFormValues } from '../../../../types/søknad-form-values/ArbeidsforholdFormValues'; import { Arbeidsgiver, ArbeidsgiverType } from '../../../../types/Arbeidsgiver'; import { syncAnsattArbeidsforhold } from '../arbeidsgivereUtils'; +import { vi } from 'vitest'; const organisasjoner: Arbeidsgiver[] = [ { type: ArbeidsgiverType.ORGANISASJON, navn: 'Org1', id: '1' }, @@ -53,7 +54,7 @@ const arbeidsforholdUbesvart: ArbeidsforholdFormValues = { const arbeidsforhold: ArbeidsforholdFormValues[] = [arbeidsforholdErAnsatt, arbeidsforholdUbesvart]; -jest.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => { +vi.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => { return { getEnvironmentVariable: () => 'someEnvVar', }; diff --git "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/legeerkl\303\246ring-step/Legeerkl\303\246ringStep.tsx" "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/legeerkl\303\246ring-step/Legeerkl\303\246ringStep.tsx" index a576d56643..e2c970413a 100644 --- "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/legeerkl\303\246ring-step/Legeerkl\303\246ringStep.tsx" +++ "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/legeerkl\303\246ring-step/Legeerkl\303\246ringStep.tsx" @@ -14,7 +14,7 @@ import intlHelper from '@navikt/sif-common-core-ds/lib/utils/intlUtils'; import { useFormikContext } from 'formik'; import React from 'react'; import { FormattedMessage, useIntl } from 'react-intl'; -import FormikFileUploader from '../../components/formik-file-uploader/FormikFileUploader'; +import FormikFileUploader from '@navikt/sif-common-core-ds/lib/components/formik-file-uploader/FormikFileUploader'; import LegeerklæringFileList from '../../components/legeerklæring-file-list/LegeerklæringFileList'; import usePersistSoknad from '../../hooks/usePersistSoknad'; import getLenker from '../../lenker'; @@ -24,6 +24,8 @@ import { SøknadFormField, SøknadFormValues } from '../../types/søknad-form-va import { relocateToLoginPage } from '../../utils/navigationUtils'; import { validateLegeerklæring } from '../../validation/fieldValidations'; import SøknadFormStep from '../SøknadFormStep'; +import { uploadFile } from '../../api/api'; +import { getAttachmentURLFrontend } from '../../utils/attachmentUtilsAuthToken'; const LegeerklæringStep = ({ onValidSubmit }: StepCommonProps) => { const [filesThatDidntGetUploaded, setFilesThatDidntGetUploaded] = React.useState([]); @@ -112,8 +114,11 @@ const LegeerklæringStep = ({ onValidSubmit }: StepCommonProps) => { {totalSize <= MAX_TOTAL_ATTACHMENT_SIZE_BYTES && ( uploadFile(file)} + getAttachmentURLFrontend={getAttachmentURLFrontend} legend={intlHelper(intl, 'steg.lege.vedlegg.legend')} name={SøknadFormField.legeerklæring} + attachments={attachments} buttonLabel={intlHelper(intl, 'steg.lege.vedlegg')} onErrorUploadingAttachments={vedleggOpplastingFeilet} onFileInputClick={() => { diff --git "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/opplysninger-om-barnet-step/AnnetBarnPart.tsx" "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/opplysninger-om-barnet-step/AnnetBarnPart.tsx" index 653739a52d..d6f3a16ce1 100644 --- "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/opplysninger-om-barnet-step/AnnetBarnPart.tsx" +++ "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/opplysninger-om-barnet-step/AnnetBarnPart.tsx" @@ -135,6 +135,7 @@ const AnnetBarnPart: React.FC = ({ formValues, søkersFødselsnummer, att } return dateError; }} + minDate={nYearsAgo(18)} maxDate={dateToday} dropdownCaption={true} /> @@ -191,6 +192,7 @@ const AnnetBarnPart: React.FC = ({ formValues, søkersFødselsnummer, att : undefined; }} value={formValues.relasjonTilBarnet || ''} + data-testid="opplysninger-om-barnet-relasjonAnnetBeskrivelse" /> )} diff --git "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/opplysninger-om-barnet-step/F\303\270dselsattestPart.tsx" "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/opplysninger-om-barnet-step/F\303\270dselsattestPart.tsx" index 1085591252..690bf1cd27 100644 --- "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/opplysninger-om-barnet-step/F\303\270dselsattestPart.tsx" +++ "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/opplysninger-om-barnet-step/F\303\270dselsattestPart.tsx" @@ -4,6 +4,7 @@ import { FormattedMessage, useIntl } from 'react-intl'; import { ApplikasjonHendelse, SIFCommonGeneralEvents, useAmplitudeInstance } from '@navikt/sif-common-amplitude/lib'; import Block from '@navikt/sif-common-core-ds/lib/atoms/block/Block'; import FileUploadErrors from '@navikt/sif-common-core-ds/lib/components/file-upload-errors/FileUploadErrors'; +import FormikFileUploader from '@navikt/sif-common-core-ds/lib/components/formik-file-uploader/FormikFileUploader'; import PictureScanningGuide from '@navikt/sif-common-core-ds/lib/components/picture-scanning-guide/PictureScanningGuide'; import { Attachment } from '@navikt/sif-common-core-ds/lib/types/Attachment'; import { @@ -13,12 +14,12 @@ import { } from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; import intlHelper from '@navikt/sif-common-core-ds/lib/utils/intlUtils'; import { useFormikContext } from 'formik'; -import { persist } from '../../api/api'; -import FormikFileUploader from '../../components/formik-file-uploader/FormikFileUploader'; +import { persist, uploadFile } from '../../api/api'; import UploadedDocumentsList from '../../components/fødselsattest-file-list/UploadedDocumentsList'; import getLenker from '../../lenker'; import { StepID } from '../../types/StepID'; import { SøknadFormField, SøknadFormValues } from '../../types/søknad-form-values/SøknadFormValues'; +import { getAttachmentURLFrontend } from '../../utils/attachmentUtilsAuthToken'; import { relocateToLoginPage } from '../../utils/navigationUtils'; interface Props { @@ -95,6 +96,9 @@ const FødselsattestPart: React.FC = ({ attachments }) => { { diff --git "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/oppsummering-step/OppsummeringStep.tsx" "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/oppsummering-step/OppsummeringStep.tsx" index b681df7bdc..021c1601c3 100644 --- "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/oppsummering-step/OppsummeringStep.tsx" +++ "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/oppsummering-step/OppsummeringStep.tsx" @@ -31,7 +31,7 @@ import { SøknadFormField, SøknadFormValues } from '../../types/søknad-form-va import appSentryLogger from '../../utils/appSentryLogger'; import { harArbeidIPerioden, harFraværFraJobb } from '../../utils/arbeidUtils'; import { getDataBruktTilUtledning } from '../../utils/getDataBruktTilUtledning'; -import { navigateTo, relocateToLoginPage } from '../../utils/navigationUtils'; +import { relocateToLoginPage } from '../../utils/navigationUtils'; import { getApiDataFromSøknadsdata } from '../../utils/søknadsdataToApiData/getApiDataFromSøknadsdata'; import { validateApiValues } from '../../validation/apiValuesValidation'; import SøknadFormComponents from '../SøknadFormComponents'; @@ -102,7 +102,7 @@ const OppsummeringStep = ({ onApplicationSent, søknadsdato, values }: Props) => } else { await logSoknadFailed(PleiepengerSyktBarnApp.navn); appSentryLogger.logApiError(error); - navigateTo(routeConfig.ERROR_PAGE_ROUTE, navigate); + navigate(routeConfig.ERROR_PAGE_ROUTE); } } }; diff --git "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/oppsummering-step/arbeidssituasjon-summary/ArbeidssituasjonUtenlandskN\303\246ringSummary.tsx" "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/oppsummering-step/arbeidssituasjon-summary/ArbeidssituasjonUtenlandskN\303\246ringSummary.tsx" index 35f4badf81..bff8eb1c4e 100644 --- "a/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/oppsummering-step/arbeidssituasjon-summary/ArbeidssituasjonUtenlandskN\303\246ringSummary.tsx" +++ "b/apps/pleiepenger-sykt-barn/src/app/s\303\270knad/oppsummering-step/arbeidssituasjon-summary/ArbeidssituasjonUtenlandskN\303\246ringSummary.tsx" @@ -26,9 +26,9 @@ function UtenlandskNæringSummary({ utenlandskNæring }: Props) { fraOgMed: prettifyDate(ISODateToDate(næring.fraOgMed)), }); return ( - -
  • -
    +
  • + +
    {`${intlHelper(intl, 'sifForms.utenlandskNæringForm.summary.navn')}: ${ næring.navnPåVirksomheten }.`} @@ -36,7 +36,6 @@ function UtenlandskNæringSummary({ utenlandskNæring }: Props) {
    {`${intlHelper(intl, 'sifForms.utenlandskNæringForm.summary.næringstype')}: ${næringstype}.`}
    -
    -
    {tidsinfo}
    -
  • -
    +
    {tidsinfo}
    +
    + ); }; return ( diff --git a/apps/pleiepenger-sykt-barn/src/app/utils/__tests__/routeUtils.test.ts b/apps/pleiepenger-sykt-barn/src/app/utils/__tests__/routeUtils.test.ts index b54907cef9..bf06c58a00 100644 --- a/apps/pleiepenger-sykt-barn/src/app/utils/__tests__/routeUtils.test.ts +++ b/apps/pleiepenger-sykt-barn/src/app/utils/__tests__/routeUtils.test.ts @@ -1,26 +1,27 @@ +import { vi } from 'vitest'; import RouteConfig from '../../config/routeConfig'; import { StepID } from '../../types/StepID'; import { SøknadFormField } from '../../types/søknad-form-values/SøknadFormValues'; import { isAvailable } from '../routeUtils'; import * as stepUtils from '../stepUtils'; -jest.mock('../featureToggleUtils', () => { +vi.mock('../featureToggleUtils', () => { return { isFeatureEnabled: () => false, Feature: {}, }; }); -jest.mock('./../stepUtils', () => { +vi.mock('./../stepUtils', () => { return { - opplysningerOmBarnetStepAvailable: jest.fn(() => 'barn step available'), - opplysningerOmTidsromStepAvailable: jest.fn(() => 'tidsrom step available'), - arbeidssituasjonStepAvailable: jest.fn(() => 'arbeidsforhold step available'), - legeerklæringStepAvailable: jest.fn(() => 'legeerklæring step available'), - medlemskapStepAvailable: jest.fn(() => 'medlemskap step available'), - oppsummeringStepAvailable: jest.fn(() => 'oppsummering step available'), - skalBrukerSvarePåBeredskapOgNattevåk: jest.fn(() => false), - skalBrukerSvarePåarbeidIPeriode: jest.fn(() => true), + opplysningerOmBarnetStepAvailable: vi.fn(() => 'barn step available'), + opplysningerOmTidsromStepAvailable: vi.fn(() => 'tidsrom step available'), + arbeidssituasjonStepAvailable: vi.fn(() => 'arbeidsforhold step available'), + legeerklæringStepAvailable: vi.fn(() => 'legeerklæring step available'), + medlemskapStepAvailable: vi.fn(() => 'medlemskap step available'), + oppsummeringStepAvailable: vi.fn(() => 'oppsummering step available'), + skalBrukerSvarePåBeredskapOgNattevåk: vi.fn(() => false), + skalBrukerSvarePåarbeidIPeriode: vi.fn(() => true), }; }); diff --git a/apps/pleiepenger-sykt-barn/src/app/utils/__tests__/stepUtils.test.ts b/apps/pleiepenger-sykt-barn/src/app/utils/__tests__/stepUtils.test.ts index 453bf08cbe..6719d552c1 100644 --- a/apps/pleiepenger-sykt-barn/src/app/utils/__tests__/stepUtils.test.ts +++ b/apps/pleiepenger-sykt-barn/src/app/utils/__tests__/stepUtils.test.ts @@ -2,15 +2,16 @@ import { SøknadFormValues } from '../../types/søknad-form-values/SøknadFormVa import * as stepValidations from '../../validation/stepValidations'; import * as stepUtils from '../stepUtils'; import { YesOrNoOrDoNotKnow } from '../../types/YesOrNoOrDoNotKnow'; +import { vi } from 'vitest'; -jest.mock('./../../validation/stepValidations', () => { +vi.mock('./../../validation/stepValidations', () => { return { - welcomingPageIsValid: jest.fn(() => true), - opplysningerOmBarnetStepIsValid: jest.fn(() => true), - opplysningerOmTidsromStepIsValid: jest.fn(() => true), - arbeidssituasjonStepIsValid: jest.fn(() => true), - medlemskapStepIsValid: jest.fn(() => true), - legeerklæringStepIsValid: jest.fn(() => true), + welcomingPageIsValid: vi.fn(() => true), + opplysningerOmBarnetStepIsValid: vi.fn(() => true), + opplysningerOmTidsromStepIsValid: vi.fn(() => true), + arbeidssituasjonStepIsValid: vi.fn(() => true), + medlemskapStepIsValid: vi.fn(() => true), + legeerklæringStepIsValid: vi.fn(() => true), }; }); diff --git a/apps/pleiepenger-sykt-barn/src/app/utils/navigationUtils.ts b/apps/pleiepenger-sykt-barn/src/app/utils/navigationUtils.ts index c6d6ed4b3c..6946573cf6 100644 --- a/apps/pleiepenger-sykt-barn/src/app/utils/navigationUtils.ts +++ b/apps/pleiepenger-sykt-barn/src/app/utils/navigationUtils.ts @@ -11,16 +11,11 @@ const relocateTo = (url: string): void => { window.location.assign(url); }; -/** Simple route change, no page reload */ -export const navigateTo = (route: string, navigate: NavigateFunction): void => { - navigate(route); -}; - export const relocateToLoginPage = (): void => relocateTo(getEnvironmentVariable('LOGIN_URL')); export const relocateToNavFrontpage = (): void => relocateTo('https://www.nav.no/'); export const relocateToSoknad = (): void => relocateTo(getRouteUrl(RouteConfig.SØKNAD_ROUTE_PREFIX)); -export const relocateToDinePleiepenger = (): void => relocateTo(getEnvironmentVariable('INNSYN_URL')); +export const relocateToMinSide = () => relocateTo(getEnvironmentVariable('MIN_SIDE_URL')); export const navigateToErrorPage = (navigate: NavigateFunction): void => { - navigateTo(RouteConfig.ERROR_PAGE_ROUTE, navigate); + navigate(RouteConfig.ERROR_PAGE_ROUTE); }; diff --git a/apps/pleiepenger-sykt-barn/src/app/utils/routeUtils.ts b/apps/pleiepenger-sykt-barn/src/app/utils/routeUtils.ts index c668422336..4176112520 100644 --- a/apps/pleiepenger-sykt-barn/src/app/utils/routeUtils.ts +++ b/apps/pleiepenger-sykt-barn/src/app/utils/routeUtils.ts @@ -15,7 +15,7 @@ import { } from './stepUtils'; export const getNextStepRoute = (stepId: StepID, formValues?: SøknadFormValues): string | undefined => { - return getSøknadStepConfig(formValues)[stepId].nextStep || undefined; + return getSøknadStepConfig(formValues)[stepId].nextStepRoute || undefined; }; export const isAvailable = (path: StepID | RouteConfig, values: SøknadFormValues, søknadHasBeenSent?: boolean) => { diff --git a/apps/pleiepenger-sykt-barn/src/app/validation/__tests__/apiValuesValidation.test.ts b/apps/pleiepenger-sykt-barn/src/app/validation/__tests__/apiValuesValidation.test.ts index 57bbaa5cd7..4c26357038 100644 --- a/apps/pleiepenger-sykt-barn/src/app/validation/__tests__/apiValuesValidation.test.ts +++ b/apps/pleiepenger-sykt-barn/src/app/validation/__tests__/apiValuesValidation.test.ts @@ -1,8 +1,9 @@ import { Attachment } from '@navikt/sif-common-core-ds/lib/types/Attachment'; +import { vi } from 'vitest'; import { OmsorgstilbudApiData, OmsorgstilbudSvarApi } from '../../types/søknad-api-data/SøknadApiData'; import { apiVedleggIsInvalid, isOmsorgstilbudApiDataValid } from '../apiValuesValidation'; -jest.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => { +vi.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => { return { getEnvironmentVariable: () => 'http://localhost:8089', }; diff --git a/apps/pleiepenger-sykt-barn/src/app/validation/__tests__/fieldValidations.test.ts b/apps/pleiepenger-sykt-barn/src/app/validation/__tests__/fieldValidations.test.ts index 52291ceb94..308f1784fc 100644 --- a/apps/pleiepenger-sykt-barn/src/app/validation/__tests__/fieldValidations.test.ts +++ b/apps/pleiepenger-sykt-barn/src/app/validation/__tests__/fieldValidations.test.ts @@ -1,6 +1,7 @@ import { hasValue } from '@navikt/sif-common-formik-ds/lib/validation/validationUtils'; +import { vi } from 'vitest'; -jest.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => { +vi.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => { return { getEnvironmentVariable: () => 'someEnvVar', }; diff --git a/apps/pleiepenger-sykt-barn/src/app/validation/__tests__/stepValidations.test.ts b/apps/pleiepenger-sykt-barn/src/app/validation/__tests__/stepValidations.test.ts index 6395a6fd7d..1209403d48 100644 --- a/apps/pleiepenger-sykt-barn/src/app/validation/__tests__/stepValidations.test.ts +++ b/apps/pleiepenger-sykt-barn/src/app/validation/__tests__/stepValidations.test.ts @@ -1,6 +1,7 @@ import { YesOrNo } from '@navikt/sif-common-core-ds/lib/types/YesOrNo'; import dayjs from 'dayjs'; -import { SøknadFormValues, SøknadFormField } from '../../types/søknad-form-values/SøknadFormValues'; +import { Mock, vi } from 'vitest'; +import { SøknadFormField, SøknadFormValues } from '../../types/søknad-form-values/SøknadFormValues'; import * as fieldValidations from '../fieldValidations'; import { arbeidssituasjonStepIsValid, @@ -11,23 +12,23 @@ import { welcomingPageIsValid, } from '../stepValidations'; -import Mock = jest.Mock; +// import Mock = vi.Mock; -jest.mock('./../fieldValidations', () => { +vi.mock('./../fieldValidations', () => { return { - validateNavn: jest.fn(() => undefined), - validateFødselsnummer: jest.fn(() => undefined), - validateValgtBarn: jest.fn(() => undefined), + validateNavn: vi.fn(() => undefined), + validateFødselsnummer: vi.fn(() => undefined), + validateValgtBarn: vi.fn(() => undefined), }; }); -jest.mock('@navikt/sif-common-formik-ds/lib/validation', () => ({ +vi.mock('@navikt/sif-common-formik-ds/lib/validation', () => ({ getDateValidator: () => () => undefined, getFødselsnummerValidator: () => () => undefined, getStringValidator: () => () => undefined, })); -jest.mock('./../../utils/featureToggleUtils', () => { +vi.mock('./../../utils/featureToggleUtils', () => { return { isFeatureEnabled: () => false, Feature: {} }; }); @@ -51,7 +52,7 @@ describe('stepValidation tests', () => { describe('opplysningerOmBarnetStepIsValid', () => { describe(`opplysningerOmBarnetStep test`, () => { beforeEach(() => { - jest.resetAllMocks(); + vi.resetAllMocks(); }); it('should be valid if barnetsNavn, barnetsFødselsnummer and are all valid', () => { diff --git a/apps/pleiepenger-sykt-barn/src/build/AppSettings.cjs b/apps/pleiepenger-sykt-barn/src/build/AppSettings.cjs index 8353172077..0dc353e6a2 100644 --- a/apps/pleiepenger-sykt-barn/src/build/AppSettings.cjs +++ b/apps/pleiepenger-sykt-barn/src/build/AppSettings.cjs @@ -15,6 +15,7 @@ const getAppSettings = () => ({ INNSYN_URL: `${process.env.INNSYN_URL}`, INNSYN: `${process.env.INNSYN}`, LOGIN_URL: `${process.env.LOGIN_URL}`, + MIN_SIDE_URL: `${process.env.MIN_SIDE_URL}`, NYNORSK: `${process.env.NYNORSK}`, PUBLIC_PATH: `${process.env.PUBLIC_PATH}`, USE_AMPLITUDE: `${process.env.USE_AMPLITUDE}`, diff --git a/apps/pleiepenger-sykt-barn/vitest.config.ts b/apps/pleiepenger-sykt-barn/vitest.config.ts new file mode 100644 index 0000000000..ec336f5985 --- /dev/null +++ b/apps/pleiepenger-sykt-barn/vitest.config.ts @@ -0,0 +1,13 @@ +/// +/// + +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + exclude: ['./e2e/**/*', './build/**/*', './dist/**/*', '**/*.spec.tsx'], + globals: true, + environment: 'jsdom', + css: false, + }, +}); diff --git a/apps/sif-ettersending/CHANGELOG.md b/apps/sif-ettersending/CHANGELOG.md index 1b5c13db04..b5e48b8451 100644 --- a/apps/sif-ettersending/CHANGELOG.md +++ b/apps/sif-ettersending/CHANGELOG.md @@ -1,247 +1,406 @@ # @navikt/sif-ettersending +## 3.28.2 + +### Patch Changes + +- Patch oppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.24.5 + - @navikt/sif-common-formik-ds@1.6.2 + - @navikt/sif-common-soknad-ds@10.12.2 + - @navikt/sif-common-core-ds@9.12.2 + - @navikt/sif-common-hooks@0.1.3 + - @navikt/sif-common-utils@3.43.5 + +## 3.28.1 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker +- Updated dependencies [e7bf8d1] + - @navikt/sif-common-amplitude@2.24.4 + - @navikt/sif-common-formik-ds@1.6.1 + - @navikt/sif-common-soknad-ds@10.12.1 + - @navikt/sif-common-core-ds@9.12.1 + - @navikt/sif-common-sentry@0.25.4 + - @navikt/sif-common-utils@3.43.4 + +## 3.28.0 + +### Minor Changes + +- 573c55d: Diverse oppdateringer i forbindelse med uu-gjennomgang. + +### Patch Changes + +- Updated dependencies [573c55d] + - @navikt/sif-common-formik-ds@1.6.0 + - @navikt/sif-common-soknad-ds@10.12.0 + - @navikt/sif-common-core-ds@9.12.0 + +## 3.27.1 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer +- Updated dependencies [406b044] + - @navikt/sif-common-amplitude@2.24.3 + - @navikt/sif-common-formik-ds@1.5.3 + - @navikt/sif-common-soknad-ds@10.11.1 + - @navikt/sif-common-core-ds@9.11.3 + - @navikt/sif-common-sentry@0.25.3 + - @navikt/sif-common-utils@3.43.3 + +## 3.27.0 + +### Minor Changes + +- 2331115: Oppdatert react-router-dom. Endringer i ettersending og pleiepenger på grunn av feil bruk av navigate i ny versjon. + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [2331115] +- Updated dependencies [6084e23] + - @navikt/sif-common-soknad-ds@10.11.0 + - @navikt/sif-app-register@0.0.4 + - @navikt/sif-common-amplitude@2.24.2 + - @navikt/sif-common-core-ds@9.11.2 + - @navikt/sif-common-formik-ds@1.5.2 + - @navikt/sif-common-hooks@0.1.2 + - @navikt/sif-common-sentry@0.25.2 + - @navikt/sif-common-utils@3.43.2 + +## 3.26.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [295d3ad] + - @navikt/sif-app-register@0.0.3 + - @navikt/sif-common-amplitude@2.24.1 + - @navikt/sif-common-core-ds@9.11.1 + - @navikt/sif-common-formik-ds@1.5.1 + - @navikt/sif-common-hooks@0.1.1 + - @navikt/sif-common-sentry@0.25.1 + - @navikt/sif-common-soknad-ds@10.10.1 + - @navikt/sif-common-utils@3.43.1 + +## 3.26.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +### Patch Changes + +- Updated dependencies [53b47be] + - @navikt/sif-common-amplitude@2.24.0 + - @navikt/sif-common-formik-ds@1.5.0 + - @navikt/sif-common-soknad-ds@10.10.0 + - @navikt/sif-common-core-ds@9.11.0 + - @navikt/sif-common-sentry@0.25.0 + - @navikt/sif-common-utils@3.43.0 + +## 3.25.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +### Patch Changes + +- Updated dependencies + - @navikt/sif-common-amplitude@2.23.0 + - @navikt/sif-common-formik-ds@1.4.0 + - @navikt/sif-common-soknad-ds@10.9.0 + - @navikt/sif-common-core-ds@9.10.0 + - @navikt/sif-common-sentry@0.24.0 + - @navikt/sif-common-hooks@0.1.0 + - @navikt/sif-common-utils@3.42.0 + +## 3.24.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + +### Patch Changes + +- Updated dependencies [d31f28ec] + - @navikt/sif-common-amplitude@2.22.0 + - @navikt/sif-common-formik-ds@1.3.0 + - @navikt/sif-common-soknad-ds@10.8.0 + - @navikt/sif-common-core-ds@9.9.0 + - @navikt/sif-common-sentry@0.23.0 + - @navikt/sif-common-utils@3.41.0 + +## 3.23.17 + +### Patch Changes + +- 6d3b3cbe: Minor og patch oppdateringer + nextjs major -> 14 +- Updated dependencies [6d3b3cbe] + - @navikt/sif-common-formik-ds@1.2.3 + - @navikt/sif-common-soknad-ds@10.7.11 + - @navikt/sif-common-core-ds@9.8.11 + - @navikt/sif-common-sentry@0.22.7 + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-utils@3.40.11 + +## 3.23.16 + +### Patch Changes + +- Updated dependencies [19c424d7] + - @navikt/sif-app-register@0.0.2 + ## 3.23.15 ### Patch Changes -- 09ae5814: Patch-oppdateringer -- Updated dependencies [09ae5814] - - @navikt/sif-common-formik-ds@1.2.2 - - @navikt/sif-common-soknad-ds@10.7.10 - - @navikt/sif-common-core-ds@9.8.10 - - @navikt/sif-common-utils@3.40.11 +- 09ae5814: Patch-oppdateringer +- Updated dependencies [09ae5814] + - @navikt/sif-common-formik-ds@1.2.2 + - @navikt/sif-common-soknad-ds@10.7.10 + - @navikt/sif-common-core-ds@9.8.10 + - @navikt/sif-common-utils@3.40.11 ## 3.23.14 ### Patch Changes -- b4d45cf9: Diverse mindre pakkeoppdateringer -- Updated dependencies [b4d45cf9] - - @navikt/sif-common-amplitude@2.21.9 - - @navikt/sif-common-formik-ds@1.2.1 - - @navikt/sif-common-soknad-ds@10.7.9 - - @navikt/sif-common-core-ds@9.8.9 - - @navikt/sif-common-sentry@0.22.6 - - @navikt/sif-common-utils@3.40.10 +- b4d45cf9: Diverse mindre pakkeoppdateringer +- Updated dependencies [b4d45cf9] + - @navikt/sif-common-amplitude@2.21.9 + - @navikt/sif-common-formik-ds@1.2.1 + - @navikt/sif-common-soknad-ds@10.7.9 + - @navikt/sif-common-core-ds@9.8.9 + - @navikt/sif-common-sentry@0.22.6 + - @navikt/sif-common-utils@3.40.10 ## 3.23.13 ### Patch Changes -- Updated dependencies [e815a9a8] - - @navikt/sif-common-formik-ds@1.2.0 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [e815a9a8] + - @navikt/sif-common-formik-ds@1.2.0 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-soknad-ds@10.7.8 ## 3.23.12 ### Patch Changes -- Updated dependencies [afe04538] - - @navikt/sif-common-formik-ds@1.1.6 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [afe04538] + - @navikt/sif-common-formik-ds@1.1.6 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-soknad-ds@10.7.8 ## 3.23.11 ### Patch Changes -- Updated dependencies [1d7c508f] - - @navikt/sif-common-formik-ds@1.1.5 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-soknad-ds@10.7.8 +- Updated dependencies [1d7c508f] + - @navikt/sif-common-formik-ds@1.1.5 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-soknad-ds@10.7.8 ## 3.23.10 ### Patch Changes -- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 -- Updated dependencies [5c44f78b] -- Updated dependencies [cb7e6653] - - @navikt/sif-common-formik-ds@1.1.4 - - @navikt/sif-common-amplitude@2.21.8 - - @navikt/sif-common-soknad-ds@10.7.8 - - @navikt/sif-common-core-ds@9.8.8 - - @navikt/sif-common-utils@3.40.9 +- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 +- Updated dependencies [5c44f78b] +- Updated dependencies [cb7e6653] + - @navikt/sif-common-formik-ds@1.1.4 + - @navikt/sif-common-amplitude@2.21.8 + - @navikt/sif-common-soknad-ds@10.7.8 + - @navikt/sif-common-core-ds@9.8.8 + - @navikt/sif-common-utils@3.40.9 ## 3.23.9 ### Patch Changes -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.7 - - @navikt/sif-common-formik-ds@1.1.3 - - @navikt/sif-common-soknad-ds@10.7.7 - - @navikt/sif-common-core-ds@9.8.7 - - @navikt/sif-common-sentry@0.22.5 - - @navikt/sif-common-utils@3.40.8 +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.7 + - @navikt/sif-common-formik-ds@1.1.3 + - @navikt/sif-common-soknad-ds@10.7.7 + - @navikt/sif-common-core-ds@9.8.7 + - @navikt/sif-common-sentry@0.22.5 + - @navikt/sif-common-utils@3.40.8 ## 3.23.8 ### Patch Changes -- Pakkeoppdatering som fikser datepicker + modal bug -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.6 - - @navikt/sif-common-formik-ds@1.1.2 - - @navikt/sif-common-soknad-ds@10.7.6 - - @navikt/sif-common-core-ds@9.8.6 - - @navikt/sif-common-utils@3.40.7 +- Pakkeoppdatering som fikser datepicker + modal bug +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.6 + - @navikt/sif-common-formik-ds@1.1.2 + - @navikt/sif-common-soknad-ds@10.7.6 + - @navikt/sif-common-core-ds@9.8.6 + - @navikt/sif-common-utils@3.40.7 ## 3.23.7 ### Patch Changes -- 71381778: Patch pakkeoppdateringer -- Updated dependencies [71381778] - - @navikt/sif-common-amplitude@2.21.5 - - @navikt/sif-common-formik-ds@1.1.1 - - @navikt/sif-common-soknad-ds@10.7.5 - - @navikt/sif-common-core-ds@9.8.5 - - @navikt/sif-common-sentry@0.22.4 - - @navikt/sif-common-utils@3.40.6 +- 71381778: Patch pakkeoppdateringer +- Updated dependencies [71381778] + - @navikt/sif-common-amplitude@2.21.5 + - @navikt/sif-common-formik-ds@1.1.1 + - @navikt/sif-common-soknad-ds@10.7.5 + - @navikt/sif-common-core-ds@9.8.5 + - @navikt/sif-common-sentry@0.22.4 + - @navikt/sif-common-utils@3.40.6 ## 3.23.6 ### Patch Changes -- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds -- Updated dependencies [60eb7ee9] - - @navikt/sif-common-formik-ds@1.1.0 - - @navikt/sif-common-amplitude@2.21.4 - - @navikt/sif-common-soknad-ds@10.7.4 - - @navikt/sif-common-core-ds@9.8.4 - - @navikt/sif-common-sentry@0.22.3 - - @navikt/sif-common-utils@3.40.5 +- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds +- Updated dependencies [60eb7ee9] + - @navikt/sif-common-formik-ds@1.1.0 + - @navikt/sif-common-amplitude@2.21.4 + - @navikt/sif-common-soknad-ds@10.7.4 + - @navikt/sif-common-core-ds@9.8.4 + - @navikt/sif-common-sentry@0.22.3 + - @navikt/sif-common-utils@3.40.5 ## 3.23.5 ### Patch Changes -- 2a1e2526: Pakkeoppdateringer -- Updated dependencies [2a1e2526] - - @navikt/sif-common-amplitude@2.21.3 - - @navikt/sif-common-formik-ds@1.0.5 - - @navikt/sif-common-soknad-ds@10.7.3 - - @navikt/sif-common-core-ds@9.8.3 - - @navikt/sif-common-sentry@0.22.2 - - @navikt/sif-common-utils@3.40.4 +- 2a1e2526: Pakkeoppdateringer +- Updated dependencies [2a1e2526] + - @navikt/sif-common-amplitude@2.21.3 + - @navikt/sif-common-formik-ds@1.0.5 + - @navikt/sif-common-soknad-ds@10.7.3 + - @navikt/sif-common-core-ds@9.8.3 + - @navikt/sif-common-sentry@0.22.2 + - @navikt/sif-common-utils@3.40.4 ## 3.23.4 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies - - @navikt/sif-common-amplitude@2.21.2 - - @navikt/sif-common-formik-ds@1.0.4 - - @navikt/sif-common-soknad-ds@10.7.2 - - @navikt/sif-common-core-ds@9.8.2 - - @navikt/sif-common-utils@3.40.3 +- Pakkeoppdateringer +- Updated dependencies + - @navikt/sif-common-amplitude@2.21.2 + - @navikt/sif-common-formik-ds@1.0.4 + - @navikt/sif-common-soknad-ds@10.7.2 + - @navikt/sif-common-core-ds@9.8.2 + - @navikt/sif-common-utils@3.40.3 ## 3.23.3 ### Patch Changes -- 81e7e155: Bruke BodyLong i alle SifGuidePanel -- Updated dependencies [81e7e155] - - @navikt/sif-common-formik-ds@1.0.3 - - @navikt/sif-common-core-ds@9.8.1 - - @navikt/sif-common-utils@3.40.2 - - @navikt/sif-common-soknad-ds@10.7.1 +- 81e7e155: Bruke BodyLong i alle SifGuidePanel +- Updated dependencies [81e7e155] + - @navikt/sif-common-formik-ds@1.0.3 + - @navikt/sif-common-core-ds@9.8.1 + - @navikt/sif-common-utils@3.40.2 + - @navikt/sif-common-soknad-ds@10.7.1 ## 3.23.2 ### Patch Changes -- Updated dependencies [c129755f] - - @navikt/sif-common-formik-ds@1.0.2 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [c129755f] + - @navikt/sif-common-formik-ds@1.0.2 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 3.23.1 ### Patch Changes -- Updated dependencies [92fbd8f8] - - @navikt/sif-common-formik-ds@1.0.1 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [92fbd8f8] + - @navikt/sif-common-formik-ds@1.0.1 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 3.23.0 ### Minor Changes -- fd07933f: Ersattet ds-datepicker med DatePicker fra Aksel +- fd07933f: Ersattet ds-datepicker med DatePicker fra Aksel ### Patch Changes -- Updated dependencies [fd07933f] -- Updated dependencies [e2967240] - - @navikt/sif-common-formik-ds@1.0.0 - - @navikt/sif-common-core-ds@9.8.0 - - @navikt/sif-common-soknad-ds@10.7.1 +- Updated dependencies [fd07933f] +- Updated dependencies [e2967240] + - @navikt/sif-common-formik-ds@1.0.0 + - @navikt/sif-common-core-ds@9.8.0 + - @navikt/sif-common-soknad-ds@10.7.1 ## 3.22.0 ### Minor Changes -- 55e1f323: Oppdatere tekster for valg av hva etterseldenselen gjelder ved omsorgspenger. -- 55e1f323: Oppdatere titler på søknadsdialoger i ettersendelse + rydde i valg som bruker må gjøre når en velger å sende inn dokumentasjon for en av omsorgspenger-ytelsene. +- 55e1f323: Oppdatere tekster for valg av hva etterseldenselen gjelder ved omsorgspenger. +- 55e1f323: Oppdatere titler på søknadsdialoger i ettersendelse + rydde i valg som bruker må gjøre når en velger å sende inn dokumentasjon for en av omsorgspenger-ytelsene. ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies [55e1f323] -- Updated dependencies - - @navikt/sif-common-core-ds@9.7.0 - - @navikt/sif-common-amplitude@2.21.1 - - @navikt/sif-common-formik-ds@0.6.1 - - @navikt/sif-common-soknad-ds@10.7.1 - - @navikt/sif-common-sentry@0.22.1 - - @navikt/sif-common-utils@3.40.1 +- Pakkeoppdateringer +- Updated dependencies [55e1f323] +- Updated dependencies + - @navikt/sif-common-core-ds@9.7.0 + - @navikt/sif-common-amplitude@2.21.1 + - @navikt/sif-common-formik-ds@0.6.1 + - @navikt/sif-common-soknad-ds@10.7.1 + - @navikt/sif-common-sentry@0.22.1 + - @navikt/sif-common-utils@3.40.1 ## 3.21.0 ### Minor Changes -- 61eee34c: Bytte til å bruke react-dropzone komponet for filopplasting. Enkel porting av eksisterende komponent til ny. +- 61eee34c: Bytte til å bruke react-dropzone komponet for filopplasting. Enkel porting av eksisterende komponent til ny. ### Patch Changes -- Updated dependencies [61eee34c] - - @navikt/sif-common-formik-ds@0.6.0 - - @navikt/sif-common-core-ds@9.6.0 - - @navikt/sif-common-soknad-ds@10.7.0 +- Updated dependencies [61eee34c] + - @navikt/sif-common-formik-ds@0.6.0 + - @navikt/sif-common-core-ds@9.6.0 + - @navikt/sif-common-soknad-ds@10.7.0 ## 3.20.0 ### Minor Changes -- 96810cd6: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. +- 96810cd6: Pakkeoppdateringer og fix etter breaking change i react-router-dom. Sørger for at bruker blir værende på kvitteringsside når søknad er innsendt. Bug var at bruker ble sendt direkte til velkommenside etter å ha sendt inn søknad. ### Patch Changes -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] - - @navikt/sif-common-formik-ds@0.5.0 - - @navikt/sif-common-amplitude@2.21.0 - - @navikt/sif-common-soknad-ds@10.6.0 - - @navikt/sif-common-core-ds@9.5.0 - - @navikt/sif-common-sentry@0.22.0 - - @navikt/sif-common-utils@3.40.0 +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] + - @navikt/sif-common-formik-ds@0.5.0 + - @navikt/sif-common-amplitude@2.21.0 + - @navikt/sif-common-soknad-ds@10.6.0 + - @navikt/sif-common-core-ds@9.5.0 + - @navikt/sif-common-sentry@0.22.0 + - @navikt/sif-common-utils@3.40.0 ## 3.19.0 ### Minor Changes -- ad5092d1: Sette document.title basert på søknadsnavn og stegnavn -- 4cde9eca: Redirect til Min side etter at dokumenter er sendt +- ad5092d1: Sette document.title basert på søknadsnavn og stegnavn +- 4cde9eca: Redirect til Min side etter at dokumenter er sendt ### Patch Changes -- 5f655843: Ersatte ordet funksjonshemming med funksjonshemning -- Updated dependencies [ad5092d1] - - @navikt/sif-common-soknad-ds@10.5.0 +- 5f655843: Ersatte ordet funksjonshemming med funksjonshemning +- Updated dependencies [ad5092d1] + - @navikt/sif-common-soknad-ds@10.5.0 diff --git a/apps/sif-ettersending/Dockerfile b/apps/sif-ettersending/Dockerfile index 9f3c463206..6202253a38 100644 --- a/apps/sif-ettersending/Dockerfile +++ b/apps/sif-ettersending/Dockerfile @@ -14,7 +14,7 @@ COPY . . RUN yarn RUN yarn turbo run build-app --filter=${SCOPE} -FROM pruner AS server +FROM gcr.io/distroless/nodejs18-debian11:nonroot WORKDIR /apps/sif-ettersending COPY --from=pruner /app/node_modules ./node_modules/ COPY --from=pruner /app/apps/sif-ettersending/server.cjs . @@ -25,4 +25,4 @@ COPY --from=pruner /app/apps/sif-ettersending/src/build/AppSettings.cjs ./src/bu COPY --from=pruner /app/apps/sif-ettersending/dist ./dist EXPOSE 8080 -CMD ["yarn","--cwd", "apps/sif-ettersending", "start-express"] +CMD ["server.cjs"] diff --git a/apps/sif-ettersending/nais/dev-gcp.json b/apps/sif-ettersending/nais/dev-gcp.json index 09f10584b8..78c629b719 100644 --- a/apps/sif-ettersending/nais/dev-gcp.json +++ b/apps/sif-ettersending/nais/dev-gcp.json @@ -21,6 +21,9 @@ "VEDLEGG_API_URL": "https://k9-brukerdialog-api" }, "externalHosts": ["www.nav.no", "dekoratoren.ekstern.dev.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], + "minReplicas": 1, + "maxReplicas": 1, "ingresses": ["https://k9-ettersending-soknad.intern.dev.nav.no"], "livenessPath": "/familie/sykdom-i-familien/soknad/ettersending/health/isAlive", "namespace": "dusseldorf", diff --git a/apps/sif-ettersending/nais/prod-gcp.json b/apps/sif-ettersending/nais/prod-gcp.json index d411d6e34b..77bfb7d16b 100644 --- a/apps/sif-ettersending/nais/prod-gcp.json +++ b/apps/sif-ettersending/nais/prod-gcp.json @@ -21,6 +21,9 @@ "VEDLEGG_API_URL": "https://k9-brukerdialog-api" }, "externalHosts": ["www.nav.no"], + "accessPolicyOutApps": ["k9-brukerdialog-api"], + "minReplicas": 2, + "maxReplicas": 2, "ingresses": ["https://www.nav.no/familie/sykdom-i-familien/soknad/ettersending"], "livenessPath": "/familie/sykdom-i-familien/soknad/ettersending/health/isAlive", "namespace": "dusseldorf", diff --git a/apps/sif-ettersending/package.json b/apps/sif-ettersending/package.json index ce90898ba0..9b5179e917 100644 --- a/apps/sif-ettersending/package.json +++ b/apps/sif-ettersending/package.json @@ -4,16 +4,15 @@ "license": "MIT", "name": "@navikt/sif-ettersending", "repository": "https://github.com/navikt/sif-ettersending", - "version": "3.23.15", + "version": "3.28.2", "private": true, "type": "module", "dependencies": { - "@formatjs/intl-pluralrules": "5.2.9", - "@navikt/ds-css": "5.10.1", + "@navikt/ds-css": "5.11.4", "@navikt/ds-icons": "3.4.3", - "@navikt/ds-react": "5.10.1", - "@navikt/ds-tailwind": "5.10.1", - "@navikt/nav-dekoratoren-moduler": "1.6.9", + "@navikt/ds-react": "5.11.4", + "@navikt/ds-tailwind": "5.11.4", + "@navikt/nav-dekoratoren-moduler": "2.1.5", "@navikt/sif-app-register": "workspace:*", "@navikt/sif-common-amplitude": "workspace:*", "@navikt/sif-common-core-ds": "workspace:*", @@ -22,8 +21,8 @@ "@navikt/sif-common-sentry": "workspace:*", "@navikt/sif-common-soknad-ds": "workspace:*", "@navikt/sif-common-utils": "workspace:*", - "@testing-library/react": "14.1.0", - "axios": "1.6.1", + "@testing-library/react": "14.1.2", + "axios": "1.6.2", "busboy": "1.6.0", "classnames": "2.3.2", "compression": "1.7.4", @@ -35,59 +34,40 @@ "formik": "2.4.5", "helmet": "7.1.0", "http-proxy-middleware": "2.0.6", - "jose": "5.1.0", - "jsdom": "22.1.0", + "jose": "5.1.3", + "jsdom": "23.0.1", "lodash": "4.17.21", - "mini-css-extract-plugin": "2.7.6", "mustache-express": "1.3.2", "openid-client": "5.6.1", - "promise": "8.3.0", "react": "18.2.0", - "react-collapse": "5.1.1", "react-day-picker": "8.9.1", - "react-intl": "6.5.4", - "react-router-dom": "6.18.0" + "react-intl": "6.5.5", + "react-router-dom": "6.20.1" }, "devDependencies": { - "@axe-core/playwright": "4.8.1", - "@babel/core": "7.23.3", - "@babel/preset-env": "7.23.3", + "@axe-core/playwright": "4.8.2", + "@babel/core": "7.23.5", + "@babel/preset-env": "7.23.5", "@babel/preset-react": "7.23.3", - "@playwright/test": "^1.39.0", - "@storybook/react-vite": "7.5.3", - "@types/jest": "29.5.8", - "@types/react": "18.2.37", - "@types/react-collapse": "5.0.4", - "@types/react-dom": "18.2.15", + "@playwright/test": "^1.40.1", + "@storybook/react-vite": "7.6.4", + "@types/react": "18.2.43", + "@types/react-dom": "18.2.17", "@types/react-router-dom": "5.3.3", "@types/uuid": "9.0.7", - "@vitejs/plugin-react": "4.1.1", + "@vitejs/plugin-react": "4.2.1", "axe-core": "4.8.2", "babel-polyfill": "6.26.0", "cross-env": "7.0.3", - "css-loader": "6.8.1", - "data-fns": "1.1.0", - "express-rate-limit": "7.1.4", - "postcss": "8.4.31", - "postcss-loader": "7.3.3", + "express-rate-limit": "7.1.5", + "postcss": "8.4.32", "react-dom": "18.2.0", - "react-scripts": "5.0.1", - "sass": "1.69.5", - "sass-loader": "13.3.2", - "source-map-loader": "4.0.1", - "start-server-and-test": "2.0.2", - "style-loader": "3.3.3", - "tailwindcss": "3.3.5", - "ts-loader": "9.5.0", - "typescript": "5.2.2", + "tailwindcss": "3.3.6", + "typescript": "5.3.3", "uuid": "9.0.1", - "vite": "4.5.0", - "vite-plugin-checker": "0.6.2" - }, - "jest": { - "transformIgnorePatterns": [ - "node_modules/(?!(@navikt)).*\\.js$" - ] + "vite": "5.0.7", + "vite-plugin-checker": "0.6.2", + "vitest": "1.0.4" }, "scripts": { "build-app": "vite build --base=/familie/sykdom-i-familien/soknad/ettersending", @@ -95,12 +75,11 @@ "clean": "rm -rf node_modules .dist", "dev-api": "PORT=8082 node ./api-mock/mock-server.cjs", "playwright-test": "playwright test", - "snd": "cross-env NODE_ENV=development node ./server.cjs", + "dev": "cross-env NODE_ENV=development node ./server.cjs", "start-express": "node ./server.cjs", "start-e2e-server": "node ./server-e2e.cjs", "storybook": "storybook dev -p 6006 -s public", - "test": "react-scripts test --watchAll=false --env=jsdom", - "test-watch": "react-scripts test --watchAll=true --env=jsdom", + "test": "vitest test", "lint": "eslint ./src --ext ts,tsx" }, "resolutions": { diff --git a/apps/sif-ettersending/src/app/components/formik-file-uploader/FormikFileUploader.tsx b/apps/sif-ettersending/src/app/components/formik-file-uploader/FormikFileUploader.tsx deleted file mode 100644 index f02fe96ec9..0000000000 --- a/apps/sif-ettersending/src/app/components/formik-file-uploader/FormikFileUploader.tsx +++ /dev/null @@ -1,148 +0,0 @@ -import React from 'react'; -import { FileRejection } from 'react-dropzone'; -import { Attachment, PersistedFile } from '@navikt/sif-common-core-ds/lib/types/Attachment'; -import { isForbidden, isUnauthorized } from '@navikt/sif-common-core-ds/lib/utils/apiUtils'; -import { - attachmentShouldBeProcessed, - attachmentShouldBeUploaded, - attachmentUploadHasFailed, - getAttachmentFromFile, - getPendingAttachmentFromFile, - isFileObject, - mapFileToPersistedFile, -} from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; -import { FileDropAcceptImagesAndPdf } from '@navikt/sif-common-formik-ds'; -import { TypedFormInputValidationProps } from '@navikt/sif-common-formik-ds/lib'; -import { ValidationError } from '@navikt/sif-common-formik-ds/lib/validation/types'; -import { ArrayHelpers, useFormikContext } from 'formik'; -import api from '../../api/api'; -import SoknadFormComponents from '../../soknad/SoknadFormComponents'; -import { ApiEndpoint } from '../../types/ApiEndpoint'; -import { SoknadFormData, SoknadFormField } from '../../types/SoknadFormData'; -import { getAttachmentURLFrontend } from '../../utils/attachmentUtilsAuthToken'; - -export type FieldArrayReplaceFn = (index: number, value: any) => void; -export type FieldArrayPushFn = (obj: any) => void; -export type FieldArrayRemoveFn = (index: number) => undefined; - -interface FormikFileUploader extends TypedFormInputValidationProps { - name: SoknadFormField; - buttonLabel: string; - onFilesUploaded?: (antall: number, antallFeilet: number) => void; - onFileInputClick?: () => void; - onErrorUploadingAttachments: (files: File[]) => void; - onUnauthorizedOrForbiddenUpload: () => void; -} - -type Props = FormikFileUploader; - -const FormikFileUploader: React.FunctionComponent = ({ - name, - onFilesUploaded, - onFileInputClick, - onErrorUploadingAttachments, - onUnauthorizedOrForbiddenUpload, - ...otherProps -}) => { - const { values } = useFormikContext(); - async function uploadAttachment(attachment: Attachment) { - const { file } = attachment; - if (isFileObject(file)) { - try { - const response = await api.uploadFile(ApiEndpoint.VEDLEGG, file); - attachment = setAttachmentPendingToFalse(attachment); - attachment.url = getAttachmentURLFrontend(response.headers.location); - attachment.uploaded = true; - } catch (error) { - if (isForbidden(error) || isUnauthorized(error)) { - onUnauthorizedOrForbiddenUpload(); - } - setAttachmentPendingToFalse(attachment); - } - } - } - - async function uploadAttachments( - allAttachments: Attachment[], - fileRejections: FileRejection[], - replaceFn: FieldArrayReplaceFn, - ) { - const attachmentsToProcess = findAttachmentsToProcess(allAttachments); - const attachmentsToUpload = findAttachmentsToUpload(attachmentsToProcess); - - const attachmentsNotToUpload = [ - ...attachmentsToProcess.filter((el) => !attachmentsToUpload.includes(el)), - ...fileRejections.map((f) => getAttachmentFromFile(f.file)), - ]; - - for (const attachment of attachmentsToUpload) { - await uploadAttachment(attachment); - updateAttachmentListElement(allAttachments, attachment, replaceFn); - } - - const failedAttachments = [...attachmentsNotToUpload, ...attachmentsToUpload.filter(attachmentUploadHasFailed)]; - updateFailedAttachments(allAttachments, failedAttachments, replaceFn); - if (onFilesUploaded) { - onFilesUploaded(attachmentsToUpload.length, failedAttachments.length); - } - } - - function updateFailedAttachments( - allAttachments: Attachment[], - failedAttachments: Attachment[], - replaceFn: FieldArrayReplaceFn, - ) { - failedAttachments.forEach((attachment) => { - attachment = setAttachmentPendingToFalse(attachment); - updateAttachmentListElement(allAttachments, attachment, replaceFn); - }); - const failedFiles: File[] = failedAttachments - .map(({ file }) => file) - .filter((f: File | PersistedFile) => isFileObject(f)) as File[]; - - onErrorUploadingAttachments(failedFiles); - } - - function findAttachmentsToProcess(attachments: Attachment[]): Attachment[] { - return attachments.filter(attachmentShouldBeProcessed); - } - - function findAttachmentsToUpload(attachments: Attachment[]): Attachment[] { - return attachments.filter(attachmentShouldBeUploaded); - } - - function updateAttachmentListElement( - attachments: Attachment[], - attachment: Attachment, - replaceFn: FieldArrayReplaceFn, - ) { - replaceFn(attachments.indexOf(attachment), { ...attachment, file: mapFileToPersistedFile(attachment.file) }); - } - - function setAttachmentPendingToFalse(attachment: Attachment) { - attachment.pending = false; - return attachment; - } - - function addPendingAttachmentToFieldArray(file: File, pushFn: FieldArrayPushFn) { - const attachment = getPendingAttachmentFromFile(file); - pushFn(attachment); - return attachment; - } - - return ( - { - const attachments = files.map((file) => addPendingAttachmentToFieldArray(file, push)); - await uploadAttachments([...(values as any)[name], ...attachments], rejectedFiles, replace); - }} - onClick={onFileInputClick} - {...otherProps} - /> - ); -}; - -export default FormikFileUploader; diff --git a/apps/sif-ettersending/src/app/soknad/Soknad.tsx b/apps/sif-ettersending/src/app/soknad/Soknad.tsx index 6dd821c518..0412e2bc16 100644 --- a/apps/sif-ettersending/src/app/soknad/Soknad.tsx +++ b/apps/sif-ettersending/src/app/soknad/Soknad.tsx @@ -14,7 +14,6 @@ import { initialSoknadFormData, SoknadFormData } from '../types/SoknadFormData'; import { SoknadTempStorageData } from '../types/SoknadTempStorageData'; import { Søknadstype } from '../types/Søknadstype'; import { - navigateTo, navigateToErrorPage, navigateToKvitteringPage, navigateToLoginPage, @@ -80,7 +79,7 @@ const Soknad: React.FunctionComponent = ({ søker, søknadstype, soknadTe const lastStepRoute = getApplicationPageRoute(søknadstype, tempStorage.metadata.lastStepID); if (currentRoute !== lastStepRoute) { - navigateTo(lastStepRoute, navigate); + navigate(lastStepRoute); setInitializing(false); } else { setInitializing(false); @@ -231,7 +230,7 @@ const Soknad: React.FunctionComponent = ({ søker, søknadstype, soknadTe const step = soknadStepsConfig[stepID]; setTimeout(() => { if (step.nextStep) { - navigateTo(step.nextStep, navigate); + navigate(step.nextStepRoute || step.nextStep); } }); }; diff --git a/apps/sif-ettersending/src/app/soknad/dokumenter-step/DokumenterStep.tsx b/apps/sif-ettersending/src/app/soknad/dokumenter-step/DokumenterStep.tsx index 2d3e8951c3..ae9ba4c07f 100644 --- a/apps/sif-ettersending/src/app/soknad/dokumenter-step/DokumenterStep.tsx +++ b/apps/sif-ettersending/src/app/soknad/dokumenter-step/DokumenterStep.tsx @@ -1,20 +1,20 @@ import { Alert } from '@navikt/ds-react'; +import React from 'react'; +import { FormattedMessage, useIntl } from 'react-intl'; import { SIFCommonGeneralEvents, useAmplitudeInstance } from '@navikt/sif-common-amplitude/lib'; import Block from '@navikt/sif-common-core-ds/lib/atoms/block/Block'; import FormBlock from '@navikt/sif-common-core-ds/lib/atoms/form-block/FormBlock'; import FileDropUploadErrors from '@navikt/sif-common-core-ds/lib/components/file-upload-errors/FileDropUploadErrors'; +import FormikFileUploader from '@navikt/sif-common-core-ds/lib/components/formik-file-uploader/FormikFileUploader'; import PictureScanningGuide from '@navikt/sif-common-core-ds/lib/components/picture-scanning-guide/PictureScanningGuide'; import SifGuidePanel from '@navikt/sif-common-core-ds/lib/components/sif-guide-panel/SifGuidePanel'; import { Attachment } from '@navikt/sif-common-core-ds/lib/types/Attachment'; import { - MAX_TOTAL_ATTACHMENT_SIZE_BYTES, getTotalSizeOfAttachments, + MAX_TOTAL_ATTACHMENT_SIZE_BYTES, } from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; import intlHelper from '@navikt/sif-common-core-ds/lib/utils/intlUtils'; import { useFormikContext } from 'formik'; -import React from 'react'; -import { FormattedMessage, useIntl } from 'react-intl'; -import FormikFileUploader from '../../components/formik-file-uploader/FormikFileUploader'; import UploadedDocumentsList from '../../components/uploaded-documents-list/UploadedDocumentsList'; import { Person } from '../../types/Person'; import { SoknadFormData, SoknadFormField } from '../../types/SoknadFormData'; @@ -24,6 +24,9 @@ import { validateDocuments } from '../../validation/fieldValidations'; import SoknadFormStep from '../SoknadFormStep'; import { StepID } from '../soknadStepsConfig'; import SøknadTempStorage from '../soknadTempStorage'; +import { getAttachmentURLFrontend } from '../../utils/attachmentUtilsAuthToken'; +import api from '../../api/api'; +import { ApiEndpoint } from '../../types/ApiEndpoint'; interface Props { søknadstype: Søknadstype; @@ -104,6 +107,9 @@ const DokumenterStep: React.FC = ({ søknadstype, søker, soknadId }: Pro onFileInputClick={() => { setFilesThatDidntGetUploaded([]); }} + attachments={dokumenter} + uploadFile={(file) => api.uploadFile(ApiEndpoint.VEDLEGG, file)} + getAttachmentURLFrontend={getAttachmentURLFrontend} onUnauthorizedOrForbiddenUpload={userLoggedOut} validate={validateDocuments} onFilesUploaded={(antall, antallFeilet) => { diff --git a/apps/sif-ettersending/src/app/utils/__tests__/navigationUtils.test.ts b/apps/sif-ettersending/src/app/utils/__tests__/navigationUtils.test.ts index a3a5af3ea8..b1e735b869 100644 --- a/apps/sif-ettersending/src/app/utils/__tests__/navigationUtils.test.ts +++ b/apps/sif-ettersending/src/app/utils/__tests__/navigationUtils.test.ts @@ -1,11 +1,12 @@ import { NavigateFunction } from 'react-router-dom'; +import { describe, expect, it, vi } from 'vitest'; import { getRouteConfig } from '../../config/routeConfig'; import { Søknadstype } from '../../types/Søknadstype'; -import { navigateTo, navigateToErrorPage, userIsCurrentlyOnErrorPage } from '../navigationUtils'; +import { navigateToErrorPage, userIsCurrentlyOnErrorPage } from '../navigationUtils'; -const navigate: NavigateFunction = jest.fn(); +const navigate: NavigateFunction = vi.fn().mockImplementation(() => {}); -jest.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => { +vi.mock('@navikt/sif-common-core-ds/lib/utils/envUtils', () => { return { getEnvironmentVariable: () => '' }; }); @@ -13,8 +14,6 @@ const søknadstype = Søknadstype.omsorgspenger; const routeConfig = getRouteConfig(søknadstype); // hacky workaround for this issue, which actually seems to be an issue -// with jsdom (not jest): -// https://github.com/facebook/jest/issues/5124 const setWindowLocationPathname = (pathname: string | undefined) => { const windowLocation = JSON.stringify(window.location); delete (window as any).location; @@ -25,14 +24,6 @@ const setWindowLocationPathname = (pathname: string | undefined) => { }; describe('navigationUtils', () => { - describe('navigateTo', () => { - it('should navigate user to the provided route', () => { - const route = '/someRoute'; - navigateTo(route, navigate); - expect(navigate).toHaveBeenCalledWith(route); - }); - }); - describe('navigateToErrorPage', () => { it('should navigate user to the path specified by routeConfig.ERROR_PAGE_ROUTE', () => { navigateToErrorPage(søknadstype, navigate); diff --git a/apps/sif-ettersending/src/app/utils/navigationUtils.ts b/apps/sif-ettersending/src/app/utils/navigationUtils.ts index 78eda057e7..86b70819a9 100644 --- a/apps/sif-ettersending/src/app/utils/navigationUtils.ts +++ b/apps/sif-ettersending/src/app/utils/navigationUtils.ts @@ -6,7 +6,6 @@ import { Søknadstype } from '../types/Søknadstype'; const getLoginUrl = (søknadstype: Søknadstype) => `${getEnvironmentVariable('LOGIN_URL')}/${søknadstype}`; export const redirectTo = (route: string) => window.location.assign(route); -export const navigateTo = (route: string, navigate: NavigateFunction) => navigate(route); export const navigateToErrorPage = (søknadstype: Søknadstype, navigate?: NavigateFunction) => { const routeConfig = getRouteConfig(søknadstype); if (navigate) { diff --git a/apps/sif-ettersending/vite.config.ts b/apps/sif-ettersending/vite.config.ts index 00efcd328f..0e04879bb5 100644 --- a/apps/sif-ettersending/vite.config.ts +++ b/apps/sif-ettersending/vite.config.ts @@ -1,3 +1,4 @@ +/// /* eslint-disable @typescript-eslint/no-unused-vars */ /// import react from '@vitejs/plugin-react'; @@ -7,7 +8,7 @@ import checker from 'vite-plugin-checker'; export default defineConfig({ plugins: [ react({ - include: '**/*.{jsx,tsx}', + include: '**/*.{tsx}', }), checker({ typescript: true }), ], diff --git a/apps/sif-ettersending/vitest.config.ts b/apps/sif-ettersending/vitest.config.ts new file mode 100644 index 0000000000..ec336f5985 --- /dev/null +++ b/apps/sif-ettersending/vitest.config.ts @@ -0,0 +1,13 @@ +/// +/// + +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + exclude: ['./e2e/**/*', './build/**/*', './dist/**/*', '**/*.spec.tsx'], + globals: true, + environment: 'jsdom', + css: false, + }, +}); diff --git a/nais-config/nais.yml b/nais-config/nais.yml index 0a157b24ff..b1f16b0842 100644 --- a/nais-config/nais.yml +++ b/nais-config/nais.yml @@ -29,9 +29,10 @@ spec: memory: 128Mi accessPolicy: outbound: - rules: - - application: k9-brukerdialog-api - - application: sif-innsyn-api + rules: + {{#each accessPolicyOutApps as |application|}} + - application: {{application}} + {{/each}} - application: nav-dekoratoren namespace: personbruker external: @@ -43,8 +44,8 @@ spec: - {{url}} {{/each}} replicas: - min: 2 - max: 2 + min: {{ minReplicas }} + max: {{ maxReplicas }} cpuThresholdPercentage: 90 prometheus: enabled: true diff --git a/package.json b/package.json index 608dda898d..fb98dfee63 100644 --- a/package.json +++ b/package.json @@ -9,15 +9,13 @@ "url": "https://github.com/navikt/sif-brukerdialog/issues" }, "devDependencies": { - "@changesets/cli": "2.26.2", + "@changesets/cli": "2.27.1", "husky": "8.0.3", - "lint-staged": "15.1.0", + "lint-staged": "15.2.0", "npm-run-all": "4.1.5", - "npm-watch": "0.11.0", - "prettier": "3.0.3", - "turbo": "1.10.16", - "typescript": "5.2.2", - "webpack": "5.89.0" + "prettier": "3.1.1", + "turbo": "1.11.1", + "typescript": "5.3.3" }, "lint-staged": { "apps/**/*.{ts,tsx}": [ @@ -28,44 +26,23 @@ ] }, "scripts": { - "build": "turbo run build", - "build-package": "turbo run build-package", "bp": "turbo run build-package", "build-app": "turbo run build-app", - "build-sif-ettersending": "turbo run build-app --filter=@navikt/sif-ettersending", - "e2e-sif-ettersending": "turbo run ci --filter=@navikt/sif-ettersending", - "build-omsorgspengesoknad": "turbo run build-app --filter=@navikt/omsorgspengesoknad", - "e2e-omsorgspengesoknad": "turbo run ci --filter=@navikt/omsorgspengesoknad", - "build-endringsmelding-pleiepenger": "turbo run build-app --filter=@navikt/endringsmelding-pleiepenger", - "e2e-endringsmelding-pleiepenger": "turbo run ci --filter=@navikt/endringsmelding-pleiepenger", - "build-pleiepenger-sykt-barn": "turbo run build-app --filter=@navikt/pleiepenger-sykt-barn", - "e2e-pleiepenger-sykt-barn": "turbo run ci --filter=@navikt/pleiepenger-sykt-barn", - "build-ekstra-omsorgsdager-andre-forelder-ikke-tilsyn": "turbo run build-app --filter=@navikt/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn", - "e2e-ekstra-omsorgsdager-andre-forelder-ikke-tilsyn": "turbo run ci --filter=@navikt/ekstra-omsorgsdager-andre-forelder-ikke-tilsyn", - "build-omsorgsdager-aleneomsorg-dialog": "turbo run build-app --filter=@navikt/omsorgsdager-aleneomsorg-dialog", - "e2e-omsorgsdager-aleneomsorg-dialog": "turbo run ci --filter=@navikt/omsorgsdager-aleneomsorg-dialog", - "build-omsorgspengerutbetaling-soknad": "turbo run build-app --filter=@navikt/omsorgspengerutbetaling-soknad", - "e2e-omsorgspengerutbetaling-soknad": "turbo run ci --filter=@navikt/omsorgspengerutbetaling-soknad", - "build-pleiepenger-i-livets-sluttfase-soknad": "turbo run build-app --filter=@navikt/pleiepenger-i-livets-sluttfase-soknad", - "ba": "turbo run build-app", - "clean": "turbo run clean", + "build-package": "turbo run build-package", + "build": "turbo run build", "clean-all": "turbo run clean && rm -rf node_modules", - "dev": "turbo run dev --no-cache --parallel --continue", + "clean": "turbo run clean", + "dev-lib": "turbo run dev-lib --no-cache --parallel --continue", "format": "prettier --write \"**/*.{ts,tsx,md}\"", - "prepare": "husky install", "lint": "turbo run lint", - "test": "turbo run test", - "test-watch": "turbo run test-watch", - "test-coverage": "turbo run test-coverage" + "prepare": "husky install", + "test": "turbo run test" }, "workspaces": [ "apps/*", "packages/*" ], "overrides": { - "react-scripts": { - "nth-check": ">=2.0.1" - }, "glob-parent": ">=5.1.2" }, "private": true, diff --git a/packages/appstatus-react-ds/CHANGELOG.md b/packages/appstatus-react-ds/CHANGELOG.md index d697c38ee2..93a09aec61 100644 --- a/packages/appstatus-react-ds/CHANGELOG.md +++ b/packages/appstatus-react-ds/CHANGELOG.md @@ -1,329 +1,397 @@ # @navikt/appstatus-react-ds +## 2.17.5 + +### Patch Changes + +- Patch oppdateringer +- Updated dependencies + - @navikt/sif-common-hooks@0.1.3 + +## 2.17.4 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker + +## 2.17.3 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer + +## 2.17.2 + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [6084e23] + - @navikt/sif-common-hooks@0.1.2 + +## 2.17.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [295d3ad] + - @navikt/sif-common-hooks@0.1.1 + +## 2.17.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +## 2.16.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +### Patch Changes + +- Updated dependencies + - @navikt/sif-common-hooks@0.1.0 + +## 2.15.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + +## 2.14.11 + +### Patch Changes + +- 6d3b3cbe: Minor og patch oppdateringer + nextjs major -> 14 + ## 2.14.10 ### Patch Changes -- 09ae5814: Patch-oppdateringer +- 09ae5814: Patch-oppdateringer ## 2.14.9 ### Patch Changes -- b4d45cf9: Diverse mindre pakkeoppdateringer +- b4d45cf9: Diverse mindre pakkeoppdateringer ## 2.14.8 ### Patch Changes -- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 +- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 ## 2.14.7 ### Patch Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ## 2.14.6 ### Patch Changes -- Pakkeoppdatering som fikser datepicker + modal bug +- Pakkeoppdatering som fikser datepicker + modal bug ## 2.14.5 ### Patch Changes -- 71381778: Patch pakkeoppdateringer +- 71381778: Patch pakkeoppdateringer ## 2.14.4 ### Patch Changes -- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds +- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds ## 2.14.3 ### Patch Changes -- 2a1e2526: Pakkeoppdateringer +- 2a1e2526: Pakkeoppdateringer ## 2.14.2 ### Patch Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ## 2.14.1 ### Patch Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ## 2.14.0 ### Minor Changes -- 96810cd6: Pakkeoppdateringer +- 96810cd6: Pakkeoppdateringer ## 2.13.0 ### Minor Changes -- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer +- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer ## 2.12.0 ### Minor Changes -- 026fc373: Oppdatere til versjon 5 av designsystemet aksel +- 026fc373: Oppdatere til versjon 5 av designsystemet aksel ## 2.11.0 ### Minor Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ## 2.10.2 ### Patch Changes -- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react +- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react ## 2.10.1 ### Patch Changes -- cc50b642: Diverse mindre pakkeoppdateringer +- cc50b642: Diverse mindre pakkeoppdateringer ## 2.10.0 ### Minor Changes -- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene +- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene ## 2.9.0 ### Minor Changes -- d3ae045: Oppdatere minor og patch +- d3ae045: Oppdatere minor og patch ## 2.8.1 ### Patch Changes -- ebebab7: Pakkeoppdateringer +- ebebab7: Pakkeoppdateringer ## 2.8.0 ### Minor Changes -- 5beb8c9: Pakkeoppdateringer +- 5beb8c9: Pakkeoppdateringer ## 2.7.2 ### Patch Changes -- bd6fae3: Pakkeoppdateringer +- bd6fae3: Pakkeoppdateringer ## 2.7.1 ### Patch Changes -- 4d1cb8b: Pakkeoppdateringer +- 4d1cb8b: Pakkeoppdateringer ## 2.7.0 ### Minor Changes -- ae1fdbf7: Pakkeoppdateringer +- ae1fdbf7: Pakkeoppdateringer ## 2.6.0 ### Minor Changes -- 7d66a381: Oppdatere pakker, fjerne snyk +- 7d66a381: Oppdatere pakker, fjerne snyk ## 2.5.2 ### Patch Changes -- 38c8814: Pakkeoppdateringer +- 38c8814: Pakkeoppdateringer ## 2.5.1 ### Patch Changes -- Oppdatere pakker +- Oppdatere pakker ## 2.5.0 ### Minor Changes -- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. +- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. ## 2.4.0 ### Minor Changes -- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring +- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring ## 2.3.1 ### Patch Changes -- 0adf41c1: Pakkeoppdateringer +- 0adf41c1: Pakkeoppdateringer ## 2.3.0 ### Minor Changes -- 93b8104e: Oppdatere packages +- 93b8104e: Oppdatere packages ## 2.2.0 ### Minor Changes -- ca33226c: Oppdatere pakker +- ca33226c: Oppdatere pakker ## 2.1.0 ### Minor Changes -- 908bb770: Pakkeoppdateringer +- 908bb770: Pakkeoppdateringer ## 2.0.3 ### Patch Changes -- ecd4b4f: Pakkeoppdateringer -- f033a9b: Patch-oppdatering av ds pakker +- ecd4b4f: Pakkeoppdateringer +- f033a9b: Patch-oppdatering av ds pakker ## 2.0.2 ### Patch Changes -- 7637a0b: Oppdatere packages +- 7637a0b: Oppdatere packages ## 2.0.1 ### Patch Changes -- 7c6db10: Pakkeoppdateringer +- 7c6db10: Pakkeoppdateringer ## 2.0.0 ### Major Changes -- dde26c4: Oppdatert major versjon av @sanity/client +- dde26c4: Oppdatert major versjon av @sanity/client ### Patch Changes -- dde26c4: Oppdatere packageversjoner +- dde26c4: Oppdatere packageversjoner ## 1.7.0 ### Minor Changes -- e6c5ea70: Oppdatere packages, inkludert major på axios +- e6c5ea70: Oppdatere packages, inkludert major på axios ## 1.6.0 ### Minor Changes -- d0a2c73: Diverse pakkeoppdateringer, minor og patch +- d0a2c73: Diverse pakkeoppdateringer, minor og patch ## 1.5.8 ### Patch Changes -- bfd9a33: Oppdatere pakker +- bfd9a33: Oppdatere pakker ## 1.5.7 ### Patch Changes -- 4afefff: Oppdatere pakker +- 4afefff: Oppdatere pakker ## 1.5.6 ### Patch Changes -- af051b61: Diverse pakkeoppdateringer +- af051b61: Diverse pakkeoppdateringer ## 1.5.5 ### Patch Changes -- e1997dd: Pakkeoppdateringer +- e1997dd: Pakkeoppdateringer ## 1.5.4 ### Patch Changes -- 225b95e: DurationText komponent + oppdatert endringsdialog -- dd0a865: I hovedsak utvikling av endringsdialog, men noen endringer på fellespakker, f.eks. desimaltid i sif-common-utils -- 5101688: Oppdaterte pakker -- 5101688: Oppdatere pakker -- d99ac0a: Pakkeoppdateringer - objec-hash, uuid +- 225b95e: DurationText komponent + oppdatert endringsdialog +- dd0a865: I hovedsak utvikling av endringsdialog, men noen endringer på fellespakker, f.eks. desimaltid i sif-common-utils +- 5101688: Oppdaterte pakker +- 5101688: Oppdatere pakker +- d99ac0a: Pakkeoppdateringer - objec-hash, uuid ## 1.5.3 ### Patch Changes -- c735b7f: Oppdatere pakker -- 369914d: Oppdatert pakke av designsystemet +- c735b7f: Oppdatere pakker +- 369914d: Oppdatert pakke av designsystemet ## 1.5.2 ### Patch Changes -- 6e38566: Oppdate dependencies - minor og patch +- 6e38566: Oppdate dependencies - minor og patch ## 1.5.1 ### Patch Changes -- 827d044: Diverse UU justeringer +- 827d044: Diverse UU justeringer ## 1.5.0 ### Minor Changes -- 509383d: Pakkeoppdateringer, inkl axios +- 509383d: Pakkeoppdateringer, inkl axios ## 1.4.2 ### Patch Changes -- 8533e79: Pakkeoppdateringer +- 8533e79: Pakkeoppdateringer ## 1.4.1 ### Patch Changes -- 03aeac4: Oppdatere pakker. Ink. major update av react-router-dom. +- 03aeac4: Oppdatere pakker. Ink. major update av react-router-dom. ## 1.4.0 ### Minor Changes -- ec2e55b: Legge til apiVersion for sanity-config +- ec2e55b: Legge til apiVersion for sanity-config ## 1.3.0 ### Minor Changes -- 9707071: Oppdatere til ds-datepicker-4.beta og til ds-1.0 pakker +- 9707071: Oppdatere til ds-datepicker-4.beta og til ds-1.0 pakker ## 1.2.0 ### Minor Changes -- dfd8398: Oppdatere til React 18 +- dfd8398: Oppdatere til React 18 ## 1.1.3 ### Patch Changes -- 863393c: Erstatte nav-frontend-moduler komponenter, starte på storybook i sif-common-core-ds +- 863393c: Erstatte nav-frontend-moduler komponenter, starte på storybook i sif-common-core-ds diff --git a/packages/appstatus-react-ds/package.json b/packages/appstatus-react-ds/package.json index 5d5b38abc8..23610558ed 100644 --- a/packages/appstatus-react-ds/package.json +++ b/packages/appstatus-react-ds/package.json @@ -5,22 +5,22 @@ "main": "lib/index.js", "name": "@navikt/appstatus-react-ds", "types": "lib/index.d.js", - "version": "2.14.10", + "version": "2.17.5", "private": true, "dependencies": { "@navikt/sif-common-hooks": "workspace:*", "@portabletext/react": "3.0.11", - "@sanity/client": "6.8.0" + "@sanity/client": "6.9.3" }, "devDependencies": { - "@navikt/ds-css": "5.10.1", - "@navikt/ds-react": "5.10.1", - "@types/node": "20.9.0", - "@types/react": "18.2.37", - "@types/react-dom": "18.2.15", + "@navikt/ds-css": "5.11.4", + "@navikt/ds-react": "5.11.4", + "@types/node": "20.10.4", + "@types/react": "18.2.43", + "@types/react-dom": "18.2.17", "config": "workspace:*", "copyfiles": "2.4.1", - "postcss": "8.4.31", + "postcss": "8.4.32", "prop-types": "15.8.1", "react": "18.2.0", "react-dom": "18.2.0", @@ -35,7 +35,7 @@ "compile-lib-script-watch": "tsc -p tsconfig.json --watch", "compile-lib-script": "tsc -p tsconfig.json", "copy-files": "copyfiles -u 1 \"src/**/*.css\" lib", - "dev": "yarn compile-lib-script-watch", + "dev-lib": "yarn compile-lib-script-watch", "lint": "eslint ./src --ext ts,tsx" } } diff --git a/packages/config/CHANGELOG.md b/packages/config/CHANGELOG.md index 62514d67ea..ca46955f35 100644 --- a/packages/config/CHANGELOG.md +++ b/packages/config/CHANGELOG.md @@ -1,5 +1,56 @@ # config +## 0.9.4 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker + +## 0.9.3 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer + +## 0.9.2 + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger + +## 0.9.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger + +## 0.9.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +## 0.8.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +## 0.7.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + +## 0.6.5 + +### Patch Changes + +- 6d3b3cbe: Minor og patch oppdateringer + nextjs major -> 14 + ## 0.6.4 ### Patch Changes diff --git a/packages/config/eslint-next.js b/packages/config/eslint-next.js new file mode 100644 index 0000000000..85c0906437 --- /dev/null +++ b/packages/config/eslint-next.js @@ -0,0 +1,35 @@ +module.exports = { + parser: '@typescript-eslint/parser', + extends: [ + 'plugin:@next/next/recommended', + 'plugin:react/recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + 'plugin:jsx-a11y/recommended', + ], + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + rules: { + '@typescript-eslint/explicit-function-return-type': 0, + '@typescript-eslint/explicit-module-boundary-types': 0, + '@typescript-eslint/ban-ts-ignore': 'off', + '@typescript-eslint/no-var-requires': 0, + '@typescript-eslint/no-explicit-any': 0, + 'react-hooks/rules-of-hooks': 'error', + 'react-hooks/exhaustive-deps': 'warn', + 'react/react-in-jsx-scope': 0, + 'react/jsx-uses-react': 0, + 'react/prop-types': 0, + 'no-console': 'error', + }, + plugins: ['jsx-a11y', 'react-hooks'], + settings: { + react: { + version: 'detect', + }, + }, + ignorePatterns: ['node_modules', 'dist', 'lib', '.turbo'], +}; diff --git a/packages/config/eslint.js b/packages/config/eslint.js index 66aa521714..4fdb3df90a 100644 --- a/packages/config/eslint.js +++ b/packages/config/eslint.js @@ -14,6 +14,7 @@ module.exports = { rules: { '@typescript-eslint/explicit-function-return-type': 0, '@typescript-eslint/explicit-module-boundary-types': 0, + '@typescript-eslint/ban-ts-ignore': 'off', '@typescript-eslint/no-var-requires': 0, '@typescript-eslint/no-explicit-any': 0, 'react-hooks/rules-of-hooks': 'error', diff --git a/packages/config/package.json b/packages/config/package.json index 54e154f2eb..ce9f9d6d09 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -1,22 +1,23 @@ { "main": "index.js", "name": "config", - "version": "0.6.4", + "version": "0.9.4", "private": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "6.10.0", - "@typescript-eslint/parser": "6.10.0", + "@typescript-eslint/eslint-plugin": "6.14.0", + "@typescript-eslint/parser": "6.14.0", "autoprefixer": "10.4.16", - "eslint": "8.53.0", - "eslint-config-prettier": "9.0.0", + "eslint": "8.55.0", + "eslint-config-prettier": "9.1.0", "eslint-plugin-jsx-a11y": "6.8.0", "eslint-plugin-prettier": "5.0.1", "eslint-plugin-react": "7.33.2", "eslint-plugin-storybook": "0.6.15", - "postcss": "8.4.31" + "postcss": "8.4.32" }, "files": [ "eslint.js", + "eslint-next.js", "tsconfig-base.json" ] } diff --git a/packages/config/tsconfig-base.json b/packages/config/tsconfig-base.json index 3d280012e3..c0ffb3535e 100644 --- a/packages/config/tsconfig-base.json +++ b/packages/config/tsconfig-base.json @@ -8,7 +8,7 @@ "forceConsistentCasingInFileNames": true, "jsx": "react-jsx", "module": "ESNext", - "moduleResolution": "node", + "moduleResolution": "bundler", "noEmit": false, "noFallthroughCasesInSwitch": true, "noUnusedLocals": true, diff --git a/packages/sif-app-register/CHANGELOG.md b/packages/sif-app-register/CHANGELOG.md new file mode 100644 index 0000000000..800f1b6bb4 --- /dev/null +++ b/packages/sif-app-register/CHANGELOG.md @@ -0,0 +1,19 @@ +# @navikt/sif-app-register + +## 0.0.4 + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger + +## 0.0.3 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger + +## 0.0.2 + +### Patch Changes + +- 19c424d7: Oppdatere appkey for pils søknad diff --git a/packages/sif-app-register/package.json b/packages/sif-app-register/package.json index 15b228bfbd..46759cba58 100644 --- a/packages/sif-app-register/package.json +++ b/packages/sif-app-register/package.json @@ -2,12 +2,11 @@ "name": "@navikt/sif-app-register", "main": "src/index.ts", "types": "src/index.ts", - "version": "0.0.1", + "version": "0.0.4", "private": true, "devDependencies": { "copyfiles": "2.4.1", - "npm-run-all": "4.1.5", - "react-scripts": "5.0.1" + "npm-run-all": "4.1.5" }, "scripts": { "build-package": "npm-run-all compile-lib-script copy-files", diff --git a/packages/sif-app-register/src/index.ts b/packages/sif-app-register/src/index.ts index b70f4dc02a..a572ca7457 100644 --- a/packages/sif-app-register/src/index.ts +++ b/packages/sif-app-register/src/index.ts @@ -39,7 +39,7 @@ export const EndringsmeldingPsbApp: AppInfo = { }; export const PleiepengerLivetsSluttApp: AppInfo = { - key: 'pleiepengesoknad-livets-slutt', + key: 'pleiepenger-i-livets-sluttfase-soknad', navn: 'Pleiepenger i livets sluttfase', tittel: { nb: 'Søknad om pleiepenger i livets sluttfase', diff --git a/packages/sif-common-amplitude/CHANGELOG.md b/packages/sif-common-amplitude/CHANGELOG.md index d76a199638..959dc503f0 100644 --- a/packages/sif-common-amplitude/CHANGELOG.md +++ b/packages/sif-common-amplitude/CHANGELOG.md @@ -1,280 +1,331 @@ # @navikt/sif-common-amplitude +## 2.24.5 + +### Patch Changes + +- Patch oppdateringer + +## 2.24.4 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker + +## 2.24.3 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer + +## 2.24.2 + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger + +## 2.24.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger + +## 2.24.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +## 2.23.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +## 2.22.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + ## 2.21.9 ### Patch Changes -- b4d45cf9: Diverse mindre pakkeoppdateringer +- b4d45cf9: Diverse mindre pakkeoppdateringer ## 2.21.8 ### Patch Changes -- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 +- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 ## 2.21.7 ### Patch Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ## 2.21.6 ### Patch Changes -- Pakkeoppdatering som fikser datepicker + modal bug +- Pakkeoppdatering som fikser datepicker + modal bug ## 2.21.5 ### Patch Changes -- 71381778: Patch pakkeoppdateringer +- 71381778: Patch pakkeoppdateringer ## 2.21.4 ### Patch Changes -- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds +- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds ## 2.21.3 ### Patch Changes -- 2a1e2526: Pakkeoppdateringer +- 2a1e2526: Pakkeoppdateringer ## 2.21.2 ### Patch Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ## 2.21.1 ### Patch Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ## 2.21.0 ### Minor Changes -- 96810cd6: Pakkeoppdateringer +- 96810cd6: Pakkeoppdateringer ## 2.20.0 ### Minor Changes -- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer +- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer ## 2.19.0 ### Minor Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ## 2.18.1 ### Patch Changes -- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react +- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react ## 2.18.0 ### Minor Changes -- d3ae045: Oppdatere minor og patch +- d3ae045: Oppdatere minor og patch ## 2.17.0 ### Minor Changes -- 5beb8c9: Pakkeoppdateringer +- 5beb8c9: Pakkeoppdateringer ## 2.16.2 ### Patch Changes -- bd6fae3: Pakkeoppdateringer +- bd6fae3: Pakkeoppdateringer ## 2.16.1 ### Patch Changes -- 4d1cb8b: Pakkeoppdateringer +- 4d1cb8b: Pakkeoppdateringer ## 2.16.0 ### Minor Changes -- ae1fdbf7: Pakkeoppdateringer +- ae1fdbf7: Pakkeoppdateringer ## 2.15.0 ### Minor Changes -- 7d66a381: Oppdatere pakker, fjerne snyk +- 7d66a381: Oppdatere pakker, fjerne snyk ## 2.14.1 ### Patch Changes -- 38c8814: Pakkeoppdateringer +- 38c8814: Pakkeoppdateringer ## 2.14.0 ### Minor Changes -- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. +- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. ## 2.13.0 ### Minor Changes -- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring +- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring ## 2.12.1 ### Patch Changes -- 0adf41c1: Pakkeoppdateringer +- 0adf41c1: Pakkeoppdateringer ## 2.12.0 ### Minor Changes -- 93b8104e: Oppdatere packages +- 93b8104e: Oppdatere packages ## 2.11.0 ### Minor Changes -- ca33226c: Oppdatere pakker +- ca33226c: Oppdatere pakker ## 2.10.0 ### Minor Changes -- 908bb770: Pakkeoppdateringer +- 908bb770: Pakkeoppdateringer ## 2.9.3 ### Patch Changes -- ecd4b4f: Pakkeoppdateringer +- ecd4b4f: Pakkeoppdateringer ## 2.9.2 ### Patch Changes -- 7637a0b: Oppdatere packages +- 7637a0b: Oppdatere packages ## 2.9.1 ### Patch Changes -- dde26c4: Oppdatere packageversjoner +- dde26c4: Oppdatere packageversjoner ## 2.9.0 ### Minor Changes -- e6c5ea70: Oppdatere packages, inkludert major på axios +- e6c5ea70: Oppdatere packages, inkludert major på axios ## 2.8.0 ### Minor Changes -- d0a2c73: Diverse pakkeoppdateringer, minor og patch +- d0a2c73: Diverse pakkeoppdateringer, minor og patch ## 2.7.3 ### Patch Changes -- 41408691: Pakkeoppdateringer +- 41408691: Pakkeoppdateringer ## 2.7.2 ### Patch Changes -- bfd9a33: Oppdatere pakker +- bfd9a33: Oppdatere pakker ## 2.7.1 ### Patch Changes -- 4afefff: Oppdatere pakker +- 4afefff: Oppdatere pakker ## 2.7.0 ### Minor Changes -- 4d14447f: Legge til logging av når vedlegg lastes opp og slettes i ettersending. Legge til standard-events i sif-common-amplitude +- 4d14447f: Legge til logging av når vedlegg lastes opp og slettes i ettersending. Legge til standard-events i sif-common-amplitude ## 2.6.6 ### Patch Changes -- af051b61: Diverse pakkeoppdateringer +- af051b61: Diverse pakkeoppdateringer ## 2.6.5 ### Patch Changes -- e1997dd: Pakkeoppdateringer +- e1997dd: Pakkeoppdateringer ## 2.6.4 ### Patch Changes -- 225b95e: DurationText komponent + oppdatert endringsdialog -- dd0a865: I hovedsak utvikling av endringsdialog, men noen endringer på fellespakker, f.eks. desimaltid i sif-common-utils -- 5101688: Oppdaterte pakker -- 5101688: Oppdatere pakker +- 225b95e: DurationText komponent + oppdatert endringsdialog +- dd0a865: I hovedsak utvikling av endringsdialog, men noen endringer på fellespakker, f.eks. desimaltid i sif-common-utils +- 5101688: Oppdaterte pakker +- 5101688: Oppdatere pakker ## 2.6.3 ### Patch Changes -- c735b7f: Oppdatere pakker +- c735b7f: Oppdatere pakker ## 2.6.2 ### Patch Changes -- 4c58f4b: Oppdatere peerDeps for sif-common-amplitude +- 4c58f4b: Oppdatere peerDeps for sif-common-amplitude ## 2.6.1 ### Patch Changes -- 827d044: Diverse UU justeringer +- 827d044: Diverse UU justeringer ## 2.6.0 ### Minor Changes -- 509383d: Pakkeoppdateringer, inkl axios +- 509383d: Pakkeoppdateringer, inkl axios ## 2.5.2 ### Patch Changes -- 03aeac4: Oppdatere pakker. Ink. major update av react-router-dom. +- 03aeac4: Oppdatere pakker. Ink. major update av react-router-dom. ## 2.5.1 ### Patch Changes -- e6878a0: Legge til react 17 som peerDep, ikke bare react 18 +- e6878a0: Legge til react 17 som peerDep, ikke bare react 18 ## 2.5.0 ### Minor Changes -- dfd8398: Oppdatere til React 18 +- dfd8398: Oppdatere til React 18 ## 2.4.1 ### Patch Changes -- 863393c: Erstatte nav-frontend-moduler komponenter, starte på storybook i sif-common-core-ds +- 863393c: Erstatte nav-frontend-moduler komponenter, starte på storybook i sif-common-core-ds diff --git a/packages/sif-common-amplitude/package.json b/packages/sif-common-amplitude/package.json index 72e2a4ec25..85402f1eab 100644 --- a/packages/sif-common-amplitude/package.json +++ b/packages/sif-common-amplitude/package.json @@ -6,20 +6,19 @@ "main": "lib/index.js", "name": "@navikt/sif-common-amplitude", "types": "lib/index.d.js", - "version": "2.21.9", + "version": "2.24.5", "bugs": { "url": "https://github.com/navikt/sif-common-amplitude/issues" }, "devDependencies": { "@types/amplitude-js": "8.16.5", - "@types/node": "20.9.0", - "@types/react": "18.2.37", + "@types/node": "20.10.4", + "@types/react": "18.2.43", "amplitude-js": "8.21.9", "config": "workspace:*", "constate": "3.3.2", - "gh-pages": "6.0.0", + "gh-pages": "6.1.0", "react": "18.2.0", - "react-scripts": "5.0.1", "rimraf": "5.0.5" }, "directories": { @@ -45,7 +44,7 @@ "clean": "rm -rf node_modules lib", "compile-lib-script-watch": "tsc -p tsconfig.json --watch", "compile-lib-script": "tsc -p tsconfig.json", - "dev": "yarn compile-lib-script-watch", + "dev-lib": "yarn compile-lib-script-watch", "lint": "eslint ./src --ext ts,tsx" } } diff --git a/packages/sif-common-core-ds/CHANGELOG.md b/packages/sif-common-core-ds/CHANGELOG.md index 916ae0c606..fb355bb778 100644 --- a/packages/sif-common-core-ds/CHANGELOG.md +++ b/packages/sif-common-core-ds/CHANGELOG.md @@ -1,809 +1,898 @@ # @navikt/sif-common-core-ds +## 9.12.2 + +### Patch Changes + +- Patch oppdateringer +- Updated dependencies + - @navikt/sif-common-utils@3.43.5 + +## 9.12.1 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker +- Updated dependencies [e7bf8d1] + - @navikt/sif-common-utils@3.43.4 + +## 9.12.0 + +### Minor Changes + +- 573c55d: Diverse oppdateringer i forbindelse med uu-gjennomgang. + +## 9.11.3 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer +- Updated dependencies [406b044] + - @navikt/sif-common-utils@3.43.3 + +## 9.11.2 + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [6084e23] + - @navikt/sif-common-utils@3.43.2 + +## 9.11.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger +- Updated dependencies [295d3ad] + - @navikt/sif-common-utils@3.43.1 + +## 9.11.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +### Patch Changes + +- Updated dependencies [53b47be] + - @navikt/sif-common-utils@3.43.0 + +## 9.10.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +### Patch Changes + +- Updated dependencies + - @navikt/sif-common-utils@3.42.0 + +## 9.9.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + +### Patch Changes + +- Updated dependencies [d31f28ec] + - @navikt/sif-common-utils@3.41.0 + +## 9.8.11 + +### Patch Changes + +- 6d3b3cbe: Minor og patch oppdateringer + nextjs major -> 14 + - @navikt/sif-common-utils@3.40.11 + ## 9.8.10 ### Patch Changes -- 09ae5814: Patch-oppdateringer -- Updated dependencies [09ae5814] - - @navikt/sif-common-utils@3.40.11 +- 09ae5814: Patch-oppdateringer +- Updated dependencies [09ae5814] + - @navikt/sif-common-utils@3.40.11 ## 9.8.9 ### Patch Changes -- b4d45cf9: Diverse mindre pakkeoppdateringer -- Updated dependencies [b4d45cf9] - - @navikt/sif-common-utils@3.40.10 +- b4d45cf9: Diverse mindre pakkeoppdateringer +- Updated dependencies [b4d45cf9] + - @navikt/sif-common-utils@3.40.10 ## 9.8.8 ### Patch Changes -- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 -- Updated dependencies [cb7e6653] - - @navikt/sif-common-utils@3.40.9 +- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 +- Updated dependencies [cb7e6653] + - @navikt/sif-common-utils@3.40.9 ## 9.8.7 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies - - @navikt/sif-common-utils@3.40.8 +- Pakkeoppdateringer +- Updated dependencies + - @navikt/sif-common-utils@3.40.8 ## 9.8.6 ### Patch Changes -- Pakkeoppdatering som fikser datepicker + modal bug -- Updated dependencies - - @navikt/sif-common-utils@3.40.7 +- Pakkeoppdatering som fikser datepicker + modal bug +- Updated dependencies + - @navikt/sif-common-utils@3.40.7 ## 9.8.5 ### Patch Changes -- 71381778: Patch pakkeoppdateringer -- Updated dependencies [71381778] - - @navikt/sif-common-utils@3.40.6 +- 71381778: Patch pakkeoppdateringer +- Updated dependencies [71381778] + - @navikt/sif-common-utils@3.40.6 ## 9.8.4 ### Patch Changes -- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds -- Updated dependencies [60eb7ee9] - - @navikt/sif-common-utils@3.40.5 +- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds +- Updated dependencies [60eb7ee9] + - @navikt/sif-common-utils@3.40.5 ## 9.8.3 ### Patch Changes -- 2a1e2526: Pakkeoppdateringer -- Updated dependencies [2a1e2526] - - @navikt/sif-common-utils@3.40.4 +- 2a1e2526: Pakkeoppdateringer +- Updated dependencies [2a1e2526] + - @navikt/sif-common-utils@3.40.4 ## 9.8.2 ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies - - @navikt/sif-common-utils@3.40.3 +- Pakkeoppdateringer +- Updated dependencies + - @navikt/sif-common-utils@3.40.3 ## 9.8.1 ### Patch Changes -- 81e7e155: Bruke BodyLong i alle SifGuidePanel -- Updated dependencies [81e7e155] - - @navikt/sif-common-utils@3.40.2 +- 81e7e155: Bruke BodyLong i alle SifGuidePanel +- Updated dependencies [81e7e155] + - @navikt/sif-common-utils@3.40.2 ## 9.8.0 ### Minor Changes -- fd07933f: Ersattet ds-datepicker med DatePicker fra Aksel +- fd07933f: Ersattet ds-datepicker med DatePicker fra Aksel ## 9.7.0 ### Minor Changes -- 55e1f323: Legge til Ytelser objekt som holder på navn og tittel på ytelser og søknadsdialoger +- 55e1f323: Legge til Ytelser objekt som holder på navn og tittel på ytelser og søknadsdialoger ### Patch Changes -- Pakkeoppdateringer -- Updated dependencies - - @navikt/sif-common-utils@3.40.1 +- Pakkeoppdateringer +- Updated dependencies + - @navikt/sif-common-utils@3.40.1 ## 9.6.0 ### Minor Changes -- 61eee34c: Bytte til å bruke react-dropzone komponet for filopplasting. Enkel porting av eksisterende komponent til ny. +- 61eee34c: Bytte til å bruke react-dropzone komponet for filopplasting. Enkel porting av eksisterende komponent til ny. ### Patch Changes -- Updated dependencies [61eee34c] - - @navikt/sif-common-formik-ds@0.6.0 +- Updated dependencies [61eee34c] + - @navikt/sif-common-formik-ds@0.6.0 ## 9.5.0 ### Minor Changes -- 96810cd6: Pakkeoppdateringer +- 96810cd6: Pakkeoppdateringer ### Patch Changes -- 96810cd6: Oppdatere layout -- Updated dependencies [96810cd6] -- Updated dependencies [96810cd6] - - @navikt/sif-common-formik-ds@0.5.0 - - @navikt/appstatus-react-ds@2.14.0 - - @navikt/sif-common-utils@3.40.0 +- 96810cd6: Oppdatere layout +- Updated dependencies [96810cd6] +- Updated dependencies [96810cd6] + - @navikt/sif-common-formik-ds@0.5.0 + - @navikt/appstatus-react-ds@2.14.0 + - @navikt/sif-common-utils@3.40.0 ## 9.4.0 ### Minor Changes -- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer +- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer ### Patch Changes -- Updated dependencies [c976be57] - - @navikt/sif-common-formik-ds@0.4.0 - - @navikt/appstatus-react-ds@2.13.0 - - @navikt/sif-common-utils@3.39.0 +- Updated dependencies [c976be57] + - @navikt/sif-common-formik-ds@0.4.0 + - @navikt/appstatus-react-ds@2.13.0 + - @navikt/sif-common-utils@3.39.0 ## 9.3.0 ### Minor Changes -- 026fc373: Oppdatere til versjon 5 av designsystemet aksel +- 026fc373: Oppdatere til versjon 5 av designsystemet aksel ### Patch Changes -- Updated dependencies [41d0a03c] -- Updated dependencies [026fc373] - - @navikt/sif-common-formik-ds@0.3.0 - - @navikt/appstatus-react-ds@2.12.0 +- Updated dependencies [41d0a03c] +- Updated dependencies [026fc373] + - @navikt/sif-common-formik-ds@0.3.0 + - @navikt/appstatus-react-ds@2.12.0 ## 9.2.1 ### Patch Changes -- Updated dependencies [6669d48c] - - @navikt/sif-common-formik-ds@0.25.0 +- Updated dependencies [6669d48c] + - @navikt/sif-common-formik-ds@0.25.0 ## 9.2.0 ### Minor Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ### Patch Changes -- Updated dependencies - - @navikt/sif-common-formik-ds@0.24.0 - - @navikt/appstatus-react-ds@2.11.0 - - @navikt/sif-common-utils@3.38.0 +- Updated dependencies + - @navikt/sif-common-formik-ds@0.24.0 + - @navikt/appstatus-react-ds@2.11.0 + - @navikt/sif-common-utils@3.38.0 ## 9.1.3 ### Patch Changes -- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react -- Updated dependencies [0e25e34f] - - @navikt/sif-common-formik-ds@0.23.3 - - @navikt/appstatus-react-ds@2.10.2 - - @navikt/sif-common-utils@3.37.1 +- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react +- Updated dependencies [0e25e34f] + - @navikt/sif-common-formik-ds@0.23.3 + - @navikt/appstatus-react-ds@2.10.2 + - @navikt/sif-common-utils@3.37.1 ## 9.1.2 ### Patch Changes -- 7e9863c7: Oppdatert versjon av pakker for test og bygg -- Updated dependencies [7e9863c7] - - @navikt/sif-common-formik-ds@0.23.2 +- 7e9863c7: Oppdatert versjon av pakker for test og bygg +- Updated dependencies [7e9863c7] + - @navikt/sif-common-formik-ds@0.23.2 ## 9.1.1 ### Patch Changes -- cc50b642: Diverse mindre pakkeoppdateringer -- Updated dependencies [cc50b642] - - @navikt/sif-common-formik-ds@0.23.1 - - @navikt/appstatus-react-ds@2.10.1 +- cc50b642: Diverse mindre pakkeoppdateringer +- Updated dependencies [cc50b642] + - @navikt/sif-common-formik-ds@0.23.1 + - @navikt/appstatus-react-ds@2.10.1 ## 9.1.0 ### Minor Changes -- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene +- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene ### Patch Changes -- Updated dependencies [ea79f31c] - - @navikt/sif-common-formik-ds@0.23.0 - - @navikt/appstatus-react-ds@2.10.0 +- Updated dependencies [ea79f31c] + - @navikt/sif-common-formik-ds@0.23.0 + - @navikt/appstatus-react-ds@2.10.0 ## 9.0.0 ### Minor Changes -- d3ae045: Oppdatere minor og patch +- d3ae045: Oppdatere minor og patch ### Patch Changes -- Updated dependencies [d3ae045] - - @navikt/sif-common-formik-ds@0.22.0 - - @navikt/appstatus-react-ds@2.9.0 - - @navikt/sif-common-utils@3.37.0 +- Updated dependencies [d3ae045] + - @navikt/sif-common-formik-ds@0.22.0 + - @navikt/appstatus-react-ds@2.9.0 + - @navikt/sif-common-utils@3.37.0 ## 8.0.1 ### Patch Changes -- ebebab7: Pakkeoppdateringer -- Updated dependencies [ebebab7] - - @navikt/sif-common-formik-ds@0.21.1 - - @navikt/appstatus-react-ds@2.8.1 - - @navikt/sif-common-utils@3.36.1 +- ebebab7: Pakkeoppdateringer +- Updated dependencies [ebebab7] + - @navikt/sif-common-formik-ds@0.21.1 + - @navikt/appstatus-react-ds@2.8.1 + - @navikt/sif-common-utils@3.36.1 ## 8.0.0 ### Minor Changes -- 5beb8c9: Pakkeoppdateringer +- 5beb8c9: Pakkeoppdateringer ### Patch Changes -- Updated dependencies [5beb8c9] - - @navikt/sif-common-formik-ds@0.21.0 - - @navikt/appstatus-react-ds@2.8.0 - - @navikt/sif-common-utils@3.36.0 +- Updated dependencies [5beb8c9] + - @navikt/sif-common-formik-ds@0.21.0 + - @navikt/appstatus-react-ds@2.8.0 + - @navikt/sif-common-utils@3.36.0 ## 7.4.2 ### Patch Changes -- bd6fae3: Pakkeoppdateringer -- Updated dependencies [bd6fae3] - - @navikt/sif-common-formik-ds@0.20.2 - - @navikt/appstatus-react-ds@2.7.2 - - @navikt/sif-common-utils@3.34.2 +- bd6fae3: Pakkeoppdateringer +- Updated dependencies [bd6fae3] + - @navikt/sif-common-formik-ds@0.20.2 + - @navikt/appstatus-react-ds@2.7.2 + - @navikt/sif-common-utils@3.34.2 ## 7.4.1 ### Patch Changes -- 4d1cb8b: Pakkeoppdateringer -- Updated dependencies [4d1cb8b] - - @navikt/sif-common-formik-ds@0.20.1 - - @navikt/appstatus-react-ds@2.7.1 - - @navikt/sif-common-utils@3.34.1 +- 4d1cb8b: Pakkeoppdateringer +- Updated dependencies [4d1cb8b] + - @navikt/sif-common-formik-ds@0.20.1 + - @navikt/appstatus-react-ds@2.7.1 + - @navikt/sif-common-utils@3.34.1 ## 7.4.0 ### Minor Changes -- ae1fdbf7: Pakkeoppdateringer +- ae1fdbf7: Pakkeoppdateringer ### Patch Changes -- a1e69480: Oppdatere utgått lenke til informasjon om vedlegg på nav.no -- Updated dependencies [ae1fdbf7] - - @navikt/sif-common-formik-ds@0.20.0 - - @navikt/appstatus-react-ds@2.7.0 - - @navikt/sif-common-utils@3.34.0 +- a1e69480: Oppdatere utgått lenke til informasjon om vedlegg på nav.no +- Updated dependencies [ae1fdbf7] + - @navikt/sif-common-formik-ds@0.20.0 + - @navikt/appstatus-react-ds@2.7.0 + - @navikt/sif-common-utils@3.34.0 ## 7.3.0 ### Minor Changes -- 7d66a381: Oppdatere pakker, fjerne snyk +- 7d66a381: Oppdatere pakker, fjerne snyk ### Patch Changes -- Updated dependencies [7d66a381] - - @navikt/sif-common-formik-ds@0.19.0 - - @navikt/appstatus-react-ds@2.6.0 - - @navikt/sif-common-utils@3.33.0 +- Updated dependencies [7d66a381] + - @navikt/sif-common-formik-ds@0.19.0 + - @navikt/appstatus-react-ds@2.6.0 + - @navikt/sif-common-utils@3.33.0 ## 7.2.2 ### Patch Changes -- 38c8814: Pakkeoppdateringer -- Updated dependencies [38c8814] - - @navikt/sif-common-formik-ds@0.18.2 - - @navikt/appstatus-react-ds@2.5.2 - - @navikt/sif-common-utils@3.32.2 +- 38c8814: Pakkeoppdateringer +- Updated dependencies [38c8814] + - @navikt/sif-common-formik-ds@0.18.2 + - @navikt/appstatus-react-ds@2.5.2 + - @navikt/sif-common-utils@3.32.2 ## 7.2.1 ### Patch Changes -- Oppdatere pakker -- Updated dependencies - - @navikt/sif-common-formik-ds@0.18.1 - - @navikt/appstatus-react-ds@2.5.1 - - @navikt/sif-common-utils@3.32.1 +- Oppdatere pakker +- Updated dependencies + - @navikt/sif-common-formik-ds@0.18.1 + - @navikt/appstatus-react-ds@2.5.1 + - @navikt/sif-common-utils@3.32.1 ## 7.2.0 ### Minor Changes -- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. +- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. ### Patch Changes -- Updated dependencies [1361721f] - - @navikt/sif-common-formik-ds@0.18.0 - - @navikt/appstatus-react-ds@2.5.0 - - @navikt/sif-common-utils@3.32.0 +- Updated dependencies [1361721f] + - @navikt/sif-common-formik-ds@0.18.0 + - @navikt/appstatus-react-ds@2.5.0 + - @navikt/sif-common-utils@3.32.0 ## 7.1.0 ### Minor Changes -- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring +- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring ### Patch Changes -- Updated dependencies [cb189915] - - @navikt/appstatus-react-ds@2.4.0 - - @navikt/sif-common-formik-ds@0.17.0 - - @navikt/sif-common-utils@3.31.0 +- Updated dependencies [cb189915] + - @navikt/appstatus-react-ds@2.4.0 + - @navikt/sif-common-formik-ds@0.17.0 + - @navikt/sif-common-utils@3.31.0 ## 7.0.2 ### Patch Changes -- 0adf41c1: Pakkeoppdateringer -- Updated dependencies [0adf41c1] - - @navikt/sif-common-formik-ds@0.16.1 - - @navikt/appstatus-react-ds@2.3.1 - - @navikt/sif-common-utils@3.30.1 +- 0adf41c1: Pakkeoppdateringer +- Updated dependencies [0adf41c1] + - @navikt/sif-common-formik-ds@0.16.1 + - @navikt/appstatus-react-ds@2.3.1 + - @navikt/sif-common-utils@3.30.1 ## 7.0.1 ### Patch Changes -- 5aea4f1: Vise dialog når bruker kommer tilbake til velkommen-siden vha back i nettleser. +- 5aea4f1: Vise dialog når bruker kommer tilbake til velkommen-siden vha back i nettleser. ## 7.0.0 ### Minor Changes -- 93b8104e: Oppdatere packages +- 93b8104e: Oppdatere packages ### Patch Changes -- Updated dependencies [93b8104e] - - @navikt/sif-common-formik-ds@0.16.0 - - @navikt/appstatus-react-ds@2.3.0 - - @navikt/sif-common-utils@3.29.0 +- Updated dependencies [93b8104e] + - @navikt/sif-common-formik-ds@0.16.0 + - @navikt/appstatus-react-ds@2.3.0 + - @navikt/sif-common-utils@3.29.0 ## 6.2.1 ### Patch Changes -- 96e09117: Mindre UU-justeringer og fiks av manglende type="button" -- Updated dependencies [96e09117] -- Updated dependencies [96e09117] - - @navikt/sif-common-formik-ds@0.15.0 - - @navikt/sif-common-utils@3.28.0 +- 96e09117: Mindre UU-justeringer og fiks av manglende type="button" +- Updated dependencies [96e09117] +- Updated dependencies [96e09117] + - @navikt/sif-common-formik-ds@0.15.0 + - @navikt/sif-common-utils@3.28.0 ## 6.2.0 ### Minor Changes -- ca33226c: Oppdatere pakker +- ca33226c: Oppdatere pakker ### Patch Changes -- Updated dependencies [ca33226c] - - @navikt/sif-common-formik-ds@0.14.0 - - @navikt/appstatus-react-ds@2.2.0 - - @navikt/sif-common-utils@3.27.0 +- Updated dependencies [ca33226c] + - @navikt/sif-common-formik-ds@0.14.0 + - @navikt/appstatus-react-ds@2.2.0 + - @navikt/sif-common-utils@3.27.0 ## 6.1.2 ### Patch Changes -- 41aaa80: Slettet countryUtils +- 41aaa80: Slettet countryUtils ## 6.1.1 ### Patch Changes -- Updated dependencies [94686aa] - - @navikt/sif-common-formik-ds@0.13.0 +- Updated dependencies [94686aa] + - @navikt/sif-common-formik-ds@0.13.0 ## 6.1.0 ### Minor Changes -- 908bb770: Pakkeoppdateringer +- 908bb770: Pakkeoppdateringer ### Patch Changes -- Updated dependencies [908bb770] - - @navikt/sif-common-formik-ds@0.12.0 - - @navikt/appstatus-react-ds@2.1.0 - - @navikt/sif-common-utils@3.25.0 +- Updated dependencies [908bb770] + - @navikt/sif-common-formik-ds@0.12.0 + - @navikt/appstatus-react-ds@2.1.0 + - @navikt/sif-common-utils@3.25.0 ## 6.0.4 ### Patch Changes -- ecd4b4f: Pakkeoppdateringer -- f033a9b: Patch-oppdatering av ds pakker -- Updated dependencies [ecd4b4f] -- Updated dependencies [f033a9b] - - @navikt/sif-common-formik-ds@0.11.5 - - @navikt/appstatus-react-ds@2.0.3 +- ecd4b4f: Pakkeoppdateringer +- f033a9b: Patch-oppdatering av ds pakker +- Updated dependencies [ecd4b4f] +- Updated dependencies [f033a9b] + - @navikt/sif-common-formik-ds@0.11.5 + - @navikt/appstatus-react-ds@2.0.3 ## 6.0.3 ### Patch Changes -- 7637a0b: Oppdatere packages -- Updated dependencies [7637a0b] - - @navikt/sif-common-formik-ds@0.11.4 - - @navikt/appstatus-react-ds@2.0.2 - - @navikt/sif-common-utils@3.24.1 +- 7637a0b: Oppdatere packages +- Updated dependencies [7637a0b] + - @navikt/sif-common-formik-ds@0.11.4 + - @navikt/appstatus-react-ds@2.0.2 + - @navikt/sif-common-utils@3.24.1 ## 6.0.2 ### Patch Changes -- 80b338af: Legge til util for å sjekke badRequest error +- 80b338af: Legge til util for å sjekke badRequest error ## 6.0.1 ### Patch Changes -- 7c6db10: Pakkeoppdateringer -- Updated dependencies [7c6db10] - - @navikt/sif-common-formik-ds@0.11.2 - - @navikt/appstatus-react-ds@2.0.1 +- 7c6db10: Pakkeoppdateringer +- Updated dependencies [7c6db10] + - @navikt/sif-common-formik-ds@0.11.2 + - @navikt/appstatus-react-ds@2.0.1 ## 6.0.0 ### Patch Changes -- dde26c4: Oppdatere packageversjoner -- Updated dependencies [dde26c4] -- Updated dependencies [dde26c4] - - @navikt/appstatus-react-ds@2.0.0 - - @navikt/sif-common-formik-ds@0.11.1 - - @navikt/sif-common-utils@3.23.1 +- dde26c4: Oppdatere packageversjoner +- Updated dependencies [dde26c4] +- Updated dependencies [dde26c4] + - @navikt/appstatus-react-ds@2.0.0 + - @navikt/sif-common-formik-ds@0.11.1 + - @navikt/sif-common-utils@3.23.1 ## 5.7.0 ### Minor Changes -- e6c5ea70: Oppdatere packages, inkludert major på axios +- e6c5ea70: Oppdatere packages, inkludert major på axios ### Patch Changes -- Updated dependencies [e6c5ea70] - - @navikt/sif-common-formik-ds@0.11.0 - - @navikt/appstatus-react-ds@1.7.0 - - @navikt/sif-common-utils@3.23.0 +- Updated dependencies [e6c5ea70] + - @navikt/sif-common-formik-ds@0.11.0 + - @navikt/appstatus-react-ds@1.7.0 + - @navikt/sif-common-utils@3.23.0 ## 5.6.0 ### Minor Changes -- ac7641bf: getGitShaRequestHeader - header som sendes inn sammen med søknad - x-brukerdialog-git-sha +- ac7641bf: getGitShaRequestHeader - header som sendes inn sammen med søknad - x-brukerdialog-git-sha ### Patch Changes -- bfc208e7: Legge til GitSha ved innsending av søknader i alle apper +- bfc208e7: Legge til GitSha ved innsending av søknader i alle apper ## 5.5.1 ### Patch Changes -- 19748e7: Vise title dersom prop er satt i SifGuidePanel +- 19748e7: Vise title dersom prop er satt i SifGuidePanel ## 5.5.0 ### Minor Changes -- d0a2c73: Diverse pakkeoppdateringer, minor og patch +- d0a2c73: Diverse pakkeoppdateringer, minor og patch ### Patch Changes -- Updated dependencies [ef1a7bf] -- Updated dependencies [d0a2c73] - - @navikt/sif-common-utils@3.22.0 - - @navikt/sif-common-formik-ds@0.10.0 - - @navikt/appstatus-react-ds@1.6.0 +- Updated dependencies [ef1a7bf] +- Updated dependencies [d0a2c73] + - @navikt/sif-common-utils@3.22.0 + - @navikt/sif-common-formik-ds@0.10.0 + - @navikt/appstatus-react-ds@1.6.0 ## 5.4.0 ### Minor Changes -- 10f034bd: Oppdatere useEffectOnce til å bruke useRef. Tidligere versjon gjorde at hook ble kjørt initielt, og så én gang til. +- 10f034bd: Oppdatere useEffectOnce til å bruke useRef. Tidligere versjon gjorde at hook ble kjørt initielt, og så én gang til. ### Patch Changes -- Updated dependencies [4e110301] - - @navikt/sif-common-utils@3.21.0 +- Updated dependencies [4e110301] + - @navikt/sif-common-utils@3.21.0 ## 5.3.5 ### Patch Changes -- bfd9a33: Oppdatere pakker -- Updated dependencies [bfd9a33] - - @navikt/sif-common-formik-ds@0.9.6 - - @navikt/appstatus-react-ds@1.5.8 +- bfd9a33: Oppdatere pakker +- Updated dependencies [bfd9a33] + - @navikt/sif-common-formik-ds@0.9.6 + - @navikt/appstatus-react-ds@1.5.8 ## 5.3.4 ### Patch Changes -- b166e48: Legge på data-testid i FormBlock -- Updated dependencies [0c76e9d] -- Updated dependencies [b166e48] - - @navikt/sif-common-utils@3.19.0 +- b166e48: Legge på data-testid i FormBlock +- Updated dependencies [0c76e9d] +- Updated dependencies [b166e48] + - @navikt/sif-common-utils@3.19.0 ## 5.3.3 ### Patch Changes -- 4afefff: Oppdatere pakker -- Updated dependencies [4afefff] - - @navikt/sif-common-formik-ds@0.9.4 - - @navikt/appstatus-react-ds@1.5.7 - - @navikt/sif-common-utils@3.18.2 +- 4afefff: Oppdatere pakker +- Updated dependencies [4afefff] + - @navikt/sif-common-formik-ds@0.9.4 + - @navikt/appstatus-react-ds@1.5.7 + - @navikt/sif-common-utils@3.18.2 ## 5.3.2 ### Patch Changes -- af051b61: Diverse pakkeoppdateringer -- Updated dependencies [af051b61] - - @navikt/sif-common-formik-ds@0.9.3 - - @navikt/appstatus-react-ds@1.5.6 +- af051b61: Diverse pakkeoppdateringer +- Updated dependencies [af051b61] + - @navikt/sif-common-formik-ds@0.9.3 + - @navikt/appstatus-react-ds@1.5.6 ## 5.3.1 ### Patch Changes -- e1997dd: Pakkeoppdateringer -- Updated dependencies [e1997dd] - - @navikt/sif-common-formik-ds@0.9.2 - - @navikt/appstatus-react-ds@1.5.5 - - @navikt/sif-common-utils@3.18.1 +- e1997dd: Pakkeoppdateringer +- Updated dependencies [e1997dd] + - @navikt/sif-common-formik-ds@0.9.2 + - @navikt/appstatus-react-ds@1.5.5 + - @navikt/sif-common-utils@3.18.1 ## 5.3.0 ### Minor Changes -- 225b95e: DurationText komponent + oppdatert endringsdialog +- 225b95e: DurationText komponent + oppdatert endringsdialog ### Patch Changes -- dd0a865: I hovedsak utvikling av endringsdialog, men noen endringer på fellespakker, f.eks. desimaltid i sif-common-utils -- 5101688: Oppdaterte pakker -- 5101688: Oppdatere pakker -- Updated dependencies [225b95e] -- Updated dependencies [dd0a865] -- Updated dependencies [5101688] -- Updated dependencies [5101688] -- Updated dependencies [d99ac0a] - - @navikt/appstatus-react-ds@1.5.4 - - @navikt/sif-common-formik-ds@0.9.1 - - @navikt/sif-common-utils@3.18.0 +- dd0a865: I hovedsak utvikling av endringsdialog, men noen endringer på fellespakker, f.eks. desimaltid i sif-common-utils +- 5101688: Oppdaterte pakker +- 5101688: Oppdatere pakker +- Updated dependencies [225b95e] +- Updated dependencies [dd0a865] +- Updated dependencies [5101688] +- Updated dependencies [5101688] +- Updated dependencies [d99ac0a] + - @navikt/appstatus-react-ds@1.5.4 + - @navikt/sif-common-formik-ds@0.9.1 + - @navikt/sif-common-utils@3.18.0 ## 5.2.2 ### Patch Changes -- 1faa7ad: Oppdatering av velkommensider og nye felles komponenter +- 1faa7ad: Oppdatering av velkommensider og nye felles komponenter ## 5.2.1 ### Patch Changes -- c735b7f: Oppdatere pakker -- 369914d: Oppdatert pakke av designsystemet -- Updated dependencies [c735b7f] -- Updated dependencies [369914d] -- Updated dependencies [9afe1a5] -- Updated dependencies [9afe1a5] - - @navikt/appstatus-react-ds@1.5.3 - - @navikt/sif-common-formik-ds@0.9.0 - - @navikt/sif-common-utils@3.17.2 +- c735b7f: Oppdatere pakker +- 369914d: Oppdatert pakke av designsystemet +- Updated dependencies [c735b7f] +- Updated dependencies [369914d] +- Updated dependencies [9afe1a5] +- Updated dependencies [9afe1a5] + - @navikt/appstatus-react-ds@1.5.3 + - @navikt/sif-common-formik-ds@0.9.0 + - @navikt/sif-common-utils@3.17.2 ## 5.1.2 ### Patch Changes -- Utvide yesOrNoUtils + layout for FileErrorList +- Utvide yesOrNoUtils + layout for FileErrorList ## 5.1.1 ### Patch Changes -- 6e38566: Oppdate dependencies - minor og patch -- Updated dependencies [6e38566] - - @navikt/appstatus-react-ds@1.5.2 - - @navikt/sif-common-formik-ds@0.8.5 +- 6e38566: Oppdate dependencies - minor og patch +- Updated dependencies [6e38566] + - @navikt/appstatus-react-ds@1.5.2 + - @navikt/sif-common-formik-ds@0.8.5 ## 5.1.0 ### Minor Changes -- b0621a7: Legge til ny komponent - progress stepper +- b0621a7: Legge til ny komponent - progress stepper ### Patch Changes -- Updated dependencies [b0621a7] - - @navikt/sif-common-formik-ds@0.8.4 +- Updated dependencies [b0621a7] + - @navikt/sif-common-formik-ds@0.8.4 ## 5.0.1 ### Patch Changes -- 827d044: Diverse UU justeringer -- Updated dependencies [827d044] - - @navikt/appstatus-react-ds@1.5.1 - - @navikt/sif-common-formik-ds@0.8.1 +- 827d044: Diverse UU justeringer +- Updated dependencies [827d044] + - @navikt/appstatus-react-ds@1.5.1 + - @navikt/sif-common-formik-ds@0.8.1 ## 5.0.0 ### Minor Changes -- 509383d: Pakkeoppdateringer, inkl axios +- 509383d: Pakkeoppdateringer, inkl axios ### Patch Changes -- Updated dependencies [509383d] - - @navikt/appstatus-react-ds@1.5.0 - - @navikt/sif-common-formik-ds@0.8.0 +- Updated dependencies [509383d] + - @navikt/appstatus-react-ds@1.5.0 + - @navikt/sif-common-formik-ds@0.8.0 ## 4.4.3 ### Patch Changes -- 1542735: Bytte til ds-react ReadMore +- 1542735: Bytte til ds-react ReadMore ## 4.4.2 ### Patch Changes -- Updated dependencies [2cb7212] - - @navikt/sif-common-formik-ds@0.7.0 +- Updated dependencies [2cb7212] + - @navikt/sif-common-formik-ds@0.7.0 ## 4.4.1 ### Patch Changes -- 8533e79: Pakkeoppdateringer -- Updated dependencies [8533e79] - - @navikt/appstatus-react-ds@1.4.2 - - @navikt/sif-common-formik-ds@0.6.4 +- 8533e79: Pakkeoppdateringer +- Updated dependencies [8533e79] + - @navikt/appstatus-react-ds@1.4.2 + - @navikt/sif-common-formik-ds@0.6.4 ## 4.4.0 ### Minor Changes -- 03aeac4: Oppdatere pakker. Ink. major update av react-router-dom. +- 03aeac4: Oppdatere pakker. Ink. major update av react-router-dom. ### Patch Changes -- Updated dependencies [03aeac4] - - @navikt/appstatus-react-ds@1.4.1 - - @navikt/sif-common-formik-ds@0.6.3 +- Updated dependencies [03aeac4] + - @navikt/appstatus-react-ds@1.4.1 + - @navikt/sif-common-formik-ds@0.6.3 ## 4.3.1 ### Patch Changes -- 092103d: Legge til files i package.json slik at kun nødvendige filer publiseres. -- Updated dependencies [092103d] - - @navikt/sif-common-formik-ds@0.6.2 +- 092103d: Legge til files i package.json slik at kun nødvendige filer publiseres. +- Updated dependencies [092103d] + - @navikt/sif-common-formik-ds@0.6.2 ## 4.3.0 ### Minor Changes -- Updated dependencies [ec2e55b] - - @navikt/appstatus-react-ds@1.4.0 +- Updated dependencies [ec2e55b] + - @navikt/appstatus-react-ds@1.4.0 ## 4.2.1 ### Patch Changes -- 2c42521: Fjerne referanser til less filer -- Updated dependencies [2c42521] - - @navikt/sif-common-formik-ds@0.6.1 +- 2c42521: Fjerne referanser til less filer +- Updated dependencies [2c42521] + - @navikt/sif-common-formik-ds@0.6.1 ## 4.2.0 ### Minor Changes -- ba4b573: Lagt til funksjon til å komprimere bilder +- ba4b573: Lagt til funksjon til å komprimere bilder ## 4.1.1 ### Patch Changes -- b46c74a: defaultExport i apiUtils +- b46c74a: defaultExport i apiUtils ## 4.1.0 ### Patch Changes -- Updated dependencies [eb3c47c] - - @navikt/sif-common-formik-ds@0.6.0 +- Updated dependencies [eb3c47c] + - @navikt/sif-common-formik-ds@0.6.0 ## 4.0.0 ### Patch Changes -- Updated dependencies [dcfb798] - - @navikt/sif-common-formik-ds@0.5.0 +- Updated dependencies [dcfb798] + - @navikt/sif-common-formik-ds@0.5.0 ## 3.0.0 ### Minor Changes -- 9707071: Oppdatere til ds-datepicker-4.beta og til ds-1.0 pakker +- 9707071: Oppdatere til ds-datepicker-4.beta og til ds-1.0 pakker ### Patch Changes -- Updated dependencies [9707071] - - @navikt/appstatus-react-ds@1.3.0 - - @navikt/sif-common-formik-ds@0.4.0 +- Updated dependencies [9707071] + - @navikt/appstatus-react-ds@1.3.0 + - @navikt/sif-common-formik-ds@0.4.0 ## 2.0.0 ### Minor Changes -- dfd8398: Oppdatere til React 18 +- dfd8398: Oppdatere til React 18 ### Patch Changes -- Updated dependencies [dfd8398] - - @navikt/appstatus-react-ds@1.2.0 - - @navikt/sif-common-formik-ds@0.3.0 +- Updated dependencies [dfd8398] + - @navikt/appstatus-react-ds@1.2.0 + - @navikt/sif-common-formik-ds@0.3.0 ## 1.3.2 ### Patch Changes -- c63fb31: Oppdatere layout for attachment-list, lage story, justere velkommen pages +- c63fb31: Oppdatere layout for attachment-list, lage story, justere velkommen pages ## 1.3.1 ### Patch Changes -- 662119d: Fallback på landnavn ved ukjent locale og noen småjusteringer på layout. Kontrastfiks på feilmeldingsboks. -- Updated dependencies [662119d] - - @navikt/sif-common-formik-ds@0.2.2 +- 662119d: Fallback på landnavn ved ukjent locale og noen småjusteringer på layout. Kontrastfiks på feilmeldingsboks. +- Updated dependencies [662119d] + - @navikt/sif-common-formik-ds@0.2.2 ## 1.3.0 ### Minor Changes -- 863393c: Erstatte nav-frontend-moduler komponenter, starte på storybook i sif-common-core-ds +- 863393c: Erstatte nav-frontend-moduler komponenter, starte på storybook i sif-common-core-ds ### Patch Changes -- Updated dependencies [863393c] - - @navikt/appstatus-react-ds@1.1.3 - - @navikt/sif-common-formik-ds@0.2.1 +- Updated dependencies [863393c] + - @navikt/appstatus-react-ds@1.1.3 + - @navikt/sif-common-formik-ds@0.2.1 ## 1.2.0 ### Minor Changes -- 96a4526: Erstatte sif-common-core med sif-common-core-ds i sif-common-forms +- 96a4526: Erstatte sif-common-core med sif-common-core-ds i sif-common-forms ## 1.1.0 ### Minor Changes -- 9c61932: Utvide med komponenter fra sif-common-core -- 9c61932: Oppdatere omsorgsdager-deling-dialog til å bruke designsystemet +- 9c61932: Utvide med komponenter fra sif-common-core +- 9c61932: Oppdatere omsorgsdager-deling-dialog til å bruke designsystemet ## 1.0.0 ### Minor Changes -- c0695d1: Legge til pakker i fbm med å bruke sif-common-core-ds i sif-ettersending +- c0695d1: Legge til pakker i fbm med å bruke sif-common-core-ds i sif-ettersending ### Patch Changes -- Updated dependencies [c0695d1] - - @navikt/sif-common-formik-ds@0.2.0 +- Updated dependencies [c0695d1] + - @navikt/sif-common-formik-ds@0.2.0 diff --git a/packages/sif-common-core-ds/package.json b/packages/sif-common-core-ds/package.json index 8ea195465f..2496bb73be 100644 --- a/packages/sif-common-core-ds/package.json +++ b/packages/sif-common-core-ds/package.json @@ -3,7 +3,7 @@ "main": "lib/index.js", "name": "@navikt/sif-common-core-ds", "types": "lib/index.d.js", - "version": "9.8.10", + "version": "9.12.2", "private": true, "dependencies": { "@navikt/sif-common-utils": "workspace:*", @@ -15,61 +15,57 @@ "i18n-iso-countries": "7.7.0", "pretty-bytes": "6.1.1", "react-collapse": "5.1.1", - "tailwindcss": "3.3.5" + "tailwindcss": "3.3.6" }, "devDependencies": { - "@babel/core": "7.23.3", - "@babel/preset-env": "7.23.3", + "@babel/core": "7.23.5", + "@babel/preset-env": "7.23.5", "@babel/preset-react": "7.23.3", "@babel/preset-typescript": "7.23.3", - "@formatjs/intl-pluralrules": "5.2.9", "@navikt/appstatus-react-ds": "workspace:*", - "@navikt/ds-css": "5.10.1", + "@navikt/ds-css": "5.11.4", "@navikt/ds-icons": "3.4.3", - "@navikt/ds-react": "5.10.1", - "@navikt/ds-tailwind": "5.10.1", - "@navikt/fnrvalidator": "1.3.0", + "@navikt/ds-react": "5.11.4", + "@navikt/ds-tailwind": "5.11.4", + "@navikt/fnrvalidator": "1.3.3", "@navikt/sif-common-formik-ds": "workspace:*", "@originjs/vite-plugin-commonjs": "1.0.3", - "@storybook/addon-a11y": "7.5.3", - "@storybook/addon-actions": "7.5.3", - "@storybook/addon-essentials": "7.5.3", - "@storybook/addon-interactions": "7.5.3", - "@storybook/addon-links": "7.5.3", - "@storybook/builder-vite": "7.5.3", - "@storybook/node-logger": "7.5.3", - "@storybook/preset-create-react-app": "7.5.3", - "@storybook/react": "7.5.3", - "@storybook/react-vite": "7.5.3", + "@storybook/addon-a11y": "7.6.4", + "@storybook/addon-actions": "7.6.4", + "@storybook/addon-essentials": "7.6.4", + "@storybook/addon-interactions": "7.6.4", + "@storybook/addon-links": "7.6.4", + "@storybook/builder-vite": "7.6.4", + "@storybook/node-logger": "7.6.4", + "@storybook/preset-create-react-app": "7.6.4", + "@storybook/react": "7.6.4", + "@storybook/react-vite": "7.6.4", "@storybook/testing-library": "0.2.2", - "@types/jest": "29.5.8", - "@types/node": "20.9.0", - "@types/react": "18.2.37", + "@types/node": "20.10.4", + "@types/react": "18.2.43", "@types/react-collapse": "5.0.4", - "@types/react-dom": "18.2.15", - "@vitejs/plugin-react": "4.1.1", - "axios": "1.6.1", + "@types/react-dom": "18.2.17", + "@vitejs/plugin-react": "4.2.1", + "axios": "1.6.2", "config": "workspace:*", "copyfiles": "2.4.1", "formik": "2.4.5", "mini-css-extract-plugin": "2.7.6", "npm-run-all": "4.1.5", - "postcss": "8.4.31", + "postcss": "8.4.32", "prop-types": "15.8.1", "react": "18.2.0", "react-day-picker": "8.9.1", "react-dom": "18.2.0", - "react-intl": "6.5.4", + "react-intl": "6.5.5", "react-responsive": "9.0.2", - "react-scripts": "5.0.1", "react-syntax-highlighter": "15.5.0", "rimraf": "5.0.5", - "sass": "1.69.5", - "sass-loader": "13.3.2", - "storybook": "7.5.3", + "storybook": "7.6.4", "uuid": "9.0.1", - "vite": "4.5.0", - "vite-plugin-checker": "0.6.2" + "vite": "5.0.7", + "vite-plugin-checker": "0.6.2", + "vitest": "1.0.4" }, "overrides": { "react-refresh": "0.11.0" @@ -88,8 +84,7 @@ "build-package": "npm-run-all compile-lib-script copy-files", "build-storybook": "storybook build -s public", "clean": "rm -rf node_modules lib", - "dev": "yarn watch-styles & yarn compile-lib-script-watch", - "watch-styles": "npm-watch copy-files ", + "dev-lib": "yarn compile-lib-script-watch", "clean-lib": "rimraf ./lib", "compile-lib-script": "tsc -p tsconfig.json", "compile-lib-script-watch": "tsc -p tsconfig.json --watch ", @@ -100,14 +95,6 @@ "copy-json-files-to-lib": "copyfiles -u 1 \"src/**/*.json\" lib", "lint": "eslint ./src --ext ts,tsx", "storybook": "storybook dev -p 6006 -s public", - "test": "react-scripts test --watchAll=false --env=jsdom", - "test-watch": "react-scripts test", - "test-coverage": "react-scripts test a --coverage --watchAll=false", - "test-coverage-watch": "react-scripts test a --coverage --watchAll=true" - }, - "jest": { - "transformIgnorePatterns": [ - "node_modules/node_modules/(?!axios)" - ] + "test": "vitest" } } diff --git a/packages/sif-common-core-ds/src/components/file-uploader/FileUploader.tsx b/packages/sif-common-core-ds/src/components/file-uploader/FileUploader.tsx deleted file mode 100644 index 55abb2434e..0000000000 --- a/packages/sif-common-core-ds/src/components/file-uploader/FileUploader.tsx +++ /dev/null @@ -1,131 +0,0 @@ -import { FormikFileInput, TypedFormInputValidationProps } from '@navikt/sif-common-formik-ds'; -import { ValidationError } from '@navikt/sif-common-formik-ds'; -import { AxiosError, AxiosResponse } from 'axios'; -import { ArrayHelpers } from 'formik'; -import { Attachment, PersistedFile } from '../../types/Attachment'; -import { isForbidden, isUnauthorized } from '../../utils/apiUtils'; -import { - attachmentShouldBeProcessed, - attachmentShouldBeUploaded, - attachmentUploadHasFailed, - getPendingAttachmentFromFile, - isFileObject, - VALID_EXTENSIONS, -} from '../../utils/attachmentUtils'; - -export type FieldArrayReplaceFn = (index: number, value: any) => void; -export type FieldArrayPushFn = (obj: any) => void; -export type FieldArrayRemoveFn = (index: number) => undefined; - -interface FormikFileUploader extends TypedFormInputValidationProps { - name: string; - buttonLabel: string; - value?: Attachment[]; - uploadFile: (file: File) => Promise>; - onFileInputClick?: () => void; - onApiError: (error: AxiosError) => void; - onErrorUploadingAttachments: (files: File[]) => void; - onUnauthorizedOrForbiddenUpload: () => void; -} - -const FileUploader = ({ - name, - buttonLabel, - value = [], - uploadFile, - onFileInputClick, - onApiError, - onErrorUploadingAttachments, - onUnauthorizedOrForbiddenUpload, -}: FormikFileUploader) => { - function findAttachmentsToProcess(attachments: Attachment[]): Attachment[] { - return attachments.filter(attachmentShouldBeProcessed); - } - - function findAttachmentsToUpload(attachments: Attachment[]): Attachment[] { - return attachments.filter(attachmentShouldBeUploaded); - } - - function updateAttachmentListElement( - attachments: Attachment[], - attachment: Attachment, - replaceFn: FieldArrayReplaceFn, - ) { - replaceFn(attachments.indexOf(attachment), attachment); - } - - function setAttachmentPendingToFalse(attachment: Attachment) { - attachment.pending = false; - return attachment; - } - - function addPendingAttachmentToFieldArray(file: File, pushFn: FieldArrayPushFn) { - const attachment = getPendingAttachmentFromFile(file); - pushFn(attachment); - return attachment; - } - function updateFailedAttachments( - allAttachments: Attachment[], - failedAttachments: Attachment[], - replaceFn: FieldArrayReplaceFn, - ) { - failedAttachments.forEach((attachment) => { - attachment = setAttachmentPendingToFalse(attachment); - updateAttachmentListElement(allAttachments, attachment, replaceFn); - }); - const failedFiles: File[] = failedAttachments - .map(({ file }) => file) - .filter((f: File | PersistedFile) => isFileObject(f)) as File[]; - - onErrorUploadingAttachments(failedFiles); - } - - async function uploadAttachment(attachment: Attachment) { - const { file } = attachment; - if (isFileObject(file)) { - try { - const response = await uploadFile(file); - attachment = setAttachmentPendingToFalse(attachment); - attachment.url = response.headers.location; - attachment.uploaded = true; - } catch (error: any) { - if (isForbidden(error) || isUnauthorized(error)) { - onUnauthorizedOrForbiddenUpload(); - } else { - onApiError(error); - } - setAttachmentPendingToFalse(attachment); - } - } - } - - async function uploadAttachments(allAttachments: Attachment[], replaceFn: FieldArrayReplaceFn) { - const attachmentsToProcess = findAttachmentsToProcess(allAttachments); - const attachmentsToUpload = findAttachmentsToUpload(attachmentsToProcess); - const attachmentsNotToUpload = attachmentsToProcess.filter((el) => !attachmentsToUpload.includes(el)); - - for (const attachment of attachmentsToUpload) { - await uploadAttachment(attachment); - updateAttachmentListElement(allAttachments, attachment, replaceFn); - } - - const failedAttachments = [...attachmentsNotToUpload, ...attachmentsToUpload.filter(attachmentUploadHasFailed)]; - updateFailedAttachments(allAttachments, failedAttachments, replaceFn); - } - - return ( - { - const selectedFiles: Attachment[] = files.map((file) => addPendingAttachmentToFieldArray(file, push)); - await uploadAttachments([...value, ...selectedFiles], replace); - }} - onClick={onFileInputClick} - /> - ); -}; - -export default FileUploader; diff --git a/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/components/formik-file-uploader/FormikFileUploader.tsx b/packages/sif-common-core-ds/src/components/formik-file-uploader/FormikFileUploader.tsx similarity index 78% rename from apps/pleiepenger-i-livets-sluttfase-soknad/src/app/components/formik-file-uploader/FormikFileUploader.tsx rename to packages/sif-common-core-ds/src/components/formik-file-uploader/FormikFileUploader.tsx index fb053de581..687d87492d 100644 --- a/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/components/formik-file-uploader/FormikFileUploader.tsx +++ b/packages/sif-common-core-ds/src/components/formik-file-uploader/FormikFileUploader.tsx @@ -1,20 +1,20 @@ -import { Attachment } from '@navikt/sif-common-core-ds/lib/types/Attachment'; import { FileDropAcceptImagesAndPdf, TypedFormInputValidationProps, ValidationError, } from '@navikt/sif-common-formik-ds/lib'; +import { AxiosResponse } from 'axios'; +import { useFormikFileUploader } from '../../hooks/useFormikFileUploader'; +import { Attachment } from '../../types/Attachment'; import FormikFileDropInput from '@navikt/sif-common-formik-ds/lib/components/formik-file-drop-input/FormikFileDropInput'; -import api, { ApiEndpoint } from '../../api/api'; -import { getAttachmentURLFrontend } from '../../utils/attachmentUtilsAuthToken'; -import { useFormikFileUploader } from './useFormikFileUploader'; interface Props extends TypedFormInputValidationProps { attachments: Attachment[]; name: string; legend?: string; buttonLabel: string; - apiEndpoint: ApiEndpoint; + getAttachmentURLFrontend: (url: string) => string; + uploadFile: (file: File) => Promise>; onFilesUploaded?: (antall: number, antallFeilet: number) => void; onFileInputClick?: () => void; onErrorUploadingAttachments: (files: File[]) => void; @@ -25,18 +25,18 @@ function FormikFileUploader({ attachments, name, legend, - apiEndpoint, + getAttachmentURLFrontend, + uploadFile, onFileInputClick, onFilesUploaded, onErrorUploadingAttachments, onUnauthorizedOrForbiddenUpload, - ...otherProps }: Props) { const { onFilesSelect } = useFormikFileUploader({ value: attachments, getAttachmentURLFrontend, - uploadFile: (file: File) => api.uploadFile(apiEndpoint, file), + uploadFile, onUnauthorizedOrForbiddenUpload, onErrorUploadingAttachments, onFilesUploaded, diff --git a/packages/sif-common-core-ds/src/components/progress-stepper/ProgressStepper.tsx b/packages/sif-common-core-ds/src/components/progress-stepper/ProgressStepper.tsx index 816d84b4db..b2f8ee103e 100644 --- a/packages/sif-common-core-ds/src/components/progress-stepper/ProgressStepper.tsx +++ b/packages/sif-common-core-ds/src/components/progress-stepper/ProgressStepper.tsx @@ -149,6 +149,7 @@ const ProgressStepper: React.FunctionComponent = ({ onStepChange={onStepSelect ? handleStepChange : undefined}> {steps.map((s) => ( diff --git a/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/components/formik-file-uploader/useFormikFileUploader.ts b/packages/sif-common-core-ds/src/hooks/useFormikFileUploader.ts similarity index 89% rename from apps/pleiepenger-i-livets-sluttfase-soknad/src/app/components/formik-file-uploader/useFormikFileUploader.ts rename to packages/sif-common-core-ds/src/hooks/useFormikFileUploader.ts index 387b81d03f..e92a6e7625 100644 --- a/apps/pleiepenger-i-livets-sluttfase-soknad/src/app/components/formik-file-uploader/useFormikFileUploader.ts +++ b/packages/sif-common-core-ds/src/hooks/useFormikFileUploader.ts @@ -1,5 +1,8 @@ import { FileRejection } from 'react-dropzone'; -import { isForbidden, isUnauthorized } from '@navikt/sif-common-core-ds/lib/utils/apiUtils'; +import { AxiosResponse } from 'axios'; +import { ArrayHelpers } from 'formik'; +import { Attachment, PersistedFile } from '../types'; +import { isForbidden, isUnauthorized } from '../utils/apiUtils'; import { attachmentShouldBeProcessed, attachmentShouldBeUploaded, @@ -8,24 +11,7 @@ import { getPendingAttachmentFromFile, isFileObject, mapFileToPersistedFile, -} from '@navikt/sif-common-core-ds/lib/utils/attachmentUtils'; -import { AxiosResponse } from 'axios'; -import { ArrayHelpers } from 'formik'; - -export interface PersistedFile { - isPersistedFile: boolean; - name: string; - lastModified: number; - size: number; - type: string; -} - -export interface Attachment { - file: File | PersistedFile; - pending: boolean; - uploaded: boolean; - url?: string; -} +} from '../utils/attachmentUtils'; export type FieldArrayReplaceFn = (index: number, value: any) => void; export type FieldArrayPushFn = (obj: any) => void; @@ -37,7 +23,7 @@ export const useFormikFileUploader = ({ onFilesUploaded, onErrorUploadingAttachments, onUnauthorizedOrForbiddenUpload, - getAttachmentURLFrontend: modifyAttachmentUrl, + getAttachmentURLFrontend, }: { value: Attachment[]; uploadFile: (file: File) => Promise>; @@ -52,7 +38,7 @@ export const useFormikFileUploader = ({ try { const response = await uploadFile(file); attachment = setAttachmentPendingToFalse(attachment); - attachment.url = modifyAttachmentUrl(response.headers.location); + attachment.url = getAttachmentURLFrontend(response.headers.location); attachment.uploaded = true; } catch (error) { if (isForbidden(error) || isUnauthorized(error)) { diff --git a/packages/sif-common-core-ds/vitest.config.ts b/packages/sif-common-core-ds/vitest.config.ts new file mode 100644 index 0000000000..ec336f5985 --- /dev/null +++ b/packages/sif-common-core-ds/vitest.config.ts @@ -0,0 +1,13 @@ +/// +/// + +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + exclude: ['./e2e/**/*', './build/**/*', './dist/**/*', '**/*.spec.tsx'], + globals: true, + environment: 'jsdom', + css: false, + }, +}); diff --git a/packages/sif-common-formik-ds/CHANGELOG.md b/packages/sif-common-formik-ds/CHANGELOG.md index 3e9902f35f..8630c55fbf 100644 --- a/packages/sif-common-formik-ds/CHANGELOG.md +++ b/packages/sif-common-formik-ds/CHANGELOG.md @@ -1,499 +1,562 @@ # @navikt/sif-common-formik-ds +## 1.6.2 + +### Patch Changes + +- Patch oppdateringer + +## 1.6.1 + +### Patch Changes + +- e7bf8d1: Patch oppdateringer av pakker + +## 1.6.0 + +### Minor Changes + +- 573c55d: Diverse oppdateringer i forbindelse med uu-gjennomgang. + +## 1.5.3 + +### Patch Changes + +- 406b044: Patch pakkeoppdateringer + +## 1.5.2 + +### Patch Changes + +- 6084e23: Diverse mindre pakkeoppdateringer - versjonstrigger + +## 1.5.1 + +### Patch Changes + +- 295d3ad: Diverse mindre pakkeoppdateringer - versjonstrigger + +## 1.5.0 + +### Minor Changes + +- 53b47be: Nav Dekoratøren 2 i alle apper + Vite 5 + patch og noen minor + Beholder react-router-dom 6.19.0 pga navigasjon knekker i noen apper + +## 1.4.0 + +### Minor Changes + +- Oppdaterte pakker. Minor og patch + +## 1.3.0 + +### Minor Changes + +- d31f28ec: Minor og patch oppdateringer på ds, react-router-dom, vite, msw + +## 1.2.3 + +### Patch Changes + +- 6d3b3cbe: Minor og patch oppdateringer + nextjs major -> 14 + ## 1.2.2 ### Patch Changes -- 09ae5814: Patch-oppdateringer +- 09ae5814: Patch-oppdateringer ## 1.2.1 ### Patch Changes -- b4d45cf9: Diverse mindre pakkeoppdateringer +- b4d45cf9: Diverse mindre pakkeoppdateringer ## 1.2.0 ### Minor Changes -- e815a9a8: Endre rolle til button for FileDropInput div. +- e815a9a8: Endre rolle til button for FileDropInput div. ## 1.1.6 ### Patch Changes -- afe04538: Fjerne default verdi for disableWeekends i FormikDatepicker. Var satt til true, blir nå undefined. +- afe04538: Fjerne default verdi for disableWeekends i FormikDatepicker. Var satt til true, blir nå undefined. ## 1.1.5 ### Patch Changes -- 1d7c508f: Feilfiks når maks og min dato er på samme dag. Da ble undefined returnert, noe som igjen førte til at dropdownCaption ikke virket som forventet. Nå returneres alltid en min eller maks dato dersom dette er satt. +- 1d7c508f: Feilfiks når maks og min dato er på samme dag. Da ble undefined returnert, noe som igjen førte til at dropdownCaption ikke virket som forventet. Nå returneres alltid en min eller maks dato dersom dette er satt. ## 1.1.4 ### Patch Changes -- 5c44f78b: Legge til manglende default valideringstekst når tekst har ugyldig format -- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 +- 5c44f78b: Legge til manglende default valideringstekst når tekst har ugyldig format +- cb7e6653: Oppdatere ds pakker etter at versjon 5.9.1 hadde feil. Fikset i v. 5.9.2 ## 1.1.3 ### Patch Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ## 1.1.2 ### Patch Changes -- Pakkeoppdatering som fikser datepicker + modal bug +- Pakkeoppdatering som fikser datepicker + modal bug ## 1.1.1 ### Patch Changes -- 71381778: Patch pakkeoppdateringer +- 71381778: Patch pakkeoppdateringer ## 1.1.0 ### Minor Changes -- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds +- 60eb7ee9: Pakkeoppdateringer. Endret import av DatePickerProps i sif-common-formik-ds ## 1.0.5 ### Patch Changes -- 2a1e2526: Pakkeoppdateringer +- 2a1e2526: Pakkeoppdateringer ## 1.0.4 ### Patch Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ## 1.0.3 ### Patch Changes -- 81e7e155: Bruke BodyLong i alle SifGuidePanel +- 81e7e155: Bruke BodyLong i alle SifGuidePanel ## 1.0.2 ### Patch Changes -- c129755f: Bugfix - dropDownCaption prop ble ikke sendt videre. +- c129755f: Bugfix - dropDownCaption prop ble ikke sendt videre. ## 1.0.1 ### Patch Changes -- 92fbd8f8: Legge til manglende id-prop i Fieldset, rendre alternativt for disabled TimeInput, ny funksjon for å parse number til inputValue i numberInput +- 92fbd8f8: Legge til manglende id-prop i Fieldset, rendre alternativt for disabled TimeInput, ny funksjon for å parse number til inputValue i numberInput ## 1.0.0 ### Major Changes -- e2967240: Erstatte ds-datepicker med DatePicker fra Aksel. Medfører endringer i props som kan sendes til FormikDatePicker of FormikDateRangePicker +- e2967240: Erstatte ds-datepicker med DatePicker fra Aksel. Medfører endringer i props som kan sendes til FormikDatePicker of FormikDateRangePicker ### Minor Changes -- fd07933f: Ersattet ds-datepicker med DatePicker fra Aksel +- fd07933f: Ersattet ds-datepicker med DatePicker fra Aksel ## 0.6.1 ### Patch Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ## 0.6.0 ### Minor Changes -- 61eee34c: Bytte til å bruke react-dropzone komponet for filopplasting. Enkel porting av eksisterende komponent til ny. +- 61eee34c: Bytte til å bruke react-dropzone komponet for filopplasting. Enkel porting av eksisterende komponent til ny. ## 0.5.0 ### Minor Changes -- 96810cd6: Fjerne checked prop fra checkbox i checkboxgroup - Legge til showSubmitButton prop i TypedFormikForm -- 96810cd6: Pakkeoppdateringer +- 96810cd6: Fjerne checked prop fra checkbox i checkboxgroup + Legge til showSubmitButton prop i TypedFormikForm +- 96810cd6: Pakkeoppdateringer ## 0.4.0 ### Minor Changes -- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer +- c976be57: Oppdatere til Aksel 5.1.0 + andre mindre oppdateringer ## 0.3.0 ### Minor Changes -- 41d0a03c: Oppdatere til versjon 5 av designsystemet aksel. Breaking change på grunn av props som er endret på komponenter som bruker modal dialog. +- 41d0a03c: Oppdatere til versjon 5 av designsystemet aksel. Breaking change på grunn av props som er endret på komponenter som bruker modal dialog. - # Props som er fjernet + # Props som er fjernet - - shouldCloseOnOverlayClick. Denne finnes ikke lenger i Aksel Modal. Dette gjelder: - -- packages/sif-common-formik-ds/src/components/formik-modal-form/FormikModalFormAndInfo.tsx - -- packages/sif-common-formik-ds/src/components/formik-modal-form/FormikModalFormAndList.tsx + - shouldCloseOnOverlayClick. Denne finnes ikke lenger i Aksel Modal. Dette gjelder: + -- packages/sif-common-formik-ds/src/components/formik-modal-form/FormikModalFormAndInfo.tsx + -- packages/sif-common-formik-ds/src/components/formik-modal-form/FormikModalFormAndList.tsx ## 0.25.0 ### Minor Changes -- 6669d48c: Legge til ny komponent for filopplasting med drag and drop - FormikFileDropInput +- 6669d48c: Legge til ny komponent for filopplasting med drag and drop - FormikFileDropInput ## 0.24.0 ### Minor Changes -- Pakkeoppdateringer +- Pakkeoppdateringer ## 0.23.3 ### Patch Changes -- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react +- 0e25e34f: Patch fra designsystemet, minor react-day-picker + mindre patch på react ## 0.23.2 ### Patch Changes -- 7e9863c7: Oppdatert versjon av pakker for test og bygg +- 7e9863c7: Oppdatert versjon av pakker for test og bygg ## 0.23.1 ### Patch Changes -- cc50b642: Diverse mindre pakkeoppdateringer +- cc50b642: Diverse mindre pakkeoppdateringer ## 0.23.0 ### Minor Changes -- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene +- ea79f31c: Oppdatere pakker. Justere timout på cypress-tester. Utvide start-e2e-server på oms-alene ## 0.22.0 ### Minor Changes -- d3ae045: Oppdatere minor og patch +- d3ae045: Oppdatere minor og patch ## 0.21.1 ### Patch Changes -- ebebab7: Pakkeoppdateringer +- ebebab7: Pakkeoppdateringer ## 0.21.0 ### Minor Changes -- 5beb8c9: Pakkeoppdateringer +- 5beb8c9: Pakkeoppdateringer ## 0.20.3 ### Patch Changes -- 2da21be: Småfiks. Sette as=div på FormikRadioGroup description. Håndtere undefined i FormikTimeInput. +- 2da21be: Småfiks. Sette as=div på FormikRadioGroup description. Håndtere undefined i FormikTimeInput. ## 0.20.2 ### Patch Changes -- bd6fae3: Pakkeoppdateringer +- bd6fae3: Pakkeoppdateringer ## 0.20.1 ### Patch Changes -- 4d1cb8b: Pakkeoppdateringer +- 4d1cb8b: Pakkeoppdateringer ## 0.20.0 ### Minor Changes -- ae1fdbf7: Pakkeoppdateringer +- ae1fdbf7: Pakkeoppdateringer ## 0.19.0 ### Minor Changes -- 7d66a381: Oppdatere pakker, fjerne snyk +- 7d66a381: Oppdatere pakker, fjerne snyk ## 0.18.2 ### Patch Changes -- 38c8814: Pakkeoppdateringer +- 38c8814: Pakkeoppdateringer ## 0.18.1 ### Patch Changes -- Oppdatere pakker +- Oppdatere pakker ## 0.18.0 ### Minor Changes -- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. +- 1361721f: Diverse pakkeoppdateringer + fjerne tailwind pakke som ikke var i bruk. ## 0.17.0 ### Minor Changes -- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring +- cb189915: Oppdatert yarn, package.json, storybook + generell refactoring ## 0.16.1 ### Patch Changes -- 0adf41c1: Pakkeoppdateringer +- 0adf41c1: Pakkeoppdateringer ## 0.16.0 ### Minor Changes -- 93b8104e: Oppdatere packages +- 93b8104e: Oppdatere packages ## 0.15.0 ### Minor Changes -- 96e09117: Legge til mulighet for confirmDelete i ModalFormAndList. Justere bredde på dataRangePicker. Justere spacing på piler i TypedFormikForm knapper +- 96e09117: Legge til mulighet for confirmDelete i ModalFormAndList. Justere bredde på dataRangePicker. Justere spacing på piler i TypedFormikForm knapper ## 0.14.1 ### Patch Changes -- f9dceaa: Bytte ut require statement med import +- f9dceaa: Bytte ut require statement med import ## 0.14.0 ### Minor Changes -- ca33226c: Oppdatere pakker +- ca33226c: Oppdatere pakker ## 0.13.0 ### Minor Changes -- 94686aa: La til countryIsMemberOfEøsOrEfta funksjon, fikset land liste i filteredListEØSCountries +- 94686aa: La til countryIsMemberOfEøsOrEfta funksjon, fikset land liste i filteredListEØSCountries ## 0.12.1 ### Patch Changes -- c833cf6: Kosovo landkode fiks +- c833cf6: Kosovo landkode fiks ## 0.12.0 ### Minor Changes -- 908bb770: Pakkeoppdateringer +- 908bb770: Pakkeoppdateringer ## 0.11.5 ### Patch Changes -- ecd4b4f: Pakkeoppdateringer -- f033a9b: Patch-oppdatering av ds pakker +- ecd4b4f: Pakkeoppdateringer +- f033a9b: Patch-oppdatering av ds pakker ## 0.11.4 ### Patch Changes -- 7637a0b: Oppdatere packages +- 7637a0b: Oppdatere packages ## 0.11.3 ### Patch Changes -- 9f463cd: La til afterOnChange til FormikRadioGroup +- 9f463cd: La til afterOnChange til FormikRadioGroup ## 0.11.2 ### Patch Changes -- 7c6db10: Pakkeoppdateringer +- 7c6db10: Pakkeoppdateringer ## 0.11.1 ### Patch Changes -- dde26c4: Oppdatere packageversjoner +- dde26c4: Oppdatere packageversjoner ## 0.11.0 ### Minor Changes -- e6c5ea70: Oppdatere packages, inkludert major på axios +- e6c5ea70: Oppdatere packages, inkludert major på axios ## 0.10.0 ### Minor Changes -- d0a2c73: Diverse pakkeoppdateringer, minor og patch +- d0a2c73: Diverse pakkeoppdateringer, minor og patch ## 0.9.6 ### Patch Changes -- bfd9a33: Oppdatere pakker +- bfd9a33: Oppdatere pakker ## 0.9.5 ### Patch Changes -- c681e36: Fjerne setTimeout i onSubmit - den forhindret å bruke clock() i cypress-tester. +- c681e36: Fjerne setTimeout i onSubmit - den forhindret å bruke clock() i cypress-tester. ## 0.9.4 ### Patch Changes -- 4afefff: Oppdatere pakker +- 4afefff: Oppdatere pakker ## 0.9.3 ### Patch Changes -- af051b61: Diverse pakkeoppdateringer +- af051b61: Diverse pakkeoppdateringer ## 0.9.2 ### Patch Changes -- e1997dd: Pakkeoppdateringer +- e1997dd: Pakkeoppdateringer ## 0.9.1 ### Patch Changes -- 225b95e: DurationText komponent + oppdatert endringsdialog -- dd0a865: I hovedsak utvikling av endringsdialog, men noen endringer på fellespakker, f.eks. desimaltid i sif-common-utils -- 5101688: Oppdaterte pakker -- 5101688: Oppdatere pakker -- d99ac0a: Pakkeoppdateringer - objec-hash, uuid +- 225b95e: DurationText komponent + oppdatert endringsdialog +- dd0a865: I hovedsak utvikling av endringsdialog, men noen endringer på fellespakker, f.eks. desimaltid i sif-common-utils +- 5101688: Oppdaterte pakker +- 5101688: Oppdatere pakker +- d99ac0a: Pakkeoppdateringer - objec-hash, uuid ## 0.9.0 ### Minor Changes -- 9afe1a5: Cypress test for utfylling av dialog +- 9afe1a5: Cypress test for utfylling av dialog ### Patch Changes -- c735b7f: Oppdatere pakker -- 369914d: Oppdatert pakke av designsystemet -- 9afe1a5: Utvide SoknadContextInterface med resetSendSøknadStatus +- c735b7f: Oppdatere pakker +- 369914d: Oppdatert pakke av designsystemet +- 9afe1a5: Utvide SoknadContextInterface med resetSendSøknadStatus ## 0.8.5 ### Patch Changes -- 6e38566: Oppdate dependencies - minor og patch +- 6e38566: Oppdate dependencies - minor og patch ## 0.8.4 ### Patch Changes -- b0621a7: Legge til ny komponent - progress stepper +- b0621a7: Legge til ny komponent - progress stepper ## 0.8.3 ### Patch Changes -- 1a6f39e: Bugfix - fjerne ugyldig label-attributt på Radio i RadioGroup +- 1a6f39e: Bugfix - fjerne ugyldig label-attributt på Radio i RadioGroup ## 0.8.2 ### Patch Changes -- f88b2f7: Sette fokus på oppsummering hver gang bruker submitter og det er skjemafeil +- f88b2f7: Sette fokus på oppsummering hver gang bruker submitter og det er skjemafeil ## 0.8.1 ### Patch Changes -- 827d044: Diverse UU justeringer +- 827d044: Diverse UU justeringer ## 0.8.0 ### Minor Changes -- 509383d: Pakkeoppdateringer, inkl axios +- 509383d: Pakkeoppdateringer, inkl axios ## 0.7.0 ### Minor Changes -- 2cb7212: Typing fix for TypedFormikWrapperProps +- 2cb7212: Typing fix for TypedFormikWrapperProps ## 0.6.4 ### Patch Changes -- 8533e79: Pakkeoppdateringer +- 8533e79: Pakkeoppdateringer ## 0.6.3 ### Patch Changes -- 03aeac4: Oppdatere pakker. Ink. major update av react-router-dom. +- 03aeac4: Oppdatere pakker. Ink. major update av react-router-dom. ## 0.6.2 ### Patch Changes -- 092103d: Legge til files i package.json slik at kun nødvendige filer publiseres. +- 092103d: Legge til files i package.json slik at kun nødvendige filer publiseres. ## 0.6.1 ### Patch Changes -- 2c42521: Fjerne referanser til less filer +- 2c42521: Fjerne referanser til less filer ## 0.6.0 ### Minor Changes -- eb3c47c: Utvide validering av TextField - sjekk på om felt inneholder unicode-tegn. +- eb3c47c: Utvide validering av TextField - sjekk på om felt inneholder unicode-tegn. ## 0.5.0 ### Minor Changes -- dcfb798: Bugfix av cleanup og submit av formik skjema etter oppdatering til react 18. +- dcfb798: Bugfix av cleanup og submit av formik skjema etter oppdatering til react 18. ## 0.4.0 ### Minor Changes -- 9707071: Oppdatere til ds-datepicker-4.beta og til ds-1.0 pakker +- 9707071: Oppdatere til ds-datepicker-4.beta og til ds-1.0 pakker ## 0.3.0 ### Minor Changes -- dfd8398: Oppdatere til React 18 +- dfd8398: Oppdatere til React 18 ## 0.2.2 ### Patch Changes -- 662119d: Fallback på landnavn ved ukjent locale og noen småjusteringer på layout. Kontrastfiks på feilmeldingsboks. +- 662119d: Fallback på landnavn ved ukjent locale og noen småjusteringer på layout. Kontrastfiks på feilmeldingsboks. ## 0.2.1 ### Patch Changes -- 863393c: Erstatte nav-frontend-moduler komponenter, starte på storybook i sif-common-core-ds +- 863393c: Erstatte nav-frontend-moduler komponenter, starte på storybook i sif-common-core-ds ## 0.2.0 ### Minor Changes -- c0695d1: Legge til pakker i fbm med å bruke sif-common-core-ds i sif-ettersending +- c0695d1: Legge til pakker i fbm med å bruke sif-common-core-ds i sif-ettersending diff --git a/packages/sif-common-formik-ds/package.json b/packages/sif-common-formik-ds/package.json index c0cd1f92aa..d5f20128e0 100644 --- a/packages/sif-common-formik-ds/package.json +++ b/packages/sif-common-formik-ds/package.json @@ -5,7 +5,7 @@ "main": "lib/index.js", "name": "@navikt/sif-common-formik-ds", "types": "lib/index.d.js", - "version": "1.2.2", + "version": "1.6.2", "bugs": { "url": "https://github.com/navikt/sif-common-formik-ds/issues" }, @@ -19,55 +19,54 @@ "uuid": "9.0.1" }, "devDependencies": { - "@babel/core": "7.23.3", - "@babel/preset-env": "7.23.3", + "@babel/core": "7.23.5", + "@babel/preset-env": "7.23.5", "@babel/preset-react": "7.23.3", "@babel/preset-typescript": "7.23.3", - "@formatjs/intl-pluralrules": "5.2.9", - "@navikt/ds-css": "5.10.1", - "@navikt/ds-react": "5.10.1", - "@navikt/fnrvalidator": "1.3.0", + "@navikt/ds-css": "5.11.4", + "@navikt/ds-react": "5.11.4", + "@navikt/fnrvalidator": "1.3.3", "@originjs/vite-plugin-commonjs": "1.0.3", - "@storybook/addon-a11y": "7.5.3", - "@storybook/addon-actions": "7.5.3", - "@storybook/addon-essentials": "7.5.3", - "@storybook/addon-interactions": "7.5.3", - "@storybook/addon-links": "7.5.3", - "@storybook/builder-vite": "7.5.3", + "@storybook/addon-a11y": "7.6.4", + "@storybook/addon-actions": "7.6.4", + "@storybook/addon-essentials": "7.6.4", + "@storybook/addon-interactions": "7.6.4", + "@storybook/addon-links": "7.6.4", + "@storybook/builder-vite": "7.6.4", "@storybook/jest": "0.2.3", - "@storybook/node-logger": "7.5.3", - "@storybook/preset-create-react-app": "7.5.3", - "@storybook/react": "7.5.3", - "@storybook/react-vite": "7.5.3", - "@storybook/test-runner": "0.14.0", + "@storybook/node-logger": "7.6.4", + "@storybook/preset-create-react-app": "7.6.4", + "@storybook/react": "7.6.4", + "@storybook/react-vite": "7.6.4", + "@storybook/test-runner": "0.16.0", "@storybook/testing-library": "0.2.2", - "@types/jest": "29.5.8", - "@types/node": "20.9.0", - "@types/react": "18.2.37", - "@types/react-dom": "18.2.15", + "@types/jest": "29.5.11", + "@types/node": "20.10.4", + "@types/react": "18.2.43", + "@types/react-dom": "18.2.17", "@types/uuid": "9.0.7", - "@vitejs/plugin-react": "4.1.1", + "@vitejs/plugin-react": "4.2.1", "config": "workspace:*", "copyfiles": "2.4.1", "date-fns": "2.30.0", "dayjs": "1.11.10", "formik": "2.4.5", + "jest": "29.7.0", "mini-css-extract-plugin": "2.7.6", "npm-run-all": "4.1.5", "prop-types": "15.8.1", "react": "18.2.0", "react-day-picker": "8.9.1", "react-dom": "18.2.0", - "react-intl": "6.5.4", + "react-intl": "6.5.5", "react-responsive": "9.0.2", - "react-scripts": "5.0.1", "react-syntax-highlighter": "15.5.0", "rimraf": "5.0.5", - "sass": "1.69.5", - "storybook": "7.5.3", + "storybook": "7.6.4", "storybook-formik": "2.4.2", - "vite": "4.5.0", - "vite-plugin-checker": "0.6.2" + "vite": "5.0.7", + "vite-plugin-checker": "0.6.2", + "vitest": "1.0.4" }, "directories": { "lib": "lib" @@ -101,15 +100,11 @@ "copy-css-files-to-lib": "copyfiles -u 1 \"src/**/*.css\" lib", "copy-files": "npm-run-all copy-css-files-to-lib copy-sass-files-to-lib", "copy-sass-files-to-lib": "copyfiles -u 1 \"src/**/*.scss\" lib", - "dev": "yarn watch-styles & yarn compile-lib-script-watch", + "dev-lib": "yarn compile-lib-script-watch", "lint": "eslint ./src --ext ts,tsx", "storybook": "storybook dev -p 6006 -s public", - "test": "react-scripts test --watchAll=false --env=jsdom", - "test-coverage": "react-scripts test a --coverage --watchAll=false", - "test-coverage-watch": "react-scripts test a --coverage --watchAll=true", - "test-storybook": "test-storybook", - "test-watch": "react-scripts test", - "watch-styles": "npm-watch copy-files" + "test": "vitest", + "test-storybook": "test-storybook" }, "watch": { "copy-files": { diff --git a/packages/sif-common-formik-ds/src/components/formik-date-range-picker/__tests__/dateRangePickerUtils.test.ts b/packages/sif-common-formik-ds/src/components/formik-date-range-picker/__tests__/dateRangePickerUtils.test.ts index 89079e3fcd..28704b8845 100644 --- a/packages/sif-common-formik-ds/src/components/formik-date-range-picker/__tests__/dateRangePickerUtils.test.ts +++ b/packages/sif-common-formik-ds/src/components/formik-date-range-picker/__tests__/dateRangePickerUtils.test.ts @@ -5,14 +5,14 @@ import { ISOStringToDate as ISOStringToDateOrUndefined, } from '../../formik-datepicker/datepickerUtils'; import { - getRangesStartingAfterDate, findClosestDateAfterDate, - getMaxDateForRangeStart, findClosestDateBeforeDate, - getRangesEndingBeforeDate, - getMinDateForRangeStart, - getMinDateForRangeEnd, getMaxDateForRangeEnd, + getMaxDateForRangeStart, + getMinDateForRangeEnd, + getMinDateForRangeStart, + getRangesEndingBeforeDate, + getRangesStartingAfterDate, } from '../dateRangePickerUtils'; const ISOStringToDate = (value: string): Date => ISOStringToDateOrUndefined(value)!; diff --git a/packages/sif-common-formik-ds/src/components/formik-datepicker/__tests__/datePickerUtils.test.ts b/packages/sif-common-formik-ds/src/components/formik-datepicker/__tests__/datePickerUtils.test.ts index 26a345914d..165c17f759 100644 --- a/packages/sif-common-formik-ds/src/components/formik-datepicker/__tests__/datePickerUtils.test.ts +++ b/packages/sif-common-formik-ds/src/components/formik-datepicker/__tests__/datePickerUtils.test.ts @@ -1,3 +1,4 @@ +import { describe } from 'vitest'; import datepickerUtils from '../datepickerUtils'; describe('datePickerUtils', () => { diff --git a/packages/sif-common-formik-ds/src/components/formik-modal-form/modal-form-and-list/ModalFormAndList.tsx b/packages/sif-common-formik-ds/src/components/formik-modal-form/modal-form-and-list/ModalFormAndList.tsx index 9e605b0ec9..b6b66352c8 100644 --- a/packages/sif-common-formik-ds/src/components/formik-modal-form/modal-form-and-list/ModalFormAndList.tsx +++ b/packages/sif-common-formik-ds/src/components/formik-modal-form/modal-form-and-list/ModalFormAndList.tsx @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/ban-types */ import { Alert, Button, Modal } from '@navikt/ds-react'; -import React, { useState } from 'react'; +import React, { useEffect, useRef, useState } from 'react'; import { v4 as uuid } from 'uuid'; import bemUtils from '../../../utils/bemUtils'; import ConfirmationDialog from '../../helpers/confirmation-dialog/ConfirmationDialog'; @@ -35,6 +35,7 @@ export interface ModalFormAndListProps; confirmDelete?: ModalFormAndListConfirmDeleteProps; dialogWidth?: FormikModalFormWidths; + onAfterModalClose?: () => void; } interface PrivateProps { onChange: (data: ItemType[]) => void; @@ -46,6 +47,12 @@ type Props = ModalFormAndListProps & PrivateProps const bem = bemUtils('formikModalForm').child('modal'); +interface ModalState { + isVisible: boolean; + selectedItem?: ItemType; + ensureFocusOn?: 'addButton' | 'fieldset' | undefined; +} + function ModalFormAndList({ items = [], listRenderer, @@ -57,20 +64,39 @@ function ModalFormAndList({ confirmDelete, onChange, }: Props) { - const [modalState, setModalState] = React.useState<{ isVisible: boolean; selectedItem?: ItemType }>({ + const [modalState, setModalState] = React.useState>({ isVisible: false, }); const [itemToDelete, setItemToDelete] = useState(); + const addButtonRef = useRef(null); + const fieldsetRef = useRef(null); + const handleOnSubmit = (values: ItemType) => { if (values.id) { onChange([...items.filter((item) => item.id !== values.id), values]); } else { onChange([...items, { id: uuid(), ...values }]); } - setModalState({ isVisible: false }); + setModalState({ + ...modalState, + isVisible: false, + ensureFocusOn: modalState.selectedItem === undefined ? 'addButton' : 'fieldset', + }); }; + useEffect(() => { + if (modalState.ensureFocusOn) { + /** Item lagt til - rerender ødelegger for automatisk fokus på knappen, så vi setter den manuelt */ + if (modalState.ensureFocusOn === 'addButton') { + addButtonRef.current?.focus(); + } else { + fieldsetRef.current?.focus(); + } + setModalState({ ...modalState, ensureFocusOn: undefined }); + } + }, [addButtonRef, modalState.ensureFocusOn, modalState]); + const handleEdit = (item: ItemType) => { setModalState({ isVisible: true, selectedItem: item }); }; @@ -91,7 +117,7 @@ function ModalFormAndList({ }; const resetModal = () => { - setModalState({ isVisible: false, selectedItem: undefined }); + setModalState({ isVisible: false }); }; return ( @@ -116,7 +142,12 @@ function ModalFormAndList({ ) : null} - + {items.length > 0 && (
    {listRenderer({ items, onEdit: handleEdit, onDelete: handleDelete })} @@ -130,8 +161,9 @@ function ModalFormAndList({ {(maxItems === undefined || maxItems > items.length) && (