gitextract__dhnvitw/ ├── .altinn-studio-root ├── .claude/ │ ├── settings.json │ └── skills/ │ ├── rebase-stacked-pr/ │ │ └── SKILL.md │ ├── tekstforfatter-docs/ │ │ └── SKILL.md │ └── text-content-review/ │ ├── MODUL A - Terminologirevisjon.md │ ├── MODUL B - Feilmeldinger.md │ ├── MODUL C - Knapper og handlingstekster.md │ ├── MODUL D - Ledetekster og hjelpetekster.md │ ├── MODUL E - Tiltaleform og register.md │ ├── MODUL F - Helhetlig innholdsrevisjon.md │ ├── SKILL.md │ └── Terminologi.md ├── .coderabbit.yaml ├── .codex/ │ ├── config.toml │ └── rules/ │ └── default.rules ├── .dockerignore ├── .editorconfig ├── .git-blame-ignore-revs ├── .gitattributes ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── analysis.yml │ │ ├── bug_report.yml │ │ ├── chore.yml │ │ ├── epic-security-requirements-verification.yml │ │ ├── epic.yml │ │ ├── feature_request.yml │ │ ├── question.yml │ │ ├── test_plan.md │ │ └── user_story.yml │ ├── actions/ │ │ ├── app-build-frontend/ │ │ │ └── action.yaml │ │ ├── app-run-local-env/ │ │ │ └── action.yaml │ │ ├── app-stop-local-env/ │ │ │ └── action.yaml │ │ ├── codeql-config/ │ │ │ └── action.yaml │ │ ├── setup-studioctl/ │ │ │ └── action.yaml │ │ └── yarn-install/ │ │ └── action.yaml │ ├── codeql/ │ │ ├── codeql-config-csharp.yml │ │ └── codeql-config-javascript.yml │ ├── containerscan/ │ │ └── allowedlist.yaml │ ├── labeler.yml │ ├── pull_request_template.md │ ├── release.yml │ ├── scripts/ │ │ ├── codeowners-generate.mjs │ │ ├── construct-environments.mjs │ │ ├── construct-environments.test.mjs │ │ └── release.sh │ └── workflows/ │ ├── app-backend-codeql.yml │ ├── app-backend-formatting.yml │ ├── app-backend-tests.yml │ ├── app-codelists-codeql.yml │ ├── app-codelists-tests.yml │ ├── app-fileanalyzers-codeql.yml │ ├── app-fileanalyzers-tests.yml │ ├── app-frontend-codeql.yml │ ├── app-frontend-compare-repos.yml │ ├── app-frontend-cypress.yml │ ├── app-frontend-k6-browser.yml │ ├── app-frontend-lighthouse-ci.yml │ ├── app-frontend-unit-tests.yml │ ├── app-template-build-on-pr.yaml │ ├── app-template-test.yml │ ├── approve-pr.yaml │ ├── cli-build-test.yaml │ ├── codeowners-validate.yaml │ ├── construct-environments-script-test.yaml │ ├── deploy-designer.yaml │ ├── deploy-gitea-runners.yaml │ ├── deploy-lhci-server.yaml │ ├── deploy-loadbalancer.yaml │ ├── deploy-repositories.yaml │ ├── deploy-runtime-apps-config.yaml │ ├── deploy-runtime-flux-config.yaml │ ├── deploy-runtime-gateway.yaml │ ├── deploy-runtime-grafana-manifests.yaml │ ├── deploy-runtime-kubernetes-wrapper.yaml │ ├── deploy-runtime-localtest.yaml │ ├── deploy-runtime-observability.yaml │ ├── deploy-runtime-operator.yaml │ ├── deploy-runtime-pdf3.yaml │ ├── deploy-runtime-syncroot.yaml │ ├── deploy-runtime-workflow-engine-app.yaml │ ├── deploy-studio-ai-agents.yaml │ ├── deploy-studio-mcp-server.yaml │ ├── deploy-studio-observability.yaml │ ├── deploy-studio-otel-operator.yaml │ ├── deploy-studio-syncroot.yaml │ ├── deployer-check.yaml │ ├── designer-backend-check-quartz-update.yml │ ├── designer-backend-codeql.yml │ ├── designer-backend-dotnet-format.yaml │ ├── designer-backend-dotnet-migrations-ensure-compatibility.yaml │ ├── designer-backend-dotnet-test.yaml │ ├── designer-backend-gitea-and-db-integration-tests.yaml │ ├── designer-frontend-codeql.yml │ ├── designer-frontend-playwright-staging.yml │ ├── designer-frontend-run-playwright-on-pr.yaml │ ├── designer-frontend-unit-tests.yml │ ├── designer-scan.yml │ ├── gitea-check-texts-file.yml │ ├── gitea-proxy-test.yml │ ├── gitea-runner-test.yml │ ├── lint-pr.yaml │ ├── mcp-build.yaml │ ├── mcp-test.yaml │ ├── playwright-resourceadm.yml │ ├── pr-labeler.yml │ ├── release-studioctl.yaml │ ├── release.yaml │ ├── releaser-build-test.yml │ ├── repositories-scan.yml │ ├── run-playwright-resourceadm-on-pr.yml │ ├── runtime-devenv-build.yml │ ├── runtime-gateway-tests.yaml │ ├── runtime-health-build.yml │ ├── runtime-kubernetes-wrapper-build.yaml │ ├── runtime-localtest-build.yml │ ├── runtime-operator-build.yml │ ├── runtime-pdf3-build.yml │ ├── runtime-workflow-engine-app-tests.yaml │ ├── runtime-workflow-engine-tests.yaml │ ├── storybook-to-github-pages.yaml │ ├── studio-components-deploy.yaml │ ├── studio-components-legacy-deploy.yaml │ ├── template-docker-push.yaml │ ├── template-flux-config-push.yaml │ ├── template-helm-push.yaml │ ├── template-runtime-construct-environments.yaml │ ├── template-studio-construct-environments.yaml │ └── validate-renovate.yaml ├── .gitignore ├── .husky/ │ └── pre-commit ├── .notes/ │ └── .gitkeep ├── .prettierignore ├── .vscode/ │ ├── extensions.json │ └── settings.json ├── .yarn/ │ ├── patches/ │ │ └── jsdom-npm-26.1.0-3857255f02.patch │ └── releases/ │ └── yarn-4.12.0.cjs ├── .yarnrc.yml ├── AGENTS.md ├── CLAUDE.md ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── README.md ├── charts/ │ ├── altinn-designer/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── templates/ │ │ │ ├── NOTES.txt │ │ │ ├── _helpers.tpl │ │ │ ├── db-migrations-job.yaml │ │ │ ├── deployment.yaml │ │ │ ├── ingress.yaml │ │ │ ├── keys-pvc.yaml │ │ │ ├── keys-storageclass.yaml │ │ │ ├── service.yaml │ │ │ ├── tests/ │ │ │ │ └── test-connection.yaml │ │ │ └── wwwRedirectIngress.yaml │ │ └── values.yaml │ ├── altinn-designer-config/ │ │ ├── Chart.yaml │ │ ├── templates/ │ │ │ └── helm-release.yaml │ │ └── values.yaml │ ├── altinn-loadbalancer/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── templates/ │ │ │ ├── NOTES.txt │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ ├── exporter.yaml │ │ │ ├── networkpolicy.yaml │ │ │ ├── podmonitor.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── altinn-loadbalancer-config/ │ │ ├── Chart.yaml │ │ ├── templates/ │ │ │ └── helm-release.yaml │ │ └── values.yaml │ ├── altinn-repositories/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── templates/ │ │ │ ├── NOTES.txt │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ ├── ingress.yaml │ │ │ ├── networkpolicy.yaml │ │ │ ├── proxy-deployment.yaml │ │ │ ├── proxy-service.yaml │ │ │ ├── service.yaml │ │ │ └── tests/ │ │ │ └── test-connection.yaml │ │ └── values.yaml │ ├── altinn-repositories-config/ │ │ ├── Chart.yaml │ │ ├── templates/ │ │ │ └── helm-release.yaml │ │ └── values.yaml │ ├── gitea-org-runner/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── templates/ │ │ │ ├── _helpers.tpl │ │ │ └── deployment.yaml │ │ └── values.yaml │ └── gitea-org-runner-config/ │ ├── Chart.yaml │ ├── templates/ │ │ └── helm-release.yaml │ └── values.yaml ├── codecov.yml ├── docs/ │ └── adr/ │ ├── 2024-09-25-signing-configuration.md │ ├── 2024-09-25-signing-interface.md │ ├── 2024-10-02-signing-transaction-handling.md │ ├── 2024-10-17-app-component-library.md │ ├── 2025-06-12-environment-specific-config.md │ ├── 2025-06-12-signing-notify-delegatee.md │ ├── 2025-09-04-studio-library-persistence.md │ ├── 2025-09-23-backend-data-initialization.md │ ├── 2025-10-08-studio-library-persistence-2.md │ ├── 2025-10-17-using-go.md │ ├── 2025-10-22-pdf-generation-architecture.md │ ├── 2025-11-25-frontend-performance-monitoring-strategy.md │ ├── 2026-01-07-monitoring-telemetry-collection-distribution.md │ ├── 2026-02-19-app-components-i18n.md │ ├── 2026-02-24-translation-key-validation.md │ └── yyyy-mm-dd-template.md ├── infra/ │ ├── observability/ │ │ ├── base/ │ │ │ ├── clusterrole.yaml │ │ │ ├── clusterrolebinding.yaml │ │ │ ├── gateway-headless-svc.yaml │ │ │ ├── gateway.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── network-policy.yaml │ │ │ ├── router-svc.yaml │ │ │ ├── router.yaml │ │ │ └── serviceaccount.yaml │ │ ├── build.sh │ │ ├── runtime/ │ │ │ ├── env/ │ │ │ │ ├── at22/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── at23/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── at24/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── prod/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── tt02/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ └── yt01/ │ │ │ │ └── kustomization.yaml │ │ │ ├── kustomization.yaml │ │ │ └── overlay/ │ │ │ ├── kustomization.yaml │ │ │ └── patches/ │ │ │ ├── gateway-config.yaml │ │ │ ├── gateway-secrets.yaml │ │ │ ├── linkerd-injection.yaml │ │ │ ├── network-policy-labels.yaml │ │ │ └── router-config.yaml │ │ └── studio/ │ │ ├── env/ │ │ │ ├── dev/ │ │ │ │ └── kustomization.yaml │ │ │ ├── prod/ │ │ │ │ └── kustomization.yaml │ │ │ └── staging/ │ │ │ └── kustomization.yaml │ │ ├── kustomization.yaml │ │ └── overlay/ │ │ ├── kustomization.yaml │ │ └── patches/ │ │ ├── gateway-config.yaml │ │ ├── gateway-secrets.yaml │ │ └── router-config.yaml │ ├── runtime/ │ │ ├── apps-config/ │ │ │ ├── at22/ │ │ │ │ └── kustomization.yaml │ │ │ ├── at23/ │ │ │ │ └── kustomization.yaml │ │ │ ├── at24/ │ │ │ │ └── kustomization.yaml │ │ │ ├── base/ │ │ │ │ ├── apps-runtime-common-env.yaml │ │ │ │ ├── apps-runtime-common.yaml │ │ │ │ └── kustomization.yaml │ │ │ ├── prod/ │ │ │ │ └── kustomization.yaml │ │ │ ├── tt02/ │ │ │ │ └── kustomization.yaml │ │ │ └── yt01/ │ │ │ └── kustomization.yaml │ │ ├── flux-config/ │ │ │ ├── flux-config.yaml │ │ │ └── kustomization.yaml │ │ ├── grafana-manifests/ │ │ │ ├── alert-rules/ │ │ │ │ ├── altinn-apps.yaml │ │ │ │ └── kustomization.yaml │ │ │ ├── contact-points/ │ │ │ │ ├── altinn-studio-gateway.yaml │ │ │ │ └── kustomization.yaml │ │ │ ├── dashboards/ │ │ │ │ ├── altinn-apps.yaml │ │ │ │ └── kustomization.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service-accounts/ │ │ │ ├── altinn-studio-gateway-sa.yaml │ │ │ └── kustomization.yaml │ │ └── syncroot/ │ │ ├── at22/ │ │ │ └── kustomization.yaml │ │ ├── at23/ │ │ │ └── kustomization.yaml │ │ ├── at24/ │ │ │ └── kustomization.yaml │ │ ├── base/ │ │ │ ├── altinn-charts.yaml │ │ │ ├── apps-config.yaml │ │ │ ├── apps-syncroot.yaml │ │ │ ├── flux-config.yaml │ │ │ ├── gateway.yaml │ │ │ ├── kubernetes-wrapper.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── observability.yaml │ │ │ ├── operator.yaml │ │ │ ├── pdf.yaml │ │ │ └── pdf3.yaml │ │ ├── grafana-manifests/ │ │ │ ├── grafana-manifests.yaml │ │ │ └── kustomization.yaml │ │ ├── prod/ │ │ │ └── kustomization.yaml │ │ ├── tt02/ │ │ │ ├── kustomization.yaml │ │ │ └── workflow-engine-app.yaml │ │ └── yt01/ │ │ └── kustomization.yaml │ └── studio/ │ ├── otel-operator/ │ │ ├── base/ │ │ │ ├── helmrelease.yaml │ │ │ ├── helmrepository.yaml │ │ │ ├── kustomization.yaml │ │ │ └── namespace.yaml │ │ └── kustomization.yaml │ └── syncroot/ │ ├── README.md │ ├── base/ │ │ ├── altinn-altinity-agents.yaml │ │ ├── altinn-designer.yaml │ │ ├── altinn-loadbalancer.yaml │ │ ├── altinn-mcp-server.yaml │ │ ├── altinn-repositories.yaml │ │ ├── gitea-runners.yaml │ │ ├── kubernetes-wrapper.yaml │ │ ├── kustomization.yaml │ │ ├── lhci.yaml │ │ ├── observability.yaml │ │ └── otel-operator.yaml │ ├── dev/ │ │ └── kustomization.yaml │ ├── prod/ │ │ └── kustomization.yaml │ └── staging/ │ └── kustomization.yaml ├── libs/ │ ├── form-component/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── FormComponent/ │ │ │ │ ├── FormComponent.test.tsx │ │ │ │ ├── FormComponent.tsx │ │ │ │ └── index.ts │ │ │ ├── app-components/ │ │ │ │ ├── Card/ │ │ │ │ │ ├── Card.module.css │ │ │ │ │ ├── Card.test.tsx │ │ │ │ │ ├── Card.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── modules.ts │ │ │ ├── test/ │ │ │ │ └── setup.ts │ │ │ └── types/ │ │ │ ├── DataModelBinding.ts │ │ │ ├── FormComponentAction.ts │ │ │ ├── FormComponentActionType.ts │ │ │ └── FormComponentProps.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ └── form-engine/ │ ├── eslint.config.mjs │ ├── package.json │ ├── src/ │ │ ├── FormEngine/ │ │ │ ├── FormEngine.test.ts │ │ │ ├── FormEngine.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ └── test/ │ │ └── setup.ts │ ├── tsconfig.json │ └── vitest.config.ts ├── package.json ├── prettier.config.js ├── renovate.json ├── scripts/ │ └── pre-commit-check-for-skipped-tests └── src/ ├── .dockerignore ├── .gitignore ├── AI/ │ ├── AGENTS.md │ ├── CLAUDE.md │ ├── agents/ │ │ ├── .gitignore │ │ ├── .python-version │ │ ├── LANGFUSE_SETUP.md │ │ ├── README.md │ │ ├── agents/ │ │ │ ├── __init__.py │ │ │ ├── graph/ │ │ │ │ ├── __init__.py │ │ │ │ ├── nodes/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── actor_node.py │ │ │ │ │ ├── assistant_node.py │ │ │ │ │ ├── intake_node.py │ │ │ │ │ ├── planner_node.py │ │ │ │ │ ├── planning_tool_node.py │ │ │ │ │ ├── reviewer_node.py │ │ │ │ │ ├── spec_node.py │ │ │ │ │ └── verifier_node.py │ │ │ │ ├── nodes.py │ │ │ │ ├── runner.py │ │ │ │ └── state.py │ │ │ ├── prompts/ │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── assistant_response_generation.md │ │ │ │ ├── assistant_tool_orchestration.md │ │ │ │ ├── chat_assistant.md │ │ │ │ ├── general_planning.md │ │ │ │ ├── goal_suggestions.md │ │ │ │ ├── intake_planning.md │ │ │ │ ├── intent_security.md │ │ │ │ ├── llm-as-a-judge/ │ │ │ │ │ ├── implementation_match.md │ │ │ │ │ ├── intent_match.md │ │ │ │ │ └── no_hallucination.md │ │ │ │ ├── loader.py │ │ │ │ ├── patch_synthesis.md │ │ │ │ ├── reviewer_decision.md │ │ │ │ ├── semantic_query_extraction.md │ │ │ │ ├── spec_extraction.md │ │ │ │ ├── templates/ │ │ │ │ │ ├── assistant_response_user.md │ │ │ │ │ ├── assistant_tool_selection_user.md │ │ │ │ │ ├── chat_assistant_user.md │ │ │ │ │ ├── general_planning_user.md │ │ │ │ │ ├── intake_planning_user.md │ │ │ │ │ ├── patch_synthesis_user.md │ │ │ │ │ ├── reviewer_decision_user.md │ │ │ │ │ ├── semantic_query_user.md │ │ │ │ │ ├── spec_extraction_user.md │ │ │ │ │ ├── tool_planning_user.md │ │ │ │ │ └── verifier_error_fix_user.md │ │ │ │ ├── tool_planning.md │ │ │ │ └── verifier_error_fixer.md │ │ │ ├── schemas/ │ │ │ │ ├── __init__.py │ │ │ │ └── plan_schema.py │ │ │ ├── schemas.py │ │ │ ├── services/ │ │ │ │ ├── __init__.py │ │ │ │ ├── evaluation/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── hallucination_judge.py │ │ │ │ │ ├── implementation_judge.py │ │ │ │ │ └── intent_judge.py │ │ │ │ ├── events/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── events.py │ │ │ │ │ └── jobs.py │ │ │ │ ├── git/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── git_ops.py │ │ │ │ │ └── repo_manager.py │ │ │ │ ├── llm/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── intent_parser.py │ │ │ │ │ ├── llm_client.py │ │ │ │ │ └── semantic_query.py │ │ │ │ ├── mcp/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── mcp_client.py │ │ │ │ │ ├── mcp_verification.py │ │ │ │ │ ├── patch_generator.py │ │ │ │ │ ├── plan_atomic_step.py │ │ │ │ │ └── tool_execution.py │ │ │ │ ├── patching/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── actor_sync.py │ │ │ │ │ ├── patch_normalizer.py │ │ │ │ │ └── patch_validator.py │ │ │ │ ├── repo/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── anchor_resolver.py │ │ │ │ │ ├── repo_discovery.py │ │ │ │ │ └── resource_manager.py │ │ │ │ ├── telemetry/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── json_utils.py │ │ │ │ └── validation/ │ │ │ │ ├── __init__.py │ │ │ │ ├── contract_validator.py │ │ │ │ ├── enhanced_verifier.py │ │ │ │ └── verify.py │ │ │ └── workflows/ │ │ │ ├── __init__.py │ │ │ ├── actor/ │ │ │ │ ├── __init__.py │ │ │ │ └── pipeline.py │ │ │ ├── intake/ │ │ │ │ ├── __init__.py │ │ │ │ └── pipeline.py │ │ │ ├── reviewer/ │ │ │ │ ├── __init__.py │ │ │ │ └── pipeline.py │ │ │ ├── shared/ │ │ │ │ ├── __init__.py │ │ │ │ └── utils.py │ │ │ ├── spec/ │ │ │ │ ├── __init__.py │ │ │ │ └── pipeline.py │ │ │ └── verifier/ │ │ │ ├── __init__.py │ │ │ └── pipeline.py │ │ ├── api/ │ │ │ ├── __init__.py │ │ │ ├── dependencies.py │ │ │ ├── main.py │ │ │ └── routes/ │ │ │ ├── __init__.py │ │ │ ├── agent.py │ │ │ └── websocket.py │ │ ├── docker-compose.langfuse.yml │ │ ├── docker-compose.yaml │ │ ├── dockerfile │ │ ├── infra/ │ │ │ └── kustomize/ │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── service.yaml │ │ │ └── serviceaccount.yaml │ │ ├── pyproject.toml │ │ ├── requirements-dev.txt │ │ ├── requirements.txt │ │ ├── shared/ │ │ │ ├── config/ │ │ │ │ ├── __init__.py │ │ │ │ └── base_config.py │ │ │ ├── models/ │ │ │ │ ├── __init__.py │ │ │ │ ├── attachments.py │ │ │ │ └── common_models.py │ │ │ └── utils/ │ │ │ ├── __init__.py │ │ │ ├── langfuse_utils.py │ │ │ ├── logging_utils.py │ │ │ └── path_utils.py │ │ └── tests/ │ │ ├── README.md │ │ ├── api/ │ │ │ └── test_main.py │ │ └── unit/ │ │ ├── test_mcp_client.py │ │ ├── test_template_engine.py │ │ └── test_verifier_fixer.py │ ├── augmenter-agent/ │ │ ├── .dockerignore │ │ ├── README.md │ │ ├── TODO-coderabbit.md │ │ ├── augmenter-agent.sln │ │ ├── docker-compose.yaml │ │ ├── dockerfile │ │ ├── src/ │ │ │ └── Altinn.Augmenter.Agent/ │ │ │ ├── Altinn.Augmenter.Agent.csproj │ │ │ ├── Configuration/ │ │ │ │ ├── CallbackOptions.cs │ │ │ │ ├── PdfGenerationOptions.cs │ │ │ │ └── UploadOptions.cs │ │ │ ├── Endpoints/ │ │ │ │ ├── GenerateAsyncEndpoints.cs │ │ │ │ ├── GenerateEndpoints.cs │ │ │ │ └── HealthEndpoints.cs │ │ │ ├── Models/ │ │ │ │ ├── ParsedFormData.cs │ │ │ │ ├── PdfGenerationJob.cs │ │ │ │ └── UploadedFile.cs │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Services/ │ │ │ │ ├── CallbackService.cs │ │ │ │ ├── CallbackUrlValidator.cs │ │ │ │ ├── ICallbackService.cs │ │ │ │ ├── ICallbackUrlValidator.cs │ │ │ │ ├── IMultipartParserService.cs │ │ │ │ ├── IPdfGenerationQueue.cs │ │ │ │ ├── IPdfGeneratorService.cs │ │ │ │ ├── MultipartParserService.cs │ │ │ │ ├── PdfGenerationBackgroundService.cs │ │ │ │ ├── PdfGenerationQueue.cs │ │ │ │ └── PdfGeneratorService.cs │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── pdf-templates/ │ │ │ └── default.typ │ │ └── test/ │ │ └── Altinn.Augmenter.Agent.Tests/ │ │ ├── Altinn.Augmenter.Agent.Tests.csproj │ │ ├── GlobalUsings.cs │ │ ├── Integration/ │ │ │ ├── GenerateAsyncTests.cs │ │ │ ├── GenerateTests.cs │ │ │ ├── HealthTests.cs │ │ │ └── Helpers/ │ │ │ ├── TestWebApplicationFactory.cs │ │ │ └── TypstLocator.cs │ │ └── Unit/ │ │ ├── CallbackServiceTests.cs │ │ ├── CallbackUrlValidatorTests.cs │ │ ├── MultipartParserServiceTests.cs │ │ └── PdfGeneratorServiceTests.cs │ └── mcp/ │ ├── .gitignore │ ├── README.md │ ├── codegen/ │ │ ├── __init__.py │ │ ├── cli.py │ │ ├── core/ │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ └── utils.py │ │ ├── evaluation/ │ │ │ └── __init__.py │ │ ├── expressions/ │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ ├── generator.py │ │ │ └── utils.py │ │ ├── pipeline/ │ │ │ ├── __init__.py │ │ │ ├── core.py │ │ │ ├── llm_helpers.py │ │ │ ├── state.py │ │ │ └── steps.py │ │ ├── repositories/ │ │ │ ├── __init__.py │ │ │ └── app_fetcher.py │ │ └── vector_store/ │ │ ├── __init__.py │ │ ├── chunker.py │ │ ├── loader.py │ │ └── store.py │ ├── docker-compose.yaml │ ├── dockerfile │ ├── docs/ │ │ ├── tools-priority-list-long-term.md │ │ └── tools-priority-list-short-term.md │ ├── infra/ │ │ └── kustomize/ │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ ├── service.yaml │ │ └── serviceaccount.yaml │ ├── initiate_mcp.py │ ├── pyproject.toml │ ├── requirements.txt │ ├── scripts/ │ │ ├── __init__.py │ │ ├── gitea_client.py │ │ └── github_client.py │ ├── server/ │ │ ├── __init__.py │ │ ├── auth.py │ │ ├── config.py │ │ ├── handlers/ │ │ │ ├── __init__.py │ │ │ ├── datamodel_tool/ │ │ │ │ ├── __init__.py │ │ │ │ ├── converters/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── json_schema_to_metamodel.py │ │ │ │ │ ├── metamodel_to_csharp.py │ │ │ │ │ └── metamodel_to_xsd.py │ │ │ │ ├── datamodel_context.md │ │ │ │ ├── datamodel_sync_tool.py │ │ │ │ ├── metamodel/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── enums.py │ │ │ │ │ └── model_metadata.py │ │ │ │ ├── utils/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── naming.py │ │ │ │ │ ├── restrictions.py │ │ │ │ │ └── type_mapping.py │ │ │ │ └── wrapper.py │ │ │ ├── dynamic_expression_tool/ │ │ │ │ ├── __init__.py │ │ │ │ ├── dynamic_expression_context.md │ │ │ │ └── wrapper.py │ │ │ ├── help_tool/ │ │ │ │ └── wrapper.py │ │ │ ├── layout_tool/ │ │ │ │ ├── __init__.py │ │ │ │ ├── layout_components_tool_no_llm.py │ │ │ │ ├── layout_properties_tool.py │ │ │ │ ├── schema_validator_tool.py │ │ │ │ └── wrapper.py │ │ │ ├── planning_tool/ │ │ │ │ ├── doc_search.py │ │ │ │ ├── llms-full.txt │ │ │ │ ├── llms.txt │ │ │ │ ├── planning_context.md │ │ │ │ └── wrapper.py │ │ │ ├── policy_tool/ │ │ │ │ ├── __init__.py │ │ │ │ ├── policy_context.md │ │ │ │ ├── policy_summarization_tool.py │ │ │ │ ├── policy_validation_tool.py │ │ │ │ ├── static.py │ │ │ │ └── wrapper.py │ │ │ ├── prefill_tool/ │ │ │ │ ├── __init__.py │ │ │ │ ├── prefill_context.md │ │ │ │ └── wrapper.py │ │ │ ├── register.py │ │ │ ├── resource_tool/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base_validator.py │ │ │ │ ├── resource_context.md │ │ │ │ ├── resource_validator_tool.py │ │ │ │ └── wrapper.py │ │ │ ├── router_tool/ │ │ │ │ └── wrapper.py │ │ │ ├── status_tool/ │ │ │ │ ├── __init__.py │ │ │ │ └── wrapper.py │ │ │ └── types.py │ │ ├── main.py │ │ └── tracing.py │ └── tests/ │ ├── README.md │ └── server/ │ ├── test_auth.py │ └── test_main.py ├── App/ │ ├── azure-pipelines/ │ │ ├── build-app.yaml │ │ └── deploy-app.yaml │ ├── backend/ │ │ ├── .claude/ │ │ │ ├── commands/ │ │ │ │ ├── fix-github-issue.md │ │ │ │ ├── new-integration-test.md │ │ │ │ └── port-integration-test.md │ │ │ └── settings.json │ │ ├── .codex/ │ │ │ ├── config.toml │ │ │ └── rules/ │ │ │ └── default.rules │ │ ├── .config/ │ │ │ └── dotnet-tools.json │ │ ├── .csharpierignore │ │ ├── .editorconfig │ │ ├── .git-blame-ignore-revs │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ ├── extensions.json │ │ │ ├── launch.json │ │ │ ├── settings.json │ │ │ └── tasks.json │ │ ├── AGENTS.md │ │ ├── AppLibDotnet.sln │ │ ├── AppLibDotnet.sln.DotSettings │ │ ├── CLAUDE.md │ │ ├── CONTRIBUTING.md │ │ ├── Directory.Build.props │ │ ├── Directory.Packages.props │ │ ├── Makefile │ │ ├── README.md │ │ ├── benchmark/ │ │ │ └── Altinn.App.Benchmarks/ │ │ │ ├── Altinn.App.Benchmarks.csproj │ │ │ ├── Analyzers/ │ │ │ │ ├── AppImplementationFactoryAnalyzerBenchmarks.cs │ │ │ │ └── HttpContextAccessorUseAnalyzerBenchmarks.cs │ │ │ ├── Expressions/ │ │ │ │ └── DateVerificationRegexBenchmarks.cs │ │ │ ├── Fixture.cs │ │ │ └── Program.cs │ │ ├── doc/ │ │ │ └── adr/ │ │ │ └── 006-altinn-3-code-list.md │ │ ├── global.json │ │ ├── run-repeatedly.sh │ │ ├── solutions/ │ │ │ ├── All.sln │ │ │ └── Src.sln │ │ ├── src/ │ │ │ ├── .gitignore │ │ │ ├── Altinn.App.Analyzers/ │ │ │ │ ├── Altinn.App.Analyzers.csproj │ │ │ │ ├── AnalyzerReleases.Shipped.md │ │ │ │ ├── AnalyzerReleases.Unshipped.md │ │ │ │ ├── Diagnostics.cs │ │ │ │ ├── FormDataWrapper/ │ │ │ │ │ ├── FormDataWrapperAnalyzer.cs │ │ │ │ │ ├── FormDataWrapperGenerator.cs │ │ │ │ │ └── FormDataWrapperUtils.cs │ │ │ │ ├── HttpContextAccessorUsageAnalyzer.cs │ │ │ │ ├── ModelPathNode.cs │ │ │ │ ├── PolyFills.cs │ │ │ │ ├── SourceTextGenerator/ │ │ │ │ │ ├── AddIndexToPathGenerator.cs │ │ │ │ │ ├── AltinnRowIdsGenerator.cs │ │ │ │ │ ├── CopyGenerator.cs │ │ │ │ │ ├── GenerateJsonComment.cs │ │ │ │ │ ├── GetterGenerator.cs │ │ │ │ │ ├── RemoveGenerator.cs │ │ │ │ │ ├── SetterGenerator.cs │ │ │ │ │ ├── SourceReaderUtils.cs │ │ │ │ │ └── SourceTextGenerator.cs │ │ │ │ └── Utils/ │ │ │ │ ├── AnalyzerConfigOptionsProviderExtensions.cs │ │ │ │ ├── EquatableArray.cs │ │ │ │ ├── FileLocationHelper.cs │ │ │ │ ├── HashCode.cs │ │ │ │ ├── NanoJsonReader.cs │ │ │ │ └── RoslynExtensions.cs │ │ │ ├── Altinn.App.Api/ │ │ │ │ ├── Altinn.App.Api.csproj │ │ │ │ ├── Controllers/ │ │ │ │ │ ├── ActionsController.cs │ │ │ │ │ ├── ApplicationLanguageController.cs │ │ │ │ │ ├── ApplicationMetadataController.cs │ │ │ │ │ ├── ApplicationSettingsController.cs │ │ │ │ │ ├── Attributes/ │ │ │ │ │ │ └── JsonSettingsNameAttribute.cs │ │ │ │ │ ├── AuthenticationController.cs │ │ │ │ │ ├── AuthorizationController.cs │ │ │ │ │ ├── Conventions/ │ │ │ │ │ │ ├── AltinnApiJsonFormatter.cs │ │ │ │ │ │ ├── AltinnControllerConventions.cs │ │ │ │ │ │ └── ConfigureMvcJsonOptions.cs │ │ │ │ │ ├── CustomOpenApiController.cs │ │ │ │ │ ├── DataController.cs │ │ │ │ │ ├── DataListsController.cs │ │ │ │ │ ├── DataTagsController.cs │ │ │ │ │ ├── DisableFormValueModelBindingAttribute.cs │ │ │ │ │ ├── EventsReceiverController.cs │ │ │ │ │ ├── ExternalApiController.cs │ │ │ │ │ ├── FileScanController.cs │ │ │ │ │ ├── FormBootstrapController.cs │ │ │ │ │ ├── HomeController.cs │ │ │ │ │ ├── InstancesController.cs │ │ │ │ │ ├── LookupOrganisationController.cs │ │ │ │ │ ├── LookupPersonController.cs │ │ │ │ │ ├── NotificationCallbackController.cs │ │ │ │ │ ├── OptionsController.cs │ │ │ │ │ ├── PartiesController.cs │ │ │ │ │ ├── PaymentController.cs │ │ │ │ │ ├── PdfController.cs │ │ │ │ │ ├── ProcessController.cs │ │ │ │ │ ├── ProfileController.cs │ │ │ │ │ ├── RedirectController.cs │ │ │ │ │ ├── ResourceController.cs │ │ │ │ │ ├── SigningController.cs │ │ │ │ │ ├── StatelessDataController.cs │ │ │ │ │ ├── TextsController.cs │ │ │ │ │ ├── UserDefinedMetadataController.cs │ │ │ │ │ └── ValidateController.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ ├── HostBuilderExtensions.cs │ │ │ │ │ ├── HttpClientBuilderExtensions.cs │ │ │ │ │ ├── HttpContextExtensions.cs │ │ │ │ │ ├── InstanceDataUnitOfWorkExtensions.cs │ │ │ │ │ ├── InstanceExtensions.cs │ │ │ │ │ ├── MvcBuilderExtensions.cs │ │ │ │ │ ├── SecurityHeadersApplicationBuilderExtensions.cs │ │ │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ │ │ ├── SwaggerFilterExtensions.cs │ │ │ │ │ ├── WebApplicationBuilderExtensions.cs │ │ │ │ │ └── WebHostBuilderExtensions.cs │ │ │ │ ├── Helpers/ │ │ │ │ │ ├── Patch/ │ │ │ │ │ │ ├── DataPatchResult.cs │ │ │ │ │ │ └── InternalPatchService.cs │ │ │ │ │ ├── RequestHandling/ │ │ │ │ │ │ ├── DataRestrictionValidation.cs │ │ │ │ │ │ ├── MultipartRequestReader.cs │ │ │ │ │ │ ├── RequestPart.cs │ │ │ │ │ │ └── RequestPartValidator.cs │ │ │ │ │ └── StartupHelper.cs │ │ │ │ ├── Infrastructure/ │ │ │ │ │ ├── Filters/ │ │ │ │ │ │ ├── AutoValidateAntiforgeryTokenIfAuthCookieAttribute.cs │ │ │ │ │ │ └── ValidateAntiforgeryTokenIfAuthCookieAuthorizationFilter.cs │ │ │ │ │ ├── Health/ │ │ │ │ │ │ └── HealthCheck.cs │ │ │ │ │ ├── Lifetime/ │ │ │ │ │ │ └── AppHostLifetime.cs │ │ │ │ │ ├── Middleware/ │ │ │ │ │ │ ├── ScopeAuthorizationMiddleware.cs │ │ │ │ │ │ ├── SecurityHeadersMiddleware.cs │ │ │ │ │ │ ├── TelemetryEnrichingMiddleware.cs │ │ │ │ │ │ └── TelemetryEnrichingResultFilter.cs │ │ │ │ │ └── Telemetry/ │ │ │ │ │ ├── CustomTelemetryInitializer.cs │ │ │ │ │ ├── HealthTelemetryFilter.cs │ │ │ │ │ └── IdentityTelemetryFilter.cs │ │ │ │ ├── Mappers/ │ │ │ │ │ └── SimpleInstanceMapper.cs │ │ │ │ ├── Models/ │ │ │ │ │ ├── AppProcessState.cs │ │ │ │ │ ├── DataDeleteResponse.cs │ │ │ │ │ ├── DataElementFileScanResult.cs │ │ │ │ │ ├── DataPatchRequest.cs │ │ │ │ │ ├── DataPatchRequestMultiple.cs │ │ │ │ │ ├── DataPatchResponse.cs │ │ │ │ │ ├── DataPatchResponseMultiple.cs │ │ │ │ │ ├── DataPostResponse.cs │ │ │ │ │ ├── EnrichedInstanceResponse.cs │ │ │ │ │ ├── InstanceFileScanResult.cs │ │ │ │ │ ├── InstanceResponse.cs │ │ │ │ │ ├── InstansiationInstance.cs │ │ │ │ │ ├── LookupOrganisationResponse.cs │ │ │ │ │ ├── LookupPersonRequest.cs │ │ │ │ │ ├── LookupPersonResponse.cs │ │ │ │ │ ├── ProcessNext.cs │ │ │ │ │ ├── SetTagsRequest.cs │ │ │ │ │ ├── SetTagsResponse.cs │ │ │ │ │ ├── SigningAuthorizedOrganisationsResponse.cs │ │ │ │ │ ├── SigningDataElementsResponse.cs │ │ │ │ │ ├── SigningStateResponse.cs │ │ │ │ │ ├── SimpleInstance.cs │ │ │ │ │ ├── TagsList.cs │ │ │ │ │ ├── UserActionRequest.cs │ │ │ │ │ ├── UserActionResponse.cs │ │ │ │ │ └── UserDefinedMetadataDto.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ └── packaging/ │ │ │ │ └── Altinn.App.Api.props │ │ │ ├── Altinn.App.Clients.Fiks/ │ │ │ │ ├── Altinn.App.Clients.Fiks.csproj │ │ │ │ ├── Configuration/ │ │ │ │ │ ├── FiksSetupBuilder.cs │ │ │ │ │ └── IFiksSetupBuilder.cs │ │ │ │ ├── Constants/ │ │ │ │ │ ├── FiksArkivConstants.cs │ │ │ │ │ └── FiksIOConstants.cs │ │ │ │ ├── Exceptions/ │ │ │ │ │ ├── FiksArkivConfigurationException.cs │ │ │ │ │ ├── FiksArkivException.cs │ │ │ │ │ ├── FiksIOConfigurationException.cs │ │ │ │ │ └── FiksIOException.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ ├── ArkivmeldingExtensions.cs │ │ │ │ │ ├── ArkivmeldingKvitteringExtensions.cs │ │ │ │ │ ├── DataElementExtensions.cs │ │ │ │ │ ├── InstanceExtensions.cs │ │ │ │ │ ├── KorrespondansepartExtensions.cs │ │ │ │ │ ├── ListExtensions.cs │ │ │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ │ │ ├── ServiceProviderExtensions.cs │ │ │ │ │ ├── StreamExtensions.cs │ │ │ │ │ ├── StringExtensions.cs │ │ │ │ │ ├── TypeExtensions.cs │ │ │ │ │ └── XmlExtensions.cs │ │ │ │ ├── Factories/ │ │ │ │ │ ├── KlassifikasjonFactory.cs │ │ │ │ │ └── KorrespondansepartFactory.cs │ │ │ │ ├── FiksArkiv/ │ │ │ │ │ ├── FiksArkivConfigResolver.cs │ │ │ │ │ ├── FiksArkivConfigValidationService.cs │ │ │ │ │ ├── FiksArkivDefaultPayloadGenerator.cs │ │ │ │ │ ├── FiksArkivDefaultResponseHandler.cs │ │ │ │ │ ├── FiksArkivHost.cs │ │ │ │ │ ├── FiksArkivInstanceClient.cs │ │ │ │ │ ├── FiksArkivServiceTask.cs │ │ │ │ │ ├── IFiksArkivConfigResolver.cs │ │ │ │ │ ├── IFiksArkivHost.cs │ │ │ │ │ ├── IFiksArkivInstanceClient.cs │ │ │ │ │ ├── IFiksArkivPayloadGenerator.cs │ │ │ │ │ ├── IFiksArkivResponseHandler.cs │ │ │ │ │ └── Models/ │ │ │ │ │ ├── FiksArkivDocumentMetadata.cs │ │ │ │ │ ├── FiksArkivDocuments.cs │ │ │ │ │ ├── FiksArkivReceivedMessagePayload.cs │ │ │ │ │ ├── FiksArkivRecipient.cs │ │ │ │ │ ├── FiksArkivSettings.cs │ │ │ │ │ └── MessagePayloadWrapper.cs │ │ │ │ └── FiksIO/ │ │ │ │ ├── FiksIOClient.cs │ │ │ │ ├── FiksIOClientFactory.cs │ │ │ │ ├── FiksIOMaskinportenClient.cs │ │ │ │ ├── IFiksIOClient.cs │ │ │ │ ├── IFiksIOClientFactory.cs │ │ │ │ └── Models/ │ │ │ │ ├── FiksIOMessagePayload.cs │ │ │ │ ├── FiksIOMessageRequest.cs │ │ │ │ ├── FiksIOMessageResponse.cs │ │ │ │ ├── FiksIOReceivedMessage.cs │ │ │ │ └── FiksIOSettings.cs │ │ │ ├── Altinn.App.Core/ │ │ │ │ ├── Altinn.App.Core.csproj │ │ │ │ ├── AppImplementationFactory.cs │ │ │ │ ├── Configuration/ │ │ │ │ │ ├── AppSettings.cs │ │ │ │ │ ├── CacheSettings.cs │ │ │ │ │ ├── FrontEndSettings.cs │ │ │ │ │ ├── GeneralSettings.cs │ │ │ │ │ ├── MetricsSettings.cs │ │ │ │ │ ├── PlatformFrontendSettings.cs │ │ │ │ │ └── PlatformSettings.cs │ │ │ │ ├── Constants/ │ │ │ │ │ ├── AltinnEnvironments.cs │ │ │ │ │ ├── AltinnTaskTypes.cs │ │ │ │ │ ├── AltinnUrns.cs │ │ │ │ │ ├── AuthorizationSchemes.cs │ │ │ │ │ ├── AuthzConstants.cs │ │ │ │ │ └── General.cs │ │ │ │ ├── EFormidling/ │ │ │ │ │ ├── EformidlingConstants.cs │ │ │ │ │ ├── EformidlingStartup.cs │ │ │ │ │ ├── Extensions/ │ │ │ │ │ │ └── ServiceCollectionExtensions.cs │ │ │ │ │ ├── Implementation/ │ │ │ │ │ │ ├── DefaultEFormidlingReceivers.cs │ │ │ │ │ │ ├── DefaultEFormidlingService.cs │ │ │ │ │ │ ├── EFormidlingLegacyConfigurationProvider.cs │ │ │ │ │ │ ├── EformidlingDeliveryException.cs │ │ │ │ │ │ └── EformidlingStatusCheckEventHandler2.cs │ │ │ │ │ └── Interface/ │ │ │ │ │ ├── IEFormidlingMetadata.cs │ │ │ │ │ ├── IEFormidlingReceivers.cs │ │ │ │ │ └── IEFormidlingService.cs │ │ │ │ ├── Exceptions/ │ │ │ │ │ ├── AltinnException.cs │ │ │ │ │ └── ConfigurationException.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ ├── CancellationTokenExtensions.cs │ │ │ │ │ ├── ClaimsPrincipalExtensions.cs │ │ │ │ │ ├── ConfigurationBuilderExtensions.cs │ │ │ │ │ ├── DataProtectionConfiguration.cs │ │ │ │ │ ├── DictionaryExtensions.cs │ │ │ │ │ ├── HttpClientExtension.cs │ │ │ │ │ ├── HttpContextExtensions.cs │ │ │ │ │ ├── InstanceEventExtensions.cs │ │ │ │ │ ├── MultipartContentExtensions.cs │ │ │ │ │ ├── NationalIdentityNumberExtensions.cs │ │ │ │ │ ├── OrganisationNumberExtensions.cs │ │ │ │ │ ├── ProcessStateExtensions.cs │ │ │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ │ │ ├── StringExtensions.cs │ │ │ │ │ └── XmlToLinqExtensions.cs │ │ │ │ ├── Features/ │ │ │ │ │ ├── AccessManagement/ │ │ │ │ │ │ └── IAccessManagementClient.cs │ │ │ │ │ ├── Action/ │ │ │ │ │ │ ├── PaymentUserAction.cs │ │ │ │ │ │ ├── SigningUserAction.cs │ │ │ │ │ │ ├── UniqueSignatureAuthorizer.cs │ │ │ │ │ │ ├── UserActionAuthorizerContext.cs │ │ │ │ │ │ └── UserActionService.cs │ │ │ │ │ ├── Auth/ │ │ │ │ │ │ ├── Authenticated.cs │ │ │ │ │ │ ├── AuthenticationContext.cs │ │ │ │ │ │ ├── AuthenticationContextDI.cs │ │ │ │ │ │ ├── AuthenticationContextException.cs │ │ │ │ │ │ ├── IAuthenticationContext.cs │ │ │ │ │ │ ├── Scopes.cs │ │ │ │ │ │ └── TokenIssuer.cs │ │ │ │ │ ├── AuthenticationMethod.cs │ │ │ │ │ ├── Bootstrap/ │ │ │ │ │ │ ├── BootstrapGlobalService.cs │ │ │ │ │ │ ├── FormBootstrapService.cs │ │ │ │ │ │ ├── LayoutAnalysisService.cs │ │ │ │ │ │ └── Models/ │ │ │ │ │ │ ├── BootstrapGlobalResponse.cs │ │ │ │ │ │ └── FormBootstrapResponse.cs │ │ │ │ │ ├── Cache/ │ │ │ │ │ │ ├── AppConfigurationCache.cs │ │ │ │ │ │ ├── AppConfigurationCacheDI.cs │ │ │ │ │ │ └── IAppConfigurationCache.cs │ │ │ │ │ ├── Correspondence/ │ │ │ │ │ │ ├── Builder/ │ │ │ │ │ │ │ ├── BuilderUtils.cs │ │ │ │ │ │ │ ├── CorrespondenceAttachmentBuilder.cs │ │ │ │ │ │ │ ├── CorrespondenceContentBuilder.cs │ │ │ │ │ │ │ ├── CorrespondenceNotificationBuilder.cs │ │ │ │ │ │ │ ├── CorrespondenceNotificationOverrideBuilder.cs │ │ │ │ │ │ │ ├── CorrespondenceRequestBuilder.cs │ │ │ │ │ │ │ ├── ICorrespondenceAttachmentBuilder.cs │ │ │ │ │ │ │ ├── ICorrespondenceContentBuilder.cs │ │ │ │ │ │ │ ├── ICorrespondenceNotificationBuilder.cs │ │ │ │ │ │ │ ├── ICorrespondenceNotificationOverrideBuilder.cs │ │ │ │ │ │ │ └── ICorrespondenceRequestBuilder.cs │ │ │ │ │ │ ├── CorrespondenceAuthorisationFactory.cs │ │ │ │ │ │ ├── CorrespondenceClient.cs │ │ │ │ │ │ ├── Exceptions/ │ │ │ │ │ │ │ ├── CorrespondenceArgumentException.cs │ │ │ │ │ │ │ ├── CorrespondenceException.cs │ │ │ │ │ │ │ └── CorrespondenceRequestException.cs │ │ │ │ │ │ ├── Extensions/ │ │ │ │ │ │ │ └── ServiceCollectionExtensions.cs │ │ │ │ │ │ ├── ICorrespondenceClient.cs │ │ │ │ │ │ └── Models/ │ │ │ │ │ │ ├── AttachmentPayload.cs │ │ │ │ │ │ ├── CorrespondenceApiScopes.cs │ │ │ │ │ │ ├── CorrespondenceAttachment.cs │ │ │ │ │ │ ├── CorrespondenceAuthorisation.cs │ │ │ │ │ │ ├── CorrespondenceContent.cs │ │ │ │ │ │ ├── CorrespondenceDataLocationType.cs │ │ │ │ │ │ ├── CorrespondenceExternalReference.cs │ │ │ │ │ │ ├── CorrespondenceNotification.cs │ │ │ │ │ │ ├── CorrespondenceNotificationChannel.cs │ │ │ │ │ │ ├── CorrespondenceNotificationRecipient.cs │ │ │ │ │ │ ├── CorrespondenceNotificationRecipientWrapper.cs │ │ │ │ │ │ ├── CorrespondenceNotificationTemplate.cs │ │ │ │ │ │ ├── CorrespondencePayload.cs │ │ │ │ │ │ ├── CorrespondenceReferenceType.cs │ │ │ │ │ │ ├── CorrespondenceReplyOption.cs │ │ │ │ │ │ ├── CorrespondenceRequest.cs │ │ │ │ │ │ ├── CorrespondenceStatus.cs │ │ │ │ │ │ ├── Request/ │ │ │ │ │ │ │ ├── InitializeAttachmentRequest.cs │ │ │ │ │ │ │ └── InitializeCorrespondencesRequest.cs │ │ │ │ │ │ └── Response/ │ │ │ │ │ │ ├── AttachmentOverviewResponse.cs │ │ │ │ │ │ ├── CorrespondenceAttachmentResponse.cs │ │ │ │ │ │ ├── CorrespondenceAttachmentStatusResponse.cs │ │ │ │ │ │ ├── CorrespondenceContentResponse.cs │ │ │ │ │ │ ├── CorrespondenceDataLocationTypeResponse.cs │ │ │ │ │ │ ├── CorrespondenceDetailsResponse.cs │ │ │ │ │ │ ├── CorrespondenceNotificationDetailsResponse.cs │ │ │ │ │ │ ├── CorrespondenceNotificationOrderResponse.cs │ │ │ │ │ │ ├── CorrespondenceNotificationRecipientResponse.cs │ │ │ │ │ │ ├── CorrespondenceNotificationStatusDetailsResponse.cs │ │ │ │ │ │ ├── CorrespondenceNotificationStatusResponse.cs │ │ │ │ │ │ ├── CorrespondenceNotificationStatusSummaryResponse.cs │ │ │ │ │ │ ├── CorrespondenceNotificationSummaryResponse.cs │ │ │ │ │ │ ├── CorrespondenceStatusEventResponse.cs │ │ │ │ │ │ ├── GetCorrespondenceStatusResponse.cs │ │ │ │ │ │ └── SendCorrespondenceResponse.cs │ │ │ │ │ ├── DataLists/ │ │ │ │ │ │ ├── DataListsFactory.cs │ │ │ │ │ │ ├── DataListsService.cs │ │ │ │ │ │ ├── IDataListsService.cs │ │ │ │ │ │ ├── InstanceDataListsFactory.cs │ │ │ │ │ │ ├── NullDataListProvider.cs │ │ │ │ │ │ └── NullInstanceDataListProvider.cs │ │ │ │ │ ├── DataProcessing/ │ │ │ │ │ │ ├── GenericDataProcessor.cs │ │ │ │ │ │ └── NullInstantiationProcessor.cs │ │ │ │ │ ├── ExternalApi/ │ │ │ │ │ │ ├── ExternalApiFactory.cs │ │ │ │ │ │ ├── ExternalApiService.cs │ │ │ │ │ │ └── IExternalApiClient.cs │ │ │ │ │ ├── FeatureFlags.cs │ │ │ │ │ ├── FileAnalyzis/ │ │ │ │ │ │ ├── FileAnalyserFactory.cs │ │ │ │ │ │ ├── FileAnalysisResult.cs │ │ │ │ │ │ ├── FileAnalysisService.cs │ │ │ │ │ │ ├── IFileAnalyser.cs │ │ │ │ │ │ ├── IFileAnalyserFactory.cs │ │ │ │ │ │ └── IFileAnalysisService.cs │ │ │ │ │ ├── FormDataReader.cs │ │ │ │ │ ├── IAppOptionsProvider.cs │ │ │ │ │ ├── IDataElementValidator.cs │ │ │ │ │ ├── IDataListProvider.cs │ │ │ │ │ ├── IDataProcessor.cs │ │ │ │ │ ├── IDataWriteProcessor.cs │ │ │ │ │ ├── IEmailNotificationClient.cs │ │ │ │ │ ├── IEventHandler.cs │ │ │ │ │ ├── IFormDataValidator.cs │ │ │ │ │ ├── IInstanceAppOptionsProvider.cs │ │ │ │ │ ├── IInstanceDataAccessor.cs │ │ │ │ │ ├── IInstanceDataListProvider.cs │ │ │ │ │ ├── IInstanceDataMutator.cs │ │ │ │ │ ├── IInstanceValidator.cs │ │ │ │ │ ├── IInstantiationProcessor.cs │ │ │ │ │ ├── IInstantiationValidator.cs │ │ │ │ │ ├── INotificationCancelClient.cs │ │ │ │ │ ├── INotificationOrderClient.cs │ │ │ │ │ ├── IPdfFormatter.cs │ │ │ │ │ ├── IProcessEnd.cs │ │ │ │ │ ├── IProcessExclusiveGateway.cs │ │ │ │ │ ├── IProcessTaskAbandon.cs │ │ │ │ │ ├── IProcessTaskEnd.cs │ │ │ │ │ ├── IProcessTaskStart.cs │ │ │ │ │ ├── ISmsNotificationClient.cs │ │ │ │ │ ├── ITaskValidator.cs │ │ │ │ │ ├── IUserAction.cs │ │ │ │ │ ├── IUserActionAuthorizer.cs │ │ │ │ │ ├── IValidateQueryParamPrefill.cs │ │ │ │ │ ├── IValidator.cs │ │ │ │ │ ├── Maskinporten/ │ │ │ │ │ │ ├── Constants/ │ │ │ │ │ │ │ ├── JwtClaimTypes.cs │ │ │ │ │ │ │ └── TokenAuthority.cs │ │ │ │ │ │ ├── Converters/ │ │ │ │ │ │ │ └── JsonWebKeyConverter.cs │ │ │ │ │ │ ├── Delegates/ │ │ │ │ │ │ │ └── MaskinportenDelegatingHandler.cs │ │ │ │ │ │ ├── Exceptions/ │ │ │ │ │ │ │ ├── MaskinportenAuthenticationException.cs │ │ │ │ │ │ │ ├── MaskinportenConfigurationException.cs │ │ │ │ │ │ │ ├── MaskinportenException.cs │ │ │ │ │ │ │ ├── MaskinportenTokenExpiredException.cs │ │ │ │ │ │ │ └── MaskinportenUnsupportedTokenException.cs │ │ │ │ │ │ ├── Extensions/ │ │ │ │ │ │ │ ├── HttpClientBuilderExtensions.cs │ │ │ │ │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ │ │ │ │ └── WebHostBuilderExtensions.cs │ │ │ │ │ │ ├── IMaskinportenClient.cs │ │ │ │ │ │ ├── MaskinportenClient.cs │ │ │ │ │ │ └── Models/ │ │ │ │ │ │ ├── MaskinportenSettings.cs │ │ │ │ │ │ ├── MaskinportenTokenResponse.cs │ │ │ │ │ │ ├── OAuthAuthorizationServerMetadata.cs │ │ │ │ │ │ └── TokenCacheEntry.cs │ │ │ │ │ ├── Notifications/ │ │ │ │ │ │ ├── Cancellation/ │ │ │ │ │ │ │ ├── CancelOnProcessEnd.cs │ │ │ │ │ │ │ └── ICancelInstantiationNotification.cs │ │ │ │ │ │ ├── Email/ │ │ │ │ │ │ │ └── EmailNotificationClient.cs │ │ │ │ │ │ ├── Exceptions/ │ │ │ │ │ │ │ └── NotificationConditionSecretNotFoundException.cs │ │ │ │ │ │ ├── Future/ │ │ │ │ │ │ │ └── NotificationOrderClient.cs │ │ │ │ │ │ ├── INotificationService.cs │ │ │ │ │ │ ├── NotificationService.cs │ │ │ │ │ │ ├── Order/ │ │ │ │ │ │ │ └── NotificationCancelClient.cs │ │ │ │ │ │ ├── SecretProvider/ │ │ │ │ │ │ │ ├── NotificationConditionCodeValidator.cs │ │ │ │ │ │ │ ├── NotificationConditionSecretProvider.cs │ │ │ │ │ │ │ └── NotificationConditionTokenGenerator.cs │ │ │ │ │ │ ├── Sms/ │ │ │ │ │ │ │ └── SmsNotificationClient.cs │ │ │ │ │ │ └── Texts/ │ │ │ │ │ │ ├── NotificationTexts.cs │ │ │ │ │ │ └── ReplacementTokens.cs │ │ │ │ │ ├── Options/ │ │ │ │ │ │ ├── Altinn2Provider/ │ │ │ │ │ │ │ ├── Altinn2CodeListProvider.cs │ │ │ │ │ │ │ ├── Altinn2MetadataApiClient.cs │ │ │ │ │ │ │ └── MetadataCodelistResponse.cs │ │ │ │ │ │ ├── Altinn3LibraryCodeList/ │ │ │ │ │ │ │ ├── Altinn3LibraryCodeListApiClient.cs │ │ │ │ │ │ │ ├── Altinn3LibraryCodeListResponse.cs │ │ │ │ │ │ │ ├── Altinn3LibraryCodeListService.cs │ │ │ │ │ │ │ ├── Altinn3LibraryOptionsProvider.cs │ │ │ │ │ │ │ ├── IAltinn3LibraryCodeListApiClient.cs │ │ │ │ │ │ │ └── IAltinn3LibraryCodeListService.cs │ │ │ │ │ │ ├── AppOptionsFactory.cs │ │ │ │ │ │ ├── AppOptionsFileHandler.cs │ │ │ │ │ │ ├── AppOptionsService.cs │ │ │ │ │ │ ├── AppOptionsServiceExtentions.cs │ │ │ │ │ │ ├── CommonOptionProviderServiceCollectionExtensions.cs │ │ │ │ │ │ ├── DefaultAppOptionsProvider.cs │ │ │ │ │ │ ├── IAppOptionsFileHandler.cs │ │ │ │ │ │ ├── IAppOptionsService.cs │ │ │ │ │ │ ├── InstanceAppOptionsFactory.cs │ │ │ │ │ │ └── JoinedAppOptionsProvider.cs │ │ │ │ │ ├── Payment/ │ │ │ │ │ │ ├── Exceptions/ │ │ │ │ │ │ │ └── PaymentException.cs │ │ │ │ │ │ ├── IOrderDetailsCalculator.cs │ │ │ │ │ │ ├── Models/ │ │ │ │ │ │ │ ├── Address.cs │ │ │ │ │ │ │ ├── CardDetails.cs │ │ │ │ │ │ │ ├── InvoiceDetails.cs │ │ │ │ │ │ │ ├── OrderDetails.cs │ │ │ │ │ │ │ ├── Payer.cs │ │ │ │ │ │ │ ├── PayerCompany.cs │ │ │ │ │ │ │ ├── PayerPrivatePerson.cs │ │ │ │ │ │ │ ├── PayerType.cs │ │ │ │ │ │ │ ├── PaymentDetails.cs │ │ │ │ │ │ │ ├── PaymentInformation.cs │ │ │ │ │ │ │ ├── PaymentOrderLine.cs │ │ │ │ │ │ │ ├── PaymentReceiver.cs │ │ │ │ │ │ │ ├── PaymentStatus.cs │ │ │ │ │ │ │ └── PhoneNumber.cs │ │ │ │ │ │ ├── Processors/ │ │ │ │ │ │ │ ├── FakePaymentProcessor/ │ │ │ │ │ │ │ │ └── FakePaymentProcessor.cs │ │ │ │ │ │ │ ├── IPaymentProcessor.cs │ │ │ │ │ │ │ └── Nets/ │ │ │ │ │ │ │ ├── INetsClient.cs │ │ │ │ │ │ │ ├── Models/ │ │ │ │ │ │ │ │ ├── HttpApiResult.cs │ │ │ │ │ │ │ │ ├── NetsCheckout.cs │ │ │ │ │ │ │ │ ├── NetsCheckoutConsumerDetails.cs │ │ │ │ │ │ │ │ ├── NetsCompleteWebhookPayload.cs │ │ │ │ │ │ │ │ ├── NetsCreatePayment.cs │ │ │ │ │ │ │ │ ├── NetsCreatePaymentSuccess.cs │ │ │ │ │ │ │ │ ├── NetsNotifications.cs │ │ │ │ │ │ │ │ ├── NetsOrder.cs │ │ │ │ │ │ │ │ ├── NetsOrderItem.cs │ │ │ │ │ │ │ │ ├── NetsPaymentFull.cs │ │ │ │ │ │ │ │ ├── NetsPaymentMethod.cs │ │ │ │ │ │ │ │ └── NetsPaymentMethodConfiguration.cs │ │ │ │ │ │ │ ├── NetsClient.cs │ │ │ │ │ │ │ ├── NetsMapper.cs │ │ │ │ │ │ │ ├── NetsPaymentProcessor.cs │ │ │ │ │ │ │ ├── NetsPaymentSettings.cs │ │ │ │ │ │ │ ├── NetsWebhookSecretProvider.cs │ │ │ │ │ │ │ └── README.md │ │ │ │ │ │ └── Services/ │ │ │ │ │ │ ├── IPaymentService.cs │ │ │ │ │ │ └── PaymentService.cs │ │ │ │ │ ├── Pdf/ │ │ │ │ │ │ └── NullPdfFormatter.cs │ │ │ │ │ ├── Redirect/ │ │ │ │ │ │ ├── IReturnUrlService.cs │ │ │ │ │ │ ├── ReturnUrlService.cs │ │ │ │ │ │ └── ReturnUrlValidationResult.cs │ │ │ │ │ ├── Signing/ │ │ │ │ │ │ ├── Exceptions/ │ │ │ │ │ │ │ ├── SigneeProviderNotFoundException.cs │ │ │ │ │ │ │ └── SigningException.cs │ │ │ │ │ │ ├── Extensions/ │ │ │ │ │ │ │ └── SigningInstanceDataAccessorExtensions.cs │ │ │ │ │ │ ├── Helpers/ │ │ │ │ │ │ │ ├── SigningNotificationHelper.cs │ │ │ │ │ │ │ └── SigningTextHelper.cs │ │ │ │ │ │ ├── ISigneeProvider.cs │ │ │ │ │ │ ├── Models/ │ │ │ │ │ │ │ ├── ContentWrapper.cs │ │ │ │ │ │ │ ├── DefaultTexts.cs │ │ │ │ │ │ │ ├── SigneeContext.cs │ │ │ │ │ │ │ └── SigneeContextState.cs │ │ │ │ │ │ ├── NotificationChoice.cs │ │ │ │ │ │ ├── ProvidedSignee.cs │ │ │ │ │ │ ├── Services/ │ │ │ │ │ │ │ ├── ISignDocumentManager.cs │ │ │ │ │ │ │ ├── ISigneeContextsManager.cs │ │ │ │ │ │ │ ├── ISigningCallToActionService.cs │ │ │ │ │ │ │ ├── ISigningDelegationService.cs │ │ │ │ │ │ │ ├── ISigningReceiptService.cs │ │ │ │ │ │ │ ├── ISigningService.cs │ │ │ │ │ │ │ ├── SignDocumentManager.cs │ │ │ │ │ │ │ ├── SigneeContextsManager.cs │ │ │ │ │ │ │ ├── SigningCallToActionService.cs │ │ │ │ │ │ │ ├── SigningDelegationService.cs │ │ │ │ │ │ │ ├── SigningReceiptService.cs │ │ │ │ │ │ │ └── SigningService.cs │ │ │ │ │ │ └── SigneeCommunication.cs │ │ │ │ │ ├── Telemetry/ │ │ │ │ │ │ ├── Signing/ │ │ │ │ │ │ │ ├── Telemetry.SignDocumentManager.cs │ │ │ │ │ │ │ ├── Telemetry.SigneeContextsManager.cs │ │ │ │ │ │ │ ├── Telemetry.SigningCallToActionService.cs │ │ │ │ │ │ │ ├── Telemetry.SigningDelegationService.cs │ │ │ │ │ │ │ ├── Telemetry.SigningReceiptService.cs │ │ │ │ │ │ │ └── Telemetry.SigningService.cs │ │ │ │ │ │ ├── Telemetry.AccessManagement.cs │ │ │ │ │ │ ├── Telemetry.AppOptionsService.cs │ │ │ │ │ │ ├── Telemetry.ApplicationLanguage.cs │ │ │ │ │ │ ├── Telemetry.ApplicationMetadata.Client.cs │ │ │ │ │ │ ├── Telemetry.ApplicationMetadata.Service.cs │ │ │ │ │ │ ├── Telemetry.Authentication.cs │ │ │ │ │ │ ├── Telemetry.Authorization.Client.cs │ │ │ │ │ │ ├── Telemetry.Authorization.Service.cs │ │ │ │ │ │ ├── Telemetry.Correspondence.cs │ │ │ │ │ │ ├── Telemetry.Data.cs │ │ │ │ │ │ ├── Telemetry.DataClient.cs │ │ │ │ │ │ ├── Telemetry.DataList.cs │ │ │ │ │ │ ├── Telemetry.ErClient.cs │ │ │ │ │ │ ├── Telemetry.EventsClient.cs │ │ │ │ │ │ ├── Telemetry.Fiks.cs │ │ │ │ │ │ ├── Telemetry.FileAnalysis.cs │ │ │ │ │ │ ├── Telemetry.FileValidation.cs │ │ │ │ │ │ ├── Telemetry.InstanceDataAccessor.cs │ │ │ │ │ │ ├── Telemetry.InstanceLockClient.cs │ │ │ │ │ │ ├── Telemetry.Instances.cs │ │ │ │ │ │ ├── Telemetry.Maskinporten.cs │ │ │ │ │ │ ├── Telemetry.ModelSerialization.cs │ │ │ │ │ │ ├── Telemetry.Notifications.cs │ │ │ │ │ │ ├── Telemetry.PartyClient.cs │ │ │ │ │ │ ├── Telemetry.Payment.cs │ │ │ │ │ │ ├── Telemetry.PdfGeneratorClient.cs │ │ │ │ │ │ ├── Telemetry.PdfService.cs │ │ │ │ │ │ ├── Telemetry.Prefill.Service.cs │ │ │ │ │ │ ├── Telemetry.ProcessClient.cs │ │ │ │ │ │ ├── Telemetry.ProcessReader.cs │ │ │ │ │ │ ├── Telemetry.Processes.cs │ │ │ │ │ │ ├── Telemetry.ProfileClient.cs │ │ │ │ │ │ ├── Telemetry.RegisterClient.cs │ │ │ │ │ │ ├── Telemetry.ScopeAuthorization.cs │ │ │ │ │ │ ├── Telemetry.UserHelper.cs │ │ │ │ │ │ ├── Telemetry.Validation.cs │ │ │ │ │ │ ├── Telemetry.cs │ │ │ │ │ │ └── TelemetryActivityExtensions.cs │ │ │ │ │ └── Validation/ │ │ │ │ │ ├── Default/ │ │ │ │ │ │ ├── DataAnnotationValidator.cs │ │ │ │ │ │ ├── DefaultDataElementValidator.cs │ │ │ │ │ │ ├── DefaultTaskValidator.cs │ │ │ │ │ │ ├── ExpressionValidator.cs │ │ │ │ │ │ ├── LegacyIInstanceValidatorFormDataValidator.cs │ │ │ │ │ │ ├── LegacyIInstanceValidatorTaskValidator.cs │ │ │ │ │ │ ├── RequiredLayoutValidator.cs │ │ │ │ │ │ ├── SignatureHashValidator.cs │ │ │ │ │ │ └── SigningTaskValidator.cs │ │ │ │ │ ├── GenericFormDataValidator.cs │ │ │ │ │ ├── Helpers/ │ │ │ │ │ │ └── ModelStateHelpers.cs │ │ │ │ │ ├── IFileValidator.cs │ │ │ │ │ ├── NullInstantiationValidator.cs │ │ │ │ │ └── Wrappers/ │ │ │ │ │ ├── DataElementValidatorWrapper.cs │ │ │ │ │ ├── FormDataValidatorWrapper.cs │ │ │ │ │ └── TaskValidatorWrapper.cs │ │ │ │ ├── Helpers/ │ │ │ │ │ ├── AllowedContributorsHelper.cs │ │ │ │ │ ├── AppTextHelper.cs │ │ │ │ │ ├── AuthenticationHelper.cs │ │ │ │ │ ├── CamelCaseExceptDictionaryResolver.cs │ │ │ │ │ ├── DataHelper.cs │ │ │ │ │ ├── DataModel/ │ │ │ │ │ │ ├── DataModel.cs │ │ │ │ │ │ ├── DataModelException.cs │ │ │ │ │ │ ├── DataModelWrapper.cs │ │ │ │ │ │ └── RowRemovalOption.cs │ │ │ │ │ ├── Extensions/ │ │ │ │ │ │ ├── StringExtensions.cs │ │ │ │ │ │ └── Utf8JsonReaderExtentions.cs │ │ │ │ │ ├── InstantiationHelper.cs │ │ │ │ │ ├── JsonHelper.cs │ │ │ │ │ ├── JsonSerializerIgnorePrefix.cs │ │ │ │ │ ├── JsonSerializerPermissive.cs │ │ │ │ │ ├── LinqExpressionHelpers.cs │ │ │ │ │ ├── LogSanitizer.cs │ │ │ │ │ ├── MemoryAsStream.cs │ │ │ │ │ ├── MimeTypeMap.cs │ │ │ │ │ ├── MultiDecisionHelper.cs │ │ │ │ │ ├── NaturalStringComparerPolyfill.cs │ │ │ │ │ ├── ObjectUtils.cs │ │ │ │ │ ├── PathHelper.cs │ │ │ │ │ ├── PlatformHttpException.cs │ │ │ │ │ ├── PlatformHttpResponseSnapshotException.cs │ │ │ │ │ ├── ProcessError.cs │ │ │ │ │ ├── ProcessHelper.cs │ │ │ │ │ ├── RemoveBomExtentions.cs │ │ │ │ │ ├── ResponseWrapperStream.cs │ │ │ │ │ ├── SelfLinkHelper.cs │ │ │ │ │ ├── Serialization/ │ │ │ │ │ │ ├── ModelDeserializer.cs │ │ │ │ │ │ └── ModelSerializationService.cs │ │ │ │ │ ├── ServiceException.cs │ │ │ │ │ ├── ShadowFieldsConverter.cs │ │ │ │ │ ├── UrlHelper.cs │ │ │ │ │ └── UserHelper.cs │ │ │ │ ├── Implementation/ │ │ │ │ │ ├── AppResourcesSI.cs │ │ │ │ │ ├── DefaultAppEvents.cs │ │ │ │ │ ├── PrefillSI.cs │ │ │ │ │ └── UserTokenProvider.cs │ │ │ │ ├── Infrastructure/ │ │ │ │ │ └── Clients/ │ │ │ │ │ ├── AccessManagement/ │ │ │ │ │ │ └── AccessManagementClient.cs │ │ │ │ │ ├── Authentication/ │ │ │ │ │ │ └── AuthenticationClient.cs │ │ │ │ │ ├── Authorization/ │ │ │ │ │ │ └── AuthorizationClient.cs │ │ │ │ │ ├── Events/ │ │ │ │ │ │ ├── EventsClient.cs │ │ │ │ │ │ ├── EventsSubscriptionClient.cs │ │ │ │ │ │ ├── Subscription.cs │ │ │ │ │ │ └── SubscriptionRequest.cs │ │ │ │ │ ├── KeyVault/ │ │ │ │ │ │ ├── SecretsClient.cs │ │ │ │ │ │ └── SecretsLocalClient.cs │ │ │ │ │ ├── Pdf/ │ │ │ │ │ │ └── PdfGeneratorClient.cs │ │ │ │ │ ├── Profile/ │ │ │ │ │ │ ├── ProfileClient.cs │ │ │ │ │ │ └── ProfileClientCachingDecorator.cs │ │ │ │ │ ├── Register/ │ │ │ │ │ │ ├── AltinnPartyClient.cs │ │ │ │ │ │ ├── PersonClient.cs │ │ │ │ │ │ └── RegisterERClient.cs │ │ │ │ │ ├── Secrets/ │ │ │ │ │ │ └── AppCodesSettings.cs │ │ │ │ │ └── Storage/ │ │ │ │ │ ├── ApplicationClient.cs │ │ │ │ │ ├── DataClient.cs │ │ │ │ │ ├── InstanceClient.cs │ │ │ │ │ ├── InstanceEventClient.cs │ │ │ │ │ ├── InstanceLockClient.cs │ │ │ │ │ ├── ProcessClient.cs │ │ │ │ │ ├── SignClient.cs │ │ │ │ │ └── TextClient.cs │ │ │ │ ├── Interface/ │ │ │ │ │ ├── IAppEvents.cs │ │ │ │ │ ├── IApplication.cs │ │ │ │ │ ├── IAuthentication.cs │ │ │ │ │ ├── IAuthorization.cs │ │ │ │ │ ├── IDSF.cs │ │ │ │ │ ├── IData.cs │ │ │ │ │ ├── IER.cs │ │ │ │ │ ├── IEvents.cs │ │ │ │ │ ├── IInstance.cs │ │ │ │ │ ├── IInstanceEvent.cs │ │ │ │ │ ├── IPersonLookup.cs │ │ │ │ │ ├── IPersonRetriever.cs │ │ │ │ │ ├── IPrefill.cs │ │ │ │ │ ├── IProcess.cs │ │ │ │ │ ├── IProfile.cs │ │ │ │ │ ├── IRegister.cs │ │ │ │ │ ├── ISecrets.cs │ │ │ │ │ ├── ITaskEvents.cs │ │ │ │ │ └── IUserTokenProvider.cs │ │ │ │ ├── Internal/ │ │ │ │ │ ├── AccessManagement/ │ │ │ │ │ │ ├── Exceptions/ │ │ │ │ │ │ │ ├── AccessManagementArgumentException.cs │ │ │ │ │ │ │ ├── AccessManagementException.cs │ │ │ │ │ │ │ └── AccessManagementRequestException.cs │ │ │ │ │ │ ├── Helpers/ │ │ │ │ │ │ │ └── UrlHelper.cs │ │ │ │ │ │ └── Models/ │ │ │ │ │ │ ├── DelegationConstants.cs │ │ │ │ │ │ ├── DelegationRequest.cs │ │ │ │ │ │ ├── DelegationResponse.cs │ │ │ │ │ │ └── Shared/ │ │ │ │ │ │ ├── AltinnAction.cs │ │ │ │ │ │ ├── AppsInstanceDelegationRequestDto.cs │ │ │ │ │ │ ├── DelegationParty.cs │ │ │ │ │ │ ├── Resource.cs │ │ │ │ │ │ └── RightDto.cs │ │ │ │ │ ├── AltinnCdn/ │ │ │ │ │ │ ├── AltinnCdnClient.cs │ │ │ │ │ │ ├── AltinnCdnOrgs.cs │ │ │ │ │ │ └── IAltinnCdnClient.cs │ │ │ │ │ ├── App/ │ │ │ │ │ │ ├── AppMetadata.cs │ │ │ │ │ │ ├── ApplicationConfigException.cs │ │ │ │ │ │ ├── FrontendFeatures.cs │ │ │ │ │ │ ├── IAppEvents.cs │ │ │ │ │ │ ├── IAppMetadata.cs │ │ │ │ │ │ ├── IAppResources.cs │ │ │ │ │ │ ├── IApplicationClient.cs │ │ │ │ │ │ ├── IFrontendFeatures.cs │ │ │ │ │ │ ├── IIndexPageGenerator.cs │ │ │ │ │ │ └── IndexPageGenerator.cs │ │ │ │ │ ├── AppModel/ │ │ │ │ │ │ ├── DefaultAppModel.cs │ │ │ │ │ │ └── IAppModel.cs │ │ │ │ │ ├── Auth/ │ │ │ │ │ │ ├── AuthenticationTokenResolver.cs │ │ │ │ │ │ ├── AuthorizationService.cs │ │ │ │ │ │ ├── IAuthenticationClient.cs │ │ │ │ │ │ ├── IAuthenticationTokenResolver.cs │ │ │ │ │ │ ├── IAuthorizationClient.cs │ │ │ │ │ │ ├── IAuthorizationService.cs │ │ │ │ │ │ └── IUserTokenProvider.cs │ │ │ │ │ ├── Data/ │ │ │ │ │ │ ├── CleanInstanceDataAccessor.cs │ │ │ │ │ │ ├── DataElementAccessChecker.cs │ │ │ │ │ │ ├── DataElementCache.cs │ │ │ │ │ │ ├── DataService.cs │ │ │ │ │ │ ├── FormDataWrapperFactory.cs │ │ │ │ │ │ ├── IDataClient.cs │ │ │ │ │ │ ├── IDataElementAccessChecker.cs │ │ │ │ │ │ ├── IDataService.cs │ │ │ │ │ │ ├── IFormDataWrapper.cs │ │ │ │ │ │ ├── InstanceDataUnitOfWork.cs │ │ │ │ │ │ ├── InstanceDataUnitOfWorkInitializer.cs │ │ │ │ │ │ ├── PreviousDataAccessor.cs │ │ │ │ │ │ └── ReflectionFormDataWrapper.cs │ │ │ │ │ ├── Events/ │ │ │ │ │ │ ├── EventHandlerResolver.cs │ │ │ │ │ │ ├── IEventHandlerResolver.cs │ │ │ │ │ │ ├── IEventSecretCodeProvider.cs │ │ │ │ │ │ ├── IEventsClient.cs │ │ │ │ │ │ ├── IEventsSubscription.cs │ │ │ │ │ │ ├── KeyVaultSecretCodeProvider.cs │ │ │ │ │ │ ├── SubscriptionValidationHandler.cs │ │ │ │ │ │ └── UnhandledEventHandler.cs │ │ │ │ │ ├── Expressions/ │ │ │ │ │ │ ├── ExpressionEvaluator.cs │ │ │ │ │ │ ├── ExpressionEvaluatorTypeErrorException.cs │ │ │ │ │ │ ├── ExpressionValue.cs │ │ │ │ │ │ ├── ILayoutEvaluatorStateInitializer.cs │ │ │ │ │ │ ├── LayoutEvaluator.cs │ │ │ │ │ │ ├── LayoutEvaluatorState.cs │ │ │ │ │ │ ├── LayoutEvaluatorStateInitializer.cs │ │ │ │ │ │ └── UnicodeDateTimeTokenConverter.cs │ │ │ │ │ ├── InstanceLocking/ │ │ │ │ │ │ ├── IInstanceLocker.cs │ │ │ │ │ │ └── InstanceLocker.cs │ │ │ │ │ ├── Instances/ │ │ │ │ │ │ ├── IInstanceClient.cs │ │ │ │ │ │ └── IInstanceEventClient.cs │ │ │ │ │ ├── Language/ │ │ │ │ │ │ ├── ApplicationLanguage.cs │ │ │ │ │ │ ├── IApplicationLanguage.cs │ │ │ │ │ │ └── LanguageConst.cs │ │ │ │ │ ├── Linq/ │ │ │ │ │ │ └── Extensions.cs │ │ │ │ │ ├── LocaltestValidation.cs │ │ │ │ │ ├── Pdf/ │ │ │ │ │ │ ├── IPdfGeneratorClient.cs │ │ │ │ │ │ ├── IPdfService.cs │ │ │ │ │ │ ├── PdfGenerationException.cs │ │ │ │ │ │ ├── PdfGeneratorSettings.cs │ │ │ │ │ │ └── PdfService.cs │ │ │ │ │ ├── Prefill/ │ │ │ │ │ │ └── IPrefill.cs │ │ │ │ │ ├── Process/ │ │ │ │ │ │ ├── Authorization/ │ │ │ │ │ │ │ ├── IUserActionAuthorizerProvider.cs │ │ │ │ │ │ │ ├── UserActionAuthorizerProvider.cs │ │ │ │ │ │ │ └── UserActionAuthorizerServiceCollectionExtension.cs │ │ │ │ │ │ ├── Elements/ │ │ │ │ │ │ │ ├── AltinnExtensionProperties/ │ │ │ │ │ │ │ │ ├── AltinnAction.cs │ │ │ │ │ │ │ │ ├── AltinnEFormidlingConfiguration.cs │ │ │ │ │ │ │ │ ├── AltinnEnvironmentConfig.cs │ │ │ │ │ │ │ │ ├── AltinnExtensionConfigValidationExtensions.cs │ │ │ │ │ │ │ │ ├── AltinnGatewayExtension.cs │ │ │ │ │ │ │ │ ├── AltinnPaymentConfiguration.cs │ │ │ │ │ │ │ │ ├── AltinnPdfConfiguration.cs │ │ │ │ │ │ │ │ ├── AltinnSignatureConfiguration.cs │ │ │ │ │ │ │ │ ├── AltinnSubformPdfConfiguration.cs │ │ │ │ │ │ │ │ └── AltinnTaskExtension.cs │ │ │ │ │ │ │ ├── AppProcessElementInfo.cs │ │ │ │ │ │ │ ├── AppProcessState.cs │ │ │ │ │ │ │ ├── AppProcessTaskTypeInfo.cs │ │ │ │ │ │ │ ├── Base/ │ │ │ │ │ │ │ │ └── ProcessElement.cs │ │ │ │ │ │ │ ├── Definitions.cs │ │ │ │ │ │ │ ├── EndEvent.cs │ │ │ │ │ │ │ ├── ExclusiveGateway.cs │ │ │ │ │ │ │ ├── ExtensionElements.cs │ │ │ │ │ │ │ ├── Process.cs │ │ │ │ │ │ │ ├── ProcessTask.cs │ │ │ │ │ │ │ ├── SequenceFlow.cs │ │ │ │ │ │ │ ├── ServiceTask.cs │ │ │ │ │ │ │ ├── StartEvent.cs │ │ │ │ │ │ │ └── UserAction.cs │ │ │ │ │ │ ├── EventHandlers/ │ │ │ │ │ │ │ ├── EndEventEventHandler.cs │ │ │ │ │ │ │ ├── IEndEventEventHandler.cs │ │ │ │ │ │ │ └── ProcessTask/ │ │ │ │ │ │ │ ├── AbandonTaskEventHandler.cs │ │ │ │ │ │ │ ├── EndTaskEventHandler.cs │ │ │ │ │ │ │ ├── Interfaces/ │ │ │ │ │ │ │ │ ├── IAbandonTaskEventHandler.cs │ │ │ │ │ │ │ │ ├── IEndTaskEventHandler.cs │ │ │ │ │ │ │ │ └── IStartTaskEventHandler.cs │ │ │ │ │ │ │ └── StartTaskEventHandler.cs │ │ │ │ │ │ ├── ExclusiveGatewayFactory.cs │ │ │ │ │ │ ├── ExpressionsExclusiveGateway.cs │ │ │ │ │ │ ├── Interfaces/ │ │ │ │ │ │ │ ├── IProcessClient.cs │ │ │ │ │ │ │ ├── IProcessEngine.cs │ │ │ │ │ │ │ ├── IProcessEngineAuthorizer.cs │ │ │ │ │ │ │ ├── IProcessEventDispatcher.cs │ │ │ │ │ │ │ ├── IProcessEventHandlerDelegator.cs │ │ │ │ │ │ │ ├── IProcessNavigator.cs │ │ │ │ │ │ │ └── IProcessReader.cs │ │ │ │ │ │ ├── ProcessEngine.cs │ │ │ │ │ │ ├── ProcessEngineAuthorizer.cs │ │ │ │ │ │ ├── ProcessEventDispatcher.cs │ │ │ │ │ │ ├── ProcessEventHandlingDelegator.cs │ │ │ │ │ │ ├── ProcessException.cs │ │ │ │ │ │ ├── ProcessNavigator.cs │ │ │ │ │ │ ├── ProcessReader.cs │ │ │ │ │ │ ├── ProcessReaderExtensions.cs │ │ │ │ │ │ ├── ProcessSequenceFlowType.cs │ │ │ │ │ │ ├── ProcessStateEnricher.cs │ │ │ │ │ │ └── ProcessTasks/ │ │ │ │ │ │ ├── Common/ │ │ │ │ │ │ │ ├── IProcessTaskCleaner.cs │ │ │ │ │ │ │ ├── IProcessTaskDataLocker.cs │ │ │ │ │ │ │ ├── IProcessTaskFinalizer.cs │ │ │ │ │ │ │ ├── IProcessTaskInitializer.cs │ │ │ │ │ │ │ ├── ProcessTaskCleaner.cs │ │ │ │ │ │ │ ├── ProcessTaskDataLocker.cs │ │ │ │ │ │ │ ├── ProcessTaskFinalizer.cs │ │ │ │ │ │ │ └── ProcessTaskInitializer.cs │ │ │ │ │ │ ├── ConfirmationProcessTask.cs │ │ │ │ │ │ ├── DataProcessTask.cs │ │ │ │ │ │ ├── FeedbackProcessTask.cs │ │ │ │ │ │ ├── IProcessTask.cs │ │ │ │ │ │ ├── NullTypeProcessTask.cs │ │ │ │ │ │ ├── PaymentProcessTask.cs │ │ │ │ │ │ ├── ServiceTasks/ │ │ │ │ │ │ │ ├── EFormidlingServiceTask.cs │ │ │ │ │ │ │ ├── IServiceTask.cs │ │ │ │ │ │ │ ├── Legacy/ │ │ │ │ │ │ │ │ ├── EformidlingServiceTaskLegacy.cs │ │ │ │ │ │ │ │ └── PdfServiceTaskLegacy.cs │ │ │ │ │ │ │ ├── PdfServiceTask.cs │ │ │ │ │ │ │ └── SubformPdfServiceTask.cs │ │ │ │ │ │ └── SigningProcessTask.cs │ │ │ │ │ ├── Profile/ │ │ │ │ │ │ └── IProfileClient.cs │ │ │ │ │ ├── Registers/ │ │ │ │ │ │ ├── IAltinnPartyClient.cs │ │ │ │ │ │ ├── IOrganizationClient.cs │ │ │ │ │ │ ├── IPersonClient.cs │ │ │ │ │ │ └── RegisterClient.cs │ │ │ │ │ ├── RuntimeEnvironment.cs │ │ │ │ │ ├── Secrets/ │ │ │ │ │ │ └── ISecretsClient.cs │ │ │ │ │ ├── Sign/ │ │ │ │ │ │ ├── ISignClient.cs │ │ │ │ │ │ └── SignatureContext.cs │ │ │ │ │ ├── Texts/ │ │ │ │ │ │ ├── IText.cs │ │ │ │ │ │ ├── ITranslationService.cs │ │ │ │ │ │ └── TranslationService.cs │ │ │ │ │ └── Validation/ │ │ │ │ │ ├── FileValidationService.cs │ │ │ │ │ ├── FileValidatorFactory.cs │ │ │ │ │ ├── IFileValidationService.cs │ │ │ │ │ ├── IFileValidatorFactory.cs │ │ │ │ │ ├── IValidationService.cs │ │ │ │ │ ├── IValidatorFactory.cs │ │ │ │ │ └── ValidationService.cs │ │ │ │ └── Models/ │ │ │ │ ├── AppIdentifier.cs │ │ │ │ ├── AppOption.cs │ │ │ │ ├── AppOptions.cs │ │ │ │ ├── AppResourceId.cs │ │ │ │ ├── ApplicationLanguage.cs │ │ │ │ ├── ApplicationMetadata.cs │ │ │ │ ├── Attachment.cs │ │ │ │ ├── AttachmentList.cs │ │ │ │ ├── BrowserAssetsConfiguration.cs │ │ │ │ ├── CalculationResult.cs │ │ │ │ ├── CloudEvent.cs │ │ │ │ ├── Components.cs │ │ │ │ ├── DataElementChanges.cs │ │ │ │ ├── DataElementIdentifier.cs │ │ │ │ ├── DataList.cs │ │ │ │ ├── DataListMetadata.cs │ │ │ │ ├── Expressions/ │ │ │ │ │ ├── ComponentContext.cs │ │ │ │ │ ├── Expression.cs │ │ │ │ │ ├── ExpressionConverter.cs │ │ │ │ │ └── ExpressionFunction.cs │ │ │ │ ├── GlobalPageSettings.cs │ │ │ │ ├── InstanceIdentifier.cs │ │ │ │ ├── InstanceSelection.cs │ │ │ │ ├── JwtToken.cs │ │ │ │ ├── JwtTokenJsonConverter.cs │ │ │ │ ├── LanguageCode.cs │ │ │ │ ├── LanguageCodeJsonConverter.cs │ │ │ │ ├── Layout/ │ │ │ │ │ ├── Components/ │ │ │ │ │ │ ├── Base/ │ │ │ │ │ │ │ ├── BaseComponent.cs │ │ │ │ │ │ │ ├── BaseLayoutComponent.cs │ │ │ │ │ │ │ ├── NoReferenceComponent.cs │ │ │ │ │ │ │ └── ReferenceComponent.cs │ │ │ │ │ │ ├── CardsComponent.cs │ │ │ │ │ │ ├── GridComponent.cs │ │ │ │ │ │ ├── LikertComponent.cs │ │ │ │ │ │ ├── NonRepeatingGroupComponent.cs │ │ │ │ │ │ ├── OptionsComponent.cs │ │ │ │ │ │ ├── PageComponent.cs │ │ │ │ │ │ ├── RepeatingGroupComponent.cs │ │ │ │ │ │ ├── SubFormComponent.cs │ │ │ │ │ │ ├── TabsComponent.cs │ │ │ │ │ │ ├── UnknownComponent.cs │ │ │ │ │ │ └── _readme.md │ │ │ │ │ ├── DataReference.cs │ │ │ │ │ ├── LayoutModel.cs │ │ │ │ │ ├── ModelBinding.cs │ │ │ │ │ └── UiFolderComponent.cs │ │ │ │ ├── LayoutSet.cs │ │ │ │ ├── LayoutSettings.cs │ │ │ │ ├── Logo.cs │ │ │ │ ├── MimeType.cs │ │ │ │ ├── NationalIdentityNumber.cs │ │ │ │ ├── NationalIdentityNumberJsonConverter.cs │ │ │ │ ├── Notifications/ │ │ │ │ │ ├── Email/ │ │ │ │ │ │ ├── EmailNotification.cs │ │ │ │ │ │ ├── EmailNotificationException.cs │ │ │ │ │ │ ├── EmailOrderResponse.cs │ │ │ │ │ │ └── EmailRecipient.cs │ │ │ │ │ ├── Future/ │ │ │ │ │ │ ├── InstansiationNotification.cs │ │ │ │ │ │ ├── NotificationOrderException.cs │ │ │ │ │ │ ├── NotificationOrderRequest.cs │ │ │ │ │ │ └── NotificationOrderResponse.cs │ │ │ │ │ ├── Order/ │ │ │ │ │ │ └── NotificationCancelException.cs │ │ │ │ │ └── Sms/ │ │ │ │ │ ├── SmsNotification.cs │ │ │ │ │ ├── SmsNotificationException.cs │ │ │ │ │ ├── SmsOrderResponse.cs │ │ │ │ │ └── SmsRecipient.cs │ │ │ │ ├── OnEntry.cs │ │ │ │ ├── OrganisationNumber.cs │ │ │ │ ├── OrganisationNumberJsonConverter.cs │ │ │ │ ├── OrganisationOrPersonIdentifier.cs │ │ │ │ ├── OrganisationOrPersonIdentifierJsonConverter.cs │ │ │ │ ├── PageGroup.cs │ │ │ │ ├── Pages.cs │ │ │ │ ├── Pdf/ │ │ │ │ │ ├── PdfGeneratorCookieOptions.cs │ │ │ │ │ ├── PdfGeneratorRequest.cs │ │ │ │ │ └── PdfGeneratorRequestOptions.cs │ │ │ │ ├── Process/ │ │ │ │ │ ├── ProcessChangeResult.cs │ │ │ │ │ ├── ProcessGatewayInformation.cs │ │ │ │ │ ├── ProcessNextRequest.cs │ │ │ │ │ ├── ProcessStartRequest.cs │ │ │ │ │ └── ProcessStateChange.cs │ │ │ │ ├── QueryResponse.cs │ │ │ │ ├── Result/ │ │ │ │ │ └── ServiceResult.cs │ │ │ │ ├── StylesConfig.cs │ │ │ │ ├── TaskNavigationEntryJsonConverter.cs │ │ │ │ ├── UiConfiguration.cs │ │ │ │ ├── UserAction/ │ │ │ │ │ ├── ActionError.cs │ │ │ │ │ ├── ClientAction.cs │ │ │ │ │ ├── UserActionContext.cs │ │ │ │ │ └── UserActionResult.cs │ │ │ │ ├── UserContext.cs │ │ │ │ └── Validation/ │ │ │ │ ├── ExpressionValidation.cs │ │ │ │ ├── FrontendSeverityConverter.cs │ │ │ │ ├── InstantiationValidationResult.cs │ │ │ │ ├── ValidationException.cs │ │ │ │ ├── ValidationIssue.cs │ │ │ │ ├── ValidationIssueCodes.cs │ │ │ │ ├── ValidationIssueSeverity.cs │ │ │ │ ├── ValidationIssueSource.cs │ │ │ │ └── ValidationIssueWithSource.cs │ │ │ ├── Altinn.App.Internal.Analyzers/ │ │ │ │ ├── Altinn.App.Internal.Analyzers.csproj │ │ │ │ ├── AnalyzerReleases.Shipped.md │ │ │ │ ├── AnalyzerReleases.Unshipped.md │ │ │ │ └── AppImplementationInjectionAnalyzer.cs │ │ │ ├── Directory.Build.props │ │ │ └── Directory.Build.targets │ │ └── test/ │ │ ├── Altinn.App.Analyzers.Tests/ │ │ │ ├── Altinn.App.Analyzers.Tests.csproj │ │ │ ├── Fixtures/ │ │ │ │ ├── AltinnAppCoreFixture.cs │ │ │ │ ├── AltinnTestAppFixture.Contents.cs │ │ │ │ ├── AltinnTestAppFixture.cs │ │ │ │ ├── BaseFixture.cs │ │ │ │ ├── Collections.cs │ │ │ │ ├── DiagnosticJsonConverter.cs │ │ │ │ └── ProjectModification.cs │ │ │ ├── HttpContextAccessorUsageAnalyzerTests.cs │ │ │ ├── Internal/ │ │ │ │ └── AppImplementationInjectionAnalyzerTests.cs │ │ │ ├── ModuleInitializer.cs │ │ │ ├── _snapshots/ │ │ │ │ ├── AppImplementationInjectionAnalyzerTests.Emits_Diagnostics.verified.txt │ │ │ │ └── HttpContextAccessorUsageAnalyzerTests.Emits_Diagnostic.verified.txt │ │ │ └── testapp/ │ │ │ ├── .altinnstudio/ │ │ │ │ └── settings.json │ │ │ ├── .dockerignore │ │ │ ├── .gitignore │ │ │ ├── App/ │ │ │ │ ├── App.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── additional/ │ │ │ │ │ └── InvalidHttpContextAccessorUse.cs │ │ │ │ ├── appsettings.Development.json │ │ │ │ ├── appsettings.Production.json │ │ │ │ ├── appsettings.Staging.json │ │ │ │ ├── appsettings.json │ │ │ │ ├── config/ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ ├── authorization/ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ ├── process/ │ │ │ │ │ │ └── process.bpmn │ │ │ │ │ └── texts/ │ │ │ │ │ └── resource.nb.json │ │ │ │ ├── models/ │ │ │ │ │ ├── model.cs │ │ │ │ │ ├── model.metadata.json │ │ │ │ │ ├── model.schema.json │ │ │ │ │ └── model.xsd │ │ │ │ └── ui/ │ │ │ │ ├── Task_1/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ └── Side1.json │ │ │ │ └── footer.json │ │ │ ├── App.sln │ │ │ ├── Directory.Build.props │ │ │ ├── Dockerfile │ │ │ └── deployment/ │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ └── values.yaml │ │ ├── Altinn.App.Api.Tests/ │ │ │ ├── Altinn.App.Api.Tests.csproj │ │ │ ├── Controllers/ │ │ │ │ ├── ActionsControllerTests.cs │ │ │ │ ├── ApplicationMetadataControllerTests.cs │ │ │ │ ├── Conventions/ │ │ │ │ │ ├── AltinnApiJsonFormatterTests.cs │ │ │ │ │ ├── AltinnControllerConventionTests.cs │ │ │ │ │ ├── ConfigureMvcJsonOptionsTests.cs │ │ │ │ │ └── EnumSerializationTests.cs │ │ │ │ ├── DataControllerPatchTests.InvalidTestValue_ReturnsConflict.verified.txt │ │ │ │ ├── DataControllerTests.cs │ │ │ │ ├── DataController_LayoutEvaluatorTests.cs │ │ │ │ ├── DataController_PatchTests.cs │ │ │ │ ├── DataController_PostTests.cs │ │ │ │ ├── DataController_PutTests.cs │ │ │ │ ├── DataController_RequiredActionTests.cs │ │ │ │ ├── DataController_UserAccessTests.cs │ │ │ │ ├── DataTagsControllerTests.cs │ │ │ │ ├── EventsReceiverControllerTests.cs │ │ │ │ ├── ExternalApiControllerTests.cs │ │ │ │ ├── FileScanControllerTests.cs │ │ │ │ ├── FormBootstrapControllerTests.cs │ │ │ │ ├── HomeControllerTest_PartySelection.cs │ │ │ │ ├── HomeControllerTest_SetQueryParams.Ensure_ok_request_when_query_params_are_valid.verified.txt │ │ │ │ ├── HomeControllerTest_SetQueryParams.Ensure_only_one_content_security_policy.verified.txt │ │ │ │ ├── HomeControllerTest_SetQueryParams.ReturnsMappedModelWhenValidationSucceds.verified.txt │ │ │ │ ├── HomeControllerTest_SetQueryParams.SetQueryParms_ReturnBadRequestWhenValidationFails.verified.txt │ │ │ │ ├── HomeControllerTest_SetQueryParams.cs │ │ │ │ ├── InstancesControllerFixture.cs │ │ │ │ ├── InstancesController_ActiveInstancesTests.cs │ │ │ │ ├── InstancesController_CopyInstanceTests.cs │ │ │ │ ├── InstancesController_GetTests.ReturnsOkResult_Deserialized.verified.txt │ │ │ │ ├── InstancesController_GetTests.ReturnsOkResult_Raw.verified.txt │ │ │ │ ├── InstancesController_GetTests.cs │ │ │ │ ├── InstancesController_PostNewInstanceTests.PostNewInstance_Simplified_Org.verified.txt │ │ │ │ ├── InstancesController_PostNewInstanceTests.PostNewInstance_Simplified_SelfIdentifiedUser.verified.txt │ │ │ │ ├── InstancesController_PostNewInstanceTests.PostNewInstance_Simplified_ServiceOwner.verified.txt │ │ │ │ ├── InstancesController_PostNewInstanceTests.PostNewInstance_Simplified_SystemUser.verified.txt │ │ │ │ ├── InstancesController_PostNewInstanceTests.PostNewInstance_Simplified_User.verified.txt │ │ │ │ ├── InstancesController_PostNewInstanceTests.cs │ │ │ │ ├── LookupOrganisationControllerTests.cs │ │ │ │ ├── LookupPersonControllerTests.cs │ │ │ │ ├── NotificationCallbackControllerTests.cs │ │ │ │ ├── OptionsControllerTests.cs │ │ │ │ ├── PaymentControllerTests.cs │ │ │ │ ├── PdfControllerTests.cs │ │ │ │ ├── ProcessControllerTests.RunProcessNext_FailingValidator_Reject_ReturnsOk.verified.txt │ │ │ │ ├── ProcessControllerTests.RunProcessNext_FailingValidator_ReturnsValidationErrors.verified.txt │ │ │ │ ├── ProcessControllerTests.RunProcessNext_PdfFails_DataIsUnlocked.verified.txt │ │ │ │ ├── ProcessControllerTests.cs │ │ │ │ ├── ProfileControllerTests.PartyClient_401.verified.txt │ │ │ │ ├── ProfileControllerTests.User.verified.txt │ │ │ │ ├── ProfileControllerTests.cs │ │ │ │ ├── SigningControllerTests.cs │ │ │ │ ├── StatelessDataControllerTests.cs │ │ │ │ ├── TestResources/ │ │ │ │ │ └── DummyModel.cs │ │ │ │ ├── TextsControllerTests.cs │ │ │ │ ├── UserDefinedMetadataControllerTests.cs │ │ │ │ ├── ValidateControllerTests.cs │ │ │ │ ├── ValidateControllerValidateDataTests.cs │ │ │ │ └── ValidateController_ValidateInstanceTests.cs │ │ │ ├── CustomWebApplicationFactory.cs │ │ │ ├── Data/ │ │ │ │ ├── Instances/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── tdd/ │ │ │ │ │ │ ├── contributer-restriction/ │ │ │ │ │ │ │ ├── 1337/ │ │ │ │ │ │ │ │ ├── 0fc98a23-fe31-4ef5-8fb9-dd3f479354cd.pretest.json │ │ │ │ │ │ │ │ └── 1fc98a23-fe31-4ef5-8fb9-dd3f479354ce.pretest.json │ │ │ │ │ │ │ ├── 500000/ │ │ │ │ │ │ │ │ └── 5d9e906b-83ed-44df-85a7-2f104c640bff.pretest.json │ │ │ │ │ │ │ └── 500600/ │ │ │ │ │ │ │ ├── 00000000-dead-0000-babe-000000000999/ │ │ │ │ │ │ │ │ ├── blob/ │ │ │ │ │ │ │ │ │ └── cd691c32-0000-4555-8aee-0b7054a413e4.pretest │ │ │ │ │ │ │ │ └── cd691c32-0000-4555-8aee-0b7054a413e4.pretest.json │ │ │ │ │ │ │ ├── 00000000-dead-0000-babe-000000000999.pretest.json │ │ │ │ │ │ │ ├── 09e16a2d-e009-4f3a-940b-da1ea54a18b4/ │ │ │ │ │ │ │ │ ├── blob/ │ │ │ │ │ │ │ │ │ └── c52f40dd-11d1-4e24-b13b-4fcfdf6ca1c6.pretest │ │ │ │ │ │ │ │ └── c52f40dd-11d1-4e24-b13b-4fcfdf6ca1c6.pretest.json │ │ │ │ │ │ │ ├── 09e16a2d-e009-4f3a-940b-da1ea54a18b4.pretest.json │ │ │ │ │ │ │ ├── 0fc98a23-fe31-4ef5-8fb9-dd3f479354ce/ │ │ │ │ │ │ │ │ ├── blob/ │ │ │ │ │ │ │ │ │ ├── fc121812-0336-45fb-a75c-490df3ad5109.pretest │ │ │ │ │ │ │ │ │ └── fc121812-0336-45fb-a75c-490df3ad510a.pretest │ │ │ │ │ │ │ │ ├── fc121812-0336-45fb-a75c-490df3ad5109.pretest.json │ │ │ │ │ │ │ │ └── fc121812-0336-45fb-a75c-490df3ad510a.pretest.json │ │ │ │ │ │ │ ├── 0fc98a23-fe31-4ef5-8fb9-dd3f479354ce.pretest.json │ │ │ │ │ │ │ ├── 3102f61d-1446-4ca5-9fed-3c7c7d67249c/ │ │ │ │ │ │ │ │ ├── 5240d834-dca6-44d3-b99a-1b7ca9b862af.pretest.json │ │ │ │ │ │ │ │ └── blob/ │ │ │ │ │ │ │ │ └── 5240d834-dca6-44d3-b99a-1b7ca9b862af.pretest │ │ │ │ │ │ │ ├── 3102f61d-1446-4ca5-9fed-3c7c7d67249c.pretest.json │ │ │ │ │ │ │ ├── 5a2fa5ec-f97c-4816-b57a-dc78a981917e/ │ │ │ │ │ │ │ │ ├── blob/ │ │ │ │ │ │ │ │ │ └── cd691c32-ae36-4555-8aee-0b7054a413e4.pretest │ │ │ │ │ │ │ │ └── cd691c32-ae36-4555-8aee-0b7054a413e4.pretest.json │ │ │ │ │ │ │ ├── 5a2fa5ec-f97c-4816-b57a-dc78a981917e.pretest.json │ │ │ │ │ │ │ ├── cff1cb24-5bc1-4888-8e06-c634753c5144/ │ │ │ │ │ │ │ │ ├── blob/ │ │ │ │ │ │ │ │ │ └── f3e04c65-aa70-40ec-84df-087cc2583402.pretest │ │ │ │ │ │ │ │ └── f3e04c65-aa70-40ec-84df-087cc2583402.pretest.json │ │ │ │ │ │ │ ├── cff1cb24-5bc1-4888-8e06-c634753c5144.pretest.json │ │ │ │ │ │ │ ├── fad57e80-ec2f-4dee-90ac-400fa6d7720f/ │ │ │ │ │ │ │ │ ├── 3b46b9ef-774c-4849-b4dd-66ef871f5b07.pretest.json │ │ │ │ │ │ │ │ └── blob/ │ │ │ │ │ │ │ │ └── 3b46b9ef-774c-4849-b4dd-66ef871f5b07.pretest │ │ │ │ │ │ │ └── fad57e80-ec2f-4dee-90ac-400fa6d7720f.pretest.json │ │ │ │ │ │ └── task-action/ │ │ │ │ │ │ └── 1337/ │ │ │ │ │ │ ├── b1135209-628e-4a6e-9efd-e4282068ef41.pretest.json │ │ │ │ │ │ ├── b1135209-628e-4a6e-9efd-e4282068ef42.pretest.json │ │ │ │ │ │ └── b1135209-628e-4a6e-9efd-e4282068ef43.pretest.json │ │ │ │ │ └── ttd/ │ │ │ │ │ └── service-tasks/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ └── 501337/ │ │ │ │ │ ├── a2af1cfd-db99-45f9-9625-9dfa1223485f/ │ │ │ │ │ │ ├── blob/ │ │ │ │ │ │ │ └── fd4c42a4-a6a0-4aec-b8e9-9f5d34c445ca.pretest │ │ │ │ │ │ └── fd4c42a4-a6a0-4aec-b8e9-9f5d34c445ca.pretest.json │ │ │ │ │ ├── a2af1cfd-db99-45f9-9625-9dfa1223485f.pretest.json │ │ │ │ │ └── b1af1cfd-db99-45f9-9625-9dfa1223485f.pretest.json │ │ │ │ ├── Register/ │ │ │ │ │ ├── Org/ │ │ │ │ │ │ ├── 897069631.json │ │ │ │ │ │ ├── 897069650.json │ │ │ │ │ │ ├── 897069651.json │ │ │ │ │ │ ├── 897069652.json │ │ │ │ │ │ ├── 897069653.json │ │ │ │ │ │ ├── 900000001.json │ │ │ │ │ │ ├── 910423185.json │ │ │ │ │ │ ├── 910423495.json │ │ │ │ │ │ ├── 910457292.json │ │ │ │ │ │ ├── 910471120.json │ │ │ │ │ │ └── 950474084.json │ │ │ │ │ └── Person/ │ │ │ │ │ ├── 01017512345.json │ │ │ │ │ ├── 01039012345.json │ │ │ │ │ ├── 01899699552.json │ │ │ │ │ ├── 08829698278.json │ │ │ │ │ └── 17858296439.json │ │ │ │ ├── TestData.cs │ │ │ │ ├── apps/ │ │ │ │ │ ├── tdd/ │ │ │ │ │ │ ├── contributer-restriction/ │ │ │ │ │ │ │ ├── appsettings.json │ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ │ │ ├── authorization/ │ │ │ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ │ │ │ ├── process/ │ │ │ │ │ │ │ │ │ └── process.bpmn │ │ │ │ │ │ │ │ └── texts/ │ │ │ │ │ │ │ │ └── resource.nb.json │ │ │ │ │ │ │ ├── models/ │ │ │ │ │ │ │ │ ├── Skjema.cs │ │ │ │ │ │ │ │ └── default.validation.json │ │ │ │ │ │ │ ├── options/ │ │ │ │ │ │ │ │ └── fileSourceOptions.json │ │ │ │ │ │ │ └── ui/ │ │ │ │ │ │ │ └── Task_1/ │ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ │ ├── hidden_page.json │ │ │ │ │ │ │ └── page.json │ │ │ │ │ │ ├── demo-app/ │ │ │ │ │ │ │ └── config/ │ │ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ │ │ ├── eformidling-app/ │ │ │ │ │ │ │ ├── appsettings.json │ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ │ │ ├── authorization/ │ │ │ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ │ │ │ ├── process/ │ │ │ │ │ │ │ │ │ └── process.bpmn │ │ │ │ │ │ │ │ └── texts/ │ │ │ │ │ │ │ │ └── resource.nb.json │ │ │ │ │ │ │ ├── logic/ │ │ │ │ │ │ │ │ ├── App.cs │ │ │ │ │ │ │ │ └── EFormidlingMetadata.cs │ │ │ │ │ │ │ ├── models/ │ │ │ │ │ │ │ │ ├── Skjema.cs │ │ │ │ │ │ │ │ └── Skjema.xsd │ │ │ │ │ │ │ └── ui/ │ │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ │ └── FormLayout.json │ │ │ │ │ │ ├── permissive-app/ │ │ │ │ │ │ │ ├── appsettings.json │ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ │ │ ├── authorization/ │ │ │ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ │ │ │ ├── process/ │ │ │ │ │ │ │ │ │ └── process.bpmn │ │ │ │ │ │ │ │ └── texts/ │ │ │ │ │ │ │ │ └── resource.nb.json │ │ │ │ │ │ │ ├── models/ │ │ │ │ │ │ │ │ ├── Skjema.cs │ │ │ │ │ │ │ │ └── default.validation.json │ │ │ │ │ │ │ ├── options/ │ │ │ │ │ │ │ │ └── fileSourceOptions.json │ │ │ │ │ │ │ └── ui/ │ │ │ │ │ │ │ └── Task_1/ │ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ │ └── page.json │ │ │ │ │ │ └── task-action/ │ │ │ │ │ │ ├── appsettings.json │ │ │ │ │ │ └── config/ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ ├── authorization/ │ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ │ ├── models/ │ │ │ │ │ │ │ └── Scheme.cs │ │ │ │ │ │ ├── process/ │ │ │ │ │ │ │ └── process.bpmn │ │ │ │ │ │ └── texts/ │ │ │ │ │ │ └── resource.nb.json │ │ │ │ │ └── ttd/ │ │ │ │ │ └── service-tasks/ │ │ │ │ │ ├── appsettings.json │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ ├── authorization/ │ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ │ ├── process/ │ │ │ │ │ │ │ └── process.bpmn │ │ │ │ │ │ └── texts/ │ │ │ │ │ │ └── resource.nb.json │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── Model.cs │ │ │ │ │ │ ├── Model.schema.json │ │ │ │ │ │ └── Model.xsd │ │ │ │ │ └── ui/ │ │ │ │ │ ├── Task_1/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ └── Side1.json │ │ │ │ │ └── footer.json │ │ │ │ └── authorization/ │ │ │ │ ├── claims/ │ │ │ │ │ ├── 12345.json │ │ │ │ │ └── 1337.json │ │ │ │ ├── partylist/ │ │ │ │ │ ├── 1001.json │ │ │ │ │ ├── 1002.json │ │ │ │ │ ├── 1003.json │ │ │ │ │ ├── 12345.json │ │ │ │ │ └── 1337.json │ │ │ │ ├── resources/ │ │ │ │ │ ├── Appid_119.json │ │ │ │ │ ├── Appid_120.json │ │ │ │ │ ├── Appid_122.json │ │ │ │ │ ├── Appid_123.json │ │ │ │ │ ├── Appid_124.json │ │ │ │ │ ├── Appid_125.json │ │ │ │ │ ├── Appid_126.json │ │ │ │ │ ├── Appid_127.json │ │ │ │ │ ├── Appid_128.json │ │ │ │ │ ├── Appid_129.json │ │ │ │ │ ├── Appid_130.json │ │ │ │ │ ├── Appid_132.json │ │ │ │ │ ├── Appid_133.json │ │ │ │ │ ├── Appid_134.json │ │ │ │ │ ├── Appid_136.json │ │ │ │ │ ├── Appid_137.json │ │ │ │ │ ├── Appid_138.json │ │ │ │ │ ├── Appid_139.json │ │ │ │ │ ├── Appid_142.json │ │ │ │ │ ├── Appid_144.json │ │ │ │ │ ├── Appid_145.json │ │ │ │ │ ├── Appid_147.json │ │ │ │ │ ├── Appid_148.json │ │ │ │ │ ├── Appid_150.json │ │ │ │ │ ├── Appid_153.json │ │ │ │ │ ├── Appid_154.json │ │ │ │ │ ├── Appid_155.json │ │ │ │ │ ├── Appid_164.json │ │ │ │ │ ├── Appid_168.json │ │ │ │ │ ├── Appid_178.json │ │ │ │ │ ├── Appid_179.json │ │ │ │ │ ├── Appid_180.json │ │ │ │ │ ├── Appid_181.json │ │ │ │ │ ├── Appid_182.json │ │ │ │ │ ├── Appid_184.json │ │ │ │ │ ├── Appid_185.json │ │ │ │ │ ├── Appid_191.json │ │ │ │ │ ├── Appid_192.json │ │ │ │ │ ├── Appid_193.json │ │ │ │ │ ├── Appid_196.json │ │ │ │ │ ├── Appid_197.json │ │ │ │ │ ├── Appid_198.json │ │ │ │ │ ├── Appid_199.json │ │ │ │ │ ├── Appid_200.json │ │ │ │ │ ├── Appid_201.json │ │ │ │ │ ├── Appid_202.json │ │ │ │ │ ├── Appid_203.json │ │ │ │ │ ├── Appid_204.json │ │ │ │ │ ├── Appid_205.json │ │ │ │ │ ├── Appid_206.json │ │ │ │ │ ├── Appid_207.json │ │ │ │ │ ├── Appid_208.json │ │ │ │ │ ├── Appid_209.json │ │ │ │ │ ├── Appid_210.json │ │ │ │ │ ├── Appid_211.json │ │ │ │ │ ├── Appid_212.json │ │ │ │ │ ├── Appid_213.json │ │ │ │ │ ├── Appid_214.json │ │ │ │ │ ├── Appid_215.json │ │ │ │ │ ├── Appid_216.json │ │ │ │ │ ├── Appid_217.json │ │ │ │ │ ├── Appid_218.json │ │ │ │ │ ├── Appid_219.json │ │ │ │ │ ├── Appid_220.json │ │ │ │ │ ├── Appid_221.json │ │ │ │ │ ├── Appid_222.json │ │ │ │ │ ├── Appid_223.json │ │ │ │ │ ├── Appid_400.json │ │ │ │ │ ├── Appid_401.json │ │ │ │ │ ├── Appid_402.json │ │ │ │ │ ├── Appid_403.json │ │ │ │ │ ├── Appid_43.json │ │ │ │ │ ├── altinn_access_management.json │ │ │ │ │ ├── nav_tiltakAvtaleOmArbeidstrening.json │ │ │ │ │ └── policies/ │ │ │ │ │ └── altinn_maskinporten_scope_delegation.xml │ │ │ │ └── roles/ │ │ │ │ ├── User_1001/ │ │ │ │ │ ├── party_500000/ │ │ │ │ │ │ └── roles.json │ │ │ │ │ └── party_510001/ │ │ │ │ │ └── roles.json │ │ │ │ ├── User_1002/ │ │ │ │ │ ├── party_500000/ │ │ │ │ │ │ └── roles.json │ │ │ │ │ └── party_510002/ │ │ │ │ │ └── roles.json │ │ │ │ ├── User_1003/ │ │ │ │ │ └── party_510003/ │ │ │ │ │ └── roles.json │ │ │ │ ├── User_12345/ │ │ │ │ │ └── party_512345/ │ │ │ │ │ └── roles.json │ │ │ │ └── User_1337/ │ │ │ │ ├── party_500000/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500001/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500002/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500003/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500600/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500700/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500800/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500801/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500802/ │ │ │ │ │ └── roles.json │ │ │ │ └── party_501337/ │ │ │ │ └── roles.json │ │ │ ├── EFormidling/ │ │ │ │ └── EformidlingStatusCheckEventHandlerTests.cs │ │ │ ├── Extensions/ │ │ │ │ ├── HttpClientExtensions.cs │ │ │ │ ├── HttpClientExtensionsTests.cs │ │ │ │ ├── InstanceExtensionsTest.cs │ │ │ │ └── WebHostBuilderExtensionsTests.cs │ │ │ ├── Features/ │ │ │ │ └── Bootstrap/ │ │ │ │ └── FormBootstrapServiceTests.cs │ │ │ ├── Helpers/ │ │ │ │ ├── Patch/ │ │ │ │ │ ├── PatchServiceTests.Test_Ok.verified.txt │ │ │ │ │ └── PatchServiceTests.cs │ │ │ │ ├── RequestHandling/ │ │ │ │ │ └── DataRestrictionValidationTests.cs │ │ │ │ └── StartupHelperTests.cs │ │ │ ├── Mappers/ │ │ │ │ └── SimpleInstanceMapperTests.cs │ │ │ ├── Maskinporten/ │ │ │ │ └── MaskinportenClientIntegrationTest.cs │ │ │ ├── Middleware/ │ │ │ │ ├── SecurityHeadersMiddlewareTests.cs │ │ │ │ ├── TelemetryEnrichingMiddlewareTests.Should_Always_Be_A_Root_Trace.verified.txt │ │ │ │ ├── TelemetryEnrichingMiddlewareTests.Should_Always_Be_A_Root_Trace_Unless_Pdf.verified.txt │ │ │ │ ├── TelemetryEnrichingMiddlewareTests.Should_Have_Root_AspNetCore_Trace_Org.verified.txt │ │ │ │ ├── TelemetryEnrichingMiddlewareTests.Should_Have_Root_AspNetCore_Trace_User.verified.txt │ │ │ │ └── TelemetryEnrichingMiddlewareTests.cs │ │ │ ├── MockHttpMessageHandler.cs │ │ │ ├── Mocks/ │ │ │ │ ├── AppConfigurationCacheMock.cs │ │ │ │ ├── AppMetadataMock.cs │ │ │ │ ├── AppModelMock.cs │ │ │ │ ├── Authentication/ │ │ │ │ │ ├── ConfigurationManagerStub.cs │ │ │ │ │ └── JwtCookiePostConfigureOptionsStub.cs │ │ │ │ ├── AuthorizationMock.cs │ │ │ │ ├── DataClientMock.cs │ │ │ │ ├── Event/ │ │ │ │ │ ├── DummyFailureEventHandler.cs │ │ │ │ │ ├── DummySuccessEventHandler.cs │ │ │ │ │ ├── EventSecretCodeProviderStub.cs │ │ │ │ │ ├── EventsClientMock.cs │ │ │ │ │ └── InstanceEventClientMock.cs │ │ │ │ ├── InstanceClientMockSi.cs │ │ │ │ ├── InstanceLockerMock.cs │ │ │ │ ├── PepWithPDPAuthorizationMockSI.cs │ │ │ │ ├── ProcessClientMock.cs │ │ │ │ ├── RegisterClientMock.cs │ │ │ │ └── SignClientMock.cs │ │ │ ├── Models/ │ │ │ │ ├── InstanceFileScanResultTests.cs │ │ │ │ └── XacmlResourceAttributes.cs │ │ │ ├── ModuleInitializer.cs │ │ │ ├── OpenApi/ │ │ │ │ ├── OpenApiSpecChangeDetection.SaveCustomOpenApiSpec.verified.json │ │ │ │ ├── OpenApiSpecChangeDetection.SaveJsonSwagger.verified.json │ │ │ │ └── OpenApiSpecChangeDetection.cs │ │ │ ├── Process/ │ │ │ │ └── ServiceTasks/ │ │ │ │ ├── EFormidling/ │ │ │ │ │ └── EFormidlingServiceTaskTests.cs │ │ │ │ └── Pdf/ │ │ │ │ └── PdfServiceTaskTests.cs │ │ │ ├── Program.cs │ │ │ ├── PublicApiTests.PublicApi_ShouldNotChange_Unintentionally.verified.txt │ │ │ ├── PublicApiTests.cs │ │ │ ├── Telemetry/ │ │ │ │ └── TelemetryConfigurationTests.cs │ │ │ ├── TestStubs/ │ │ │ │ └── SwaggerIncludeXmlCommentsTestDouble.cs │ │ │ └── Utils/ │ │ │ ├── JsonUtils.cs │ │ │ └── ReflectionUtils.cs │ │ ├── Altinn.App.Clients.Fiks.Tests/ │ │ │ ├── Altinn.App.Clients.Fiks.Tests.csproj │ │ │ ├── AutoAdvancingFakeTime.cs │ │ │ ├── Extensions/ │ │ │ │ ├── .Verify/ │ │ │ │ │ ├── ArkivmeldingExtensionsTests.SerializeXmlBytes_SerializesCorrectly.verified.txt │ │ │ │ │ └── ArkivmeldingExtensionsTests.ToPayload_ReturnsCorrectPayload.verified.txt │ │ │ │ ├── ArkivmeldingExtensionsTests.cs │ │ │ │ ├── DataElementsExtensionsTests.cs │ │ │ │ ├── InstanceExtensionsTests.cs │ │ │ │ ├── ListExtensionsTests.cs │ │ │ │ ├── ServiceCollectionExtensionsTests.cs │ │ │ │ ├── StreamExtensionsTest.cs │ │ │ │ ├── StringExtensionsTests.cs │ │ │ │ └── TypeExtensionsTest.cs │ │ │ ├── FiksArkiv/ │ │ │ │ ├── .Verify/ │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerClassification_ReturnsExpectedValue_ForKnownAuthenticationTypes.Org.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerClassification_ReturnsExpectedValue_ForKnownAuthenticationTypes.ServiceOwner.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerClassification_ReturnsExpectedValue_ForKnownAuthenticationTypes.SystemUser.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerClassification_ReturnsExpectedValue_ForKnownAuthenticationTypes.User.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerParty_ReturnsExpectedValue_WhenPartyIsFound.1.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerParty_ReturnsExpectedValue_WhenPartyIsFound.10.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerParty_ReturnsExpectedValue_WhenPartyIsFound.11.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerParty_ReturnsExpectedValue_WhenPartyIsFound.2.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerParty_ReturnsExpectedValue_WhenPartyIsFound.3.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerParty_ReturnsExpectedValue_WhenPartyIsFound.4.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerParty_ReturnsExpectedValue_WhenPartyIsFound.5.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerParty_ReturnsExpectedValue_WhenPartyIsFound.6.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerParty_ReturnsExpectedValue_WhenPartyIsFound.7.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerParty_ReturnsExpectedValue_WhenPartyIsFound.8.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetInstanceOwnerParty_ReturnsExpectedValue_WhenPartyIsFound.9.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetRecipientParty_ReturnsExpectedValue.1.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetRecipientParty_ReturnsExpectedValue.2.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetServiceOwnerParty_ReturnsExpectedValue.1.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetServiceOwnerParty_ReturnsExpectedValue.2.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetServiceOwnerParty_ReturnsExpectedValue.3.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetServiceOwnerParty_ReturnsExpectedValue.4.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetServiceOwnerParty_ReturnsExpectedValue.5.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetServiceOwnerParty_ReturnsExpectedValue.6.verified.txt │ │ │ │ │ ├── FiksArkivConfigResolverTest.GetServiceOwnerParty_ReturnsExpectedValue.7.verified.txt │ │ │ │ │ ├── FiksArkivDefaultPayloadGeneratorTest.GeneratePayload_GeneratesCorrectPayload.1.verified.txt │ │ │ │ │ ├── FiksArkivDefaultPayloadGeneratorTest.GeneratePayload_GeneratesCorrectPayload.2.verified.txt │ │ │ │ │ ├── FiksArkivDefaultPayloadGeneratorTest.GeneratePayload_GeneratesCorrectPayload.3.verified.txt │ │ │ │ │ └── FiksArkivDefaultPayloadGeneratorTest.GeneratePayload_GeneratesCorrectPayload.4.verified.txt │ │ │ │ ├── FiksArkivConfigResolverTest.cs │ │ │ │ ├── FiksArkivConfigValidationServiceTest.cs │ │ │ │ ├── FiksArkivDefaultPayloadGeneratorTest.cs │ │ │ │ ├── FiksArkivDefaultResponseHandlerTest.cs │ │ │ │ ├── FiksArkivHostTest.cs │ │ │ │ ├── FiksArkivInstanceClientTest.cs │ │ │ │ ├── FiksArkivServiceTaskTest.cs │ │ │ │ └── Models/ │ │ │ │ ├── FiksArkivDocumentsTest.cs │ │ │ │ └── FiksArkivSettingsTest.cs │ │ │ ├── FiksIO/ │ │ │ │ ├── .Verify/ │ │ │ │ │ ├── FiksIOClientTest.InitialiseFiksIOClient_CallsCreateClientWithCorrectPayload_Custom.1.verified.txt │ │ │ │ │ ├── FiksIOClientTest.InitialiseFiksIOClient_CallsCreateClientWithCorrectPayload_Custom.2.verified.txt │ │ │ │ │ ├── FiksIOClientTest.InitialiseFiksIOClient_CallsCreateClientWithCorrectPayload_Custom.3.verified.txt │ │ │ │ │ ├── FiksIOClientTest.InitialiseFiksIOClient_CallsCreateClientWithCorrectPayload_Custom.verified.txt │ │ │ │ │ ├── FiksIOClientTest.InitialiseFiksIOClient_CallsCreateClientWithCorrectPayload_Default.AnythingElse.verified.txt │ │ │ │ │ └── FiksIOClientTest.InitialiseFiksIOClient_CallsCreateClientWithCorrectPayload_Default.Production.verified.txt │ │ │ │ ├── FiksIOClientTest.cs │ │ │ │ ├── FiksIOMaskinportenClientTest.cs │ │ │ │ └── Models/ │ │ │ │ ├── FiksIOMessageResponderTest.cs │ │ │ │ └── FiksIOMessageResponseTest.cs │ │ │ ├── ModuleInitializer.cs │ │ │ ├── PublicApiTests.PublicApi_ShouldNotChange_Unintentionally.verified.txt │ │ │ ├── PublicApiTests.cs │ │ │ ├── TestFixture.cs │ │ │ ├── TestHelpers.cs │ │ │ └── XsdValidator.cs │ │ ├── Altinn.App.Core.Tests/ │ │ │ ├── Altinn.App.Core.Tests.csproj │ │ │ ├── Configuration/ │ │ │ │ └── GeneralSettingsTests.cs │ │ │ ├── Constants/ │ │ │ │ └── AltinnEnvironmentsTest.cs │ │ │ ├── Data/ │ │ │ │ └── SkjemaWithNamespace.cs │ │ │ ├── DataLists/ │ │ │ │ ├── DataListsFactoryTest.cs │ │ │ │ ├── InstanceDataListsFactoryTest.cs │ │ │ │ ├── NullDataListProviderTest.cs │ │ │ │ └── NullInstanceDataListProviderTest.cs │ │ │ ├── Eformidling/ │ │ │ │ └── Implementation/ │ │ │ │ ├── DefaultEFormidlingServiceTests.cs │ │ │ │ └── EFormidlingConfigurationProviderTests.cs │ │ │ ├── Extensions/ │ │ │ │ ├── ConfigurationBuilderExtensionsTest.cs │ │ │ │ ├── DictionaryExtensionsTests.cs │ │ │ │ ├── HttpClientExtensionTest.cs │ │ │ │ ├── InstanceEventExtensionsTests.cs │ │ │ │ ├── MultipartContentExtensionsTests.cs │ │ │ │ ├── NationalIdentityNumberExtensionsTest.cs │ │ │ │ ├── OrganisationNumberExtensionsTest.cs │ │ │ │ ├── ProcessStateExtensionTests.cs │ │ │ │ ├── ServiceCollectionTests.cs │ │ │ │ └── StringExtensionTests.cs │ │ │ ├── Features/ │ │ │ │ ├── Action/ │ │ │ │ │ ├── PaymentUserActionTests.cs │ │ │ │ │ ├── SigningUserActionTests.cs │ │ │ │ │ ├── TestData/ │ │ │ │ │ │ ├── appmetadata.json │ │ │ │ │ │ ├── payment-task-process.bpmn │ │ │ │ │ │ ├── signature-missing-signee-userid.json │ │ │ │ │ │ ├── signature-missing-signee.json │ │ │ │ │ │ ├── signature-signee-userid-null.json │ │ │ │ │ │ ├── signature.json │ │ │ │ │ │ ├── signing-task-missing-correspondence.bpmn │ │ │ │ │ │ ├── signing-task-process-empty-datatypes-to-sign.bpmn │ │ │ │ │ │ ├── signing-task-process-missing-config.bpmn │ │ │ │ │ │ └── signing-task-process.bpmn │ │ │ │ │ ├── UniqueSignatureAuthorizerTests.cs │ │ │ │ │ └── UserActionServiceTests.cs │ │ │ │ ├── Auth/ │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_ServiceOwner_Token_When_App_Metadata_Org_Differs_service_owner_mismatched_app_org.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=Org_Vwzj.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=Org_yeqB.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=SelfIdentifiedUser_ffv+.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=ServiceOwner_AmaP.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=ServiceOwner_IrMn.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=ServiceOwner_eWOI.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=SystemUser_8nGc.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=SystemUser_EvgU.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=SystemUser_Gxg0.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=SystemUser_U6aZ.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=Unknown_RecL.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=Unknown_qbyO.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=User_T1OG.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=User_csSy.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=User_fOrK.verified.txt │ │ │ │ │ ├── AuthenticatedTests.Can_Parse_Real_Tokens_type=User_sUK3.verified.txt │ │ │ │ │ ├── AuthenticatedTests.cs │ │ │ │ │ ├── AuthenticationInfoTests.cs │ │ │ │ │ └── ScopesTests.cs │ │ │ │ ├── AuthenticationMethodTest.cs │ │ │ │ ├── Bootstrap/ │ │ │ │ │ └── LayoutAnalysisServiceTests.cs │ │ │ │ ├── Correspondence/ │ │ │ │ │ ├── Builder/ │ │ │ │ │ │ ├── BuilderUtilsTests.cs │ │ │ │ │ │ ├── CorrespondenceBuilderTests.cs │ │ │ │ │ │ ├── CorrespondenceNotificationOverrideBuilderTests.cs │ │ │ │ │ │ └── CorrespondenceNotificationOverrideBuilderTests_Obsolete.cs │ │ │ │ │ ├── CorrespondenceClientMappingTests.cs │ │ │ │ │ ├── CorrespondenceClientTests.cs │ │ │ │ │ ├── Models/ │ │ │ │ │ │ ├── CorrespondenceRequestTests.cs │ │ │ │ │ │ └── CorrespondenceResponseTests.cs │ │ │ │ │ └── TestHelpers.cs │ │ │ │ ├── DataProcessing/ │ │ │ │ │ ├── GenericDataProcessorTests.cs │ │ │ │ │ └── NullInstantiationProcessTests.cs │ │ │ │ ├── ExternalApi/ │ │ │ │ │ ├── ExternalApiFactoryTests.cs │ │ │ │ │ └── ExternalApiServiceTest.cs │ │ │ │ ├── FormDataReaderTests.cs │ │ │ │ ├── Maskinporten/ │ │ │ │ │ ├── Delegates/ │ │ │ │ │ │ └── MaskinportenDelegatingHandlerTest.cs │ │ │ │ │ ├── MaskinportenClientTest.cs │ │ │ │ │ ├── Models/ │ │ │ │ │ │ ├── MaskinportenSettingsTest.cs │ │ │ │ │ │ └── MaskinportenTokenResponseTest.cs │ │ │ │ │ └── TestHelpers.cs │ │ │ │ ├── Notifications/ │ │ │ │ │ ├── Cancellation/ │ │ │ │ │ │ └── CancelOnProcessEndTests.cs │ │ │ │ │ ├── Email/ │ │ │ │ │ │ ├── EmailNotificationClientTests.Order_VerifyHttpCall.verified.txt │ │ │ │ │ │ └── EmailNotificationClientTests.cs │ │ │ │ │ ├── NotificationServiceTests.cs │ │ │ │ │ ├── Order/ │ │ │ │ │ │ ├── NotificationCancelClientTests.Cancel_VerifyHttpCall.verified.txt │ │ │ │ │ │ ├── NotificationClientTests.cs │ │ │ │ │ │ └── NotificationRecipientSerializationTests.cs │ │ │ │ │ ├── SecretProvider/ │ │ │ │ │ │ ├── NotificationConditionCodeValidatorTests.cs │ │ │ │ │ │ ├── NotificationConditionSecretProviderTests.cs │ │ │ │ │ │ ├── NotificationConditionTokenGeneratorTests.GenerateToken_RecordsTelemetry.verified.txt │ │ │ │ │ │ └── NotificationConditionTokenGeneratorTests.cs │ │ │ │ │ ├── Sms/ │ │ │ │ │ │ ├── SmsNotificationClientTests.Order_VerifyHttpCall.verified.txt │ │ │ │ │ │ └── SmsNotificationClientTests.cs │ │ │ │ │ └── Texts/ │ │ │ │ │ └── NotificationTextsTests.cs │ │ │ │ ├── Options/ │ │ │ │ │ ├── Altinn2Provider/ │ │ │ │ │ │ ├── Altinn2MetadataApiClientHttpMessageHandlerMoq.cs │ │ │ │ │ │ ├── Altinn2OptionsCacheTests.cs │ │ │ │ │ │ └── Altinn2OptionsTests.cs │ │ │ │ │ ├── Altinn3LibraryProvider/ │ │ │ │ │ │ ├── Altinn3LibraryCodeListClientMessageHandlerMock.cs │ │ │ │ │ │ ├── Altinn3LibraryCodeListClientTests.cs │ │ │ │ │ │ ├── Altinn3LibraryCodeListServiceTestData.cs │ │ │ │ │ │ └── Altinn3LibraryCodeListServiceTests.cs │ │ │ │ │ ├── AppOptionsFactoryTests.cs │ │ │ │ │ ├── InstanceAppOptionsFactoryTests.cs │ │ │ │ │ └── JoinedAppOptionsTests.cs │ │ │ │ ├── Payment/ │ │ │ │ │ ├── AltinnPaymentConfigurationTests.cs │ │ │ │ │ ├── PaymentServiceTests.cs │ │ │ │ │ └── Providers/ │ │ │ │ │ └── Nets/ │ │ │ │ │ ├── HttpApiResultTests.cs │ │ │ │ │ ├── NetsMapperTests.cs │ │ │ │ │ └── NetsPaymentProcessorTests.cs │ │ │ │ ├── Signing/ │ │ │ │ │ ├── Helpers/ │ │ │ │ │ │ └── SigningNotificationHelpers.cs │ │ │ │ │ ├── SignDocumentManagerTests.cs │ │ │ │ │ ├── SigneeContextsManagerTests.cs │ │ │ │ │ ├── SigningCallToActionServiceTests.cs │ │ │ │ │ ├── SigningDelegationServiceTests.cs │ │ │ │ │ ├── SigningReceiptServiceTests.cs │ │ │ │ │ └── SigningServiceTests.cs │ │ │ │ ├── Telemetry/ │ │ │ │ │ └── TelemetryDITests.cs │ │ │ │ └── Validators/ │ │ │ │ ├── Default/ │ │ │ │ │ ├── DataAnnotationValidatorTests.cs │ │ │ │ │ ├── DefaultTaskValidatorTests.cs │ │ │ │ │ ├── ExpressionValidatorTests.cs │ │ │ │ │ ├── LegacyIValidationFormDataTests.cs │ │ │ │ │ ├── SignatureHashValidatorTests.cs │ │ │ │ │ └── SigningTaskValidatorTests.cs │ │ │ │ ├── GenericValidatorTests.cs │ │ │ │ ├── LegacyValidationServiceTests/ │ │ │ │ │ ├── ValidationServiceOldTests.cs │ │ │ │ │ └── ValidationServiceTests.cs │ │ │ │ ├── NullInstantiationValidatorTests.cs │ │ │ │ ├── ValidationServiceTests.GenericFormDataValidator_serviceModelIsString_CallsValidatorFunctionForIncremental.verified.txt │ │ │ │ ├── ValidationServiceTests.GenericFormDataValidator_serviceModelIsString_CallsValidatorFunctionForTask.verified.txt │ │ │ │ ├── ValidationServiceTests.ValidateIncrementalFormData_WithNoData_ShouldReturnNoIssues.verified.txt │ │ │ │ ├── ValidationServiceTests.ValidateInstanceAtTask_WithIgnoredValidators_ShouldRunOnlyNonIgnoredValidators.verified.txt │ │ │ │ ├── ValidationServiceTests.ValidateInstanceAtTask_WithNoData_ShouldReturnNoIssues.verified.txt │ │ │ │ ├── ValidationServiceTests.cs │ │ │ │ └── expression-validation-tests/ │ │ │ │ ├── .editorconfig │ │ │ │ ├── backend/ │ │ │ │ │ ├── hidden-field.json │ │ │ │ │ ├── hidden-page.json │ │ │ │ │ ├── nested-repeating-hidden-row.json │ │ │ │ │ ├── nested-repeating-hidden.json │ │ │ │ │ ├── repeating-hidden-row.json │ │ │ │ │ └── repeating-hidden.json │ │ │ │ └── shared/ │ │ │ │ ├── component-lookup-hidden.json │ │ │ │ ├── many-errors-direct.json │ │ │ │ ├── many-errors.json │ │ │ │ ├── nested-repeating.json │ │ │ │ ├── override.json │ │ │ │ ├── repeating-direct.json │ │ │ │ ├── repeating.json │ │ │ │ ├── single-field-equals.json │ │ │ │ └── warning.json │ │ │ ├── Helpers/ │ │ │ │ ├── AllowedContributorsHelperTests.cs │ │ │ │ ├── InstantiationHelperTests.cs │ │ │ │ ├── JsonHelperTests.cs │ │ │ │ ├── JsonSerializerIgnorePrefixTests.cs │ │ │ │ ├── LinqExpressionHelpersTests.cs │ │ │ │ ├── LogSanitizerTests.cs │ │ │ │ ├── MemoryAsStreamTests.cs │ │ │ │ ├── MimeTypeMapTests.cs │ │ │ │ ├── MultiDecisionHelper/ │ │ │ │ │ ├── MultiDecisionHelperTests.CreateMultiDecisionRequest_generates_multidecisionrequest_with_all_actions_current_task_elemtnId.verified.txt │ │ │ │ │ ├── MultiDecisionHelperTests.CreateMultiDecisionRequest_generates_multidecisionrequest_with_all_actions_endevent.verified.txt │ │ │ │ │ ├── MultiDecisionHelperTests.CreateMultiDecisionRequest_generates_multidecisionrequest_with_all_actions_instanceId_is_GUID_only.verified.txt │ │ │ │ │ └── MultiDecisionHelperTests.cs │ │ │ │ ├── ObjectUtilsTests.cs │ │ │ │ ├── ObjectUtils_XmlSerializationTests.cs │ │ │ │ ├── PathHelperTests.cs │ │ │ │ ├── PlatformHttpResponseSnapshotExceptionTests.cs │ │ │ │ ├── ProcessHelperTests.cs │ │ │ │ ├── RemoveBomExtentionsTests.cs │ │ │ │ ├── SelfLinkHelperTests.cs │ │ │ │ ├── ShadowFieldsConverterTests.cs │ │ │ │ ├── TestData/ │ │ │ │ │ ├── MultiDecisionHelper/ │ │ │ │ │ │ ├── all-actions-allowed.json │ │ │ │ │ │ └── one-action-denied.json │ │ │ │ │ └── simple-gateway.bpmn │ │ │ │ ├── UrlHelperTests.cs │ │ │ │ ├── UserHelperTest.cs │ │ │ │ └── Utf8JsonReaderExtensionsTests.cs │ │ │ ├── Implementation/ │ │ │ │ ├── AppResourcesSITests.cs │ │ │ │ ├── EventsClientTest.AddEvent_RegisterEventWithInstanceOwnerOrganisation_CloudEventInRequestContainOrganisationNumber.verified.txt │ │ │ │ ├── EventsClientTest.cs │ │ │ │ ├── InstanceClientTests.AddCompleteConfirmation_SuccessfulCallToStorage.verified.txt │ │ │ │ ├── InstanceClientTests.cs │ │ │ │ ├── NullPdfFormatterTests.cs │ │ │ │ ├── PersonClientTests.cs │ │ │ │ ├── PrefillSITest.cs │ │ │ │ ├── TestData/ │ │ │ │ │ ├── AppDataModel/ │ │ │ │ │ │ └── ModelWithShadowFields.cs │ │ │ │ │ ├── AppMetadata/ │ │ │ │ │ │ ├── default.applicationmetadata.json │ │ │ │ │ │ ├── invalid.applicationmetadata.json │ │ │ │ │ │ └── no-on-entry.applicationmetadata.json │ │ │ │ │ ├── AppPolicy/ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ └── AppProcess/ │ │ │ │ │ └── process.bpmn │ │ │ │ ├── TestResources/ │ │ │ │ │ └── DummyModel.cs │ │ │ │ └── TextClientTest.cs │ │ │ ├── Infrastructure/ │ │ │ │ └── Clients/ │ │ │ │ ├── AccessManagement/ │ │ │ │ │ ├── AccessManagementClientTests.DelegateRights_VerifyHttpCall.verified.txt │ │ │ │ │ ├── AccessManagementClientTests.RevokeRights_VerifyHttpCall.verified.txt │ │ │ │ │ └── AccessManagementClientTests.cs │ │ │ │ ├── Authorization/ │ │ │ │ │ ├── AuthorizationClientTests.AuthorizeActions_returns_dictionary_with_one_action_denied.verified.txt │ │ │ │ │ ├── AuthorizationClientTests.cs │ │ │ │ │ └── TestData/ │ │ │ │ │ └── one-action-denied.json │ │ │ │ ├── EventsSubscriptionClientTests.cs │ │ │ │ ├── KeyVault/ │ │ │ │ │ └── SecretsLocalClientTests.cs │ │ │ │ ├── Profile/ │ │ │ │ │ ├── ProfileClientTests.Returns_Test_Profile.verified.txt │ │ │ │ │ └── ProfileClientTests.cs │ │ │ │ ├── Register/ │ │ │ │ │ └── AltinnPartyClientTest.cs │ │ │ │ └── Storage/ │ │ │ │ ├── DataClientTests.InsertBinaryData_MethodProduceValidPlatformRequest_AltinnToken.verified.txt │ │ │ │ ├── DataClientTests.InsertBinaryData_MethodProduceValidPlatformRequest_CustomToken.verified.txt │ │ │ │ ├── DataClientTests.InsertBinaryData_MethodProduceValidPlatformRequest_DefaultAuth.verified.txt │ │ │ │ ├── DataClientTests.InsertBinaryData_MethodProduceValidPlatformRequest_UserToken.verified.txt │ │ │ │ ├── DataClientTests.cs │ │ │ │ ├── DataClientTestsXmlJson.cs │ │ │ │ ├── SignClientTests.cs │ │ │ │ └── TestData/ │ │ │ │ └── ExampleModel.cs │ │ │ ├── Internal/ │ │ │ │ ├── AccessManagement/ │ │ │ │ │ ├── DelegationRequestTests.cs │ │ │ │ │ └── UrlHelperTests.cs │ │ │ │ ├── AltinnCdn/ │ │ │ │ │ └── AltinnCdnClientTest.cs │ │ │ │ ├── App/ │ │ │ │ │ ├── AppMetadataTest.GetApplicationMetadata_deserialize_serialize_unmapped_properties.verified.txt │ │ │ │ │ ├── AppMetadataTest.GetApplicationMetadata_desrializes_file_from_disk.verified.txt │ │ │ │ │ ├── AppMetadataTest.cs │ │ │ │ │ ├── FrontendFeaturesTest.cs │ │ │ │ │ └── TestData/ │ │ │ │ │ ├── AppMetadata/ │ │ │ │ │ │ ├── default.applicationmetadata.json │ │ │ │ │ │ ├── eformid.applicationmetadata.json │ │ │ │ │ │ ├── invalid-int.applicationmetadata.json │ │ │ │ │ │ ├── invalid.applicationmetadata.json │ │ │ │ │ │ ├── logo-org-source.applicationmetadata.json │ │ │ │ │ │ ├── onentry-legacy-selectoptions.applicationmetadata.json │ │ │ │ │ │ ├── onentry-new-selectoptions.applicationmetadata.json │ │ │ │ │ │ ├── onentry-prefer-new-selectoptions.applicationmetadata.json │ │ │ │ │ │ └── unmapped-properties.applicationmetadata.json │ │ │ │ │ ├── AppPolicy/ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ └── AppProcess/ │ │ │ │ │ └── process.bpmn │ │ │ │ ├── Auth/ │ │ │ │ │ ├── AuthenticationTokenResolverTest.cs │ │ │ │ │ ├── AuthorizationServiceTests.GetPartyList_returns_party_list_from_AuthorizationClient.verified.txt │ │ │ │ │ └── AuthorizationServiceTests.cs │ │ │ │ ├── Data/ │ │ │ │ │ ├── DataElementAccessCheckerTest.cs │ │ │ │ │ ├── DataServiceTests.cs │ │ │ │ │ └── DataTypeComparerTest.cs │ │ │ │ ├── Events/ │ │ │ │ │ ├── EventHandlerResolverTests.cs │ │ │ │ │ └── UnhandledEventHandlerTests.cs │ │ │ │ ├── InstanceLocking/ │ │ │ │ │ ├── InstanceLockTests.CustomTtl_UsedInStorageApiCall.verified.txt │ │ │ │ │ ├── InstanceLockTests.EmptyJsonResponseBody_ThrowsPlatformHttpException.verified.txt │ │ │ │ │ ├── InstanceLockTests.InvalidInstanceId_ThrowsInvalidOperationException.verified.txt │ │ │ │ │ ├── InstanceLockTests.NullResponseBody_ThrowsPlatformHttpException.verified.txt │ │ │ │ │ ├── InstanceLockTests.StorageApiError_ThrowsCorrectPlatformHttpException_storageStatusCode=Conflict.verified.txt │ │ │ │ │ ├── InstanceLockTests.StorageApiError_ThrowsCorrectPlatformHttpException_storageStatusCode=InternalServerError.verified.txt │ │ │ │ │ ├── InstanceLockTests.StorageApiError_ThrowsCorrectPlatformHttpException_storageStatusCode=NotFound.verified.txt │ │ │ │ │ └── InstanceLockTests.cs │ │ │ │ ├── Linq/ │ │ │ │ │ └── ExtensionsTest.cs │ │ │ │ ├── LocaltestValidationTests.cs │ │ │ │ ├── Pdf/ │ │ │ │ │ ├── PdfServiceTests.GenerateAndStorePdf.verified.txt │ │ │ │ │ ├── PdfServiceTests.GenerateAndStorePdf_WithSubformParameters_ShouldCallPdfServiceWithSubformUrl.verified.txt │ │ │ │ │ └── PdfServiceTests.cs │ │ │ │ ├── Process/ │ │ │ │ │ ├── Authorization/ │ │ │ │ │ │ ├── TestData/ │ │ │ │ │ │ │ └── UserActionAuthorizerStub.cs │ │ │ │ │ │ └── UserActionAuthorizerServiceCollectionExtensionTests.cs │ │ │ │ │ ├── Elements/ │ │ │ │ │ │ ├── AltinnExtensionProperties/ │ │ │ │ │ │ │ └── AltinnEFormidlingConfigurationTests.cs │ │ │ │ │ │ └── AppProcessStateTests.cs │ │ │ │ │ ├── EventHandlers/ │ │ │ │ │ │ └── ProcessTask/ │ │ │ │ │ │ ├── AbandonTaskEventHandlerTests.cs │ │ │ │ │ │ ├── EndTaskEventHandlerTests.cs │ │ │ │ │ │ └── StartTaskEventHandlerTests.cs │ │ │ │ │ ├── ExpressionsExclusiveGatewayTests.cs │ │ │ │ │ ├── ProcessEngineAuthorizerTests.cs │ │ │ │ │ ├── ProcessEngineTest.StartProcess_starts_process_and_moves_to_first_task.verified.txt │ │ │ │ │ ├── ProcessEngineTest.StartProcess_starts_process_and_moves_to_first_task_SelfIdentifiedUser.verified.txt │ │ │ │ │ ├── ProcessEngineTest.StartProcess_starts_process_and_moves_to_first_task_ServiceOwner.verified.txt │ │ │ │ │ ├── ProcessEngineTest.StartProcess_starts_process_and_moves_to_first_task_SystemUser.verified.txt │ │ │ │ │ ├── ProcessEngineTest.StartProcess_starts_process_and_moves_to_first_task_User.verified.txt │ │ │ │ │ ├── ProcessEngineTest.Telemetry.IProcessEnd_not_registered.json.verified.txt │ │ │ │ │ ├── ProcessEngineTest.Telemetry.IProcessEnd_registered.json.verified.txt │ │ │ │ │ ├── ProcessEngineTest.cs │ │ │ │ │ ├── ProcessEventHandlingTests.cs │ │ │ │ │ ├── ProcessNavigatorTests.cs │ │ │ │ │ ├── ProcessReaderExtensionsTests.cs │ │ │ │ │ ├── ProcessReaderTests.IsStartEvent_returns_true_when_element_is_StartEvent.verified.txt │ │ │ │ │ ├── ProcessReaderTests.cs │ │ │ │ │ ├── ProcessTasks/ │ │ │ │ │ │ ├── Common/ │ │ │ │ │ │ │ ├── ProcessTaskDataLockerTests.cs │ │ │ │ │ │ │ └── ProcessTaskFinalizerTests.cs │ │ │ │ │ │ ├── PaymentProcessTaskTests.cs │ │ │ │ │ │ └── SigningProcessTaskTests.cs │ │ │ │ │ ├── ServiceTasks/ │ │ │ │ │ │ ├── EFormidlingServiceTaskTests.cs │ │ │ │ │ │ ├── Legacy/ │ │ │ │ │ │ │ ├── EformidlingServiceTaskLegacyTests.cs │ │ │ │ │ │ │ ├── PdfServiceTaskLegacyTests.cs │ │ │ │ │ │ │ └── TestData/ │ │ │ │ │ │ │ └── DummyDataType.cs │ │ │ │ │ │ ├── PdfServiceTaskTests.cs │ │ │ │ │ │ └── SubformPdfServiceTaskTests.cs │ │ │ │ │ ├── StubGatewayFilters/ │ │ │ │ │ │ └── DataValuesFilter.cs │ │ │ │ │ ├── TestData/ │ │ │ │ │ │ ├── DummyModel.cs │ │ │ │ │ │ ├── ProcessEngineTest/ │ │ │ │ │ │ │ └── config/ │ │ │ │ │ │ │ └── process/ │ │ │ │ │ │ │ └── process.bpmn │ │ │ │ │ │ ├── not-bpmn.bpmn │ │ │ │ │ │ ├── simple-gateway-default.bpmn │ │ │ │ │ │ ├── simple-gateway-signature-config.bpmn │ │ │ │ │ │ ├── simple-gateway-with-join-gateway.bpmn │ │ │ │ │ │ ├── simple-gateway.bpmn │ │ │ │ │ │ ├── simple-linear-both.bpmn │ │ │ │ │ │ ├── simple-linear-new.bpmn │ │ │ │ │ │ ├── simple-linear.bpmn │ │ │ │ │ │ ├── simple-no-end.bpmn │ │ │ │ │ │ └── with-double-sign.bpmn │ │ │ │ │ └── TestUtils/ │ │ │ │ │ └── ProcessTestUtils.cs │ │ │ │ └── Texts/ │ │ │ │ ├── TranslationServiceInstanceTests.cs │ │ │ │ └── TranslationServiceTests.cs │ │ │ ├── LayoutExpressions/ │ │ │ │ ├── CommonTests/ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ ├── ContextListRoot.cs │ │ │ │ │ ├── ExpressionTestCaseRoot.cs │ │ │ │ │ ├── TestBackendExclusiveFunctions.cs │ │ │ │ │ ├── TestContextList.cs │ │ │ │ │ ├── TestFunctions.cs │ │ │ │ │ ├── TestInvalid.cs │ │ │ │ │ ├── exclusive-tests/ │ │ │ │ │ │ └── functions/ │ │ │ │ │ │ └── gatewayAction/ │ │ │ │ │ │ ├── no-action-defined-is-null.json │ │ │ │ │ │ ├── simple-lookup-equals.json │ │ │ │ │ │ └── simple-lookup.json │ │ │ │ │ ├── shared-tests/ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── context-lists/ │ │ │ │ │ │ │ ├── groups/ │ │ │ │ │ │ │ │ ├── noData.json │ │ │ │ │ │ │ │ ├── oneRow.json │ │ │ │ │ │ │ │ ├── rows-before-after.json │ │ │ │ │ │ │ │ └── twoRows.json │ │ │ │ │ │ │ ├── nonRepeatingGroups/ │ │ │ │ │ │ │ │ ├── accordion-in-group.json │ │ │ │ │ │ │ │ ├── accordion.json │ │ │ │ │ │ │ │ ├── cards-in-group.json │ │ │ │ │ │ │ │ ├── cards.json │ │ │ │ │ │ │ │ ├── grid-in-group.json │ │ │ │ │ │ │ │ ├── grid.json │ │ │ │ │ │ │ │ ├── simple.json │ │ │ │ │ │ │ │ ├── tabs-in-group.json │ │ │ │ │ │ │ │ └── tabs.json │ │ │ │ │ │ │ ├── recursiveGroups/ │ │ │ │ │ │ │ │ ├── recursiveNoData.json │ │ │ │ │ │ │ │ ├── recursiveOneRow.json │ │ │ │ │ │ │ │ ├── recursiveTwoRowsInner.json │ │ │ │ │ │ │ │ └── recursiveTwoRowsOuter.json │ │ │ │ │ │ │ └── simple/ │ │ │ │ │ │ │ ├── simple.json │ │ │ │ │ │ │ └── twoPages.json │ │ │ │ │ │ ├── functions/ │ │ │ │ │ │ │ ├── and/ │ │ │ │ │ │ │ │ ├── all-true.json │ │ │ │ │ │ │ │ ├── allows-0.json │ │ │ │ │ │ │ │ ├── allows-1.json │ │ │ │ │ │ │ │ ├── allows-stringy-0.json │ │ │ │ │ │ │ │ ├── allows-stringy-1.json │ │ │ │ │ │ │ │ ├── allows-stringy-false.json │ │ │ │ │ │ │ │ ├── allows-stringy-true.json │ │ │ │ │ │ │ │ ├── casts-to-boolean.json │ │ │ │ │ │ │ │ ├── casts-to-boolean2.json │ │ │ │ │ │ │ │ ├── disallows-2.json │ │ │ │ │ │ │ │ ├── disallows-empty-strings.json │ │ │ │ │ │ │ │ ├── disallows-other-strings.json │ │ │ │ │ │ │ │ ├── empty-and.json │ │ │ │ │ │ │ │ ├── last-false.json │ │ │ │ │ │ │ │ ├── null-is-false.json │ │ │ │ │ │ │ │ ├── single-input-false.json │ │ │ │ │ │ │ │ └── single-input-true.json │ │ │ │ │ │ │ ├── argv/ │ │ │ │ │ │ │ │ ├── arg-can-be-null.json │ │ │ │ │ │ │ │ ├── error-no-args.json │ │ │ │ │ │ │ │ ├── error-no-such-arg.json │ │ │ │ │ │ │ │ ├── simple-0.json │ │ │ │ │ │ │ │ └── simple-1.json │ │ │ │ │ │ │ ├── commaContains/ │ │ │ │ │ │ │ │ ├── empty-string.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── null2.json │ │ │ │ │ │ │ │ ├── should-include-word-in-string.json │ │ │ │ │ │ │ │ ├── should-not-include-word-in-string.json │ │ │ │ │ │ │ │ └── string-list-include-number.json │ │ │ │ │ │ │ ├── compare-equals/ │ │ │ │ │ │ │ │ ├── equals-strings.json │ │ │ │ │ │ │ │ ├── error-too-few-args.json │ │ │ │ │ │ │ │ └── not-equals-strings.json │ │ │ │ │ │ │ ├── compare-error/ │ │ │ │ │ │ │ │ ├── error-case-sensitive-not.json │ │ │ │ │ │ │ │ ├── error-expr-as-not.json │ │ │ │ │ │ │ │ ├── error-expr-as-operator-with-not.json │ │ │ │ │ │ │ │ ├── error-expr-as-operator.json │ │ │ │ │ │ │ │ ├── error-not-not.json │ │ │ │ │ │ │ │ ├── error-wrong-operator.json │ │ │ │ │ │ │ │ └── notEquals-not-implemented.json │ │ │ │ │ │ │ ├── compare-greaterThan/ │ │ │ │ │ │ │ │ ├── greaterThan-simple.json │ │ │ │ │ │ │ │ └── greaterThan-simple2.json │ │ │ │ │ │ │ ├── compare-isAfter/ │ │ │ │ │ │ │ │ ├── date-leap-year.json │ │ │ │ │ │ │ │ └── date-with-time.json │ │ │ │ │ │ │ ├── compare-isAfterEq/ │ │ │ │ │ │ │ │ └── isAfterEq.json │ │ │ │ │ │ │ ├── compare-isBefore/ │ │ │ │ │ │ │ │ ├── date-empty-string-and-null.json │ │ │ │ │ │ │ │ ├── date-empty-string.json │ │ │ │ │ │ │ │ ├── date-simple.json │ │ │ │ │ │ │ │ ├── error-date-invalid.json │ │ │ │ │ │ │ │ └── error-date-invalid2.json │ │ │ │ │ │ │ ├── compare-isBeforeEq/ │ │ │ │ │ │ │ │ └── isBeforeEq.json │ │ │ │ │ │ │ ├── compare-isSameDay/ │ │ │ │ │ │ │ │ ├── errors-different-timesone.json │ │ │ │ │ │ │ │ ├── errors-with-number.json │ │ │ │ │ │ │ │ ├── errors-with-only-year.json │ │ │ │ │ │ │ │ ├── not-sameDay-year.json │ │ │ │ │ │ │ │ └── start-and-end-of-day-is-same.json │ │ │ │ │ │ │ ├── component/ │ │ │ │ │ │ │ │ ├── across-pages-hidden.json │ │ │ │ │ │ │ │ ├── across-pages.json │ │ │ │ │ │ │ │ ├── distant-across-page.json │ │ │ │ │ │ │ │ ├── distant.json │ │ │ │ │ │ │ │ ├── find-first-row.json │ │ │ │ │ │ │ │ ├── find-grouped-sibling.json │ │ │ │ │ │ │ │ ├── find-hidden-sibling-in-other-repeating-group.json │ │ │ │ │ │ │ │ ├── find-hidden-unrelated-sibling-in-other-repeating-group.json │ │ │ │ │ │ │ │ ├── find-sibling-in-other-repeating-group.json │ │ │ │ │ │ │ │ ├── find-unrelated-sibling-in-other-repeating-group.json │ │ │ │ │ │ │ │ ├── hidden-in-group-other-row.json │ │ │ │ │ │ │ │ ├── hidden-in-group.json │ │ │ │ │ │ │ │ ├── hidden-in-non-repeating-group.json │ │ │ │ │ │ │ │ ├── hide-group-component.json │ │ │ │ │ │ │ │ ├── in-group-group-hidden.json │ │ │ │ │ │ │ │ ├── in-group-page-hidden.json │ │ │ │ │ │ │ │ ├── in-group-with-hidden.json │ │ │ │ │ │ │ │ ├── in-group.json │ │ │ │ │ │ │ │ ├── in-hidden-row.json │ │ │ │ │ │ │ │ ├── in-nested-group.json │ │ │ │ │ │ │ │ ├── in-nested-group2.json │ │ │ │ │ │ │ │ ├── non-repeating-group-in-repeating-group.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── simple-lookup-equals.json │ │ │ │ │ │ │ │ ├── simple-lookup-for-hidden-component-is-null.json │ │ │ │ │ │ │ │ ├── simple-lookup-for-hidden-dynamic-component-is-null.json │ │ │ │ │ │ │ │ ├── simple-lookup.json │ │ │ │ │ │ │ │ ├── visible-in-non-repeating-group.json │ │ │ │ │ │ │ │ └── with-component-index.json │ │ │ │ │ │ │ ├── concat/ │ │ │ │ │ │ │ │ ├── boolean-are-empty-strings.json │ │ │ │ │ │ │ │ ├── casts-numbers.json │ │ │ │ │ │ │ │ ├── empty-string.json │ │ │ │ │ │ │ │ ├── inside-lookup.json │ │ │ │ │ │ │ │ ├── nulls-are-empty-strings.json │ │ │ │ │ │ │ │ ├── one-string.json │ │ │ │ │ │ │ │ └── simple-lookup.json │ │ │ │ │ │ │ ├── contains/ │ │ │ │ │ │ │ │ ├── case-sensitivity.json │ │ │ │ │ │ │ │ ├── empty-string.json │ │ │ │ │ │ │ │ ├── exact-match.json │ │ │ │ │ │ │ │ ├── not-match.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── null2.json │ │ │ │ │ │ │ │ ├── null3.json │ │ │ │ │ │ │ │ ├── null4.json │ │ │ │ │ │ │ │ └── partial-match.json │ │ │ │ │ │ │ ├── countDataElements/ │ │ │ │ │ │ │ │ ├── non-existing.json │ │ │ │ │ │ │ │ ├── single.json │ │ │ │ │ │ │ │ └── subform.json │ │ │ │ │ │ │ ├── dataModel/ │ │ │ │ │ │ │ │ ├── array-is-null.json │ │ │ │ │ │ │ │ ├── direct-reference-in-group.json │ │ │ │ │ │ │ │ ├── direct-reference-in-nested-group.json │ │ │ │ │ │ │ │ ├── direct-reference-in-nested-group2.json │ │ │ │ │ │ │ │ ├── direct-reference-in-nested-group3.json │ │ │ │ │ │ │ │ ├── direct-reference-in-nested-group4.json │ │ │ │ │ │ │ │ ├── in-group.json │ │ │ │ │ │ │ │ ├── in-nested-group.json │ │ │ │ │ │ │ │ ├── null-is-null.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── object-is-null.json │ │ │ │ │ │ │ │ ├── simple-lookup-equals.json │ │ │ │ │ │ │ │ ├── simple-lookup-is-null.json │ │ │ │ │ │ │ │ ├── simple-lookup-is-null2.json │ │ │ │ │ │ │ │ ├── simple-lookup.json │ │ │ │ │ │ │ │ ├── with-indexes-without-layout.json │ │ │ │ │ │ │ │ └── with-indexes.json │ │ │ │ │ │ │ ├── dataModelMultiple/ │ │ │ │ │ │ │ │ ├── component-lookup-non-default-model.json │ │ │ │ │ │ │ │ ├── component-lookup-non-existing-model.json │ │ │ │ │ │ │ │ ├── dataModel-non-default-model.json │ │ │ │ │ │ │ │ ├── dataModel-non-existing-model.json │ │ │ │ │ │ │ │ └── dataModel-type-as-expr.json │ │ │ │ │ │ │ ├── divide/ │ │ │ │ │ │ │ │ └── divide.json │ │ │ │ │ │ │ ├── endsWith/ │ │ │ │ │ │ │ │ ├── case-sensitivity.json │ │ │ │ │ │ │ │ ├── empty-string.json │ │ │ │ │ │ │ │ ├── ends-with-null.json │ │ │ │ │ │ │ │ ├── ends-with-number.json │ │ │ │ │ │ │ │ ├── ends-with.json │ │ │ │ │ │ │ │ ├── exact-match.json │ │ │ │ │ │ │ │ ├── not-ends-with.json │ │ │ │ │ │ │ │ └── number-ends-with-number.json │ │ │ │ │ │ │ ├── equals/ │ │ │ │ │ │ │ │ ├── diff-types-bool-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-bool-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-bool-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false2.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-null-true.json │ │ │ │ │ │ │ │ ├── false-case-insensitive.json │ │ │ │ │ │ │ │ ├── false-case-insensitive2.json │ │ │ │ │ │ │ │ ├── null-case-insensitive.json │ │ │ │ │ │ │ │ ├── same-types-bool-false.json │ │ │ │ │ │ │ │ ├── same-types-bool-true.json │ │ │ │ │ │ │ │ ├── same-types-float-false.json │ │ │ │ │ │ │ │ ├── same-types-float-false2.json │ │ │ │ │ │ │ │ ├── same-types-float-true.json │ │ │ │ │ │ │ │ ├── same-types-int-false.json │ │ │ │ │ │ │ │ ├── same-types-int-true.json │ │ │ │ │ │ │ │ ├── same-types-null.json │ │ │ │ │ │ │ │ ├── same-types-string-false.json │ │ │ │ │ │ │ │ ├── same-types-string-true.json │ │ │ │ │ │ │ │ ├── same-types-string-true2.json │ │ │ │ │ │ │ │ ├── strings-case-sensitive.json │ │ │ │ │ │ │ │ ├── too-few-args.json │ │ │ │ │ │ │ │ └── too-many-args.json │ │ │ │ │ │ │ ├── formatDate/ │ │ │ │ │ │ │ │ ├── error-parseFalse.json │ │ │ │ │ │ │ │ ├── error-parseNumber.json │ │ │ │ │ │ │ │ ├── error-parseTrue.json │ │ │ │ │ │ │ │ ├── formats-date-english.json │ │ │ │ │ │ │ │ ├── formats-date-english2.json │ │ │ │ │ │ │ │ ├── formats-date-in-format-specified.json │ │ │ │ │ │ │ │ ├── formats-date-in-format-specified2.json │ │ │ │ │ │ │ │ ├── formats-date-time.json │ │ │ │ │ │ │ │ ├── formats-date-with-offset.json │ │ │ │ │ │ │ │ ├── formats-date.json │ │ │ │ │ │ │ │ ├── formats-time-in-format-specified.json │ │ │ │ │ │ │ │ ├── parse-date-2020-is-a-leap-year.json │ │ │ │ │ │ │ │ ├── parse-date-2021-is-not-a-leap-year.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-29-days-in-february-normal-.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-30-days-in-february-leap-.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-31-days-in-april.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-31-days-in-june.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-31-days-in-november.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-31-days-in-september.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-august.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-december.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-january.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-july.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-march.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-may.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-october.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-invalid-month.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-28-days-in-february-normal-.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-29-days-in-february-leap-.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-30-days-in-april.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-30-days-in-june.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-30-days-in-november.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-30-days-in-september.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-august.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-december.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-january.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-july.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-march.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-may.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-october.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string.json │ │ │ │ │ │ │ │ ├── parse-date-an-invalid-date-string.json │ │ │ │ │ │ │ │ ├── parse-date-invalid-month-day-combination.json │ │ │ │ │ │ │ │ ├── parse-date-invalid-month.json │ │ │ │ │ │ │ │ ├── parse-date-invalid-non-ascii-a-bengali-4-.json │ │ │ │ │ │ │ │ ├── parse-date-iso8601-non-rfc3339-week-number-implicit-day-of-week-2023-01-02-.json │ │ │ │ │ │ │ │ ├── parse-date-iso8601-non-rfc3339-week-number-rollover-to-next-year-2023-01-01-.json │ │ │ │ │ │ │ │ ├── parse-date-iso8601-non-rfc3339-week-number-with-day-of-week-2023-03-28-.json │ │ │ │ │ │ │ │ ├── parse-date-iso8601-non-rfc3339-yyyymmdd-without-dashes-2023-03-28-.json │ │ │ │ │ │ │ │ ├── parse-date-non-padded-day-dates-are-not-valid.json │ │ │ │ │ │ │ │ ├── parse-date-non-padded-month-dates-are-not-valid.json │ │ │ │ │ │ │ │ ├── parse-date-only-rfc3339-not-all-of-iso-8601-are-valid.json │ │ │ │ │ │ │ │ ├── parse-date-time-a-valid-date-time-string-with-minus-offset.json │ │ │ │ │ │ │ │ ├── parse-date-time-a-valid-date-time-string-with-plus-offset.json │ │ │ │ │ │ │ │ ├── parse-date-time-a-valid-date-time-string-without-second-fraction.json │ │ │ │ │ │ │ │ ├── parse-date-time-a-valid-date-time-string.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-closing-z-after-time-zone-offset.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-date-time-past-leap-second-utc.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-date-time-string.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-date-time-with-a-leap-second-utc.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-date-time-with-a-leap-second-with-minus-offset.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-date-time-with-leap-second-on-a-wrong-hour-utc.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-date-time-with-leap-second-on-a-wrong-minute-utc.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-day-in-date-time-string.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-offset-in-date-time-string.json │ │ │ │ │ │ │ │ ├── parse-date-time-case-insensitive-t-and-z.json │ │ │ │ │ │ │ │ ├── parse-date-time-invalid-non-ascii-a-bengali-4-in-date-portion.json │ │ │ │ │ │ │ │ ├── parse-date-time-invalid-non-ascii-a-bengali-4-in-time-portion.json │ │ │ │ │ │ │ │ ├── parse-date-time-invalid-non-padded-day-dates.json │ │ │ │ │ │ │ │ ├── parse-date-time-invalid-non-padded-month-dates.json │ │ │ │ │ │ │ │ ├── parse-date-time-only-rfc3339-not-all-of-iso-8601-are-valid.json │ │ │ │ │ │ │ │ ├── parseNull-returnsNull.json │ │ │ │ │ │ │ │ ├── valid-lowercase-a-en.json │ │ │ │ │ │ │ │ ├── valid-lowercase-a-nb.json │ │ │ │ │ │ │ │ ├── valid-lowercase-a-nn.json │ │ │ │ │ │ │ │ ├── valid-lowercase-a-noLanguage.json │ │ │ │ │ │ │ │ ├── valid-lowercase-d.json │ │ │ │ │ │ │ │ ├── valid-lowercase-dd.json │ │ │ │ │ │ │ │ ├── valid-lowercase-h.json │ │ │ │ │ │ │ │ ├── valid-lowercase-hh.json │ │ │ │ │ │ │ │ ├── valid-lowercase-m.json │ │ │ │ │ │ │ │ ├── valid-lowercase-mm.json │ │ │ │ │ │ │ │ ├── valid-lowercase-s.json │ │ │ │ │ │ │ │ ├── valid-lowercase-ss.json │ │ │ │ │ │ │ │ ├── valid-lowercase-u.json │ │ │ │ │ │ │ │ ├── valid-lowercase-uu.json │ │ │ │ │ │ │ │ ├── valid-lowercase-uuu.json │ │ │ │ │ │ │ │ ├── valid-lowercase-uuuu.json │ │ │ │ │ │ │ │ ├── valid-lowercase-y.json │ │ │ │ │ │ │ │ ├── valid-lowercase-yy.json │ │ │ │ │ │ │ │ ├── valid-lowercase-yyy.json │ │ │ │ │ │ │ │ ├── valid-lowercase-yyyy.json │ │ │ │ │ │ │ │ ├── valid-uppercase-e-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-e-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-e-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ee-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ee-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ee-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eee-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eee-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eee-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eeee-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eeee-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eeee-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eeeee-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eeeee-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eeeee-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-g-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-g-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-g-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-gg-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-gg-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-gg-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ggg-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ggg-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ggg-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-gggg-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-gggg-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-gggg-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ggggg-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ggggg-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ggggg-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-h.json │ │ │ │ │ │ │ │ ├── valid-uppercase-hh.json │ │ │ │ │ │ │ │ ├── valid-uppercase-m.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mm.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mmm-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mmm-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mmm-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mmmm-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mmmm-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mmmm-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-s.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ss.json │ │ │ │ │ │ │ │ └── valid-uppercase-sss.json │ │ │ │ │ │ │ ├── frontendSettings/ │ │ │ │ │ │ │ │ ├── lookup-case-sensitive.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── simple-lookup-equals.json │ │ │ │ │ │ │ │ ├── simple-lookup-is-null.json │ │ │ │ │ │ │ │ └── simple-lookup.json │ │ │ │ │ │ │ ├── greaterThan/ │ │ │ │ │ │ │ │ ├── diff-types-bool-float.json │ │ │ │ │ │ │ │ ├── diff-types-bool-int.json │ │ │ │ │ │ │ │ ├── diff-types-bool-null.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false3.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-null.json │ │ │ │ │ │ │ │ ├── diff-types-string-null2.json │ │ │ │ │ │ │ │ ├── doble-dots-fail-negative.json │ │ │ │ │ │ │ │ ├── doble-dots-fail.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-1.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-coefficient.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-exponent.json │ │ │ │ │ │ │ │ ├── negative-string-float.json │ │ │ │ │ │ │ │ ├── negative-string-float2.json │ │ │ │ │ │ │ │ ├── negative-string.json │ │ │ │ │ │ │ │ ├── negative-string2.json │ │ │ │ │ │ │ │ ├── no-decimals-fail-negative.json │ │ │ │ │ │ │ │ ├── no-decimals-fail.json │ │ │ │ │ │ │ │ ├── same-types-bool.json │ │ │ │ │ │ │ │ ├── same-types-float-false.json │ │ │ │ │ │ │ │ ├── same-types-float-true.json │ │ │ │ │ │ │ │ ├── same-types-int-false.json │ │ │ │ │ │ │ │ ├── same-types-int-true.json │ │ │ │ │ │ │ │ ├── same-types-null.json │ │ │ │ │ │ │ │ ├── same-types-string-false.json │ │ │ │ │ │ │ │ ├── same-types-string-true.json │ │ │ │ │ │ │ │ ├── sci-notation-negative-exponents.json │ │ │ │ │ │ │ │ ├── sci-notation-numbers.json │ │ │ │ │ │ │ │ ├── sci-notation-with-regular.json │ │ │ │ │ │ │ │ ├── sci-string-basic.json │ │ │ │ │ │ │ │ ├── sci-string-negative-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-negative-exponent.json │ │ │ │ │ │ │ │ ├── sci-string-no-whole.json │ │ │ │ │ │ │ │ ├── sci-string-plus-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-plus-exponent.json │ │ │ │ │ │ │ │ └── sci-string-zero.json │ │ │ │ │ │ │ ├── greaterThanEq/ │ │ │ │ │ │ │ │ ├── diff-types-bool-float.json │ │ │ │ │ │ │ │ ├── diff-types-bool-int.json │ │ │ │ │ │ │ │ ├── diff-types-bool-null.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false3.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-null.json │ │ │ │ │ │ │ │ ├── diff-types-string-null2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-1.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-coefficient.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-exponent.json │ │ │ │ │ │ │ │ ├── same-types-bool.json │ │ │ │ │ │ │ │ ├── same-types-float-false.json │ │ │ │ │ │ │ │ ├── same-types-float-true.json │ │ │ │ │ │ │ │ ├── same-types-int-false.json │ │ │ │ │ │ │ │ ├── same-types-int-true.json │ │ │ │ │ │ │ │ ├── same-types-null.json │ │ │ │ │ │ │ │ ├── same-types-string-false.json │ │ │ │ │ │ │ │ ├── same-types-string-true.json │ │ │ │ │ │ │ │ ├── sci-notation-negative-exponents.json │ │ │ │ │ │ │ │ ├── sci-notation-numbers.json │ │ │ │ │ │ │ │ ├── sci-notation-with-regular.json │ │ │ │ │ │ │ │ ├── sci-string-basic.json │ │ │ │ │ │ │ │ ├── sci-string-negative-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-negative-exponent.json │ │ │ │ │ │ │ │ ├── sci-string-no-whole.json │ │ │ │ │ │ │ │ ├── sci-string-plus-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-plus-exponent.json │ │ │ │ │ │ │ │ └── sci-string-zero.json │ │ │ │ │ │ │ ├── if/ │ │ │ │ │ │ │ │ ├── else-otherwise.json │ │ │ │ │ │ │ │ ├── else-otherwise2.json │ │ │ │ │ │ │ │ ├── fail-5.json │ │ │ │ │ │ │ │ ├── fail-else-as-expr.json │ │ │ │ │ │ │ │ ├── fail-empty-string.json │ │ │ │ │ │ │ │ ├── fail-string.json │ │ │ │ │ │ │ │ ├── fail-without-else.json │ │ │ │ │ │ │ │ ├── fail-without-else2.json │ │ │ │ │ │ │ │ ├── falsy-0-1.json │ │ │ │ │ │ │ │ ├── falsy-0-2.json │ │ │ │ │ │ │ │ ├── never-3-arguments.json │ │ │ │ │ │ │ │ ├── never-5-arguments.json │ │ │ │ │ │ │ │ ├── null-otherwise.json │ │ │ │ │ │ │ │ ├── simple.json │ │ │ │ │ │ │ │ ├── truthy-1-1.json │ │ │ │ │ │ │ │ └── truthy-1-2.json │ │ │ │ │ │ │ ├── instanceContext/ │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── only-dict.json │ │ │ │ │ │ │ │ ├── partyTypeOrg.json │ │ │ │ │ │ │ │ ├── partyTypePerson.json │ │ │ │ │ │ │ │ ├── partyTypeSelfIdentifiedEmail.json │ │ │ │ │ │ │ │ ├── partyTypeSelfIdentifiedUsername.json │ │ │ │ │ │ │ │ ├── partyTypeUnknown.json │ │ │ │ │ │ │ │ ├── simple-lookup-equals.json │ │ │ │ │ │ │ │ ├── simple-lookup-is-null.json │ │ │ │ │ │ │ │ └── simple-lookup.json │ │ │ │ │ │ │ ├── language/ │ │ │ │ │ │ │ │ ├── should-return-nb-if-not-set.json │ │ │ │ │ │ │ │ └── should-return-profile-settings-preference.json │ │ │ │ │ │ │ ├── lessThan/ │ │ │ │ │ │ │ │ ├── diff-types-bool-float.json │ │ │ │ │ │ │ │ ├── diff-types-bool-int.json │ │ │ │ │ │ │ │ ├── diff-types-bool-null.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false3.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-null.json │ │ │ │ │ │ │ │ ├── diff-types-string-null2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-1.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-coefficient.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-exponent.json │ │ │ │ │ │ │ │ ├── same-types-bool.json │ │ │ │ │ │ │ │ ├── same-types-float-false.json │ │ │ │ │ │ │ │ ├── same-types-float-true.json │ │ │ │ │ │ │ │ ├── same-types-int-false.json │ │ │ │ │ │ │ │ ├── same-types-int-true.json │ │ │ │ │ │ │ │ ├── same-types-null.json │ │ │ │ │ │ │ │ ├── same-types-string-false.json │ │ │ │ │ │ │ │ ├── same-types-string-true.json │ │ │ │ │ │ │ │ ├── sci-notation-negative-exponents.json │ │ │ │ │ │ │ │ ├── sci-notation-numbers.json │ │ │ │ │ │ │ │ ├── sci-notation-with-regular.json │ │ │ │ │ │ │ │ ├── sci-string-basic.json │ │ │ │ │ │ │ │ ├── sci-string-negative-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-negative-exponent.json │ │ │ │ │ │ │ │ ├── sci-string-no-whole.json │ │ │ │ │ │ │ │ ├── sci-string-plus-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-plus-exponent.json │ │ │ │ │ │ │ │ └── sci-string-zero.json │ │ │ │ │ │ │ ├── lessThanEq/ │ │ │ │ │ │ │ │ ├── diff-types-bool-float.json │ │ │ │ │ │ │ │ ├── diff-types-bool-int.json │ │ │ │ │ │ │ │ ├── diff-types-bool-null.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false3.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-null.json │ │ │ │ │ │ │ │ ├── diff-types-string-null2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-1.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-coefficient.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-exponent.json │ │ │ │ │ │ │ │ ├── same-types-bool.json │ │ │ │ │ │ │ │ ├── same-types-float-false.json │ │ │ │ │ │ │ │ ├── same-types-float-true.json │ │ │ │ │ │ │ │ ├── same-types-int-false.json │ │ │ │ │ │ │ │ ├── same-types-int-true.json │ │ │ │ │ │ │ │ ├── same-types-null.json │ │ │ │ │ │ │ │ ├── same-types-string-false.json │ │ │ │ │ │ │ │ ├── same-types-string-true.json │ │ │ │ │ │ │ │ ├── sci-notation-negative-exponents.json │ │ │ │ │ │ │ │ ├── sci-notation-numbers.json │ │ │ │ │ │ │ │ ├── sci-notation-with-regular.json │ │ │ │ │ │ │ │ ├── sci-string-basic.json │ │ │ │ │ │ │ │ ├── sci-string-negative-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-negative-exponent.json │ │ │ │ │ │ │ │ ├── sci-string-no-whole.json │ │ │ │ │ │ │ │ ├── sci-string-plus-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-plus-exponent.json │ │ │ │ │ │ │ │ └── sci-string-zero.json │ │ │ │ │ │ │ ├── lowerCase/ │ │ │ │ │ │ │ │ ├── lowercase-number-should-return-string.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── should-lowercase-string.json │ │ │ │ │ │ │ │ ├── should-lowercase-whole-string.json │ │ │ │ │ │ │ │ └── should-lowercase-whole-word.json │ │ │ │ │ │ │ ├── lowerCaseFirst/ │ │ │ │ │ │ │ │ ├── number.json │ │ │ │ │ │ │ │ ├── simple1.json │ │ │ │ │ │ │ │ └── simple2.json │ │ │ │ │ │ │ ├── minus/ │ │ │ │ │ │ │ │ └── minus.json │ │ │ │ │ │ │ ├── multiply/ │ │ │ │ │ │ │ │ └── multiply.json │ │ │ │ │ │ │ ├── not/ │ │ │ │ │ │ │ │ ├── not-changes-notNull-to-false.json │ │ │ │ │ │ │ │ ├── not-changes-null-to-true.json │ │ │ │ │ │ │ │ ├── not-errors-on-numbers-not-0-or-1.json │ │ │ │ │ │ │ │ ├── not-errors-on-two-arguments.json │ │ │ │ │ │ │ │ ├── not-errors-on-zero-arguments.json │ │ │ │ │ │ │ │ ├── not-handles-numeric-zero-as-false.json │ │ │ │ │ │ │ │ ├── not-inverts-false.json │ │ │ │ │ │ │ │ └── not-inverts-true.json │ │ │ │ │ │ │ ├── notContains/ │ │ │ │ │ │ │ │ ├── case-sensitivity.json │ │ │ │ │ │ │ │ ├── exact-match.json │ │ │ │ │ │ │ │ ├── not-match.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── null2.json │ │ │ │ │ │ │ │ ├── null3.json │ │ │ │ │ │ │ │ └── null4.json │ │ │ │ │ │ │ ├── notEquals/ │ │ │ │ │ │ │ │ ├── diff-types-bool-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-bool-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-bool-null-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-true.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-null-true.json │ │ │ │ │ │ │ │ ├── same-types-bool-false.json │ │ │ │ │ │ │ │ ├── same-types-bool-true.json │ │ │ │ │ │ │ │ ├── same-types-float-false.json │ │ │ │ │ │ │ │ ├── same-types-float-true.json │ │ │ │ │ │ │ │ ├── same-types-int-false.json │ │ │ │ │ │ │ │ ├── same-types-int-true.json │ │ │ │ │ │ │ │ ├── same-types-null.json │ │ │ │ │ │ │ │ ├── same-types-string-false.json │ │ │ │ │ │ │ │ └── same-types-string-true.json │ │ │ │ │ │ │ ├── or/ │ │ │ │ │ │ │ │ ├── all-true.json │ │ │ │ │ │ │ │ ├── allows-0.json │ │ │ │ │ │ │ │ ├── allows-1.json │ │ │ │ │ │ │ │ ├── allows-stringy-false.json │ │ │ │ │ │ │ │ ├── allows-stringy-true.json │ │ │ │ │ │ │ │ ├── disallows-2.json │ │ │ │ │ │ │ │ ├── disallows-empty-strings.json │ │ │ │ │ │ │ │ ├── disallows-other-strings.json │ │ │ │ │ │ │ │ ├── empty-or.json │ │ │ │ │ │ │ │ ├── last-false.json │ │ │ │ │ │ │ │ ├── null-is-false.json │ │ │ │ │ │ │ │ ├── single-input-false.json │ │ │ │ │ │ │ │ └── single-input-true.json │ │ │ │ │ │ │ ├── plus/ │ │ │ │ │ │ │ │ └── plus.json │ │ │ │ │ │ │ ├── round/ │ │ │ │ │ │ │ │ ├── nearest-integer-with-decimal-as-strings.json │ │ │ │ │ │ │ │ ├── nearest-integer-with-decimal.json │ │ │ │ │ │ │ │ ├── nearest-integer.json │ │ │ │ │ │ │ │ ├── round-0-decimal-places.json │ │ │ │ │ │ │ │ ├── round-0-decimal-places2.json │ │ │ │ │ │ │ │ ├── round-negative-number.json │ │ │ │ │ │ │ │ ├── round-null.json │ │ │ │ │ │ │ │ ├── round-null2.json │ │ │ │ │ │ │ │ ├── round-strings.json │ │ │ │ │ │ │ │ ├── round-with-too-many-args.json │ │ │ │ │ │ │ │ ├── round-without-decimalCount.json │ │ │ │ │ │ │ │ └── round-without-decimalCount2.json │ │ │ │ │ │ │ ├── startsWith/ │ │ │ │ │ │ │ │ ├── case-sensitivity.json │ │ │ │ │ │ │ │ ├── empty-string.json │ │ │ │ │ │ │ │ ├── exact-match.json │ │ │ │ │ │ │ │ ├── not-starts-with.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── null2.json │ │ │ │ │ │ │ │ ├── number-starts-with-number.json │ │ │ │ │ │ │ │ ├── number-starts-with-string.json │ │ │ │ │ │ │ │ ├── start-with-number.json │ │ │ │ │ │ │ │ └── start-with.json │ │ │ │ │ │ │ ├── stringIndexOf/ │ │ │ │ │ │ │ │ ├── emoji.json │ │ │ │ │ │ │ │ ├── look-for-null.json │ │ │ │ │ │ │ │ ├── look-in-null.json │ │ │ │ │ │ │ │ ├── not-found.json │ │ │ │ │ │ │ │ ├── number.json │ │ │ │ │ │ │ │ ├── simple.json │ │ │ │ │ │ │ │ └── whitespace.json │ │ │ │ │ │ │ ├── stringLength/ │ │ │ │ │ │ │ │ ├── empty-string.json │ │ │ │ │ │ │ │ ├── length-equals.json │ │ │ │ │ │ │ │ ├── length-of-number.json │ │ │ │ │ │ │ │ ├── length-of-unicode.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── string-length.json │ │ │ │ │ │ │ │ └── whitespace-length.json │ │ │ │ │ │ │ ├── stringReplace/ │ │ │ │ │ │ │ │ ├── emoji.json │ │ │ │ │ │ │ │ ├── multiple.json │ │ │ │ │ │ │ │ ├── replace-with-null.json │ │ │ │ │ │ │ │ ├── simple.json │ │ │ │ │ │ │ │ └── special-chars.json │ │ │ │ │ │ │ ├── stringSlice/ │ │ │ │ │ │ │ │ ├── emoji.json │ │ │ │ │ │ │ │ ├── emoji2.json │ │ │ │ │ │ │ │ ├── end-before-start.json │ │ │ │ │ │ │ │ ├── end-too-large.json │ │ │ │ │ │ │ │ ├── error-together.json │ │ │ │ │ │ │ │ ├── negative-end.json │ │ │ │ │ │ │ │ ├── negative-start.json │ │ │ │ │ │ │ │ ├── simple.json │ │ │ │ │ │ │ │ ├── start-before-length.json │ │ │ │ │ │ │ │ ├── start-too-large.json │ │ │ │ │ │ │ │ └── together.json │ │ │ │ │ │ │ ├── text/ │ │ │ │ │ │ │ │ ├── lookup-from-multiple-sources.json │ │ │ │ │ │ │ │ ├── lookup-instance-data.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── should-return-key-name-if-key-not-exist.json │ │ │ │ │ │ │ │ ├── should-return-text-resource-with-variable-in-rep-group-no-index-markers.json │ │ │ │ │ │ │ │ ├── should-return-text-resource-with-variable-in-rep-group.json │ │ │ │ │ │ │ │ ├── should-return-text-resource-with-variable.json │ │ │ │ │ │ │ │ ├── should-return-text-resource.json │ │ │ │ │ │ │ │ ├── unknown-data-source-returns-null.json │ │ │ │ │ │ │ │ └── use-default-when-dataModel-null.json │ │ │ │ │ │ │ ├── unknown/ │ │ │ │ │ │ │ │ ├── appSettings.json │ │ │ │ │ │ │ │ ├── function-wrong-case.json │ │ │ │ │ │ │ │ └── invalid-function.json │ │ │ │ │ │ │ ├── upperCase/ │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── should-uppercase-string.json │ │ │ │ │ │ │ │ ├── should-uppercase-whole-string.json │ │ │ │ │ │ │ │ ├── should-uppercase-whole-word.json │ │ │ │ │ │ │ │ └── uppercase-number-should-return-string.json │ │ │ │ │ │ │ └── upperCaseFirst/ │ │ │ │ │ │ │ ├── number.json │ │ │ │ │ │ │ ├── simple1.json │ │ │ │ │ │ │ └── simple2.json │ │ │ │ │ │ └── invalid/ │ │ │ │ │ │ ├── empty-array-inside.json │ │ │ │ │ │ ├── empty-array.json │ │ │ │ │ │ ├── empty-object.json │ │ │ │ │ │ ├── extra-argument.json │ │ │ │ │ │ ├── func-not-implemented.json │ │ │ │ │ │ ├── group-missing-child.json │ │ │ │ │ │ ├── missing-args.json │ │ │ │ │ │ ├── numeric-array.json │ │ │ │ │ │ ├── two-components-same-id.json │ │ │ │ │ │ ├── two-groups-same-child.json │ │ │ │ │ │ └── wrong-function-capitalization.json │ │ │ │ │ └── up-for-evaluation/ │ │ │ │ │ └── functions/ │ │ │ │ │ └── authContext/ │ │ │ │ │ ├── read-confirm.json │ │ │ │ │ ├── read-sign-reject.json │ │ │ │ │ ├── read-sign.json │ │ │ │ │ └── read-write.json │ │ │ │ ├── ExpressionEvaluatorTests/ │ │ │ │ │ ├── EqualsTests.cs │ │ │ │ │ ├── ExpressionTests.cs │ │ │ │ │ └── ExpressionValueTests.cs │ │ │ │ ├── FullTests/ │ │ │ │ │ ├── CleanDataAccessor/ │ │ │ │ │ │ ├── MainModel.cs │ │ │ │ │ │ ├── TestCleanDataAccessor.cs │ │ │ │ │ │ ├── TestValidateCleanData.CleanFull.verified.txt │ │ │ │ │ │ ├── TestValidateCleanData.CleanIncremental.verified.txt │ │ │ │ │ │ ├── TestValidateCleanData.DirtyFull.verified.txt │ │ │ │ │ │ ├── TestValidateCleanData.DirtyIncremental.verified.txt │ │ │ │ │ │ ├── TestValidateCleanData.cs │ │ │ │ │ │ ├── mainLayout/ │ │ │ │ │ │ │ └── page1.json │ │ │ │ │ │ └── subLayout/ │ │ │ │ │ │ └── subPage.json │ │ │ │ │ ├── DataAccessorFixture.cs │ │ │ │ │ ├── LayoutTestUtils.cs │ │ │ │ │ ├── LikertHidden/ │ │ │ │ │ │ ├── LikertHiddenTests.cs │ │ │ │ │ │ └── Survey.json │ │ │ │ │ ├── RemoveHiddenData/ │ │ │ │ │ │ ├── CV.json │ │ │ │ │ │ ├── RemoveHiddenDataTests.TestRemoveHiddenData.verified.txt │ │ │ │ │ │ ├── RemoveHiddenDataTests.cs │ │ │ │ │ │ └── Skjul felter.json │ │ │ │ │ ├── RepeatingGroupsHidden/ │ │ │ │ │ │ ├── Page1.json │ │ │ │ │ │ ├── Page2.json │ │ │ │ │ │ ├── RepeatingGroupsHidden.Test_Hidden_Multiple_Groups_hidePage1=False_hidePage2=False.verified.txt │ │ │ │ │ │ ├── RepeatingGroupsHidden.Test_Hidden_Multiple_Groups_hidePage1=False_hidePage2=True.verified.txt │ │ │ │ │ │ ├── RepeatingGroupsHidden.Test_Hidden_Multiple_Groups_hidePage1=True_hidePage2=False.verified.txt │ │ │ │ │ │ ├── RepeatingGroupsHidden.Test_Hidden_Multiple_Groups_hidePage1=True_hidePage2=True.verified.txt │ │ │ │ │ │ └── RepeatingGroupsHidden.cs │ │ │ │ │ ├── RequiredValidator/ │ │ │ │ │ │ ├── RequiredValidatorTests.ValidateAllRequiredFieldsMissing.verified.txt │ │ │ │ │ │ ├── RequiredValidatorTests.ValidateEmpty_IssuesRequiredIssues.verified.txt │ │ │ │ │ │ ├── RequiredValidatorTests.VerifyAllOk.verified.txt │ │ │ │ │ │ ├── RequiredValidatorTests.cs │ │ │ │ │ │ ├── mainLayout/ │ │ │ │ │ │ │ └── page1.json │ │ │ │ │ │ └── subLayout/ │ │ │ │ │ │ └── subPage.json │ │ │ │ │ ├── SubForm/ │ │ │ │ │ │ ├── SubFormTests.Test1.verified.txt │ │ │ │ │ │ └── SubFormTests.cs │ │ │ │ │ ├── Test1/ │ │ │ │ │ │ ├── FirstPage.json │ │ │ │ │ │ ├── RunTest1.cs │ │ │ │ │ │ └── SecondPage.json │ │ │ │ │ ├── Test2/ │ │ │ │ │ │ ├── FirstPage.json │ │ │ │ │ │ ├── RunTest2.cs │ │ │ │ │ │ └── SecondPage.json │ │ │ │ │ └── Test3/ │ │ │ │ │ ├── FirstPage.json │ │ │ │ │ ├── RunTest3.cs │ │ │ │ │ └── SecondPage.json │ │ │ │ ├── RemoveHiddenData/ │ │ │ │ │ └── OptionsWithGroupTests.cs │ │ │ │ ├── TestDataModel.cs │ │ │ │ └── TestUtilities/ │ │ │ │ ├── DynamicClassBuilder.cs │ │ │ │ ├── DynamicClassBuilderChatGPTTests.cs │ │ │ │ ├── DynamicClassBuilderTests.cs │ │ │ │ ├── InstanceDataAccessorFake.cs │ │ │ │ └── LayoutEvaluatorTest.cs │ │ │ ├── Mocks/ │ │ │ │ ├── DelegatingHandlerStub.cs │ │ │ │ └── RequestInterceptor.cs │ │ │ ├── Models/ │ │ │ │ ├── AppIdentifierTests.cs │ │ │ │ ├── ApplicationMetdataTests.cs │ │ │ │ ├── DataElementIdentifierTests.cs │ │ │ │ ├── DataReferenceTests.cs │ │ │ │ ├── InstanceIdentifierTests.cs │ │ │ │ ├── JwtTokenJsonConverterTest.cs │ │ │ │ ├── JwtTokenTests.cs │ │ │ │ ├── LanguageCodeJsonConverterTest.cs │ │ │ │ ├── LanguageCodeTests.cs │ │ │ │ ├── MimeTypeTests.cs │ │ │ │ ├── ModelSerializationServiceTests.cs │ │ │ │ ├── NationalIdentityNumberJsonConverterTest.cs │ │ │ │ ├── NationalIdentityNumberTests.cs │ │ │ │ ├── Notifications/ │ │ │ │ │ └── Future/ │ │ │ │ │ └── CustomTextsTests.cs │ │ │ │ ├── OrganisationNumberJsonConverterTest.cs │ │ │ │ ├── OrganisationNumberTests.cs │ │ │ │ ├── PageComponentConverterTests.cs │ │ │ │ ├── Result/ │ │ │ │ │ └── ServiceResultTests.cs │ │ │ │ └── page-component-converter-tests/ │ │ │ │ ├── button-group.json │ │ │ │ ├── grid.json │ │ │ │ ├── group-random-ordering-last.json │ │ │ │ ├── group-random-ordering.json │ │ │ │ ├── group-repeating-multipage.json │ │ │ │ ├── group-repeating.json │ │ │ │ ├── group.json │ │ │ │ ├── nested-group-random-ordering-last.json │ │ │ │ ├── nested-group-random-ordering.json │ │ │ │ ├── nested-group-repeating-multipage.json │ │ │ │ ├── nested-group-repeating.json │ │ │ │ ├── nested-group.json │ │ │ │ ├── simple-missing-id.json │ │ │ │ └── simple.json │ │ │ ├── ModuleInitializer.cs │ │ │ ├── PublicApiTests.PublicApi_ShouldNotChange_Unintentionally.verified.txt │ │ │ ├── PublicApiTests.cs │ │ │ ├── TestUtils/ │ │ │ │ ├── FileNamesInFolderAttribute.cs │ │ │ │ ├── PathUtils.cs │ │ │ │ ├── TestAttributeHelper.cs │ │ │ │ └── TestCasesAttribute.cs │ │ │ └── secrets.json │ │ ├── Altinn.App.Integration.Tests/ │ │ │ ├── Altinn.App.Integration.Tests.csproj │ │ │ ├── Basic/ │ │ │ │ ├── BasicAppTests.cs │ │ │ │ └── _snapshots/ │ │ │ │ ├── BasicAppTests.AppConnectivity_Localtest.verified.txt │ │ │ │ ├── BasicAppTests.AppConnectivity_Pdf.verified.txt │ │ │ │ ├── BasicAppTests.Authentication_auth=OldServiceOwner.verified.txt │ │ │ │ ├── BasicAppTests.Authentication_auth=OldUser.verified.txt │ │ │ │ ├── BasicAppTests.Authentication_auth=SelfIdentifiedUser.verified.txt │ │ │ │ ├── BasicAppTests.Authentication_auth=ServiceOwner.verified.txt │ │ │ │ ├── BasicAppTests.Authentication_auth=SystemUser.verified.txt │ │ │ │ ├── BasicAppTests.Authentication_auth=User.verified.txt │ │ │ │ ├── BasicAppTests.DataUpload_filenameQuoted=False_useNewEndpoint=False_0_UploadResponse.verified.txt │ │ │ │ ├── BasicAppTests.DataUpload_filenameQuoted=False_useNewEndpoint=True_0_UploadResponse.verified.txt │ │ │ │ ├── BasicAppTests.DataUpload_filenameQuoted=True_useNewEndpoint=False_0_UploadResponse.verified.txt │ │ │ │ ├── BasicAppTests.DataUpload_filenameQuoted=True_useNewEndpoint=True_0_UploadResponse.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartJsonPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartNoPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartNoPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartNoPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartNoPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartNoPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartNoPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartNoPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartNoPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartXmlPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartXmlPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartXmlPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartXmlPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartXmlPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartXmlPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartXmlPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=MultipartXmlPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedNoPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedNoPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedNoPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedNoPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedNoPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedNoPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedNoPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedNoPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedWithPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedWithPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedWithPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedWithPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedWithPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedWithPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedWithPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldServiceOwner_testCase=SimplifiedWithPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartJsonPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartNoPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartNoPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartNoPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartNoPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartNoPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartNoPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartNoPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartNoPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartXmlPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartXmlPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartXmlPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartXmlPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartXmlPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartXmlPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartXmlPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=MultipartXmlPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedNoPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedNoPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedNoPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedNoPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedNoPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedNoPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedNoPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedNoPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedWithPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedWithPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedWithPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedWithPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedWithPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedWithPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedWithPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=OldUser_testCase=SimplifiedWithPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartJsonPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartNoPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartNoPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartNoPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartNoPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartNoPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartNoPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartNoPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartNoPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartXmlPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartXmlPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartXmlPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartXmlPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartXmlPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartXmlPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartXmlPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=MultipartXmlPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedNoPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedNoPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedNoPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedNoPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedNoPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedNoPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedNoPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedNoPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedWithPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedWithPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedWithPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedWithPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedWithPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedWithPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedWithPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=ServiceOwner_testCase=SimplifiedWithPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartJsonPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartNoPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartNoPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartNoPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartNoPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartNoPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartNoPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartNoPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartNoPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartXmlPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartXmlPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartXmlPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartXmlPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartXmlPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartXmlPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartXmlPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=MultipartXmlPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedNoPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedNoPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedNoPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedNoPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedNoPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedNoPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedNoPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedNoPrefill_7_Logs.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedWithPrefill_0_Instantiation.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedWithPrefill_1_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedWithPrefill_2_PatchFormData.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedWithPrefill_3_ProcessNext.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedWithPrefill_4_Download-Instance.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedWithPrefill_5_Download-Data[0].verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedWithPrefill_6_Download-PDF.verified.txt │ │ │ │ ├── BasicAppTests.Full_auth=User_testCase=SimplifiedWithPrefill_7_Logs.verified.txt │ │ │ │ └── BasicAppTests.HostedServices.verified.txt │ │ │ ├── CustomScopes/ │ │ │ │ ├── Apis.cs │ │ │ │ ├── CustomScopesTests.cs │ │ │ │ ├── CustomScopesWithPlaceholderTests.cs │ │ │ │ └── _snapshots/ │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=altinn-serviceowner-instances.read-altinn-serviceowner-instances.write_0_Token.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=altinn-serviceowner-instances.read-altinn-serviceowner-instances.write_1_Instantiation.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=altinn-serviceowner-instances.read-altinn-serviceowner-instances.write_2_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=altinn-serviceowner-instances.read-altinn-serviceowner-instances.write_3_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=altinn-serviceowner-instances.read-altinn-serviceowner-instances.write_4_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=altinn-serviceowner-instances.read-altinn-serviceowner-instances.write_5_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=altinn-serviceowner-instances.read-altinn-serviceowner-instances.write_6_GetPublic.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=altinn-serviceowner-instances.read-altinn-serviceowner-instances.write_7_Logs.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=custom-serviceowner-instances.read-custom-serviceowner-instances.write_0_Token.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=custom-serviceowner-instances.read-custom-serviceowner-instances.write_1_Instantiation.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=custom-serviceowner-instances.read-custom-serviceowner-instances.write_2_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=custom-serviceowner-instances.read-custom-serviceowner-instances.write_3_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=custom-serviceowner-instances.read-custom-serviceowner-instances.write_4_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=custom-serviceowner-instances.read-custom-serviceowner-instances.write_5_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=custom-serviceowner-instances.read-custom-serviceowner-instances.write_6_GetPublic.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=ServiceOwner_scope=custom-serviceowner-instances.read-custom-serviceowner-instances.write_7_Logs.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=altinn-instances.read-altinn-instances.write_0_Token.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=altinn-instances.read-altinn-instances.write_1_Instantiation.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=altinn-instances.read-altinn-instances.write_2_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=altinn-instances.read-altinn-instances.write_3_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=altinn-instances.read-altinn-instances.write_4_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=altinn-instances.read-altinn-instances.write_5_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=altinn-instances.read-altinn-instances.write_6_GetPublic.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=altinn-instances.read-altinn-instances.write_7_Logs.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=custom-instances.read-custom-instances.write_0_Token.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=custom-instances.read-custom-instances.write_1_Instantiation.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=custom-instances.read-custom-instances.write_2_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=custom-instances.read-custom-instances.write_3_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=custom-instances.read-custom-instances.write_4_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=custom-instances.read-custom-instances.write_5_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=custom-instances.read-custom-instances.write_6_GetPublic.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=SystemUser_scope=custom-instances.read-custom-instances.write_7_Logs.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-instances.read-altinn-instances.write_0_Token.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-instances.read-altinn-instances.write_1_Instantiation.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-instances.read-altinn-instances.write_2_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-instances.read-altinn-instances.write_3_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-instances.read-altinn-instances.write_4_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-instances.read-altinn-instances.write_5_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-instances.read-altinn-instances.write_6_GetPublic.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-instances.read-altinn-instances.write_7_Logs.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-portal-enduser_0_Token.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-portal-enduser_1_Instantiation.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-portal-enduser_2_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-portal-enduser_3_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-portal-enduser_4_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-portal-enduser_5_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-portal-enduser_6_GetPublic.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=altinn-portal-enduser_7_Logs.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=custom-instances.read-custom-instances.write_0_Token.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=custom-instances.read-custom-instances.write_1_Instantiation.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=custom-instances.read-custom-instances.write_2_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=custom-instances.read-custom-instances.write_3_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=custom-instances.read-custom-instances.write_4_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=custom-instances.read-custom-instances.write_5_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=custom-instances.read-custom-instances.write_6_GetPublic.verified.txt │ │ │ │ ├── CustomScopesTests.Full_auth=User_scope=custom-instances.read-custom-instances.write_7_Logs.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=ServiceOwner_scope=custom-serviceowner-instances.read_0_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=ServiceOwner_scope=custom-serviceowner-instances.read_1_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=ServiceOwner_scope=custom-serviceowner-instances.read_2_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=ServiceOwner_scope=custom-serviceowner-instances.read_3_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=ServiceOwner_scope=custom-serviceowner-instances.read_4_GetPublic.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=ServiceOwner_scope=custom-serviceowner-instances.write_0_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=ServiceOwner_scope=custom-serviceowner-instances.write_1_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=ServiceOwner_scope=custom-serviceowner-instances.write_2_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=ServiceOwner_scope=custom-serviceowner-instances.write_3_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=ServiceOwner_scope=custom-serviceowner-instances.write_4_GetPublic.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=User_scope=custom-instances.read_0_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=User_scope=custom-instances.read_1_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=User_scope=custom-instances.read_2_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=User_scope=custom-instances.read_3_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=User_scope=custom-instances.read_4_GetPublic.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=User_scope=custom-instances.write_0_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=User_scope=custom-instances.write_1_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=User_scope=custom-instances.write_2_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=User_scope=custom-instances.write_3_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesTests.IndividualScopes_auth=User_scope=custom-instances.write_4_GetPublic.verified.txt │ │ │ │ ├── CustomScopesTests.Metadata_Custom_0_Metadata.verified.txt │ │ │ │ ├── CustomScopesTests.Metadata_Standard_0_Metadata.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=ServiceOwner_scope=custom-basic-serviceowner-instances.read-custom-basic-serviceowner-instances.write_0_Token.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=ServiceOwner_scope=custom-basic-serviceowner-instances.read-custom-basic-serviceowner-instances.write_1_Instantiation.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=ServiceOwner_scope=custom-basic-serviceowner-instances.read-custom-basic-serviceowner-instances.write_2_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=ServiceOwner_scope=custom-basic-serviceowner-instances.read-custom-basic-serviceowner-instances.write_3_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=ServiceOwner_scope=custom-basic-serviceowner-instances.read-custom-basic-serviceowner-instances.write_4_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=ServiceOwner_scope=custom-basic-serviceowner-instances.read-custom-basic-serviceowner-instances.write_5_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=ServiceOwner_scope=custom-basic-serviceowner-instances.read-custom-basic-serviceowner-instances.write_6_GetPublic.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=ServiceOwner_scope=custom-basic-serviceowner-instances.read-custom-basic-serviceowner-instances.write_7_Logs.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=SystemUser_scope=custom-basic-instances.read-custom-basic-instances.write_0_Token.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=SystemUser_scope=custom-basic-instances.read-custom-basic-instances.write_1_Instantiation.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=SystemUser_scope=custom-basic-instances.read-custom-basic-instances.write_2_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=SystemUser_scope=custom-basic-instances.read-custom-basic-instances.write_3_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=SystemUser_scope=custom-basic-instances.read-custom-basic-instances.write_4_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=SystemUser_scope=custom-basic-instances.read-custom-basic-instances.write_5_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=SystemUser_scope=custom-basic-instances.read-custom-basic-instances.write_6_GetPublic.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=SystemUser_scope=custom-basic-instances.read-custom-basic-instances.write_7_Logs.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=User_scope=custom-basic-instances.read-custom-basic-instances.write_0_Token.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=User_scope=custom-basic-instances.read-custom-basic-instances.write_1_Instantiation.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=User_scope=custom-basic-instances.read-custom-basic-instances.write_2_GetInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=User_scope=custom-basic-instances.read-custom-basic-instances.write_3_PostInstanceGuid.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=User_scope=custom-basic-instances.read-custom-basic-instances.write_4_GetInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=User_scope=custom-basic-instances.read-custom-basic-instances.write_5_PostInstanceOwnerPartyId.verified.txt │ │ │ │ ├── CustomScopesWithPlaceholderTests.Full_auth=User_scope=custom-basic-instances.read-custom-basic-instances.write_6_GetPublic.verified.txt │ │ │ │ └── CustomScopesWithPlaceholderTests.Full_auth=User_scope=custom-basic-instances.read-custom-basic-instances.write_7_Logs.verified.txt │ │ │ ├── InstanceLocking/ │ │ │ │ └── InstanceLockTests.cs │ │ │ ├── ModuleInitializer.cs │ │ │ ├── PartyTypesAllowed/ │ │ │ │ ├── SubunitOnlyAppTests.cs │ │ │ │ └── _snapshots/ │ │ │ │ ├── SubunitOnlyAppTests.ApplicationMetadata_0.verified.txt │ │ │ │ ├── SubunitOnlyAppTests.ApplicationMetadata_1_Logs.verified.txt │ │ │ │ ├── SubunitOnlyAppTests.Instantiate_partyId=500000_0_Instance.verified.txt │ │ │ │ ├── SubunitOnlyAppTests.Instantiate_partyId=500000_1_Logs.verified.txt │ │ │ │ ├── SubunitOnlyAppTests.Instantiate_partyId=500002_0_Instance.verified.txt │ │ │ │ └── SubunitOnlyAppTests.Instantiate_partyId=500002_1_Logs.verified.txt │ │ │ ├── README.md │ │ │ ├── _fixture/ │ │ │ │ ├── AppFixture.ApiResponse.cs │ │ │ │ ├── AppFixture.cs │ │ │ │ ├── AppFixtureClassFixture.cs │ │ │ │ ├── Command.cs │ │ │ │ ├── Logger.cs │ │ │ │ ├── NuGetPackaging.cs │ │ │ │ ├── Operations/ │ │ │ │ │ ├── AppFixture.ApplicationMetadata.cs │ │ │ │ │ ├── AppFixture.Auth.cs │ │ │ │ │ ├── AppFixture.Connectivity.cs │ │ │ │ │ ├── AppFixture.Generic.cs │ │ │ │ │ ├── AppFixture.HostedServices.cs │ │ │ │ │ └── AppFixture.Instances.cs │ │ │ │ ├── ScopedVerifier.cs │ │ │ │ ├── Scrubbers.cs │ │ │ │ ├── StudioctlEnvironment.cs │ │ │ │ ├── TestApps.cs │ │ │ │ └── Tests.cs │ │ │ └── _testapps/ │ │ │ ├── _shared/ │ │ │ │ ├── ConnectivityResult.cs │ │ │ │ ├── FixtureConfiguration.cs │ │ │ │ ├── FixtureConfigurationService.cs │ │ │ │ ├── IEndpointConfigurator.cs │ │ │ │ ├── SnapshotLogger.cs │ │ │ │ ├── TestingApis.cs │ │ │ │ └── Tracing.cs │ │ │ └── basic/ │ │ │ ├── .altinnstudio/ │ │ │ │ └── settings.json │ │ │ ├── .dockerignore │ │ │ ├── App/ │ │ │ │ ├── App.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── appsettings.Development.json │ │ │ │ ├── appsettings.Production.json │ │ │ │ ├── appsettings.Staging.json │ │ │ │ ├── appsettings.json │ │ │ │ ├── config/ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ ├── authorization/ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ ├── process/ │ │ │ │ │ │ └── process.bpmn │ │ │ │ │ └── texts/ │ │ │ │ │ └── resource.nb.json │ │ │ │ ├── models/ │ │ │ │ │ ├── model.cs │ │ │ │ │ ├── model.metadata.json │ │ │ │ │ ├── model.schema.json │ │ │ │ │ └── model.xsd │ │ │ │ └── ui/ │ │ │ │ ├── Task_1/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ └── Side1.json │ │ │ │ └── footer.json │ │ │ ├── App.sln │ │ │ ├── Directory.Build.props │ │ │ ├── Directory.Packages.props │ │ │ ├── Dockerfile │ │ │ ├── NuGet.config │ │ │ └── _scenarios/ │ │ │ ├── custom-scopes/ │ │ │ │ └── config/ │ │ │ │ └── applicationmetadata.json │ │ │ ├── custom-scopes-placeholders/ │ │ │ │ └── config/ │ │ │ │ └── applicationmetadata.json │ │ │ ├── instance-lock/ │ │ │ │ └── services/ │ │ │ │ └── WaitForReleaseProcessTaskEnd.cs │ │ │ └── subunit-only/ │ │ │ ├── config/ │ │ │ │ └── applicationmetadata.json │ │ │ └── services/ │ │ │ └── SubunitOnlyInstantiationValidator.cs │ │ ├── Altinn.App.SourceGenerator.Integration.Tests/ │ │ │ ├── Altinn.App.SourceGenerator.Integration.Tests.csproj │ │ │ ├── Models/ │ │ │ │ ├── Empty.cs │ │ │ │ └── Skjema.cs │ │ │ ├── UnitTest/ │ │ │ │ ├── TestAddIndexToPath.cs │ │ │ │ ├── TestAltinnRowIds.cs │ │ │ │ ├── TestFormDataWrapperFactory.cs │ │ │ │ ├── TestGeneratedCopy.cs │ │ │ │ ├── TestGeneratedGetter.cs │ │ │ │ ├── TestGeneratedRemoval.cs │ │ │ │ └── TestGeneratedSetter.cs │ │ │ ├── config/ │ │ │ │ └── applicationmetadata.json │ │ │ └── gen/ │ │ │ └── Altinn.App.Analyzers/ │ │ │ └── Altinn.App.Analyzers.FormDataWrapperGenerator/ │ │ │ ├── EmptyFormDataWrapper.g.cs │ │ │ └── SkjemaFormDataWrapper.g.cs │ │ ├── Altinn.App.SourceGenerator.Tests/ │ │ │ ├── AdditionalTextImplementation.cs │ │ │ ├── Altinn.App.SourceGenerator.Tests.csproj │ │ │ ├── DiagnosticTests.ClassNotFound_isAltinnApp=False.verified.txt │ │ │ ├── DiagnosticTests.ClassNotFound_isAltinnApp=True.verified.txt │ │ │ ├── DiagnosticTests.ErrorReadingAppMetadata.verified.txt │ │ │ ├── DiagnosticTests.MultipleAppMetadataFile.verified.txt │ │ │ ├── DiagnosticTests.NoAppMetadataFile.verified.txt │ │ │ ├── DiagnosticTests.NotJsonObject.verified.txt │ │ │ ├── DiagnosticTests.RunJsonError.verified.txt │ │ │ ├── DiagnosticTests.RunJsonNoDataTypes.verified.txt │ │ │ ├── DiagnosticTests.cs │ │ │ ├── FullTests.Empty#SkjemaFormDataWrapper.g.verified.cs │ │ │ ├── FullTests.Run#SkjemaFormDataWrapper.g.verified.cs │ │ │ ├── FullTests.cs │ │ │ ├── ModuleInitializer.cs │ │ │ ├── NanoJsonReader/ │ │ │ │ └── NanoJsonReaderTests.cs │ │ │ ├── SourceReaderTests/ │ │ │ │ └── JsonIgnoreAttributeTests.cs │ │ │ ├── SourceTextGeneratorTests.Generate.verified.cs │ │ │ ├── SourceTextGeneratorTests.GenerateEmpty.verified.cs │ │ │ ├── SourceTextGeneratorTests.cs │ │ │ ├── TestAnalyzerConfigOptionsProvider.cs │ │ │ └── models.cs │ │ ├── Altinn.App.Tests.Common/ │ │ │ ├── Altinn.App.Tests.Common.csproj │ │ │ ├── AppBuilder.cs │ │ │ ├── Auth/ │ │ │ │ ├── JwtTokenMock.cs │ │ │ │ └── TestAuthentication.cs │ │ │ ├── Data/ │ │ │ │ ├── CommonTestData.cs │ │ │ │ ├── Profile/ │ │ │ │ │ └── User/ │ │ │ │ │ ├── 1001.json │ │ │ │ │ ├── 1002.json │ │ │ │ │ ├── 1003.json │ │ │ │ │ ├── 12345.json │ │ │ │ │ ├── 1337.json │ │ │ │ │ └── 2001.json │ │ │ │ └── Register/ │ │ │ │ └── Party/ │ │ │ │ ├── 500000.json │ │ │ │ ├── 500001.json │ │ │ │ ├── 500002.json │ │ │ │ ├── 500003.json │ │ │ │ ├── 5001337.json │ │ │ │ ├── 500600.json │ │ │ │ ├── 500700.json │ │ │ │ ├── 500800.json │ │ │ │ ├── 500801.json │ │ │ │ ├── 500802.json │ │ │ │ ├── 501337.json │ │ │ │ ├── 510001.json │ │ │ │ ├── 510002.json │ │ │ │ ├── 510003.json │ │ │ │ ├── 510004.json │ │ │ │ ├── 512001.json │ │ │ │ └── 512345.json │ │ │ ├── FakeLoggerXunit.cs │ │ │ ├── Fixtures/ │ │ │ │ ├── FakeHttpMessageHandler.cs │ │ │ │ ├── MockedServiceCollection.cs │ │ │ │ └── StorageClientInterceptor.cs │ │ │ ├── IdentificationNumberProvider.cs │ │ │ ├── Mocks/ │ │ │ │ ├── AltinnPartyClientInterceptor.cs │ │ │ │ ├── AltinnPartyClientMock.cs │ │ │ │ └── ProfileClientMock.cs │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ ├── TelemetrySink.cs │ │ │ ├── TestId.cs │ │ │ ├── TestResources/ │ │ │ │ ├── JWTValidationCert.cer │ │ │ │ ├── config/ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ └── jwtselfsignedcert.pfx │ │ │ └── Utils/ │ │ │ └── OtelVisualizers.cs │ │ ├── Directory.Build.props │ │ └── Dockerfile │ ├── codelists/ │ │ ├── .config/ │ │ │ └── dotnet-tools.json │ │ ├── .csharpierignore │ │ ├── .csharpierrc.yaml │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ ├── launch.json │ │ │ └── tasks.json │ │ ├── Altinn.Codelists.sln │ │ ├── Directory.Build.props │ │ ├── Directory.Packages.props │ │ ├── README.md │ │ ├── global.json │ │ ├── solutions/ │ │ │ └── Src.sln │ │ ├── src/ │ │ │ ├── Altinn.Codelists/ │ │ │ │ ├── Altinn.Codelists.csproj │ │ │ │ ├── Extensions/ │ │ │ │ │ ├── CollectionExtensions.cs │ │ │ │ │ └── ServiceCollectionExtensions.cs │ │ │ │ ├── GlobalUsing.cs │ │ │ │ ├── Kartverket/ │ │ │ │ │ └── AdministrativeUnits/ │ │ │ │ │ ├── AdministrativeUnitsSettings.cs │ │ │ │ │ ├── Clients/ │ │ │ │ │ │ ├── AdministrativeUnitsHttpClient.cs │ │ │ │ │ │ └── AdministrativeUnitsHttpClientCached.cs │ │ │ │ │ ├── CountiesCodelistProvider.cs │ │ │ │ │ ├── Extensions/ │ │ │ │ │ │ └── ServiceCollectionExtensions.cs │ │ │ │ │ ├── IAdministrativeUnitsClient.cs │ │ │ │ │ ├── Models/ │ │ │ │ │ │ ├── County.cs │ │ │ │ │ │ └── Municipality.cs │ │ │ │ │ └── MunicipalitiesCodelistProvider.cs │ │ │ │ ├── Posten/ │ │ │ │ │ ├── Clients/ │ │ │ │ │ │ ├── PostalCodeRecord.cs │ │ │ │ │ │ ├── PostalCodesCsvParser.cs │ │ │ │ │ │ └── PostalCodesHttpClient.cs │ │ │ │ │ ├── Extensions/ │ │ │ │ │ │ └── ServiceCollectionExtensions.cs │ │ │ │ │ ├── IPostalCodesClient.cs │ │ │ │ │ ├── PostalCodesCodelistsProvider.cs │ │ │ │ │ └── PostenSettings.cs │ │ │ │ ├── RestCountries/ │ │ │ │ │ ├── Clients/ │ │ │ │ │ │ └── CountriesClient.cs │ │ │ │ │ ├── Data/ │ │ │ │ │ │ ├── Resources.cs │ │ │ │ │ │ └── countries.json │ │ │ │ │ ├── Extensions/ │ │ │ │ │ │ └── ServiceCollectionExtensions.cs │ │ │ │ │ ├── ICountryClient.cs │ │ │ │ │ ├── Models/ │ │ │ │ │ │ ├── Country.cs │ │ │ │ │ │ ├── Currency.cs │ │ │ │ │ │ ├── Filter.cs │ │ │ │ │ │ └── Name.cs │ │ │ │ │ └── readme.md │ │ │ │ ├── SSB/ │ │ │ │ │ ├── ClassificationCodelistProvider.cs │ │ │ │ │ ├── ClassificationOptions.cs │ │ │ │ │ ├── Clients/ │ │ │ │ │ │ ├── ClassificationCode.cs │ │ │ │ │ │ ├── ClassificationCodes.cs │ │ │ │ │ │ ├── ClassificationSettings.cs │ │ │ │ │ │ ├── ClassificationsHttpClient.cs │ │ │ │ │ │ └── ClassificationsHttpClientCached.cs │ │ │ │ │ ├── Extensions/ │ │ │ │ │ │ └── ServiceCollectionExtensions.cs │ │ │ │ │ ├── IClassificationsClient.cs │ │ │ │ │ ├── Models/ │ │ │ │ │ │ └── Classification.cs │ │ │ │ │ └── readme.md │ │ │ │ └── Utilities/ │ │ │ │ ├── EmbeddedResource.cs │ │ │ │ └── PredicateBuilder.cs │ │ │ ├── Directory.Build.props │ │ │ └── Directory.Build.targets │ │ └── test/ │ │ └── Altinn.Codelists.Tests/ │ │ ├── Altinn.Codelists.Tests.csproj │ │ ├── EmbeddedResource.cs │ │ ├── EnsureNoCodelistIdCollisions.cs │ │ ├── GlobalUsing.cs │ │ ├── Kartverket/ │ │ │ └── AdministrativeUnits/ │ │ │ ├── Clients/ │ │ │ │ ├── AdministrativeUnitsClientTests.cs │ │ │ │ └── CountiesClientCachedTests.cs │ │ │ ├── CountiesCodelistProviderTests.cs │ │ │ ├── Extensions/ │ │ │ │ └── ServiceCollectionTests.cs │ │ │ ├── Mocks/ │ │ │ │ └── AdministrativeUnitsHttpClientMock.cs │ │ │ ├── MunicipalitiesCodelistProviderTests.cs │ │ │ └── Testdata/ │ │ │ ├── administrativeUnits.http │ │ │ ├── fylke46_kommuner.json │ │ │ ├── fylker.json │ │ │ └── kommuner.json │ │ ├── ModuleInitializer.cs │ │ ├── Posten/ │ │ │ ├── Clients/ │ │ │ │ ├── PostalCodesHttpClientTests.Get.verified.txt │ │ │ │ ├── PostalCodesHttpClientTests.cs │ │ │ │ ├── PostenFixture.cs │ │ │ │ └── mappings/ │ │ │ │ └── wiremock_GET_postnummerregister-ansi.txt.json │ │ │ └── PostalCodesCodelistProviderTests.cs │ │ ├── PublicApiTests.PublicApi_ShouldNotChange_Unintentionally.verified.txt │ │ ├── PublicApiTests.cs │ │ ├── RestCountries/ │ │ │ ├── Clients/ │ │ │ │ └── CountriesClientTests.cs │ │ │ └── restCountries.http │ │ └── SSB/ │ │ ├── BaseAmountNationalInsuranceCodelistProviderTests.cs │ │ ├── ClassificationOptionsTests.cs │ │ ├── Clients/ │ │ │ ├── ClassificationsHttpClientCachedTests.cs │ │ │ └── ClassificationsHttpClientTests.cs │ │ ├── CountiesCodelistProviderTests.cs │ │ ├── CountriesCodelistProviderTests.cs │ │ ├── Extensions/ │ │ │ └── ExtensionTests.cs │ │ ├── IndustryGroupingCodelistProviderTests.cs │ │ ├── MaritalStatusCodelistProviderTests.cs │ │ ├── Mocks/ │ │ │ └── ClassificationsHttpClientMock.cs │ │ ├── MunicipalitiesCodelistProviderTests.cs │ │ ├── OccupationsCodelistProviderTests.cs │ │ ├── SexCodelistProviderTests.cs │ │ ├── SmallGameVariantTests.cs │ │ ├── Testdata/ │ │ │ ├── baseAmountNationalInsurance.json │ │ │ ├── classifications.http │ │ │ ├── counties.json │ │ │ ├── countries.json │ │ │ ├── industryGrouping.json │ │ │ ├── maritalStatus.json │ │ │ ├── municipalities.json │ │ │ ├── occupations.json │ │ │ ├── sex.json │ │ │ ├── smallGame_Variant.json │ │ │ └── units.json │ │ └── UnitsCodelistProviderTests.cs │ ├── fileanalyzers/ │ │ ├── .config/ │ │ │ └── dotnet-tools.json │ │ ├── .csharpierignore │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ ├── launch.json │ │ │ └── tasks.json │ │ ├── Altinn.FileAnalyzers.sln │ │ ├── Directory.Build.props │ │ ├── Directory.Packages.props │ │ ├── README.md │ │ ├── global.json │ │ ├── solutions/ │ │ │ └── Src.sln │ │ ├── src/ │ │ │ ├── Altinn.FileAnalyzers/ │ │ │ │ ├── Altinn.FileAnalyzers.csproj │ │ │ │ └── MimeType/ │ │ │ │ ├── MimeTypeAnalyser.cs │ │ │ │ ├── MimeTypeValidator.cs │ │ │ │ └── ServiceCollectionExtensions.cs │ │ │ ├── Directory.Build.props │ │ │ └── Directory.Build.targets │ │ └── test/ │ │ └── Altinn.FileAnalyzers.Tests/ │ │ ├── Altinn.FileAnalyzers.Tests.csproj │ │ ├── EmbeddedResource.cs │ │ ├── MimeType/ │ │ │ ├── MimeTypeAnalyserTests.cs │ │ │ └── MimeTypeValidatorTests.cs │ │ ├── ModuleInitializer.cs │ │ ├── PublicApiTests.PublicApi_ShouldNotChange_Unintentionally.verified.txt │ │ ├── PublicApiTests.cs │ │ └── Usings.cs │ ├── frontend/ │ │ ├── .claude/ │ │ │ └── settings.json │ │ ├── .codex/ │ │ │ ├── config.toml │ │ │ └── rules/ │ │ │ └── default.rules │ │ ├── .dockerignore │ │ ├── .editorconfig │ │ ├── .git-blame-ignore-revs │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── .vscode/ │ │ │ ├── extensions.json │ │ │ └── settings.json │ │ ├── AGENTS.md │ │ ├── CLAUDE.md │ │ ├── CONTRIBUTING.md │ │ ├── README.md │ │ ├── babel.config.json │ │ ├── benchmarks/ │ │ │ ├── splitDashedKey.ts │ │ │ └── tsconfig.json │ │ ├── cypress.config.js │ │ ├── docker-compose.yml │ │ ├── eslint.config.mjs │ │ ├── jest.config.js │ │ ├── lighthouserc.js │ │ ├── monorepo-changed-paths.txt │ │ ├── multi-reporter-config.json │ │ ├── package.json │ │ ├── prettier.config.js │ │ ├── schemas/ │ │ │ └── json/ │ │ │ ├── application/ │ │ │ │ └── application-metadata.schema.v1.json │ │ │ ├── component/ │ │ │ │ └── number-format.schema.v1.json │ │ │ ├── layout/ │ │ │ │ ├── expression.schema.v1.json │ │ │ │ └── footer.schema.v1.json │ │ │ ├── text-resources/ │ │ │ │ └── text-resources.schema.v1.json │ │ │ └── validation/ │ │ │ └── validation.schema.v1.json │ │ ├── scripts/ │ │ │ ├── compare-frontend-repos.ts │ │ │ ├── copy-schemas.ts │ │ │ ├── debug-flaky-cypress.sh │ │ │ ├── lighthouse/ │ │ │ │ ├── lighthouse-config-constants.js │ │ │ │ └── puppeteer-script.js │ │ │ └── tsc-strict-error-count.ts │ │ ├── snapshots.json │ │ ├── sonar-project.properties │ │ ├── src/ │ │ │ ├── AppComponentsBridge.tsx │ │ │ ├── AppLayout.tsx │ │ │ ├── GlobalData.ts │ │ │ ├── __mocks__/ │ │ │ │ ├── axios.ts │ │ │ │ ├── getApplicationMetadataMock.ts │ │ │ │ ├── getApplicationSettingsMock.ts │ │ │ │ ├── getAttachmentsMock.ts │ │ │ │ ├── getDataListMock.ts │ │ │ │ ├── getFooterLayoutMock.ts │ │ │ │ ├── getFormBootstrapMock.ts │ │ │ │ ├── getFormDataMockForRepGroup.ts │ │ │ │ ├── getFormLayoutGroupMock.ts │ │ │ │ ├── getInstanceDataMock.ts │ │ │ │ ├── getLogoMock.ts │ │ │ │ ├── getMultiPageGroupMock.ts │ │ │ │ ├── getOrderDetailsPayloadMock.ts │ │ │ │ ├── getOrganisationMock.ts │ │ │ │ ├── getPartyMock.ts │ │ │ │ ├── getPaymentPayloadMock.ts │ │ │ │ ├── getProcessDataMock.ts │ │ │ │ ├── getProfileMock.ts │ │ │ │ ├── getTextResourcesMock.ts │ │ │ │ ├── getUiConfigMock.ts │ │ │ │ ├── json-schema/ │ │ │ │ │ ├── complex.json │ │ │ │ │ ├── one-of-on-root.json │ │ │ │ │ └── ref-on-root.json │ │ │ │ ├── mocks.ts │ │ │ │ ├── orgs.ts │ │ │ │ └── zustand.ts │ │ │ ├── app-components/ │ │ │ │ ├── Accordion/ │ │ │ │ │ ├── AccordionItem.module.css │ │ │ │ │ └── AccordionItem.tsx │ │ │ │ ├── AppComponentsProvider.tsx │ │ │ │ ├── Button/ │ │ │ │ │ └── Button.tsx │ │ │ │ ├── ConditionalWrapper/ │ │ │ │ │ ├── ConditionalWrapper.test.tsx │ │ │ │ │ └── ConditionalWrapper.tsx │ │ │ │ ├── Date/ │ │ │ │ │ ├── Date.module.css │ │ │ │ │ └── DisplayDate.tsx │ │ │ │ ├── Datepicker/ │ │ │ │ │ ├── Calendar.module.css │ │ │ │ │ ├── DatePickerCalendar.tsx │ │ │ │ │ ├── DatePickerInput.tsx │ │ │ │ │ ├── Datepicker.tsx │ │ │ │ │ ├── DatepickerDialog.tsx │ │ │ │ │ └── utils/ │ │ │ │ │ ├── dateHelpers.test.ts │ │ │ │ │ ├── dateHelpers.ts │ │ │ │ │ └── dateLocales.ts │ │ │ │ ├── Dropzone/ │ │ │ │ │ ├── Dropzone.module.css │ │ │ │ │ ├── Dropzone.tsx │ │ │ │ │ ├── mapExtensionToAcceptMime.test.ts │ │ │ │ │ ├── mapExtensionToAcceptMime.ts │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── DynamicForm/ │ │ │ │ │ └── DynamicForm.tsx │ │ │ │ ├── Flex/ │ │ │ │ │ ├── Flex.module.css │ │ │ │ │ └── Flex.tsx │ │ │ │ ├── FullWidthWrapper/ │ │ │ │ │ ├── FullWidthWrapper.module.css │ │ │ │ │ └── FullWidthWrapper.tsx │ │ │ │ ├── HelpText/ │ │ │ │ │ ├── HelpText.test.tsx │ │ │ │ │ ├── HelpText.tsx │ │ │ │ │ ├── HelpTextIcon.test.tsx │ │ │ │ │ ├── HelpTextIcon.tsx │ │ │ │ │ └── Helptext.module.css │ │ │ │ ├── Input/ │ │ │ │ │ ├── FormattedInput.tsx │ │ │ │ │ ├── Input.module.css │ │ │ │ │ ├── Input.tsx │ │ │ │ │ ├── NumericInput.tsx │ │ │ │ │ └── constants.ts │ │ │ │ ├── Label/ │ │ │ │ │ ├── Fieldset.test.tsx │ │ │ │ │ ├── Fieldset.tsx │ │ │ │ │ ├── Label.module.css │ │ │ │ │ └── Label.tsx │ │ │ │ ├── Number/ │ │ │ │ │ ├── DisplayNumber.tsx │ │ │ │ │ └── Number.module.css │ │ │ │ ├── Pagination/ │ │ │ │ │ ├── Pagination.module.css │ │ │ │ │ └── Pagination.tsx │ │ │ │ ├── Panel/ │ │ │ │ │ ├── Panel.module.css │ │ │ │ │ ├── Panel.test.tsx │ │ │ │ │ ├── Panel.tsx │ │ │ │ │ └── constants.ts │ │ │ │ ├── Table/ │ │ │ │ │ ├── Table.module.css │ │ │ │ │ ├── Table.test.tsx │ │ │ │ │ └── Table.tsx │ │ │ │ ├── Text/ │ │ │ │ │ ├── DisplayText.tsx │ │ │ │ │ └── Text.module.css │ │ │ │ ├── TextArea/ │ │ │ │ │ └── TextArea.tsx │ │ │ │ ├── TimePicker/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── TimePicker.module.css │ │ │ │ │ ├── TimePicker.responsive.test.tsx │ │ │ │ │ ├── TimePicker.tsx │ │ │ │ │ ├── TimeSegment/ │ │ │ │ │ │ ├── TimeSegment.test.tsx │ │ │ │ │ │ ├── TimeSegment.tsx │ │ │ │ │ │ └── hooks/ │ │ │ │ │ │ ├── useSegmentDisplay.ts │ │ │ │ │ │ ├── useSegmentInputHandlers.ts │ │ │ │ │ │ ├── useTimeout.ts │ │ │ │ │ │ └── useTypingBuffer.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils/ │ │ │ │ │ ├── calculateNextFocusState/ │ │ │ │ │ │ ├── calculateNextFocusState.test.ts │ │ │ │ │ │ └── calculateNextFocusState.ts │ │ │ │ │ ├── formatDisplayHour/ │ │ │ │ │ │ ├── formatDisplayHour.test.ts │ │ │ │ │ │ └── formatDisplayHour.ts │ │ │ │ │ ├── generateTimeOptions/ │ │ │ │ │ │ ├── generateTimeOptions.test.ts │ │ │ │ │ │ └── generateTimeOptions.ts │ │ │ │ │ ├── handleSegmentValueChange/ │ │ │ │ │ │ ├── handleSegmentValueChange.test.ts │ │ │ │ │ │ └── handleSegmentValueChange.ts │ │ │ │ │ ├── keyboardNavigation.test.ts │ │ │ │ │ ├── keyboardNavigation.ts │ │ │ │ │ ├── normalizeHour.ts │ │ │ │ │ ├── segmentTyping.ts │ │ │ │ │ ├── timeConstraintUtils.test.ts │ │ │ │ │ ├── timeConstraintUtils.ts │ │ │ │ │ ├── timeFormatUtils.test.ts │ │ │ │ │ └── timeFormatUtils.ts │ │ │ │ ├── error/ │ │ │ │ │ ├── FatalError/ │ │ │ │ │ │ └── FatalError.tsx │ │ │ │ │ └── FatalErrorEmpty/ │ │ │ │ │ └── FatalErrorEmpty.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ └── useDeviceWidths.ts │ │ │ │ ├── loading/ │ │ │ │ │ ├── AltinnContentLoader/ │ │ │ │ │ │ ├── AltinnContentIcon.tsx │ │ │ │ │ │ ├── AltinnContentIconFormData.tsx │ │ │ │ │ │ ├── AltinnContentIconReceipt.tsx │ │ │ │ │ │ ├── AltinnContentLoader.test.tsx │ │ │ │ │ │ └── AltinnContentLoader.tsx │ │ │ │ │ ├── LoadingEmpty/ │ │ │ │ │ │ └── LoadingEmpty.tsx │ │ │ │ │ ├── LoadingWrapper/ │ │ │ │ │ │ └── LoadingWrapper.tsx │ │ │ │ │ └── Spinner/ │ │ │ │ │ └── Spinner.tsx │ │ │ │ ├── readme.md │ │ │ │ ├── style/ │ │ │ │ │ └── utils.module.css │ │ │ │ ├── test/ │ │ │ │ │ └── renderWithAppComponentsProvider.tsx │ │ │ │ └── types.ts │ │ │ ├── appQueryClient.ts │ │ │ ├── codegen/ │ │ │ │ ├── CG.ts │ │ │ │ ├── CodeGenerator.ts │ │ │ │ ├── CodeGeneratorContext.ts │ │ │ │ ├── CodegenWatchPlugin.js │ │ │ │ ├── Common.ts │ │ │ │ ├── ComponentConfig.ts │ │ │ │ ├── Config.ts │ │ │ │ ├── SchemaFile.ts │ │ │ │ ├── SerializableSetting.ts │ │ │ │ ├── dataTypes/ │ │ │ │ │ ├── GenerateArray.ts │ │ │ │ │ ├── GenerateBoolean.ts │ │ │ │ │ ├── GenerateCommonImport.ts │ │ │ │ │ ├── GenerateConst.ts │ │ │ │ │ ├── GenerateDataModelBinding.ts │ │ │ │ │ ├── GenerateEnum.ts │ │ │ │ │ ├── GenerateExpressionOr.ts │ │ │ │ │ ├── GenerateImportedSymbol.ts │ │ │ │ │ ├── GenerateInteger.ts │ │ │ │ │ ├── GenerateIntersection.ts │ │ │ │ │ ├── GenerateNumber.ts │ │ │ │ │ ├── GenerateObject.ts │ │ │ │ │ ├── GenerateProperty.ts │ │ │ │ │ ├── GenerateRaw.ts │ │ │ │ │ ├── GenerateString.ts │ │ │ │ │ ├── GenerateTextResourceBinding.ts │ │ │ │ │ └── GenerateUnion.ts │ │ │ │ ├── run.ts │ │ │ │ ├── schemas/ │ │ │ │ │ ├── layout.schema.v1.ts │ │ │ │ │ └── layoutSettings.schema.v1.ts │ │ │ │ └── tools.ts │ │ │ ├── components/ │ │ │ │ ├── AltinnCollapsible.module.css │ │ │ │ ├── AltinnCollapsible.test.tsx │ │ │ │ ├── AltinnCollapsible.tsx │ │ │ │ ├── AltinnLoader.module.css │ │ │ │ ├── AltinnLoader.test.tsx │ │ │ │ ├── AltinnLoader.tsx │ │ │ │ ├── AltinnSpinner.module.css │ │ │ │ ├── AltinnSpinner.test.tsx │ │ │ │ ├── AltinnSpinner.tsx │ │ │ │ ├── CircleIcon.module.css │ │ │ │ ├── CircleIcon.tsx │ │ │ │ ├── ErrorBoundary.tsx │ │ │ │ ├── LandmarkShortcuts.module.css │ │ │ │ ├── LandmarkShortcuts.test.tsx │ │ │ │ ├── LandmarkShortcuts.tsx │ │ │ │ ├── PDFGeneratorPreview/ │ │ │ │ │ └── PDFGeneratorPreview.tsx │ │ │ │ ├── ReadyForPrint.tsx │ │ │ │ ├── ViewportWrapper.tsx │ │ │ │ ├── altinnError.module.css │ │ │ │ ├── altinnError.tsx │ │ │ │ ├── altinnParty.module.css │ │ │ │ ├── altinnParty.test.tsx │ │ │ │ ├── altinnParty.tsx │ │ │ │ ├── atoms/ │ │ │ │ │ ├── AltinnAttachment.module.css │ │ │ │ │ ├── AltinnAttachments.test.tsx │ │ │ │ │ ├── AltinnAttachments.tsx │ │ │ │ │ └── AttachmentHeader.tsx │ │ │ │ ├── form/ │ │ │ │ │ ├── Description.module.css │ │ │ │ │ ├── Description.tsx │ │ │ │ │ ├── Fieldset.module.css │ │ │ │ │ ├── Form.module.css │ │ │ │ │ ├── Form.test.tsx │ │ │ │ │ ├── Form.tsx │ │ │ │ │ ├── FormInfectedFiles.test.tsx │ │ │ │ │ ├── HelpTextContainer.module.css │ │ │ │ │ ├── HelpTextContainer.test.tsx │ │ │ │ │ ├── HelpTextContainer.tsx │ │ │ │ │ ├── Legend.module.css │ │ │ │ │ ├── LinkToPotentialNode.tsx │ │ │ │ │ ├── LinkToPotentialPage.tsx │ │ │ │ │ ├── MessageBanner.module.css │ │ │ │ │ ├── MessageBanner.tsx │ │ │ │ │ ├── OptionalIndicator.tsx │ │ │ │ │ ├── RadioButton.module.css │ │ │ │ │ ├── RadioButton.test.tsx │ │ │ │ │ ├── RadioButton.tsx │ │ │ │ │ ├── RequiredIndicator.tsx │ │ │ │ │ └── caption/ │ │ │ │ │ ├── Caption.module.css │ │ │ │ │ ├── Caption.test.tsx │ │ │ │ │ └── Caption.tsx │ │ │ │ ├── label/ │ │ │ │ │ ├── Label.module.css │ │ │ │ │ ├── Label.tsx │ │ │ │ │ ├── LabelContent.module.css │ │ │ │ │ └── LabelContent.tsx │ │ │ │ ├── logo/ │ │ │ │ │ ├── AltinnLogo.module.css │ │ │ │ │ └── AltinnLogo.tsx │ │ │ │ ├── message/ │ │ │ │ │ ├── ErrorPaper.module.css │ │ │ │ │ ├── ErrorPaper.test.tsx │ │ │ │ │ ├── ErrorPaper.tsx │ │ │ │ │ ├── ErrorReport.module.css │ │ │ │ │ ├── ErrorReport.test.tsx │ │ │ │ │ └── ErrorReport.tsx │ │ │ │ ├── molecules/ │ │ │ │ │ ├── AltinnCollapsibleAttachments.module.css │ │ │ │ │ ├── AltinnCollapsibleAttachments.test.tsx │ │ │ │ │ ├── AltinnCollapsibleAttachments.tsx │ │ │ │ │ ├── AltinnSubstatus.module.css │ │ │ │ │ ├── AltinnSubstatus.test.tsx │ │ │ │ │ └── AltinnSubstatus.tsx │ │ │ │ ├── organisms/ │ │ │ │ │ ├── AltinnReceipt.module.css │ │ │ │ │ ├── AltinnReceipt.test.tsx │ │ │ │ │ ├── AltinnReceipt.tsx │ │ │ │ │ ├── AltinnReceiptSimple.tsx │ │ │ │ │ ├── AttachmentGroupings.module.css │ │ │ │ │ ├── AttachmentGroupings.test.tsx │ │ │ │ │ └── AttachmentGroupings.tsx │ │ │ │ ├── presentation/ │ │ │ │ │ ├── AppHeader/ │ │ │ │ │ │ ├── AppHeader.module.css │ │ │ │ │ │ ├── AppHeader.test.tsx │ │ │ │ │ │ ├── AppHeader.tsx │ │ │ │ │ │ ├── AppHeaderMenu.module.css │ │ │ │ │ │ └── AppHeaderMenu.tsx │ │ │ │ │ ├── BackNavigationButton.module.css │ │ │ │ │ ├── BackNavigationButton.tsx │ │ │ │ │ ├── ExpandWidthButton.module.css │ │ │ │ │ ├── ExpandWidthButton.tsx │ │ │ │ │ ├── Header.module.css │ │ │ │ │ ├── Header.test.tsx │ │ │ │ │ ├── Header.tsx │ │ │ │ │ ├── LanguageSelector.module.css │ │ │ │ │ ├── LanguageSelector.tsx │ │ │ │ │ ├── NavBar.module.css │ │ │ │ │ ├── NavBar.test.tsx │ │ │ │ │ ├── NavBar.tsx │ │ │ │ │ ├── OrganisationLogo/ │ │ │ │ │ │ ├── OrganisationLogo.module.css │ │ │ │ │ │ ├── OrganisationLogo.test.tsx │ │ │ │ │ │ └── OrganisationLogo.tsx │ │ │ │ │ ├── Presentation.module.css │ │ │ │ │ ├── Presentation.test.tsx │ │ │ │ │ ├── Presentation.tsx │ │ │ │ │ ├── Progress.module.css │ │ │ │ │ ├── Progress.test.tsx │ │ │ │ │ └── Progress.tsx │ │ │ │ ├── table/ │ │ │ │ │ ├── AltinnSummaryTable.module.css │ │ │ │ │ └── AltinnSummaryTable.tsx │ │ │ │ └── wrappers/ │ │ │ │ ├── ProcessWrapper.module.css │ │ │ │ └── ProcessWrapper.tsx │ │ │ ├── core/ │ │ │ │ ├── api-client/ │ │ │ │ │ ├── backendValidation.api.ts │ │ │ │ │ ├── instance.api.ts │ │ │ │ │ ├── party.api.ts │ │ │ │ │ └── textResources.api.ts │ │ │ │ ├── auth/ │ │ │ │ │ └── KeepAliveProvider.tsx │ │ │ │ ├── axiosInstance.ts │ │ │ │ ├── contexts/ │ │ │ │ │ ├── ApiProvider.tsx │ │ │ │ │ ├── AppQueriesProvider.tsx │ │ │ │ │ ├── TaskOverrides.tsx │ │ │ │ │ ├── context.tsx │ │ │ │ │ ├── delayedContext.tsx │ │ │ │ │ ├── queryContext.tsx │ │ │ │ │ └── zustandContext.tsx │ │ │ │ ├── errorHandling/ │ │ │ │ │ └── DisplayError.tsx │ │ │ │ ├── loading/ │ │ │ │ │ ├── Loader.test.tsx │ │ │ │ │ ├── Loader.tsx │ │ │ │ │ └── LoadingContext.tsx │ │ │ │ ├── queries/ │ │ │ │ │ ├── backendValidation/ │ │ │ │ │ │ ├── backendValidation.queries.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── instance/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── instance.queries.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── party/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── party.queries.ts │ │ │ │ │ ├── textResources/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── textResources.queries.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── usePrefetchQuery.ts │ │ │ │ ├── routing/ │ │ │ │ │ ├── types.ts │ │ │ │ │ ├── useIsNavigating.ts │ │ │ │ │ └── useIsReceiptPage.ts │ │ │ │ ├── structures/ │ │ │ │ │ ├── ShallowArrayMap.test.ts │ │ │ │ │ └── ShallowArrayMap.ts │ │ │ │ ├── texts/ │ │ │ │ │ ├── appTexts.test.tsx │ │ │ │ │ └── appTexts.ts │ │ │ │ └── ui/ │ │ │ │ ├── RenderStart.tsx │ │ │ │ └── useResetScrollPosition.ts │ │ │ ├── features/ │ │ │ │ ├── alertOnChange/ │ │ │ │ │ ├── DeleteWarningPopover.module.css │ │ │ │ │ ├── DeleteWarningPopover.tsx │ │ │ │ │ └── useAlertOnChange.ts │ │ │ │ ├── applicationMetadata/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── messageBoxConfig.test.ts │ │ │ │ │ ├── messageBoxConfig.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── applicationSettings/ │ │ │ │ │ └── ApplicationSettingsProvider.tsx │ │ │ │ ├── attachments/ │ │ │ │ │ ├── AttachmentsPlugin.tsx │ │ │ │ │ ├── AttachmentsStorePlugin.tsx │ │ │ │ │ ├── StoreAttachmentsInNode.tsx │ │ │ │ │ ├── UpdateAttachmentsForCypress.tsx │ │ │ │ │ ├── hooks.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── sortAttachments.ts │ │ │ │ │ ├── tools.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ ├── useAttachmentDeletionInRepGroups.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── baseurlinjection.ts │ │ │ │ ├── customValidation/ │ │ │ │ │ └── customValidationUtils.ts │ │ │ │ ├── dataLists/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useDataListQuery.tsx │ │ │ │ ├── datamodel/ │ │ │ │ │ ├── SchemaLookupTool.ts │ │ │ │ │ ├── SimpleSchemaTraversal.tools.ts │ │ │ │ │ ├── SimpleSchemaTraversal.ts │ │ │ │ │ ├── lookupErrorAsText.ts │ │ │ │ │ ├── notations.test.ts │ │ │ │ │ ├── notations.ts │ │ │ │ │ ├── useAvailableDataModels.tsx │ │ │ │ │ └── useBindingSchema.tsx │ │ │ │ ├── devtools/ │ │ │ │ │ ├── DevTools.module.css │ │ │ │ │ ├── DevTools.tsx │ │ │ │ │ ├── DevToolsControls.tsx │ │ │ │ │ ├── DevToolsPanel.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── DevHiddenFunctionality/ │ │ │ │ │ │ │ └── DevHiddenFunctionality.tsx │ │ │ │ │ │ ├── DevLanguageSelector/ │ │ │ │ │ │ │ └── DevLanguageSelector.tsx │ │ │ │ │ │ ├── DevNavigationButtons/ │ │ │ │ │ │ │ ├── DevNavigationButtons.module.css │ │ │ │ │ │ │ └── DevNavigationButtons.tsx │ │ │ │ │ │ ├── DevToolsLogs/ │ │ │ │ │ │ │ ├── DevToolsLogs.module.css │ │ │ │ │ │ │ └── DevToolsLogs.tsx │ │ │ │ │ │ ├── DownloadXMLButton/ │ │ │ │ │ │ │ └── DownloadXMLButton.tsx │ │ │ │ │ │ ├── ExpressionPlayground/ │ │ │ │ │ │ │ ├── ExpressionPlayground.module.css │ │ │ │ │ │ │ └── ExpressionPlayground.tsx │ │ │ │ │ │ ├── LayoutInspector/ │ │ │ │ │ │ │ ├── ComponentSelector.tsx │ │ │ │ │ │ │ ├── LayoutInspector.module.css │ │ │ │ │ │ │ ├── LayoutInspector.tsx │ │ │ │ │ │ │ └── LayoutInspectorItem.tsx │ │ │ │ │ │ ├── NodeInspector/ │ │ │ │ │ │ │ ├── DefaultNodeInspector.tsx │ │ │ │ │ │ │ ├── NodeHierarchy.tsx │ │ │ │ │ │ │ ├── NodeInspector.module.css │ │ │ │ │ │ │ ├── NodeInspector.tsx │ │ │ │ │ │ │ ├── NodeInspectorContext.ts │ │ │ │ │ │ │ ├── NodeInspectorDataField.tsx │ │ │ │ │ │ │ ├── NodeInspectorDataModelBindings.tsx │ │ │ │ │ │ │ ├── NodeInspectorTextResourceBindings.tsx │ │ │ │ │ │ │ ├── ValidationInspector.module.css │ │ │ │ │ │ │ └── ValidationInspector.tsx │ │ │ │ │ │ ├── OpenDevToolsButton/ │ │ │ │ │ │ │ ├── OpenDevToolsButton.module.css │ │ │ │ │ │ │ └── OpenDevToolsButton.tsx │ │ │ │ │ │ ├── PDFPreviewButton/ │ │ │ │ │ │ │ ├── PDFPreview.module.css │ │ │ │ │ │ │ └── PDFPreviewButton.tsx │ │ │ │ │ │ ├── PermissionsEditor/ │ │ │ │ │ │ │ ├── PermissionsEditor.module.css │ │ │ │ │ │ │ └── PermissionsEditor.tsx │ │ │ │ │ │ ├── SplitView/ │ │ │ │ │ │ │ ├── SplitView.module.css │ │ │ │ │ │ │ └── SplitView.tsx │ │ │ │ │ │ └── VersionSwitcher/ │ │ │ │ │ │ └── VersionSwitcher.tsx │ │ │ │ │ ├── data/ │ │ │ │ │ │ ├── DevToolsStore.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── useComponentHighlighter.ts │ │ │ │ │ │ └── useComponentRefs.ts │ │ │ │ │ ├── layoutValidation/ │ │ │ │ │ │ └── useLayoutValidation.tsx │ │ │ │ │ └── utils/ │ │ │ │ │ └── layoutSchemaValidation.ts │ │ │ │ ├── displayData/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useDisplayData.ts │ │ │ │ ├── expressions/ │ │ │ │ │ ├── Decimal.test.ts │ │ │ │ │ ├── Decimal.ts │ │ │ │ │ ├── errors.ts │ │ │ │ │ ├── expression-data-sources.test.ts │ │ │ │ │ ├── expression-functions.ts │ │ │ │ │ ├── index.test.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── prettyErrors.test.ts │ │ │ │ │ ├── prettyErrors.ts │ │ │ │ │ ├── schema.test.ts │ │ │ │ │ ├── shared-context.test.tsx │ │ │ │ │ ├── shared-functions-exist.test.ts │ │ │ │ │ ├── shared-functions.test.tsx │ │ │ │ │ ├── shared-tests/ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── context-lists/ │ │ │ │ │ │ │ ├── groups/ │ │ │ │ │ │ │ │ ├── noData.json │ │ │ │ │ │ │ │ ├── oneRow.json │ │ │ │ │ │ │ │ └── twoRows.json │ │ │ │ │ │ │ ├── nonRepeatingGroups/ │ │ │ │ │ │ │ │ └── simple.json │ │ │ │ │ │ │ ├── recursiveGroups/ │ │ │ │ │ │ │ │ ├── recursiveNoData.json │ │ │ │ │ │ │ │ ├── recursiveOneRow.json │ │ │ │ │ │ │ │ ├── recursiveTwoRowsInner.json │ │ │ │ │ │ │ │ └── recursiveTwoRowsOuter.json │ │ │ │ │ │ │ └── simple/ │ │ │ │ │ │ │ ├── simple.json │ │ │ │ │ │ │ └── twoPages.json │ │ │ │ │ │ ├── functions/ │ │ │ │ │ │ │ ├── _experimentalSelectAndMap/ │ │ │ │ │ │ │ │ ├── _experimentalSelectAndMap-with-append-without-last-element.json │ │ │ │ │ │ │ │ ├── _experimentalSelectAndMap-with-prepend-and-append.json │ │ │ │ │ │ │ │ └── _experimentalSelectAndMap.json │ │ │ │ │ │ │ ├── and/ │ │ │ │ │ │ │ │ ├── all-true.json │ │ │ │ │ │ │ │ ├── allows-0.json │ │ │ │ │ │ │ │ ├── allows-1.json │ │ │ │ │ │ │ │ ├── allows-stringy-0.json │ │ │ │ │ │ │ │ ├── allows-stringy-1.json │ │ │ │ │ │ │ │ ├── allows-stringy-false.json │ │ │ │ │ │ │ │ ├── allows-stringy-true.json │ │ │ │ │ │ │ │ ├── casts-to-boolean.json │ │ │ │ │ │ │ │ ├── casts-to-boolean2.json │ │ │ │ │ │ │ │ ├── disallows-2.json │ │ │ │ │ │ │ │ ├── disallows-empty-strings.json │ │ │ │ │ │ │ │ ├── disallows-other-strings.json │ │ │ │ │ │ │ │ ├── empty-and.json │ │ │ │ │ │ │ │ ├── last-false.json │ │ │ │ │ │ │ │ ├── null-is-false.json │ │ │ │ │ │ │ │ ├── single-input-false.json │ │ │ │ │ │ │ │ └── single-input-true.json │ │ │ │ │ │ │ ├── argv/ │ │ │ │ │ │ │ │ ├── arg-can-be-null.json │ │ │ │ │ │ │ │ ├── error-no-args.json │ │ │ │ │ │ │ │ ├── error-no-such-arg.json │ │ │ │ │ │ │ │ ├── simple-0.json │ │ │ │ │ │ │ │ └── simple-1.json │ │ │ │ │ │ │ ├── authContext/ │ │ │ │ │ │ │ │ ├── error-unknown-action.json │ │ │ │ │ │ │ │ ├── read-confirm.json │ │ │ │ │ │ │ │ ├── read-sign-reject.json │ │ │ │ │ │ │ │ ├── read-sign.json │ │ │ │ │ │ │ │ └── read-write.json │ │ │ │ │ │ │ ├── commaContains/ │ │ │ │ │ │ │ │ ├── empty-string.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── null2.json │ │ │ │ │ │ │ │ ├── should-include-word-in-string.json │ │ │ │ │ │ │ │ ├── should-not-include-word-in-string.json │ │ │ │ │ │ │ │ └── string-list-include-number.json │ │ │ │ │ │ │ ├── compare-equals/ │ │ │ │ │ │ │ │ ├── equals-strings.json │ │ │ │ │ │ │ │ ├── error-too-few-args.json │ │ │ │ │ │ │ │ └── not-equals-strings.json │ │ │ │ │ │ │ ├── compare-error/ │ │ │ │ │ │ │ │ ├── error-case-sensitive-not.json │ │ │ │ │ │ │ │ ├── error-expr-as-not.json │ │ │ │ │ │ │ │ ├── error-expr-as-operator-with-not.json │ │ │ │ │ │ │ │ ├── error-expr-as-operator.json │ │ │ │ │ │ │ │ ├── error-not-not.json │ │ │ │ │ │ │ │ ├── error-wrong-operator.json │ │ │ │ │ │ │ │ └── notEquals-not-implemented.json │ │ │ │ │ │ │ ├── compare-greaterThan/ │ │ │ │ │ │ │ │ ├── greaterThan-simple.json │ │ │ │ │ │ │ │ └── greaterThan-simple2.json │ │ │ │ │ │ │ ├── compare-isAfter/ │ │ │ │ │ │ │ │ ├── date-leap-year.json │ │ │ │ │ │ │ │ └── date-with-time.json │ │ │ │ │ │ │ ├── compare-isAfterEq/ │ │ │ │ │ │ │ │ └── isAfterEq.json │ │ │ │ │ │ │ ├── compare-isBefore/ │ │ │ │ │ │ │ │ ├── date-empty-string-and-null.json │ │ │ │ │ │ │ │ ├── date-empty-string.json │ │ │ │ │ │ │ │ ├── date-simple.json │ │ │ │ │ │ │ │ ├── error-date-invalid.json │ │ │ │ │ │ │ │ └── error-date-invalid2.json │ │ │ │ │ │ │ ├── compare-isBeforeEq/ │ │ │ │ │ │ │ │ └── isBeforeEq.json │ │ │ │ │ │ │ ├── compare-isSameDay/ │ │ │ │ │ │ │ │ ├── errors-different-timesone.json │ │ │ │ │ │ │ │ ├── errors-with-number.json │ │ │ │ │ │ │ │ ├── errors-with-only-year.json │ │ │ │ │ │ │ │ ├── not-sameDay-year.json │ │ │ │ │ │ │ │ └── start-and-end-of-day-is-same.json │ │ │ │ │ │ │ ├── component/ │ │ │ │ │ │ │ │ ├── across-pages-hidden.json │ │ │ │ │ │ │ │ ├── across-pages.json │ │ │ │ │ │ │ │ ├── distant-across-page.json │ │ │ │ │ │ │ │ ├── distant.json │ │ │ │ │ │ │ │ ├── find-first-row.json │ │ │ │ │ │ │ │ ├── find-grouped-sibling.json │ │ │ │ │ │ │ │ ├── find-hidden-sibling-in-other-repeating-group.json │ │ │ │ │ │ │ │ ├── find-hidden-unrelated-sibling-in-other-repeating-group.json │ │ │ │ │ │ │ │ ├── find-sibling-in-other-repeating-group.json │ │ │ │ │ │ │ │ ├── find-unrelated-sibling-in-other-repeating-group.json │ │ │ │ │ │ │ │ ├── hidden-in-group-other-row.json │ │ │ │ │ │ │ │ ├── hidden-in-group.json │ │ │ │ │ │ │ │ ├── hidden-in-non-repeating-group.json │ │ │ │ │ │ │ │ ├── hide-group-component.json │ │ │ │ │ │ │ │ ├── in-group-group-hidden.json │ │ │ │ │ │ │ │ ├── in-group-page-hidden.json │ │ │ │ │ │ │ │ ├── in-group-with-hidden.json │ │ │ │ │ │ │ │ ├── in-group.json │ │ │ │ │ │ │ │ ├── in-hidden-row.json │ │ │ │ │ │ │ │ ├── in-nested-group.json │ │ │ │ │ │ │ │ ├── in-nested-group2.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── simple-lookup-equals.json │ │ │ │ │ │ │ │ ├── simple-lookup-for-hidden-component-is-null.json │ │ │ │ │ │ │ │ ├── simple-lookup-for-hidden-dynamic-component-is-null.json │ │ │ │ │ │ │ │ ├── simple-lookup.json │ │ │ │ │ │ │ │ ├── visible-in-non-repeating-group.json │ │ │ │ │ │ │ │ └── with-component-index.json │ │ │ │ │ │ │ ├── concat/ │ │ │ │ │ │ │ │ ├── boolean-are-empty-strings.json │ │ │ │ │ │ │ │ ├── casts-numbers.json │ │ │ │ │ │ │ │ ├── empty-string.json │ │ │ │ │ │ │ │ ├── inside-lookup.json │ │ │ │ │ │ │ │ ├── nulls-are-empty-strings.json │ │ │ │ │ │ │ │ ├── one-string.json │ │ │ │ │ │ │ │ └── simple-lookup.json │ │ │ │ │ │ │ ├── contains/ │ │ │ │ │ │ │ │ ├── case-sensitivity.json │ │ │ │ │ │ │ │ ├── empty-string.json │ │ │ │ │ │ │ │ ├── exact-match.json │ │ │ │ │ │ │ │ ├── not-match.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── null2.json │ │ │ │ │ │ │ │ ├── null3.json │ │ │ │ │ │ │ │ ├── null4.json │ │ │ │ │ │ │ │ └── partial-match.json │ │ │ │ │ │ │ ├── countDataElements/ │ │ │ │ │ │ │ │ ├── non-existing.json │ │ │ │ │ │ │ │ ├── single.json │ │ │ │ │ │ │ │ └── subform.json │ │ │ │ │ │ │ ├── dataModel/ │ │ │ │ │ │ │ │ ├── array-is-null.json │ │ │ │ │ │ │ │ ├── direct-reference-in-group.json │ │ │ │ │ │ │ │ ├── direct-reference-in-nested-group.json │ │ │ │ │ │ │ │ ├── direct-reference-in-nested-group2.json │ │ │ │ │ │ │ │ ├── direct-reference-in-nested-group3.json │ │ │ │ │ │ │ │ ├── direct-reference-in-nested-group4.json │ │ │ │ │ │ │ │ ├── in-group.json │ │ │ │ │ │ │ │ ├── in-nested-group.json │ │ │ │ │ │ │ │ ├── null-is-null.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── object-is-null.json │ │ │ │ │ │ │ │ ├── simple-lookup-equals.json │ │ │ │ │ │ │ │ ├── simple-lookup-is-null.json │ │ │ │ │ │ │ │ ├── simple-lookup-is-null2.json │ │ │ │ │ │ │ │ ├── simple-lookup.json │ │ │ │ │ │ │ │ ├── with-indexes-without-layout.json │ │ │ │ │ │ │ │ └── with-indexes.json │ │ │ │ │ │ │ ├── dataModelMultiple/ │ │ │ │ │ │ │ │ ├── component-lookup-non-default-model.json │ │ │ │ │ │ │ │ ├── component-lookup-non-existing-model.json │ │ │ │ │ │ │ │ ├── dataModel-non-default-model.json │ │ │ │ │ │ │ │ ├── dataModel-non-existing-model.json │ │ │ │ │ │ │ │ └── dataModel-type-as-expr.json │ │ │ │ │ │ │ ├── displayValue/ │ │ │ │ │ │ │ │ ├── hidden.json │ │ │ │ │ │ │ │ ├── not-found.json │ │ │ │ │ │ │ │ ├── not-implemented.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── number-formatted-input.json │ │ │ │ │ │ │ │ ├── type-Address.json │ │ │ │ │ │ │ │ ├── type-Checkboxes.json │ │ │ │ │ │ │ │ ├── type-Custom.json │ │ │ │ │ │ │ │ ├── type-Date.json │ │ │ │ │ │ │ │ ├── type-Datepicker.json │ │ │ │ │ │ │ │ ├── type-Dropdown.json │ │ │ │ │ │ │ │ ├── type-FileUpload.json │ │ │ │ │ │ │ │ ├── type-FileUploadWithTag.json │ │ │ │ │ │ │ │ ├── type-ImageUpload.json │ │ │ │ │ │ │ │ ├── type-Input.json │ │ │ │ │ │ │ │ ├── type-LikertItem.json │ │ │ │ │ │ │ │ ├── type-List.json │ │ │ │ │ │ │ │ ├── type-Map.json │ │ │ │ │ │ │ │ ├── type-MultipleSelect.json │ │ │ │ │ │ │ │ ├── type-Number.json │ │ │ │ │ │ │ │ ├── type-Option.json │ │ │ │ │ │ │ │ ├── type-OrganisationLookup.json │ │ │ │ │ │ │ │ ├── type-PersonLookup.json │ │ │ │ │ │ │ │ ├── type-PersonLookupFullName.json │ │ │ │ │ │ │ │ ├── type-RadioButtons.json │ │ │ │ │ │ │ │ ├── type-Text.json │ │ │ │ │ │ │ │ ├── type-TextArea.json │ │ │ │ │ │ │ │ └── type-TimePicker.json │ │ │ │ │ │ │ ├── divide/ │ │ │ │ │ │ │ │ └── divide.json │ │ │ │ │ │ │ ├── endsWith/ │ │ │ │ │ │ │ │ ├── case-sensitivity.json │ │ │ │ │ │ │ │ ├── empty-string.json │ │ │ │ │ │ │ │ ├── ends-with-null.json │ │ │ │ │ │ │ │ ├── ends-with-number.json │ │ │ │ │ │ │ │ ├── ends-with.json │ │ │ │ │ │ │ │ ├── exact-match.json │ │ │ │ │ │ │ │ ├── not-ends-with.json │ │ │ │ │ │ │ │ └── number-ends-with-number.json │ │ │ │ │ │ │ ├── equals/ │ │ │ │ │ │ │ │ ├── diff-types-bool-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-bool-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-bool-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false2.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-null-true.json │ │ │ │ │ │ │ │ ├── false-case-insensitive.json │ │ │ │ │ │ │ │ ├── false-case-insensitive2.json │ │ │ │ │ │ │ │ ├── null-case-insensitive.json │ │ │ │ │ │ │ │ ├── same-types-bool-false.json │ │ │ │ │ │ │ │ ├── same-types-bool-true.json │ │ │ │ │ │ │ │ ├── same-types-float-false.json │ │ │ │ │ │ │ │ ├── same-types-float-false2.json │ │ │ │ │ │ │ │ ├── same-types-float-true.json │ │ │ │ │ │ │ │ ├── same-types-int-false.json │ │ │ │ │ │ │ │ ├── same-types-int-true.json │ │ │ │ │ │ │ │ ├── same-types-null.json │ │ │ │ │ │ │ │ ├── same-types-string-false.json │ │ │ │ │ │ │ │ ├── same-types-string-true.json │ │ │ │ │ │ │ │ ├── same-types-string-true2.json │ │ │ │ │ │ │ │ ├── strings-case-sensitive.json │ │ │ │ │ │ │ │ ├── too-few-args.json │ │ │ │ │ │ │ │ └── too-many-args.json │ │ │ │ │ │ │ ├── externalApi/ │ │ │ │ │ │ │ │ ├── should-pick-data-with-nested-path.json │ │ │ │ │ │ │ │ ├── should-return-empty-string-on-undefined-result.json │ │ │ │ │ │ │ │ ├── should-return-empty-string-when-path-does-not-exist.json │ │ │ │ │ │ │ │ ├── should-return-stringified-json-on-object-result.json │ │ │ │ │ │ │ │ └── should-return-whole-result-with-empty-path-param.json │ │ │ │ │ │ │ ├── formatDate/ │ │ │ │ │ │ │ │ ├── error-parseFalse.json │ │ │ │ │ │ │ │ ├── error-parseNumber.json │ │ │ │ │ │ │ │ ├── error-parseTrue.json │ │ │ │ │ │ │ │ ├── formats-date-english.json │ │ │ │ │ │ │ │ ├── formats-date-english2.json │ │ │ │ │ │ │ │ ├── formats-date-in-format-specified.json │ │ │ │ │ │ │ │ ├── formats-date-in-format-specified2.json │ │ │ │ │ │ │ │ ├── formats-date-time.json │ │ │ │ │ │ │ │ ├── formats-date-with-offset.json │ │ │ │ │ │ │ │ ├── formats-date.json │ │ │ │ │ │ │ │ ├── formats-time-in-format-specified.json │ │ │ │ │ │ │ │ ├── parse-date-2020-is-a-leap-year.json │ │ │ │ │ │ │ │ ├── parse-date-2021-is-not-a-leap-year.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-29-days-in-february-normal-.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-30-days-in-february-leap-.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-31-days-in-april.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-31-days-in-june.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-31-days-in-november.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-31-days-in-september.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-august.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-december.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-january.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-july.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-march.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-may.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-32-days-in-october.json │ │ │ │ │ │ │ │ ├── parse-date-a-invalid-date-string-with-invalid-month.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-28-days-in-february-normal-.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-29-days-in-february-leap-.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-30-days-in-april.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-30-days-in-june.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-30-days-in-november.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-30-days-in-september.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-august.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-december.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-january.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-july.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-march.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-may.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string-with-31-days-in-october.json │ │ │ │ │ │ │ │ ├── parse-date-a-valid-date-string.json │ │ │ │ │ │ │ │ ├── parse-date-an-invalid-date-string.json │ │ │ │ │ │ │ │ ├── parse-date-invalid-month-day-combination.json │ │ │ │ │ │ │ │ ├── parse-date-invalid-month.json │ │ │ │ │ │ │ │ ├── parse-date-invalid-non-ascii-a-bengali-4-.json │ │ │ │ │ │ │ │ ├── parse-date-iso8601-non-rfc3339-week-number-implicit-day-of-week-2023-01-02-.json │ │ │ │ │ │ │ │ ├── parse-date-iso8601-non-rfc3339-week-number-rollover-to-next-year-2023-01-01-.json │ │ │ │ │ │ │ │ ├── parse-date-iso8601-non-rfc3339-week-number-with-day-of-week-2023-03-28-.json │ │ │ │ │ │ │ │ ├── parse-date-iso8601-non-rfc3339-yyyymmdd-without-dashes-2023-03-28-.json │ │ │ │ │ │ │ │ ├── parse-date-non-padded-day-dates-are-not-valid.json │ │ │ │ │ │ │ │ ├── parse-date-non-padded-month-dates-are-not-valid.json │ │ │ │ │ │ │ │ ├── parse-date-only-rfc3339-not-all-of-iso-8601-are-valid.json │ │ │ │ │ │ │ │ ├── parse-date-time-a-valid-date-time-string-with-minus-offset.json │ │ │ │ │ │ │ │ ├── parse-date-time-a-valid-date-time-string-with-plus-offset.json │ │ │ │ │ │ │ │ ├── parse-date-time-a-valid-date-time-string-without-second-fraction.json │ │ │ │ │ │ │ │ ├── parse-date-time-a-valid-date-time-string.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-closing-z-after-time-zone-offset.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-date-time-past-leap-second-utc.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-date-time-string.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-date-time-with-a-leap-second-utc.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-date-time-with-a-leap-second-with-minus-offset.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-date-time-with-leap-second-on-a-wrong-hour-utc.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-date-time-with-leap-second-on-a-wrong-minute-utc.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-day-in-date-time-string.json │ │ │ │ │ │ │ │ ├── parse-date-time-an-invalid-offset-in-date-time-string.json │ │ │ │ │ │ │ │ ├── parse-date-time-case-insensitive-t-and-z.json │ │ │ │ │ │ │ │ ├── parse-date-time-invalid-non-ascii-a-bengali-4-in-date-portion.json │ │ │ │ │ │ │ │ ├── parse-date-time-invalid-non-ascii-a-bengali-4-in-time-portion.json │ │ │ │ │ │ │ │ ├── parse-date-time-invalid-non-padded-day-dates.json │ │ │ │ │ │ │ │ ├── parse-date-time-invalid-non-padded-month-dates.json │ │ │ │ │ │ │ │ ├── parse-date-time-only-rfc3339-not-all-of-iso-8601-are-valid.json │ │ │ │ │ │ │ │ ├── parseNull-returnsNull.json │ │ │ │ │ │ │ │ ├── valid-lowercase-a-en.json │ │ │ │ │ │ │ │ ├── valid-lowercase-a-nb.json │ │ │ │ │ │ │ │ ├── valid-lowercase-a-nn.json │ │ │ │ │ │ │ │ ├── valid-lowercase-a-noLanguage.json │ │ │ │ │ │ │ │ ├── valid-lowercase-d.json │ │ │ │ │ │ │ │ ├── valid-lowercase-dd.json │ │ │ │ │ │ │ │ ├── valid-lowercase-h.json │ │ │ │ │ │ │ │ ├── valid-lowercase-hh.json │ │ │ │ │ │ │ │ ├── valid-lowercase-m.json │ │ │ │ │ │ │ │ ├── valid-lowercase-mm.json │ │ │ │ │ │ │ │ ├── valid-lowercase-s.json │ │ │ │ │ │ │ │ ├── valid-lowercase-ss.json │ │ │ │ │ │ │ │ ├── valid-lowercase-u.json │ │ │ │ │ │ │ │ ├── valid-lowercase-uu.json │ │ │ │ │ │ │ │ ├── valid-lowercase-uuu.json │ │ │ │ │ │ │ │ ├── valid-lowercase-uuuu.json │ │ │ │ │ │ │ │ ├── valid-lowercase-y.json │ │ │ │ │ │ │ │ ├── valid-lowercase-yy.json │ │ │ │ │ │ │ │ ├── valid-lowercase-yyy.json │ │ │ │ │ │ │ │ ├── valid-lowercase-yyyy.json │ │ │ │ │ │ │ │ ├── valid-uppercase-e-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-e-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-e-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ee-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ee-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ee-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eee-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eee-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eee-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eeee-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eeee-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eeee-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eeeee-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eeeee-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-eeeee-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-g-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-g-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-g-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-gg-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-gg-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-gg-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ggg-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ggg-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ggg-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-gggg-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-gggg-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-gggg-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ggggg-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ggggg-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ggggg-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-h.json │ │ │ │ │ │ │ │ ├── valid-uppercase-hh.json │ │ │ │ │ │ │ │ ├── valid-uppercase-m.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mm.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mmm-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mmm-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mmm-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mmmm-en.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mmmm-nb.json │ │ │ │ │ │ │ │ ├── valid-uppercase-mmmm-nn.json │ │ │ │ │ │ │ │ ├── valid-uppercase-s.json │ │ │ │ │ │ │ │ ├── valid-uppercase-ss.json │ │ │ │ │ │ │ │ └── valid-uppercase-sss.json │ │ │ │ │ │ │ ├── frontendSettings/ │ │ │ │ │ │ │ │ ├── lookup-case-sensitive.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── simple-lookup-equals.json │ │ │ │ │ │ │ │ ├── simple-lookup-is-null.json │ │ │ │ │ │ │ │ └── simple-lookup.json │ │ │ │ │ │ │ ├── greaterThan/ │ │ │ │ │ │ │ │ ├── diff-types-bool-float.json │ │ │ │ │ │ │ │ ├── diff-types-bool-int.json │ │ │ │ │ │ │ │ ├── diff-types-bool-null.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false3.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-null.json │ │ │ │ │ │ │ │ ├── diff-types-string-null2.json │ │ │ │ │ │ │ │ ├── doble-dots-fail-negative.json │ │ │ │ │ │ │ │ ├── doble-dots-fail.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-1.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-coefficient.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-exponent.json │ │ │ │ │ │ │ │ ├── negative-string-float.json │ │ │ │ │ │ │ │ ├── negative-string-float2.json │ │ │ │ │ │ │ │ ├── negative-string.json │ │ │ │ │ │ │ │ ├── negative-string2.json │ │ │ │ │ │ │ │ ├── no-decimals-fail-negative.json │ │ │ │ │ │ │ │ ├── no-decimals-fail.json │ │ │ │ │ │ │ │ ├── same-types-bool.json │ │ │ │ │ │ │ │ ├── same-types-float-false.json │ │ │ │ │ │ │ │ ├── same-types-float-true.json │ │ │ │ │ │ │ │ ├── same-types-int-false.json │ │ │ │ │ │ │ │ ├── same-types-int-true.json │ │ │ │ │ │ │ │ ├── same-types-null.json │ │ │ │ │ │ │ │ ├── same-types-string-false.json │ │ │ │ │ │ │ │ ├── same-types-string-true.json │ │ │ │ │ │ │ │ ├── sci-notation-negative-exponents.json │ │ │ │ │ │ │ │ ├── sci-notation-numbers.json │ │ │ │ │ │ │ │ ├── sci-notation-with-regular.json │ │ │ │ │ │ │ │ ├── sci-string-basic.json │ │ │ │ │ │ │ │ ├── sci-string-negative-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-negative-exponent.json │ │ │ │ │ │ │ │ ├── sci-string-no-whole.json │ │ │ │ │ │ │ │ ├── sci-string-plus-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-plus-exponent.json │ │ │ │ │ │ │ │ └── sci-string-zero.json │ │ │ │ │ │ │ ├── greaterThanEq/ │ │ │ │ │ │ │ │ ├── diff-types-bool-float.json │ │ │ │ │ │ │ │ ├── diff-types-bool-int.json │ │ │ │ │ │ │ │ ├── diff-types-bool-null.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false3.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-null.json │ │ │ │ │ │ │ │ ├── diff-types-string-null2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-1.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-coefficient.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-exponent.json │ │ │ │ │ │ │ │ ├── same-types-bool.json │ │ │ │ │ │ │ │ ├── same-types-float-false.json │ │ │ │ │ │ │ │ ├── same-types-float-true.json │ │ │ │ │ │ │ │ ├── same-types-int-false.json │ │ │ │ │ │ │ │ ├── same-types-int-true.json │ │ │ │ │ │ │ │ ├── same-types-null.json │ │ │ │ │ │ │ │ ├── same-types-string-false.json │ │ │ │ │ │ │ │ ├── same-types-string-true.json │ │ │ │ │ │ │ │ ├── sci-notation-negative-exponents.json │ │ │ │ │ │ │ │ ├── sci-notation-numbers.json │ │ │ │ │ │ │ │ ├── sci-notation-with-regular.json │ │ │ │ │ │ │ │ ├── sci-string-basic.json │ │ │ │ │ │ │ │ ├── sci-string-negative-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-negative-exponent.json │ │ │ │ │ │ │ │ ├── sci-string-no-whole.json │ │ │ │ │ │ │ │ ├── sci-string-plus-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-plus-exponent.json │ │ │ │ │ │ │ │ └── sci-string-zero.json │ │ │ │ │ │ │ ├── if/ │ │ │ │ │ │ │ │ ├── else-otherwise.json │ │ │ │ │ │ │ │ ├── else-otherwise2.json │ │ │ │ │ │ │ │ ├── fail-5.json │ │ │ │ │ │ │ │ ├── fail-else-as-expr.json │ │ │ │ │ │ │ │ ├── fail-empty-string.json │ │ │ │ │ │ │ │ ├── fail-string.json │ │ │ │ │ │ │ │ ├── fail-without-else.json │ │ │ │ │ │ │ │ ├── fail-without-else2.json │ │ │ │ │ │ │ │ ├── falsy-0-1.json │ │ │ │ │ │ │ │ ├── falsy-0-2.json │ │ │ │ │ │ │ │ ├── never-3-arguments.json │ │ │ │ │ │ │ │ ├── never-5-arguments.json │ │ │ │ │ │ │ │ ├── null-otherwise.json │ │ │ │ │ │ │ │ ├── simple.json │ │ │ │ │ │ │ │ ├── truthy-1-1.json │ │ │ │ │ │ │ │ └── truthy-1-2.json │ │ │ │ │ │ │ ├── instanceContext/ │ │ │ │ │ │ │ │ ├── instanceOwnerNameOrg.json │ │ │ │ │ │ │ │ ├── instanceOwnerNamePerson.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── only-dict.json │ │ │ │ │ │ │ │ ├── partyTypeOrg.json │ │ │ │ │ │ │ │ ├── partyTypePerson.json │ │ │ │ │ │ │ │ ├── partyTypeSelfIdentified.json │ │ │ │ │ │ │ │ ├── partyTypeUnknown.json │ │ │ │ │ │ │ │ ├── simple-lookup-equals.json │ │ │ │ │ │ │ │ ├── simple-lookup-is-null.json │ │ │ │ │ │ │ │ └── simple-lookup.json │ │ │ │ │ │ │ ├── language/ │ │ │ │ │ │ │ │ ├── should-return-nb-if-not-set.json │ │ │ │ │ │ │ │ └── should-return-profile-settings-preference.json │ │ │ │ │ │ │ ├── lessThan/ │ │ │ │ │ │ │ │ ├── diff-types-bool-float.json │ │ │ │ │ │ │ │ ├── diff-types-bool-int.json │ │ │ │ │ │ │ │ ├── diff-types-bool-null.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false3.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-null.json │ │ │ │ │ │ │ │ ├── diff-types-string-null2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-1.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-coefficient.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-exponent.json │ │ │ │ │ │ │ │ ├── same-types-bool.json │ │ │ │ │ │ │ │ ├── same-types-float-false.json │ │ │ │ │ │ │ │ ├── same-types-float-true.json │ │ │ │ │ │ │ │ ├── same-types-int-false.json │ │ │ │ │ │ │ │ ├── same-types-int-true.json │ │ │ │ │ │ │ │ ├── same-types-null.json │ │ │ │ │ │ │ │ ├── same-types-string-false.json │ │ │ │ │ │ │ │ ├── same-types-string-true.json │ │ │ │ │ │ │ │ ├── sci-notation-negative-exponents.json │ │ │ │ │ │ │ │ ├── sci-notation-numbers.json │ │ │ │ │ │ │ │ ├── sci-notation-with-regular.json │ │ │ │ │ │ │ │ ├── sci-string-basic.json │ │ │ │ │ │ │ │ ├── sci-string-negative-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-negative-exponent.json │ │ │ │ │ │ │ │ ├── sci-string-no-whole.json │ │ │ │ │ │ │ │ ├── sci-string-plus-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-plus-exponent.json │ │ │ │ │ │ │ │ └── sci-string-zero.json │ │ │ │ │ │ │ ├── lessThanEq/ │ │ │ │ │ │ │ │ ├── diff-types-bool-float.json │ │ │ │ │ │ │ │ ├── diff-types-bool-int.json │ │ │ │ │ │ │ │ ├── diff-types-bool-null.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false2.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-false3.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-null.json │ │ │ │ │ │ │ │ ├── diff-types-string-null2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-1.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-format-2.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-coefficient.json │ │ │ │ │ │ │ │ ├── error-sci-not-string-no-exponent.json │ │ │ │ │ │ │ │ ├── same-types-bool.json │ │ │ │ │ │ │ │ ├── same-types-float-false.json │ │ │ │ │ │ │ │ ├── same-types-float-true.json │ │ │ │ │ │ │ │ ├── same-types-int-false.json │ │ │ │ │ │ │ │ ├── same-types-int-true.json │ │ │ │ │ │ │ │ ├── same-types-null.json │ │ │ │ │ │ │ │ ├── same-types-string-false.json │ │ │ │ │ │ │ │ ├── same-types-string-true.json │ │ │ │ │ │ │ │ ├── sci-notation-negative-exponents.json │ │ │ │ │ │ │ │ ├── sci-notation-numbers.json │ │ │ │ │ │ │ │ ├── sci-notation-with-regular.json │ │ │ │ │ │ │ │ ├── sci-string-basic.json │ │ │ │ │ │ │ │ ├── sci-string-negative-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-negative-exponent.json │ │ │ │ │ │ │ │ ├── sci-string-no-whole.json │ │ │ │ │ │ │ │ ├── sci-string-plus-coefficient.json │ │ │ │ │ │ │ │ ├── sci-string-plus-exponent.json │ │ │ │ │ │ │ │ └── sci-string-zero.json │ │ │ │ │ │ │ ├── linkToComponent/ │ │ │ │ │ │ │ │ ├── linkToComponent.json │ │ │ │ │ │ │ │ ├── linkToComponentWithBackButton-samePage.json │ │ │ │ │ │ │ │ └── linkToComponentWithBackButton.json │ │ │ │ │ │ │ ├── linkToPage/ │ │ │ │ │ │ │ │ ├── linkToPage-stateless-with-backButton-samePage.json │ │ │ │ │ │ │ │ ├── linkToPage-stateless-with-backButton.json │ │ │ │ │ │ │ │ ├── linkToPage-stateless.json │ │ │ │ │ │ │ │ ├── linkToPage.json │ │ │ │ │ │ │ │ └── linkToPageWithBackButton.json │ │ │ │ │ │ │ ├── lowerCase/ │ │ │ │ │ │ │ │ ├── lowercase-number-should-return-string.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── should-lowercase-string.json │ │ │ │ │ │ │ │ ├── should-lowercase-whole-string.json │ │ │ │ │ │ │ │ └── should-lowercase-whole-word.json │ │ │ │ │ │ │ ├── lowerCaseFirst/ │ │ │ │ │ │ │ │ ├── number.json │ │ │ │ │ │ │ │ ├── simple1.json │ │ │ │ │ │ │ │ └── simple2.json │ │ │ │ │ │ │ ├── minus/ │ │ │ │ │ │ │ │ └── minus.json │ │ │ │ │ │ │ ├── multiply/ │ │ │ │ │ │ │ │ └── multiply.json │ │ │ │ │ │ │ ├── not/ │ │ │ │ │ │ │ │ ├── not-changes-notNull-to-false.json │ │ │ │ │ │ │ │ ├── not-changes-null-to-true.json │ │ │ │ │ │ │ │ ├── not-errors-on-numbers-not-0-or-1.json │ │ │ │ │ │ │ │ ├── not-errors-on-two-arguments.json │ │ │ │ │ │ │ │ ├── not-errors-on-zero-arguments.json │ │ │ │ │ │ │ │ ├── not-handles-numeric-zero-as-false.json │ │ │ │ │ │ │ │ ├── not-inverts-false.json │ │ │ │ │ │ │ │ └── not-inverts-true.json │ │ │ │ │ │ │ ├── notContains/ │ │ │ │ │ │ │ │ ├── case-sensitivity.json │ │ │ │ │ │ │ │ ├── exact-match.json │ │ │ │ │ │ │ │ ├── not-match.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── null2.json │ │ │ │ │ │ │ │ ├── null3.json │ │ │ │ │ │ │ │ └── null4.json │ │ │ │ │ │ │ ├── notEquals/ │ │ │ │ │ │ │ │ ├── diff-types-bool-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-bool-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-bool-null-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-float-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-float-null-true.json │ │ │ │ │ │ │ │ ├── diff-types-int-null-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-bool-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-float-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-int-true.json │ │ │ │ │ │ │ │ ├── diff-types-string-null-false.json │ │ │ │ │ │ │ │ ├── diff-types-string-null-true.json │ │ │ │ │ │ │ │ ├── same-types-bool-false.json │ │ │ │ │ │ │ │ ├── same-types-bool-true.json │ │ │ │ │ │ │ │ ├── same-types-float-false.json │ │ │ │ │ │ │ │ ├── same-types-float-true.json │ │ │ │ │ │ │ │ ├── same-types-int-false.json │ │ │ │ │ │ │ │ ├── same-types-int-true.json │ │ │ │ │ │ │ │ ├── same-types-null.json │ │ │ │ │ │ │ │ ├── same-types-string-false.json │ │ │ │ │ │ │ │ └── same-types-string-true.json │ │ │ │ │ │ │ ├── optionLabel/ │ │ │ │ │ │ │ │ ├── error-not-found.json │ │ │ │ │ │ │ │ ├── simple.json │ │ │ │ │ │ │ │ └── translated.json │ │ │ │ │ │ │ ├── or/ │ │ │ │ │ │ │ │ ├── all-true.json │ │ │ │ │ │ │ │ ├── allows-0.json │ │ │ │ │ │ │ │ ├── allows-1.json │ │ │ │ │ │ │ │ ├── allows-stringy-false.json │ │ │ │ │ │ │ │ ├── allows-stringy-true.json │ │ │ │ │ │ │ │ ├── disallows-2.json │ │ │ │ │ │ │ │ ├── disallows-empty-strings.json │ │ │ │ │ │ │ │ ├── disallows-other-strings.json │ │ │ │ │ │ │ │ ├── empty-or.json │ │ │ │ │ │ │ │ ├── last-false.json │ │ │ │ │ │ │ │ ├── null-is-false.json │ │ │ │ │ │ │ │ ├── single-input-false.json │ │ │ │ │ │ │ │ └── single-input-true.json │ │ │ │ │ │ │ ├── plus/ │ │ │ │ │ │ │ │ └── plus.json │ │ │ │ │ │ │ ├── round/ │ │ │ │ │ │ │ │ ├── nearest-integer-with-decimal-as-strings.json │ │ │ │ │ │ │ │ ├── nearest-integer-with-decimal.json │ │ │ │ │ │ │ │ ├── nearest-integer.json │ │ │ │ │ │ │ │ ├── round-0-decimal-places.json │ │ │ │ │ │ │ │ ├── round-0-decimal-places2.json │ │ │ │ │ │ │ │ ├── round-negative-number.json │ │ │ │ │ │ │ │ ├── round-null.json │ │ │ │ │ │ │ │ ├── round-null2.json │ │ │ │ │ │ │ │ ├── round-strings.json │ │ │ │ │ │ │ │ ├── round-with-too-many-args.json │ │ │ │ │ │ │ │ ├── round-without-decimalCount.json │ │ │ │ │ │ │ │ └── round-without-decimalCount2.json │ │ │ │ │ │ │ ├── startsWith/ │ │ │ │ │ │ │ │ ├── case-sensitivity.json │ │ │ │ │ │ │ │ ├── empty-string.json │ │ │ │ │ │ │ │ ├── exact-match.json │ │ │ │ │ │ │ │ ├── not-starts-with.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── null2.json │ │ │ │ │ │ │ │ ├── number-starts-with-number.json │ │ │ │ │ │ │ │ ├── number-starts-with-string.json │ │ │ │ │ │ │ │ ├── start-with-number.json │ │ │ │ │ │ │ │ └── start-with.json │ │ │ │ │ │ │ ├── stringIndexOf/ │ │ │ │ │ │ │ │ ├── emoji.json │ │ │ │ │ │ │ │ ├── look-for-null.json │ │ │ │ │ │ │ │ ├── look-in-null.json │ │ │ │ │ │ │ │ ├── not-found.json │ │ │ │ │ │ │ │ ├── number.json │ │ │ │ │ │ │ │ ├── simple.json │ │ │ │ │ │ │ │ └── whitespace.json │ │ │ │ │ │ │ ├── stringLength/ │ │ │ │ │ │ │ │ ├── empty-string.json │ │ │ │ │ │ │ │ ├── length-equals.json │ │ │ │ │ │ │ │ ├── length-of-number.json │ │ │ │ │ │ │ │ ├── length-of-unicode.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── string-length.json │ │ │ │ │ │ │ │ └── whitespace-length.json │ │ │ │ │ │ │ ├── stringReplace/ │ │ │ │ │ │ │ │ ├── emoji.json │ │ │ │ │ │ │ │ ├── multiple.json │ │ │ │ │ │ │ │ ├── replace-with-null.json │ │ │ │ │ │ │ │ ├── simple.json │ │ │ │ │ │ │ │ └── special-chars.json │ │ │ │ │ │ │ ├── stringSlice/ │ │ │ │ │ │ │ │ ├── emoji.json │ │ │ │ │ │ │ │ ├── emoji2.json │ │ │ │ │ │ │ │ ├── end-before-start.json │ │ │ │ │ │ │ │ ├── end-too-large.json │ │ │ │ │ │ │ │ ├── error-together.json │ │ │ │ │ │ │ │ ├── negative-end.json │ │ │ │ │ │ │ │ ├── negative-start.json │ │ │ │ │ │ │ │ ├── simple.json │ │ │ │ │ │ │ │ ├── start-before-length.json │ │ │ │ │ │ │ │ ├── start-too-large.json │ │ │ │ │ │ │ │ └── together.json │ │ │ │ │ │ │ ├── text/ │ │ │ │ │ │ │ │ ├── lookup-from-multiple-sources.json │ │ │ │ │ │ │ │ ├── lookup-instance-data.json │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── should-return-key-name-if-key-not-exist.json │ │ │ │ │ │ │ │ ├── should-return-text-resource-with-variable-in-rep-group-no-index-markers.json │ │ │ │ │ │ │ │ ├── should-return-text-resource-with-variable-in-rep-group.json │ │ │ │ │ │ │ │ ├── should-return-text-resource-with-variable.json │ │ │ │ │ │ │ │ ├── should-return-text-resource.json │ │ │ │ │ │ │ │ ├── unknown-data-source-returns-null.json │ │ │ │ │ │ │ │ └── use-default-when-dataModel-null.json │ │ │ │ │ │ │ ├── unknown/ │ │ │ │ │ │ │ │ ├── appSettings.json │ │ │ │ │ │ │ │ ├── function-wrong-case.json │ │ │ │ │ │ │ │ └── invalid-function.json │ │ │ │ │ │ │ ├── upperCase/ │ │ │ │ │ │ │ │ ├── null.json │ │ │ │ │ │ │ │ ├── should-uppercase-string.json │ │ │ │ │ │ │ │ ├── should-uppercase-whole-string.json │ │ │ │ │ │ │ │ ├── should-uppercase-whole-word.json │ │ │ │ │ │ │ │ └── uppercase-number-should-return-string.json │ │ │ │ │ │ │ ├── upperCaseFirst/ │ │ │ │ │ │ │ │ ├── number.json │ │ │ │ │ │ │ │ ├── simple1.json │ │ │ │ │ │ │ │ └── simple2.json │ │ │ │ │ │ │ └── value/ │ │ │ │ │ │ │ ├── error-invalid-key.json │ │ │ │ │ │ │ ├── explicit-default-key.json │ │ │ │ │ │ │ ├── implicit-default-value.json │ │ │ │ │ │ │ └── other-key.json │ │ │ │ │ │ └── invalid/ │ │ │ │ │ │ ├── empty-array-inside.json │ │ │ │ │ │ ├── empty-array.json │ │ │ │ │ │ ├── empty-object.json │ │ │ │ │ │ ├── extra-argument.json │ │ │ │ │ │ ├── func-not-implemented.json │ │ │ │ │ │ ├── missing-args.json │ │ │ │ │ │ ├── numeric-array.json │ │ │ │ │ │ └── wrong-function-capitalization.json │ │ │ │ │ ├── shared.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ ├── validation.test.ts │ │ │ │ │ └── validation.ts │ │ │ │ ├── externalApi/ │ │ │ │ │ └── useExternalApi.ts │ │ │ │ ├── footer/ │ │ │ │ │ ├── Footer.module.css │ │ │ │ │ ├── Footer.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── FooterComponentWrapper.module.css │ │ │ │ │ │ ├── FooterComponentWrapper.tsx │ │ │ │ │ │ ├── FooterEmail.tsx │ │ │ │ │ │ ├── FooterLink.tsx │ │ │ │ │ │ ├── FooterPhone.tsx │ │ │ │ │ │ ├── FooterText.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── shared/ │ │ │ │ │ │ ├── FooterGenericLink.tsx │ │ │ │ │ │ └── FooterIcon.tsx │ │ │ │ │ └── types.ts │ │ │ │ ├── form/ │ │ │ │ │ ├── DataElementIdsForCypress.tsx │ │ │ │ │ ├── FormContext.tsx │ │ │ │ │ ├── FormProvider.tsx │ │ │ │ │ ├── getPrefillFromSessionStorage.tsx │ │ │ │ │ ├── layout/ │ │ │ │ │ │ ├── LayoutsContext.tsx │ │ │ │ │ │ ├── PageNavigationContext.tsx │ │ │ │ │ │ ├── UiConfigContext.tsx │ │ │ │ │ │ ├── cleanLayout.ts │ │ │ │ │ │ ├── component-verification.test.ts │ │ │ │ │ │ ├── layoutOverrides.ts │ │ │ │ │ │ ├── makeLayoutLookups.ts │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ ├── makeIndexedId.test.ts │ │ │ │ │ │ ├── makeIndexedId.ts │ │ │ │ │ │ └── repeating.ts │ │ │ │ │ ├── layoutSettings/ │ │ │ │ │ │ ├── processLayoutSettings.test.tsx │ │ │ │ │ │ └── processLayoutSettings.ts │ │ │ │ │ └── ui/ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── formBootstrap/ │ │ │ │ │ ├── FormBootstrap.tsx │ │ │ │ │ ├── types.ts │ │ │ │ │ └── useFormBootstrapQuery.ts │ │ │ │ ├── formData/ │ │ │ │ │ ├── FormData.test.tsx │ │ │ │ │ ├── FormDataReaders.test.tsx │ │ │ │ │ ├── FormDataReaders.tsx │ │ │ │ │ ├── FormDataWrite.test.ts │ │ │ │ │ ├── FormDataWrite.tsx │ │ │ │ │ ├── FormDataWriteProxies.tsx │ │ │ │ │ ├── FormDataWriteStateMachine.tsx │ │ │ │ │ ├── InvalidSubformLayoutException.ts │ │ │ │ │ ├── MissingRowIdException.ts │ │ │ │ │ ├── MissingRowIdView.tsx │ │ │ │ │ ├── convertData.ts │ │ │ │ │ ├── jsonPatch/ │ │ │ │ │ │ ├── createPatch.test.ts │ │ │ │ │ │ ├── createPatch.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ ├── useDataModelBindings.test.tsx │ │ │ │ │ ├── useDataModelBindings.ts │ │ │ │ │ └── useFormDataQuery.tsx │ │ │ │ ├── instance/ │ │ │ │ │ ├── InstanceContext.tsx │ │ │ │ │ ├── instanceUtils.ts │ │ │ │ │ ├── useProcessNext.tsx │ │ │ │ │ ├── useProcessQuery.ts │ │ │ │ │ └── useProcessTaskId.ts │ │ │ │ ├── instantiate/ │ │ │ │ │ ├── InstantiationError.tsx │ │ │ │ │ ├── InstantiationValidation.tsx │ │ │ │ │ ├── containers/ │ │ │ │ │ │ ├── ForbiddenError.tsx │ │ │ │ │ │ ├── InstantiateValidationError.tsx │ │ │ │ │ │ ├── InstantiationContainer.module.css │ │ │ │ │ │ ├── InstantiationContainer.tsx │ │ │ │ │ │ ├── InstantiationErrorPage.tsx │ │ │ │ │ │ ├── InvalidSubformLayoutError.tsx │ │ │ │ │ │ ├── MissingRolesError.tsx │ │ │ │ │ │ ├── NoValidPartiesError.tsx │ │ │ │ │ │ ├── PartySelection.module.css │ │ │ │ │ │ ├── PartySelection.test.tsx │ │ │ │ │ │ ├── PartySelection.tsx │ │ │ │ │ │ ├── UnknownError.test.tsx │ │ │ │ │ │ └── UnknownError.tsx │ │ │ │ │ ├── instantiateHeader/ │ │ │ │ │ │ ├── InstantiateHeader.module.css │ │ │ │ │ │ ├── InstantiateHeader.test.tsx │ │ │ │ │ │ └── InstantiateHeader.tsx │ │ │ │ │ ├── selection/ │ │ │ │ │ │ ├── ActiveInstancesProvider.tsx │ │ │ │ │ │ ├── InstanceSelection.module.css │ │ │ │ │ │ ├── InstanceSelection.test.tsx │ │ │ │ │ │ └── InstanceSelection.tsx │ │ │ │ │ ├── useInstantiateWithPrefillMutation.ts │ │ │ │ │ └── useInstantiation.tsx │ │ │ │ ├── language/ │ │ │ │ │ ├── Lang.test.tsx │ │ │ │ │ ├── Lang.tsx │ │ │ │ │ ├── LanguageProvider.tsx │ │ │ │ │ ├── textResources/ │ │ │ │ │ │ ├── TextResourcesProvider.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── useLangToolsDataSources.tsx │ │ │ │ │ ├── useLanguage.test.tsx │ │ │ │ │ └── useLanguage.ts │ │ │ │ ├── logging.ts │ │ │ │ ├── navigation/ │ │ │ │ │ ├── AppNavigation.module.css │ │ │ │ │ ├── AppNavigation.test.tsx │ │ │ │ │ ├── AppNavigation.tsx │ │ │ │ │ ├── NavigationFocus.test.tsx │ │ │ │ │ ├── NavigationFocus.tsx │ │ │ │ │ ├── NavigationFocusStateContext.tsx │ │ │ │ │ ├── NavigationState.ts │ │ │ │ │ ├── PopoverNavigation.module.css │ │ │ │ │ ├── PopoverNavigation.tsx │ │ │ │ │ ├── SidebarNavigation.module.css │ │ │ │ │ ├── SidebarNavigation.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── Page.module.css │ │ │ │ │ │ ├── Page.tsx │ │ │ │ │ │ ├── PageGroup.module.css │ │ │ │ │ │ ├── PageGroup.tsx │ │ │ │ │ │ ├── SubformsForPage.module.css │ │ │ │ │ │ ├── SubformsForPage.tsx │ │ │ │ │ │ ├── TaskGroup.module.css │ │ │ │ │ │ └── TaskGroup.tsx │ │ │ │ │ ├── navigationOptions.ts │ │ │ │ │ ├── useNavigateToPageWithValidation.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── options/ │ │ │ │ │ ├── OptionsPlugin.tsx │ │ │ │ │ ├── RunOptionsEffects.tsx │ │ │ │ │ ├── castOptionsToStrings.ts │ │ │ │ │ ├── effects/ │ │ │ │ │ │ ├── EffectPreselectedOptionIndex.tsx │ │ │ │ │ │ ├── EffectRemoveStaleValues.tsx │ │ │ │ │ │ ├── EffectSetDownstreamParameters.tsx │ │ │ │ │ │ ├── EffectStoreLabel.tsx │ │ │ │ │ │ └── EffectStoreLabelInGroup.tsx │ │ │ │ │ ├── evalQueryParameters.ts │ │ │ │ │ ├── getCommaSeparatedOptionsToText.ts │ │ │ │ │ ├── getSelectedValueToText.ts │ │ │ │ │ ├── useGetOptions.test.tsx │ │ │ │ │ ├── useGetOptions.ts │ │ │ │ │ ├── useGetOptionsQuery.ts │ │ │ │ │ ├── useOptionsFor.ts │ │ │ │ │ └── useSourceOptions.ts │ │ │ │ ├── party/ │ │ │ │ │ ├── PartiesProvider.tsx │ │ │ │ │ └── partyUtils.ts │ │ │ │ ├── payment/ │ │ │ │ │ ├── OrderDetailsProvider.tsx │ │ │ │ │ ├── PaymentInformationProvider.tsx │ │ │ │ │ ├── PaymentProvider.tsx │ │ │ │ │ ├── types.ts │ │ │ │ │ ├── usePerformPaymentMutation.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── pdf/ │ │ │ │ │ ├── PDFView.module.css │ │ │ │ │ ├── PDFWrapper.test.tsx │ │ │ │ │ ├── PdfFromLayout.tsx │ │ │ │ │ ├── PdfWrapper.tsx │ │ │ │ │ ├── types.ts │ │ │ │ │ └── usePdfFormatQuery.ts │ │ │ │ ├── process/ │ │ │ │ │ ├── confirm/ │ │ │ │ │ │ ├── containers/ │ │ │ │ │ │ │ ├── Confirm.test.tsx │ │ │ │ │ │ │ ├── Confirm.tsx │ │ │ │ │ │ │ ├── ConfirmPage.test.tsx │ │ │ │ │ │ │ └── ConfirmPage.tsx │ │ │ │ │ │ └── helpers/ │ │ │ │ │ │ ├── returnConfirmSummaryObject.test.ts │ │ │ │ │ │ └── returnConfirmSummaryObject.ts │ │ │ │ │ ├── feedback/ │ │ │ │ │ │ └── Feedback.tsx │ │ │ │ │ └── service/ │ │ │ │ │ ├── ServiceTask.module.css │ │ │ │ │ └── ServiceTask.tsx │ │ │ │ ├── profile/ │ │ │ │ │ └── ProfileProvider.tsx │ │ │ │ ├── propagateTraceWhenPdf/ │ │ │ │ │ └── index.ts │ │ │ │ ├── receipt/ │ │ │ │ │ ├── FixWrongReceiptType.tsx │ │ │ │ │ ├── ReceiptContainer.test.tsx │ │ │ │ │ └── ReceiptContainer.tsx │ │ │ │ ├── saveToGroup/ │ │ │ │ │ ├── ObjectToGroupLayoutValidator.tsx │ │ │ │ │ ├── layoutValidation.ts │ │ │ │ │ ├── useSaveToGroup.ts │ │ │ │ │ └── useValidateGroupIsEmpty.ts │ │ │ │ ├── stateless/ │ │ │ │ │ ├── getAllowAnonymous.test.tsx │ │ │ │ │ └── getAllowAnonymous.ts │ │ │ │ ├── styleInjection.ts │ │ │ │ ├── subformData/ │ │ │ │ │ └── useSubformMutations.tsx │ │ │ │ ├── toggles.ts │ │ │ │ └── validation/ │ │ │ │ ├── ComponentValidations.module.css │ │ │ │ ├── ComponentValidations.tsx │ │ │ │ ├── StoreValidationsInNode.tsx │ │ │ │ ├── ValidationPlugin.test.tsx │ │ │ │ ├── ValidationPlugin.tsx │ │ │ │ ├── ValidationStorePlugin.test.ts │ │ │ │ ├── ValidationStorePlugin.tsx │ │ │ │ ├── backendValidation/ │ │ │ │ │ ├── BackendValidation.tsx │ │ │ │ │ ├── backendValidationUtils.ts │ │ │ │ │ ├── useUpdateIncrementalValidations.ts │ │ │ │ │ └── validationTexts.ts │ │ │ │ ├── callbacks/ │ │ │ │ │ ├── onFormSubmitValidation.ts │ │ │ │ │ ├── onGroupCloseValidation.ts │ │ │ │ │ └── onPageNavigationValidation.ts │ │ │ │ ├── expressionValidation/ │ │ │ │ │ ├── ExpressionValidation.test.tsx │ │ │ │ │ ├── shared-expression-validation-tests/ │ │ │ │ │ │ ├── component-lookup-hidden.json │ │ │ │ │ │ ├── many-errors-direct.json │ │ │ │ │ │ ├── many-errors.json │ │ │ │ │ │ ├── nested-repeating.json │ │ │ │ │ │ ├── override.json │ │ │ │ │ │ ├── repeating-direct.json │ │ │ │ │ │ ├── repeating.json │ │ │ │ │ │ ├── single-field-equals.json │ │ │ │ │ │ ├── value-function.json │ │ │ │ │ │ └── warning.json │ │ │ │ │ └── useExpressionValidation.ts │ │ │ │ ├── index.ts │ │ │ │ ├── invalidDataValidation/ │ │ │ │ │ ├── InvalidDataValidation.test.tsx │ │ │ │ │ └── InvalidDataValidation.tsx │ │ │ │ ├── nodeValidation/ │ │ │ │ │ ├── emptyFieldValidation.ts │ │ │ │ │ ├── useNodeValidation.ts │ │ │ │ │ └── waitForNodesToValidate.ts │ │ │ │ ├── schemaValidation/ │ │ │ │ │ ├── SchemaValidation.test.tsx │ │ │ │ │ ├── SchemaValidation.tsx │ │ │ │ │ ├── schemaValidationUtils.test.ts │ │ │ │ │ └── schemaValidationUtils.ts │ │ │ │ ├── selectors/ │ │ │ │ │ ├── bindingValidationsForNode.ts │ │ │ │ │ ├── componentValidationsForNode.ts │ │ │ │ │ ├── deepValidationsForNode.ts │ │ │ │ │ ├── isValid.ts │ │ │ │ │ ├── taskErrors.ts │ │ │ │ │ └── unifiedValidationsForNode.ts │ │ │ │ ├── utils.ts │ │ │ │ └── validationContext.tsx │ │ │ ├── global.ts │ │ │ ├── globalSetup.ts │ │ │ ├── hooks/ │ │ │ │ ├── delayedSelectors.test.tsx │ │ │ │ ├── delayedSelectors.ts │ │ │ │ ├── navigation.ts │ │ │ │ ├── useAppLogo.ts │ │ │ │ ├── useAsRef.ts │ │ │ │ ├── useCookieState.test.tsx │ │ │ │ ├── useCookieState.ts │ │ │ │ ├── useDeviceWidths.ts │ │ │ │ ├── useIsPdf.ts │ │ │ │ ├── useLocalStorageState.ts │ │ │ │ ├── useMapToReactNumberConfig.ts │ │ │ │ ├── useNavigatePage.ts │ │ │ │ ├── useOurEffectEvent.ts │ │ │ │ ├── usePageValidation.ts │ │ │ │ ├── useProcessingMutation.ts │ │ │ │ ├── useShallowMemo.ts │ │ │ │ ├── useStateDeepEqual.test.tsx │ │ │ │ ├── useStateDeepEqual.ts │ │ │ │ ├── useWaitForQueries.ts │ │ │ │ ├── useWaitForState.test.tsx │ │ │ │ └── useWaitForState.ts │ │ │ ├── index.css │ │ │ ├── index.tsx │ │ │ ├── language/ │ │ │ │ ├── eslint.js │ │ │ │ ├── languages.ts │ │ │ │ ├── sharedLanguage.test.ts │ │ │ │ ├── sharedLanguage.ts │ │ │ │ └── texts/ │ │ │ │ ├── en.ts │ │ │ │ ├── nb.ts │ │ │ │ └── nn.ts │ │ │ ├── layout/ │ │ │ │ ├── Accordion/ │ │ │ │ │ ├── Accordion.module.css │ │ │ │ │ ├── Accordion.test.tsx │ │ │ │ │ ├── Accordion.tsx │ │ │ │ │ ├── SummaryAccordion.module.css │ │ │ │ │ ├── SummaryAccordion.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── AccordionGroup/ │ │ │ │ │ ├── AccordionGroup.tsx │ │ │ │ │ ├── AccordionGroupContext.tsx │ │ │ │ │ ├── SummaryAccordionGroupComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── ActionButton/ │ │ │ │ │ ├── ActionButtonComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── AddToList/ │ │ │ │ │ ├── AddToList.tsx │ │ │ │ │ ├── AddToListFeatureFlagLayoutValidator.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Address/ │ │ │ │ │ ├── AddressComponent.module.css │ │ │ │ │ ├── AddressComponent.test.tsx │ │ │ │ │ ├── AddressComponent.tsx │ │ │ │ │ ├── AddressSummary/ │ │ │ │ │ │ ├── AddressSummary.module.css │ │ │ │ │ │ └── AddressSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── useAddressValidation.ts │ │ │ │ │ └── usePostPlace.ts │ │ │ │ ├── Alert/ │ │ │ │ │ ├── Alert.module.css │ │ │ │ │ ├── Alert.test.tsx │ │ │ │ │ ├── Alert.tsx │ │ │ │ │ ├── AlertBaseComponent.test.tsx │ │ │ │ │ ├── AlertBaseComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── AttachmentList/ │ │ │ │ │ ├── AttachmentListComponent.test.tsx │ │ │ │ │ ├── AttachmentListComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Audio/ │ │ │ │ │ ├── Audio.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Button/ │ │ │ │ │ ├── ButtonComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── getComponentFromMode.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── ButtonGroup/ │ │ │ │ │ ├── ButtonGroupComponent.module.css │ │ │ │ │ ├── ButtonGroupComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Cards/ │ │ │ │ │ ├── CardContext.tsx │ │ │ │ │ ├── Cards.module.css │ │ │ │ │ ├── Cards.tsx │ │ │ │ │ ├── CardsSummary.tsx │ │ │ │ │ ├── claimCardsChildren.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Checkboxes/ │ │ │ │ │ ├── CheckboxesContainerComponent.module.css │ │ │ │ │ ├── CheckboxesContainerComponent.test.tsx │ │ │ │ │ ├── CheckboxesContainerComponent.tsx │ │ │ │ │ ├── CheckboxesContainerComponentSummary.module.css │ │ │ │ │ ├── CheckboxesSummary.module.css │ │ │ │ │ ├── CheckboxesSummary.tsx │ │ │ │ │ ├── MultipleChoiceSummary.module.css │ │ │ │ │ ├── MultipleChoiceSummary.tsx │ │ │ │ │ ├── WrappedCheckbox.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── ComponentStructureWrapper.tsx │ │ │ │ ├── Custom/ │ │ │ │ │ ├── CustomWebComponent.test.tsx │ │ │ │ │ ├── CustomWebComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── CustomButton/ │ │ │ │ │ ├── CustomButtonComponent.test.tsx │ │ │ │ │ ├── CustomButtonComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── typeHelpers.ts │ │ │ │ ├── Date/ │ │ │ │ │ ├── DateComponent.tsx │ │ │ │ │ ├── DateSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Datepicker/ │ │ │ │ │ ├── DatepickerComponent.test.tsx │ │ │ │ │ ├── DatepickerComponent.tsx │ │ │ │ │ ├── DatepickerSummary.tsx │ │ │ │ │ ├── DropdownCaption.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── useDatepickerValidation.ts │ │ │ │ ├── Divider/ │ │ │ │ │ ├── DividerComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Dropdown/ │ │ │ │ │ ├── DropdownComponent.module.css │ │ │ │ │ ├── DropdownComponent.test.tsx │ │ │ │ │ ├── DropdownComponent.tsx │ │ │ │ │ ├── DropdownSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── FileUpload/ │ │ │ │ │ ├── AttachmentSummaryComponent2.tsx │ │ │ │ │ ├── Error/ │ │ │ │ │ │ ├── FailedAttachments.module.css │ │ │ │ │ │ ├── FailedAttachments.tsx │ │ │ │ │ │ └── InfectedFileAlert.tsx │ │ │ │ │ ├── FileUploadComponent.module.css │ │ │ │ │ ├── FileUploadComponent.test.tsx │ │ │ │ │ ├── FileUploadComponent.tsx │ │ │ │ │ ├── FileUploadLayoutValidator.tsx │ │ │ │ │ ├── FileUploadTable/ │ │ │ │ │ │ ├── AttachmentFileName.module.css │ │ │ │ │ │ ├── AttachmentFileName.tsx │ │ │ │ │ │ ├── FileTable.tsx │ │ │ │ │ │ ├── FileTableButtons.tsx │ │ │ │ │ │ ├── FileTableComponent.module.css │ │ │ │ │ │ ├── FileTableRow.module.css │ │ │ │ │ │ ├── FileTableRow.tsx │ │ │ │ │ │ └── FileTableRowContext.tsx │ │ │ │ │ ├── RejectedFileError.ts │ │ │ │ │ ├── Summary/ │ │ │ │ │ │ ├── AttachmentSummaryComponent.module.css │ │ │ │ │ │ ├── AttachmentSummaryComponent.tsx │ │ │ │ │ │ ├── AttachmentWithTagSummaryComponent.test.tsx │ │ │ │ │ │ └── summary.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── useValidateAttachmentDataElements.ts │ │ │ │ │ ├── useValidateMinNumberOfAttachments.ts │ │ │ │ │ └── utils/ │ │ │ │ │ ├── fileEndings.test.ts │ │ │ │ │ ├── fileEndings.ts │ │ │ │ │ └── useFileUploaderDataBindingsValidation.ts │ │ │ │ ├── FileUploadWithTag/ │ │ │ │ │ ├── EditWindowComponent.module.css │ │ │ │ │ ├── EditWindowComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── useValidateMissingTag.ts │ │ │ │ ├── FormComponentContext.tsx │ │ │ │ ├── GenericComponent.module.css │ │ │ │ ├── GenericComponent.test.tsx │ │ │ │ ├── GenericComponent.tsx │ │ │ │ ├── Grid/ │ │ │ │ │ ├── Grid.module.css │ │ │ │ │ ├── GridComponent.test.tsx │ │ │ │ │ ├── GridComponent.tsx │ │ │ │ │ ├── GridSummary.module.css │ │ │ │ │ ├── GridSummary.tsx │ │ │ │ │ ├── GridSummaryComponent.tsx │ │ │ │ │ ├── claimGridRowsChildren.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── tools.test.ts │ │ │ │ │ └── tools.ts │ │ │ │ ├── Group/ │ │ │ │ │ ├── GroupComponent.module.css │ │ │ │ │ ├── GroupComponent.tsx │ │ │ │ │ ├── GroupSummary.module.css │ │ │ │ │ ├── GroupSummary.tsx │ │ │ │ │ ├── SummaryGroupComponent.module.css │ │ │ │ │ ├── SummaryGroupComponent.test.tsx │ │ │ │ │ ├── SummaryGroupComponent.tsx │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── SummaryGroupComponent.test.tsx.snap │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Header/ │ │ │ │ │ ├── HeaderComponent.test.tsx │ │ │ │ │ ├── HeaderComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── IFrame/ │ │ │ │ │ ├── IFrameComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── Image/ │ │ │ │ │ ├── ImageComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── ImageUpload/ │ │ │ │ │ ├── ImageCanvas/ │ │ │ │ │ │ ├── ImageCanvas.module.css │ │ │ │ │ │ ├── ImageCanvas.tsx │ │ │ │ │ │ ├── ImagePreview.module.css │ │ │ │ │ │ ├── ImagePreview.tsx │ │ │ │ │ │ └── hooks/ │ │ │ │ │ │ ├── useCanvasDraw.tsx │ │ │ │ │ │ ├── useDragInteraction.tsx │ │ │ │ │ │ ├── useKeyboardNavigation.tsx │ │ │ │ │ │ └── useZoomInteraction.tsx │ │ │ │ │ ├── ImageControllers.module.css │ │ │ │ │ ├── ImageControllers.tsx │ │ │ │ │ ├── ImageCropper.tsx │ │ │ │ │ ├── ImageDropzone.module.css │ │ │ │ │ ├── ImageDropzone.tsx │ │ │ │ │ ├── ImageUploadComponent.test.tsx │ │ │ │ │ ├── ImageUploadComponent.tsx │ │ │ │ │ ├── ImageUploadSummary2/ │ │ │ │ │ │ ├── ImageUploadSummary2.module.css │ │ │ │ │ │ ├── ImageUploadSummary2.test.tsx │ │ │ │ │ │ └── ImageUploadSummary2.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── useFocusOnChange.tsx │ │ │ │ │ │ ├── useFocusWhenRemoved.tsx │ │ │ │ │ │ ├── useFocusWhenUploaded.tsx │ │ │ │ │ │ ├── useImageCropperSave.tsx │ │ │ │ │ │ ├── useImageFile.tsx │ │ │ │ │ │ ├── useImageUploader.tsx │ │ │ │ │ │ └── useValidateRequiredImageUpload.tsx │ │ │ │ │ ├── imageUploadUtils.test.tsx │ │ │ │ │ ├── imageUploadUtils.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Input/ │ │ │ │ │ ├── InputComponent.module.css │ │ │ │ │ ├── InputComponent.test.tsx │ │ │ │ │ ├── InputComponent.tsx │ │ │ │ │ ├── InputSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── formatting.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── number-format-helpers.ts │ │ │ │ ├── InstanceInformation/ │ │ │ │ │ ├── InstanceInformationComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── InstantiationButton/ │ │ │ │ │ ├── InstantiationButton.module.css │ │ │ │ │ ├── InstantiationButton.test.tsx │ │ │ │ │ ├── InstantiationButton.tsx │ │ │ │ │ ├── InstantiationButtonComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── LayoutComponent.tsx │ │ │ │ ├── Likert/ │ │ │ │ │ ├── Generator/ │ │ │ │ │ │ ├── LikertGeneratorChildren.tsx │ │ │ │ │ │ └── makeLikertChildId.ts │ │ │ │ │ ├── LikertComponent.module.css │ │ │ │ │ ├── LikertComponent.test.tsx │ │ │ │ │ ├── LikertComponent.tsx │ │ │ │ │ ├── LikertTestUtils.tsx │ │ │ │ │ ├── Summary/ │ │ │ │ │ │ ├── LargeLikertSummaryContainer.tsx │ │ │ │ │ │ ├── LikertSummaryComponent.module.css │ │ │ │ │ │ └── LikertSummaryComponent.tsx │ │ │ │ │ ├── Summary2/ │ │ │ │ │ │ ├── LikertSummary.module.css │ │ │ │ │ │ └── LikertSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── rowUtils.ts │ │ │ │ ├── LikertItem/ │ │ │ │ │ ├── LikertItemComponent.module.css │ │ │ │ │ ├── LikertItemComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Link/ │ │ │ │ │ ├── LinkComponent.test.tsx │ │ │ │ │ ├── LinkComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── List/ │ │ │ │ │ ├── ListComponent.module.css │ │ │ │ │ ├── ListComponent.test.tsx │ │ │ │ │ ├── ListComponent.tsx │ │ │ │ │ ├── ListSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Map/ │ │ │ │ │ ├── Map.tsx │ │ │ │ │ ├── MapComponent.module.css │ │ │ │ │ ├── MapComponent.test.tsx │ │ │ │ │ ├── MapComponent.tsx │ │ │ │ │ ├── MapComponentSummary.tsx │ │ │ │ │ ├── Summary2/ │ │ │ │ │ │ ├── MapSummary.module.css │ │ │ │ │ │ └── MapSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── features/ │ │ │ │ │ │ ├── geometries/ │ │ │ │ │ │ │ ├── editable/ │ │ │ │ │ │ │ │ ├── MapEditGeometries.tsx │ │ │ │ │ │ │ │ └── useLeafletDrawSpritesheetFix.ts │ │ │ │ │ │ │ ├── fixed/ │ │ │ │ │ │ │ │ ├── MapGeometries.tsx │ │ │ │ │ │ │ │ └── hooks.ts │ │ │ │ │ │ │ └── useValidateGeometriesBindings.ts │ │ │ │ │ │ ├── layers/ │ │ │ │ │ │ │ └── MapLayers.tsx │ │ │ │ │ │ └── singleMarker/ │ │ │ │ │ │ ├── MapSingleMarker.tsx │ │ │ │ │ │ ├── MarkerLocationText.tsx │ │ │ │ │ │ └── hooks.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── MultipleSelect/ │ │ │ │ │ ├── MultipleSelectComponent.module.css │ │ │ │ │ ├── MultipleSelectComponent.test.tsx │ │ │ │ │ ├── MultipleSelectComponent.tsx │ │ │ │ │ ├── MultipleSelectSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── NavigationBar/ │ │ │ │ │ ├── NavigationBarComponent.module.css │ │ │ │ │ ├── NavigationBarComponent.test.tsx │ │ │ │ │ ├── NavigationBarComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── NavigationButtons/ │ │ │ │ │ ├── NavigationButtonsComponent.module.css │ │ │ │ │ ├── NavigationButtonsComponent.test.tsx │ │ │ │ │ ├── NavigationButtonsComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Number/ │ │ │ │ │ ├── NumberComponent.tsx │ │ │ │ │ ├── NumberSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Option/ │ │ │ │ │ ├── Option.module.css │ │ │ │ │ ├── OptionComponent.tsx │ │ │ │ │ ├── OptionSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── OrganisationLookup/ │ │ │ │ │ ├── OrganisationLookupComponent.module.css │ │ │ │ │ ├── OrganisationLookupComponent.tsx │ │ │ │ │ ├── OrganisationLookupSummary.module.css │ │ │ │ │ ├── OrganisationLookupSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── validation.test.ts │ │ │ │ │ └── validation.ts │ │ │ │ ├── PDFPreviewButton/ │ │ │ │ │ ├── PDFPreviewButtonComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Panel/ │ │ │ │ │ ├── PanelComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Paragraph/ │ │ │ │ │ ├── ParagraphComponent.module.css │ │ │ │ │ ├── ParagraphComponent.test.tsx │ │ │ │ │ ├── ParagraphComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Payment/ │ │ │ │ │ ├── PaymentComponent.module.css │ │ │ │ │ ├── PaymentComponent.tsx │ │ │ │ │ ├── PaymentReceiptDetails/ │ │ │ │ │ │ ├── PaymentReceiptDetails.module.css │ │ │ │ │ │ └── PaymentReceiptDetails.tsx │ │ │ │ │ ├── PaymentSummary.tsx │ │ │ │ │ ├── SummaryPaymentComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── PaymentDetails/ │ │ │ │ │ ├── PaymentDetailsComponent.tsx │ │ │ │ │ ├── PaymentDetailsTable.module.css │ │ │ │ │ ├── PaymentDetailsTable.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── PersonLookup/ │ │ │ │ │ ├── PersonLookupComponent.module.css │ │ │ │ │ ├── PersonLookupComponent.tsx │ │ │ │ │ ├── PersonLookupSummary.module.css │ │ │ │ │ ├── PersonLookupSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── validation.test.ts │ │ │ │ │ └── validation.ts │ │ │ │ ├── PrintButton/ │ │ │ │ │ ├── PrintButtonComponent.test.tsx │ │ │ │ │ ├── PrintButtonComponent.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── RadioButtons/ │ │ │ │ │ ├── ControlledRadioGroup.module.css │ │ │ │ │ ├── ControlledRadioGroup.test.tsx │ │ │ │ │ ├── ControlledRadioGroup.tsx │ │ │ │ │ ├── RadioButtonsSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── radioButtonsUtils.ts │ │ │ │ ├── RepeatingGroup/ │ │ │ │ │ ├── Container/ │ │ │ │ │ │ ├── RepeatingGroupContainer.module.css │ │ │ │ │ │ ├── RepeatingGroupContainer.test.tsx │ │ │ │ │ │ └── RepeatingGroupContainer.tsx │ │ │ │ │ ├── EditContainer/ │ │ │ │ │ │ ├── RepeatingGroupEditContainer.test.tsx │ │ │ │ │ │ ├── RepeatingGroupEditContext.tsx │ │ │ │ │ │ └── RepeatingGroupsEditContainer.tsx │ │ │ │ │ ├── Pagination/ │ │ │ │ │ │ ├── RepeatingGroupPagination.module.css │ │ │ │ │ │ └── RepeatingGroupPagination.tsx │ │ │ │ │ ├── Providers/ │ │ │ │ │ │ ├── OpenByDefaultProvider.test.tsx │ │ │ │ │ │ ├── OpenByDefaultProvider.tsx │ │ │ │ │ │ ├── RepeatingGroupContext.tsx │ │ │ │ │ │ └── RepeatingGroupFocusContext.tsx │ │ │ │ │ ├── RepeatingGroup.module.css │ │ │ │ │ ├── Summary/ │ │ │ │ │ │ ├── LargeGroupSummaryContainer.module.css │ │ │ │ │ │ ├── LargeRowSummaryContainer.tsx │ │ │ │ │ │ ├── SummaryRepeatingGroup.module.css │ │ │ │ │ │ ├── SummaryRepeatingGroup.test.tsx │ │ │ │ │ │ ├── SummaryRepeatingGroup.tsx │ │ │ │ │ │ └── __snapshots__/ │ │ │ │ │ │ └── SummaryRepeatingGroup.test.tsx.snap │ │ │ │ │ ├── Summary2/ │ │ │ │ │ │ ├── RepGroupSummaryEditableContext.tsx │ │ │ │ │ │ ├── RepeatingGroupSummary.module.css │ │ │ │ │ │ ├── RepeatingGroupSummary.tsx │ │ │ │ │ │ └── RepeatingGroupTableSummary/ │ │ │ │ │ │ ├── RepeatingGroupTableSummary.module.css │ │ │ │ │ │ ├── RepeatingGroupTableSummary.test.tsx │ │ │ │ │ │ └── RepeatingGroupTableSummary.tsx │ │ │ │ │ ├── Table/ │ │ │ │ │ │ ├── RepeatingGroupTable.test.tsx │ │ │ │ │ │ ├── RepeatingGroupTable.tsx │ │ │ │ │ │ ├── RepeatingGroupTableRow.tsx │ │ │ │ │ │ └── RepeatingGroupTableTitle.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── types.ts │ │ │ │ │ ├── useTableComponentIds.ts │ │ │ │ │ ├── useValidateRepGroupMinCount.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── SigneeList/ │ │ │ │ │ ├── SigneeListComponent.module.css │ │ │ │ │ ├── SigneeListComponent.test.tsx │ │ │ │ │ ├── SigneeListComponent.tsx │ │ │ │ │ ├── SigneeListError.tsx │ │ │ │ │ ├── SigneeListSummary.module.css │ │ │ │ │ ├── SigneeListSummary.test.tsx │ │ │ │ │ ├── SigneeListSummary.tsx │ │ │ │ │ ├── SigneeStateTag.test.tsx │ │ │ │ │ ├── SigneeStateTag.tsx │ │ │ │ │ ├── api.test.ts │ │ │ │ │ ├── api.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── SigningActions/ │ │ │ │ │ ├── OnBehalfOfChooser.tsx │ │ │ │ │ ├── PanelAwaitingCurrentUserSignature.tsx │ │ │ │ │ ├── PanelAwaitingOtherSignatures.tsx │ │ │ │ │ ├── PanelNoActionRequired.tsx │ │ │ │ │ ├── PanelSigning.tsx │ │ │ │ │ ├── PanelSubmit.tsx │ │ │ │ │ ├── SigningActions.module.css │ │ │ │ │ ├── SigningActionsComponent.test.tsx │ │ │ │ │ ├── SigningActionsComponent.tsx │ │ │ │ │ ├── SubmitSigningButton.tsx │ │ │ │ │ ├── ValidateSigningTaskType.tsx │ │ │ │ │ ├── api.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── SigningDocumentList/ │ │ │ │ │ ├── SigningDocumentListComponent.test.tsx │ │ │ │ │ ├── SigningDocumentListComponent.tsx │ │ │ │ │ ├── SigningDocumentListError.tsx │ │ │ │ │ ├── api.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── SimpleTable/ │ │ │ │ │ ├── ApiTable.tsx │ │ │ │ │ ├── ApiTableSummary.tsx │ │ │ │ │ ├── SimpleTableComponent.tsx │ │ │ │ │ ├── SimpleTableFeatureFlagLayoutValidator.tsx │ │ │ │ │ ├── SimpleTableSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── typeguards.ts │ │ │ │ ├── Subform/ │ │ │ │ │ ├── SubformCellContent.tsx │ │ │ │ │ ├── SubformComponent.module.css │ │ │ │ │ ├── SubformComponent.tsx │ │ │ │ │ ├── SubformValidator.tsx │ │ │ │ │ ├── SubformWrapper.tsx │ │ │ │ │ ├── Summary/ │ │ │ │ │ │ ├── SubformSummaryComponent.module.css │ │ │ │ │ │ ├── SubformSummaryComponent.tsx │ │ │ │ │ │ ├── SubformSummaryComponent2.module.css │ │ │ │ │ │ ├── SubformSummaryComponent2.tsx │ │ │ │ │ │ └── SubformSummaryTable.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── useValidateSubform.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── Summary/ │ │ │ │ │ ├── EditButton.module.css │ │ │ │ │ ├── EditButton.tsx │ │ │ │ │ ├── SummaryComponent.module.css │ │ │ │ │ ├── SummaryComponent.test.tsx │ │ │ │ │ ├── SummaryComponent.tsx │ │ │ │ │ ├── SummaryContent.module.css │ │ │ │ │ ├── SummaryContent.tsx │ │ │ │ │ ├── SummaryItemCompact.module.css │ │ │ │ │ ├── SummaryItemCompact.tsx │ │ │ │ │ ├── SummaryItemSimple.module.css │ │ │ │ │ ├── SummaryItemSimple.tsx │ │ │ │ │ ├── ValidateSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Summary2/ │ │ │ │ │ ├── CommonSummaryComponents/ │ │ │ │ │ │ ├── EditButton.test.tsx │ │ │ │ │ │ ├── EditButton.tsx │ │ │ │ │ │ ├── LayoutSetSummaryAccordion.module.css │ │ │ │ │ │ ├── LayoutSetSummaryAccordion.tsx │ │ │ │ │ │ ├── MultipleValueSummary.module.css │ │ │ │ │ │ ├── MultipleValueSummary.tsx │ │ │ │ │ │ ├── SingleValueSummary.module.css │ │ │ │ │ │ └── SingleValueSummary.tsx │ │ │ │ │ ├── Summary2.module.css │ │ │ │ │ ├── SummaryComponent2/ │ │ │ │ │ │ ├── ComponentSummary.tsx │ │ │ │ │ │ ├── LayoutSetSummary.tsx │ │ │ │ │ │ ├── LayoutValidator.tsx │ │ │ │ │ │ ├── PageSummary.tsx │ │ │ │ │ │ ├── SummaryComponent2.test.tsx │ │ │ │ │ │ ├── SummaryComponent2.tsx │ │ │ │ │ │ ├── TaskSummaryWrapper.tsx │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── isEmpty/ │ │ │ │ │ │ ├── EmptyChildrenContext.tsx │ │ │ │ │ │ └── isEmptyComponent.ts │ │ │ │ │ └── summaryStoreContext.tsx │ │ │ │ ├── Tabs/ │ │ │ │ │ ├── Tabs.module.css │ │ │ │ │ ├── Tabs.tsx │ │ │ │ │ ├── TabsSummary.module.css │ │ │ │ │ ├── TabsSummary.tsx │ │ │ │ │ ├── TabsSummaryComponent.tsx │ │ │ │ │ ├── claimTabsChildren.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Text/ │ │ │ │ │ ├── TextComponent.tsx │ │ │ │ │ ├── TextSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── TextArea/ │ │ │ │ │ ├── TextAreaComponent.test.tsx │ │ │ │ │ ├── TextAreaComponent.tsx │ │ │ │ │ ├── TextAreaSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── TimePicker/ │ │ │ │ │ ├── TimePickerComponent.test.tsx │ │ │ │ │ ├── TimePickerComponent.tsx │ │ │ │ │ ├── TimePickerSummary.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── useTimePickerValidation.ts │ │ │ │ ├── Video/ │ │ │ │ │ ├── Video.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── common.ts │ │ │ │ ├── index.ts │ │ │ │ └── layout.ts │ │ │ ├── modules.ts │ │ │ ├── queries/ │ │ │ │ ├── partyPrefetcher.ts │ │ │ │ ├── queries.ts │ │ │ │ └── types.ts │ │ │ ├── react-router.d.ts │ │ │ ├── router.tsx │ │ │ ├── routerContexts/ │ │ │ │ └── reactQueryRouterContext.ts │ │ │ ├── routes/ │ │ │ │ ├── index/ │ │ │ │ │ ├── index.loader.ts │ │ │ │ │ ├── index.route.tsx │ │ │ │ │ ├── isStateless.ts │ │ │ │ │ └── stateless-index.loader.ts │ │ │ │ ├── instance/ │ │ │ │ │ ├── instance-index.loader.ts │ │ │ │ │ ├── instance.loader.ts │ │ │ │ │ └── instance.route.tsx │ │ │ │ ├── instance-selection/ │ │ │ │ │ ├── instance-selection.loader.test.ts │ │ │ │ │ ├── instance-selection.loader.ts │ │ │ │ │ └── instance-selection.route.tsx │ │ │ │ ├── page/ │ │ │ │ │ └── page.route.tsx │ │ │ │ ├── party-selection/ │ │ │ │ │ ├── party-selection.loader.ts │ │ │ │ │ └── party-selection.route.tsx │ │ │ │ ├── process-end/ │ │ │ │ │ └── process-end.route.tsx │ │ │ │ └── task/ │ │ │ │ ├── task-index.loader.ts │ │ │ │ ├── task.loader.ts │ │ │ │ └── task.route.tsx │ │ │ ├── routesBuilder.ts │ │ │ ├── setupTests.ts │ │ │ ├── styles/ │ │ │ │ ├── combobox.module.css │ │ │ │ ├── print.module.css │ │ │ │ ├── shared.css │ │ │ │ └── utils.module.css │ │ │ ├── test/ │ │ │ │ ├── allApps.ts │ │ │ │ ├── form-engine-smoke.test.ts │ │ │ │ ├── jestTools/ │ │ │ │ │ ├── transformCss.js │ │ │ │ │ └── transformFile.js │ │ │ │ ├── mockMediaQuery.tsx │ │ │ │ ├── renderWithProviders.tsx │ │ │ │ └── routerUtils.tsx │ │ │ ├── theme/ │ │ │ │ └── altinnAppTheme.tsx │ │ │ ├── types/ │ │ │ │ ├── index.ts │ │ │ │ └── shared.ts │ │ │ └── utils/ │ │ │ ├── attachmentsUtils.test.ts │ │ │ ├── attachmentsUtils.ts │ │ │ ├── authContext.ts │ │ │ ├── bodyStyling.ts │ │ │ ├── cachedFunction.ts │ │ │ ├── computeStartUrl.ts │ │ │ ├── cookieStorage/ │ │ │ │ ├── CookieStorage.test.ts │ │ │ │ └── CookieStorage.ts │ │ │ ├── databindings/ │ │ │ │ └── DataBinding.ts │ │ │ ├── databindings.test.ts │ │ │ ├── databindings.ts │ │ │ ├── dateUtils.test.ts │ │ │ ├── dateUtils.ts │ │ │ ├── formComponentUtils.test.ts │ │ │ ├── formComponentUtils.ts │ │ │ ├── formattingUtils.test.tsx │ │ │ ├── formattingUtils.ts │ │ │ ├── getPageTitle.ts │ │ │ ├── inputUtils.tsx │ │ │ ├── instanceDataSources.test.ts │ │ │ ├── instanceDataSources.ts │ │ │ ├── instanceIdRegExp.test.ts │ │ │ ├── instanceIdRegExp.ts │ │ │ ├── isAxiosError.ts │ │ │ ├── isDev.test.ts │ │ │ ├── isDev.ts │ │ │ ├── layout/ │ │ │ │ ├── ComponentErrorBoundary.tsx │ │ │ │ ├── DataModelLocation.tsx │ │ │ │ ├── NodesContext.tsx │ │ │ │ ├── all.test.tsx │ │ │ │ ├── canRenderIn.ts │ │ │ │ ├── generator/ │ │ │ │ │ ├── GeneratorContext.tsx │ │ │ │ │ ├── GeneratorErrorBoundary.tsx │ │ │ │ │ ├── GeneratorStages.tsx │ │ │ │ │ ├── LayoutSetGenerator.tsx │ │ │ │ │ ├── NodeGenerator.tsx │ │ │ │ │ ├── NodeRepeatingChildren.tsx │ │ │ │ │ ├── useEvalExpression.ts │ │ │ │ │ └── validation/ │ │ │ │ │ ├── GenerationValidationContext.tsx │ │ │ │ │ ├── NodePropertiesValidation.tsx │ │ │ │ │ └── hooks.ts │ │ │ │ ├── hidden.ts │ │ │ │ ├── hooks.ts │ │ │ │ ├── index.test.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── nodesProduce.ts │ │ │ │ ├── plugins/ │ │ │ │ │ ├── NodeDataPlugin.tsx │ │ │ │ │ ├── NodeDefPlugin.tsx │ │ │ │ │ ├── claimNonRepeatingChildren.ts │ │ │ │ │ └── claimRepeatingChildren.ts │ │ │ │ ├── schema.test.ts │ │ │ │ ├── types.ts │ │ │ │ ├── useExpressionDataSources.ts │ │ │ │ ├── useLabel.tsx │ │ │ │ └── useNodeItem.ts │ │ │ ├── listUtils.ts │ │ │ ├── maybeAuthenticationRedirect.ts │ │ │ ├── network/ │ │ │ │ ├── networking.ts │ │ │ │ └── sharedNetworking.ts │ │ │ ├── options.ts │ │ │ ├── schemaUtils.test.ts │ │ │ ├── schemaUtils.ts │ │ │ ├── splitDashedKey.ts │ │ │ ├── stringHelper.test.ts │ │ │ ├── stringHelper.ts │ │ │ ├── typing.ts │ │ │ ├── urls/ │ │ │ │ ├── appUrlHelper.test.ts │ │ │ │ ├── appUrlHelper.ts │ │ │ │ ├── hashRouterRedirect.test.ts │ │ │ │ ├── hashRouterRedirect.ts │ │ │ │ ├── urlHelper.test.ts │ │ │ │ └── urlHelper.ts │ │ │ ├── useGetKeyFromObject.ts │ │ │ ├── versioning/ │ │ │ │ ├── versionCompare.test.ts │ │ │ │ ├── versionCompare.ts │ │ │ │ └── versions.ts │ │ │ └── waitForAnimationFrames.ts │ │ ├── template.env │ │ ├── test/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── e2e/ │ │ │ │ ├── config/ │ │ │ │ │ ├── localtest.json │ │ │ │ │ └── tt02.json │ │ │ │ ├── fixtures/ │ │ │ │ │ ├── attachment.json │ │ │ │ │ └── texts.json │ │ │ │ ├── integration/ │ │ │ │ │ ├── anonymous-stateless-app/ │ │ │ │ │ │ ├── anonymous.ts │ │ │ │ │ │ ├── auto-save-behavior.ts │ │ │ │ │ │ ├── options.ts │ │ │ │ │ │ └── validation.ts │ │ │ │ │ ├── component-library/ │ │ │ │ │ │ ├── accordion-group.ts │ │ │ │ │ │ ├── accordion.ts │ │ │ │ │ │ ├── address.ts │ │ │ │ │ │ ├── button.ts │ │ │ │ │ │ ├── checkboxes.ts │ │ │ │ │ │ ├── date-formatDate.ts │ │ │ │ │ │ ├── date-picker.ts │ │ │ │ │ │ ├── divider.ts │ │ │ │ │ │ ├── dropdown.ts │ │ │ │ │ │ ├── fileupload-attachmentlist.ts │ │ │ │ │ │ ├── grid.ts │ │ │ │ │ │ ├── group.ts │ │ │ │ │ │ ├── image-upload.ts │ │ │ │ │ │ ├── input.ts │ │ │ │ │ │ ├── link.ts │ │ │ │ │ │ ├── list.ts │ │ │ │ │ │ ├── map.ts │ │ │ │ │ │ ├── multiple-select.ts │ │ │ │ │ │ ├── organisationlookup.ts │ │ │ │ │ │ ├── pdf.ts │ │ │ │ │ │ ├── personlookup.ts │ │ │ │ │ │ ├── radio-buttons.ts │ │ │ │ │ │ ├── repeating-group.ts │ │ │ │ │ │ ├── summary-of-previous-task.ts │ │ │ │ │ │ ├── text-area.ts │ │ │ │ │ │ └── title-tag-updates.ts │ │ │ │ │ ├── expression-validation-test/ │ │ │ │ │ │ ├── expression-validation.ts │ │ │ │ │ │ └── tags-validation.ts │ │ │ │ │ ├── frontend-test/ │ │ │ │ │ │ ├── accordion.ts │ │ │ │ │ │ ├── all-process-steps.ts │ │ │ │ │ │ ├── attachments-in-group.ts │ │ │ │ │ │ ├── auto-save-behavior.ts │ │ │ │ │ │ ├── cards.ts │ │ │ │ │ │ ├── components.ts │ │ │ │ │ │ ├── custom-button.ts │ │ │ │ │ │ ├── custom-confirm.ts │ │ │ │ │ │ ├── dynamics.ts │ │ │ │ │ │ ├── footer.ts │ │ │ │ │ │ ├── formatting.ts │ │ │ │ │ │ ├── grid.ts │ │ │ │ │ │ ├── group-pets.ts │ │ │ │ │ │ ├── group.ts │ │ │ │ │ │ ├── hash-router-redirect.ts │ │ │ │ │ │ ├── hide-row-in-group.ts │ │ │ │ │ │ ├── instantiation.ts │ │ │ │ │ │ ├── language.ts │ │ │ │ │ │ ├── likert.ts │ │ │ │ │ │ ├── list-component.ts │ │ │ │ │ │ ├── message.ts │ │ │ │ │ │ ├── mobile.ts │ │ │ │ │ │ ├── navigation.ts │ │ │ │ │ │ ├── number-text-date.ts │ │ │ │ │ │ ├── on-entry.ts │ │ │ │ │ │ ├── options.ts │ │ │ │ │ │ ├── page-order-with-dynamics.ts │ │ │ │ │ │ ├── party-selection.ts │ │ │ │ │ │ ├── pdf.ts │ │ │ │ │ │ ├── prefill.ts │ │ │ │ │ │ ├── print-button.ts │ │ │ │ │ │ ├── process-next.ts │ │ │ │ │ │ ├── redirect.ts │ │ │ │ │ │ ├── return-url.ts │ │ │ │ │ │ ├── rules.ts │ │ │ │ │ │ ├── self-identified-user.ts │ │ │ │ │ │ ├── sort-order.ts │ │ │ │ │ │ ├── summary.ts │ │ │ │ │ │ ├── tabbing.ts │ │ │ │ │ │ ├── tabs.ts │ │ │ │ │ │ ├── texts.ts │ │ │ │ │ │ ├── ui-settings.ts │ │ │ │ │ │ └── validation.ts │ │ │ │ │ ├── multiple-datamodels-test/ │ │ │ │ │ │ ├── fetching.ts │ │ │ │ │ │ ├── readonly.ts │ │ │ │ │ │ ├── saving.ts │ │ │ │ │ │ └── validation.ts │ │ │ │ │ ├── navigation-test-subform/ │ │ │ │ │ │ └── navigation.ts │ │ │ │ │ ├── payment-test/ │ │ │ │ │ │ └── payment.ts │ │ │ │ │ ├── service-task/ │ │ │ │ │ │ └── service-task.ts │ │ │ │ │ ├── signering-brukerstyrt/ │ │ │ │ │ │ └── signing.ts │ │ │ │ │ ├── signing-test/ │ │ │ │ │ │ ├── double-signing.ts │ │ │ │ │ │ ├── reject.ts │ │ │ │ │ │ └── validation.ts │ │ │ │ │ ├── stateless-app/ │ │ │ │ │ │ ├── feedback.ts │ │ │ │ │ │ ├── instantiate-from-query-params.ts │ │ │ │ │ │ ├── party-selection.ts │ │ │ │ │ │ ├── receipt.ts │ │ │ │ │ │ └── stateless.ts │ │ │ │ │ └── subform-test/ │ │ │ │ │ ├── attachments.ts │ │ │ │ │ ├── pdf.ts │ │ │ │ │ ├── subform.ts │ │ │ │ │ └── tableEditButton.ts │ │ │ │ ├── k6-browser/ │ │ │ │ │ ├── browser-script.ts │ │ │ │ │ ├── check-k6-setup.ts │ │ │ │ │ ├── chrome.json │ │ │ │ │ └── k6-utils.d.ts │ │ │ │ ├── manual/ │ │ │ │ │ └── page-load.ts │ │ │ │ ├── pageobjects/ │ │ │ │ │ ├── app-frontend.ts │ │ │ │ │ ├── common.ts │ │ │ │ │ ├── datalist.ts │ │ │ │ │ ├── likert.ts │ │ │ │ │ └── party-mocks.ts │ │ │ │ └── support/ │ │ │ │ ├── apps/ │ │ │ │ │ ├── component-library/ │ │ │ │ │ │ ├── fillAddressAndVerify.ts │ │ │ │ │ │ ├── groupCheckboxMultiSelectListAndVerify.ts │ │ │ │ │ │ ├── inputAndVerify.ts │ │ │ │ │ │ ├── uploadFileAndVerify.ts │ │ │ │ │ │ └── uploadImageAndVerify.ts │ │ │ │ │ └── signing-test/ │ │ │ │ │ └── signing-login.ts │ │ │ │ ├── auth.ts │ │ │ │ ├── chai-extensions.ts │ │ │ │ ├── custom.ts │ │ │ │ ├── customReceipt.ts │ │ │ │ ├── fail-on-console-log.ts │ │ │ │ ├── formFiller.ts │ │ │ │ ├── global.ts │ │ │ │ ├── index.ts │ │ │ │ ├── intercept-global-data.ts │ │ │ │ ├── lang.ts │ │ │ │ ├── navigation.ts │ │ │ │ ├── snapshot.ts │ │ │ │ ├── start-app-instance.ts │ │ │ │ └── utils.ts │ │ │ ├── global.ts │ │ │ ├── percy.css │ │ │ └── tsconfig.json │ │ ├── tsconfig-strict.json │ │ ├── tsconfig.json │ │ ├── webpack.common.js │ │ ├── webpack.config.development.js │ │ └── webpack.config.production.js │ └── template/ │ ├── .config/ │ │ └── dotnet-tools.json │ ├── .csharpierignore │ ├── .csharpierrc.yaml │ ├── .vscode/ │ │ ├── extensions.json │ │ └── settings.json │ ├── Directory.Build.props │ ├── README.md │ └── src/ │ ├── .dockerignore │ ├── .editorconfig │ ├── .gitignore │ ├── .releaseignore │ ├── App/ │ │ ├── App.csproj │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ └── launchSettings.json │ │ ├── TestDummy.cs │ │ ├── appsettings.Development.json │ │ ├── appsettings.Production.json │ │ ├── appsettings.Staging.json │ │ ├── appsettings.json │ │ ├── config/ │ │ │ ├── applicationmetadata.json │ │ │ ├── authorization/ │ │ │ │ └── policy.xml │ │ │ ├── process/ │ │ │ │ └── process.bpmn │ │ │ └── texts/ │ │ │ └── resource.nb.json │ │ ├── models/ │ │ │ ├── model.cs │ │ │ ├── model.schema.json │ │ │ └── model.xsd │ │ ├── ui/ │ │ │ ├── footer.json │ │ │ ├── form/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ └── Side1.json │ │ │ └── layout-sets.json │ │ └── views/ │ │ └── Home/ │ │ └── Index.cshtml │ ├── App.sln │ ├── Dockerfile │ └── deployment/ │ └── values.yaml ├── Designer/ │ ├── AGENTS.md │ ├── CLAUDE.md │ ├── Dockerfile │ ├── backend/ │ │ ├── .config/ │ │ │ └── dotnet-tools.json │ │ ├── .csharpierignore │ │ ├── .csharpierrc.yaml │ │ ├── .editorconfig │ │ ├── AGENTS.md │ │ ├── CLAUDE.md │ │ ├── Designer.sln │ │ ├── Directory.Build.props │ │ ├── Directory.Packages.props │ │ ├── Migrations.Dockerfile │ │ ├── PolicyAdmin/ │ │ │ ├── Constants/ │ │ │ │ └── AltinnXacmlConstants.cs │ │ │ ├── Models/ │ │ │ │ ├── AccessPackageArea.cs │ │ │ │ ├── AccessPackageAreaGroup.cs │ │ │ │ ├── AccessPackageOption.cs │ │ │ │ ├── ActionOption.cs │ │ │ │ ├── AttributeMatch.cs │ │ │ │ ├── PolicyRule.cs │ │ │ │ ├── ResourcePolicy.cs │ │ │ │ ├── RuleAction.cs │ │ │ │ ├── RuleResource.cs │ │ │ │ ├── RuleSubject.cs │ │ │ │ └── SubjectOption.cs │ │ │ ├── PolicyAdmin.csproj │ │ │ └── PolicyConverter.cs │ │ ├── Src.sln │ │ ├── runTests.sh │ │ ├── src/ │ │ │ ├── DataModeling/ │ │ │ │ ├── Converter/ │ │ │ │ │ ├── Csharp/ │ │ │ │ │ │ ├── CSharpGenerationSettings.cs │ │ │ │ │ │ ├── Compiler.cs │ │ │ │ │ │ ├── CsharpCompilationException.cs │ │ │ │ │ │ ├── CsharpGenerationException.cs │ │ │ │ │ │ └── JsonMetadataToCsharpConverter.cs │ │ │ │ │ ├── Interfaces/ │ │ │ │ │ │ ├── IJsonSchemaToXmlSchemaConverter.cs │ │ │ │ │ │ ├── IModelMetadataToCsharpConverter.cs │ │ │ │ │ │ └── IXmlSchemaToJsonSchemaConverter.cs │ │ │ │ │ ├── Json/ │ │ │ │ │ │ ├── CompatibleXsdType.cs │ │ │ │ │ │ ├── ComplexTypeContentType.cs │ │ │ │ │ │ ├── JsonSchemaConvertException.cs │ │ │ │ │ │ ├── JsonSchemaToXmlSchemaConverter.cs │ │ │ │ │ │ ├── JsonSchemaXsdMetadata.cs │ │ │ │ │ │ └── Strategy/ │ │ │ │ │ │ ├── GeneralJsonSchemaAnalyzer.cs │ │ │ │ │ │ ├── GeneralJsonSchemaConverter.cs │ │ │ │ │ │ ├── GeneralJsonSchemaConverterStrategy.cs │ │ │ │ │ │ ├── IJsonSchemaAnalyzer.cs │ │ │ │ │ │ ├── IJsonSchemaConverter.cs │ │ │ │ │ │ ├── IJsonSchemaConverterStrategy.cs │ │ │ │ │ │ ├── JsonSchemaAnalyzer.cs │ │ │ │ │ │ ├── JsonSchemaConverterStrategyFactory.cs │ │ │ │ │ │ ├── OrJsonSchemaConverterStrategy.cs │ │ │ │ │ │ ├── SeresJsonSchemaAnalyzer.cs │ │ │ │ │ │ └── SeresJsonSchemaConverterStrategy.cs │ │ │ │ │ ├── Metadata/ │ │ │ │ │ │ ├── JsonSchemaToMetamodelConverter.cs │ │ │ │ │ │ ├── KeywordProcessedEventArgs.cs │ │ │ │ │ │ ├── MetamodelRestrictionUtils.cs │ │ │ │ │ │ ├── ModelMetadataConvertException.cs │ │ │ │ │ │ └── SubSchemaProcessedEventArgs.cs │ │ │ │ │ └── Xml/ │ │ │ │ │ ├── InvalidXmlException.cs │ │ │ │ │ ├── PropertiesBuilder.cs │ │ │ │ │ ├── StepsBuilder.cs │ │ │ │ │ ├── XmlSchemaConvertException.cs │ │ │ │ │ └── XmlSchemaToJsonSchemaConverter.cs │ │ │ │ ├── DataModeling.csproj │ │ │ │ ├── Json/ │ │ │ │ │ ├── Formats/ │ │ │ │ │ │ ├── CustomFormats.cs │ │ │ │ │ │ └── JsonSchemaFormats.cs │ │ │ │ │ ├── IJsonSchemaNormalizer.cs │ │ │ │ │ ├── JsonSchemaNormalizer.cs │ │ │ │ │ └── Keywords/ │ │ │ │ │ ├── FormatExclusiveMaximumKeyword.cs │ │ │ │ │ ├── FormatExclusiveMinimumKeyword.cs │ │ │ │ │ ├── FormatMaximumKeyword.cs │ │ │ │ │ ├── FormatMinimumKeyword.cs │ │ │ │ │ ├── InfoKeyword.cs │ │ │ │ │ ├── JsonSchemaKeywords.cs │ │ │ │ │ ├── NamedKeyValuePairs.cs │ │ │ │ │ ├── XsdAnyAttributeKeyword.cs │ │ │ │ │ ├── XsdAnyKeyword.cs │ │ │ │ │ ├── XsdAttributeKeyword.cs │ │ │ │ │ ├── XsdMaxOccursKeyword.cs │ │ │ │ │ ├── XsdMinOccursKeyword.cs │ │ │ │ │ ├── XsdNamespacesKeyword.cs │ │ │ │ │ ├── XsdNillableKeyword.cs │ │ │ │ │ ├── XsdRestrictionsKeyword.cs │ │ │ │ │ ├── XsdRootElementKeyword.cs │ │ │ │ │ ├── XsdSchemaAttributesKeyword.cs │ │ │ │ │ ├── XsdStructureKeyword.cs │ │ │ │ │ ├── XsdTextKeyword.cs │ │ │ │ │ ├── XsdTotalDigitsKeyword.cs │ │ │ │ │ ├── XsdTypeKeyword.cs │ │ │ │ │ ├── XsdUnhandledAttributesKeyword.cs │ │ │ │ │ └── XsdUnhandledEnumAttributesKeyword.cs │ │ │ │ ├── Metamodel/ │ │ │ │ │ ├── BaseValueType.cs │ │ │ │ │ ├── ElementMetadata.cs │ │ │ │ │ ├── ElementType.cs │ │ │ │ │ ├── ModelMetadata.cs │ │ │ │ │ ├── ModelMetadataExtensions.cs │ │ │ │ │ ├── Restriction.cs │ │ │ │ │ └── TextCategoryType.cs │ │ │ │ ├── Templates/ │ │ │ │ │ ├── GeneralJsonTemplate.cs │ │ │ │ │ ├── JsonTemplate.cs │ │ │ │ │ ├── SeresJsonTemplate.cs │ │ │ │ │ ├── general.template.json │ │ │ │ │ └── seres.template.json │ │ │ │ ├── Utils/ │ │ │ │ │ ├── JsonSchemaExtensions.cs │ │ │ │ │ ├── JsonSchemaNavigationExtensions.cs │ │ │ │ │ ├── JsonSchemaXsdExtensions.cs │ │ │ │ │ ├── KnownXmlNamespaces.cs │ │ │ │ │ ├── RestrictionsHelper.cs │ │ │ │ │ ├── UrlHelper.cs │ │ │ │ │ ├── WorkList.cs │ │ │ │ │ ├── XmlSchemaExtensions.cs │ │ │ │ │ ├── XmlSchemaObjectExtensions.cs │ │ │ │ │ └── XmlSchemaTypes.cs │ │ │ │ └── Validator/ │ │ │ │ └── Json/ │ │ │ │ ├── AltinnJsonSchemaValidator.cs │ │ │ │ ├── IJsonSchemaValidator.cs │ │ │ │ ├── JsonSchemaValidationErrorCodes.cs │ │ │ │ ├── JsonSchemaValidationIssue.cs │ │ │ │ └── JsonSchemaValidationResult.cs │ │ │ └── Designer/ │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Clients/ │ │ │ │ ├── Implementations/ │ │ │ │ │ ├── AzureSharedContentClient.cs │ │ │ │ │ ├── GiteaClient.cs │ │ │ │ │ └── LocalFileSharedContentClient.cs │ │ │ │ └── Interfaces/ │ │ │ │ ├── IGiteaClient.cs │ │ │ │ └── ISharedContentClient.cs │ │ │ ├── Configuration/ │ │ │ │ ├── AlertsSettings.cs │ │ │ │ ├── AltinitySettings.cs │ │ │ │ ├── ApiKeySettings.cs │ │ │ │ ├── CacheSettings.cs │ │ │ │ ├── CustomTemplateSettings.cs │ │ │ │ ├── DeveloperMappingSettings.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ └── ServiceCollectionExtensions.cs │ │ │ │ ├── FeedbackFormSettings.cs │ │ │ │ ├── GeneralSettings.cs │ │ │ │ ├── GitOpsSettings.cs │ │ │ │ ├── GiteaDbSettings.cs │ │ │ │ ├── KafkaSettings.cs │ │ │ │ ├── Marker/ │ │ │ │ │ └── ISettingsMarker.cs │ │ │ │ ├── MaskinportenClientForRuntime.cs │ │ │ │ ├── MaskinportenClientSettings.cs │ │ │ │ ├── OidcLoginSettings.cs │ │ │ │ ├── PlatformSettings.cs │ │ │ │ ├── RedisCacheSettings.cs │ │ │ │ ├── ResourceRegistryBaseUrlSetting.cs │ │ │ │ ├── ResourceRegistryEnvironmentSettings.cs │ │ │ │ ├── ResourceRegistryIntegrationSettings.cs │ │ │ │ ├── ResourceRegistryMaskinportenIntegrationSettings.cs │ │ │ │ ├── SchedulingSettings.cs │ │ │ │ ├── ServiceConfiguration.cs │ │ │ │ ├── ServiceRepositorySettings.cs │ │ │ │ ├── SharedContentClientSettings.cs │ │ │ │ ├── StudioOidcLoginSettings.cs │ │ │ │ ├── TestdataRepositorySettings.cs │ │ │ │ └── UrlValidationSettings.cs │ │ │ ├── Constants/ │ │ │ │ ├── General.cs │ │ │ │ └── StudioFeatureFlags.cs │ │ │ ├── Controllers/ │ │ │ │ ├── Admin/ │ │ │ │ │ ├── AlertsController.cs │ │ │ │ │ ├── ApplicationsController.cs │ │ │ │ │ ├── InstancesController.cs │ │ │ │ │ └── MetricsController.cs │ │ │ │ ├── AltinityAttachmentController.cs │ │ │ │ ├── ApiKeysController.cs │ │ │ │ ├── AppDevelopmentController.cs │ │ │ │ ├── AppScopesController.cs │ │ │ │ ├── AppSettingsController.cs │ │ │ │ ├── ApplicationMetadataController.cs │ │ │ │ ├── BotAccountsController.cs │ │ │ │ ├── CanUseFeatureController.cs │ │ │ │ ├── ChatController.cs │ │ │ │ ├── ConfigController.cs │ │ │ │ ├── ContactController.cs │ │ │ │ ├── ContactPointsController.cs │ │ │ │ ├── ControlPlane/ │ │ │ │ │ └── ControlPlaneController.cs │ │ │ │ ├── CustomTemplateController.cs │ │ │ │ ├── DatamodelsController.cs │ │ │ │ ├── DeploymentWebhooksController.cs │ │ │ │ ├── DeploymentsController.cs │ │ │ │ ├── EnvironmentsController.cs │ │ │ │ ├── ErrorController.cs │ │ │ │ ├── FeedbackFormController.cs │ │ │ │ ├── HomeController.cs │ │ │ │ ├── ImageController.cs │ │ │ │ ├── InternalsController.cs │ │ │ │ ├── LayoutController.cs │ │ │ │ ├── OptionsController.cs │ │ │ │ ├── Organisation/ │ │ │ │ │ ├── OrgCodeListController.cs │ │ │ │ │ ├── OrgContentController.cs │ │ │ │ │ ├── OrgLibraryController.cs │ │ │ │ │ └── OrgTextController.cs │ │ │ │ ├── OrganizationController.cs │ │ │ │ ├── PipelinesController.cs │ │ │ │ ├── PolicyController.cs │ │ │ │ ├── Preview/ │ │ │ │ │ ├── DataController.cs │ │ │ │ │ ├── InstancesController.cs │ │ │ │ │ └── V3/ │ │ │ │ │ ├── OldDataController.cs │ │ │ │ │ └── OldInstancesController.cs │ │ │ │ ├── PreviewController.cs │ │ │ │ ├── ProcessModelingController.cs │ │ │ │ ├── ReleasesController.cs │ │ │ │ ├── RepositoryController.cs │ │ │ │ ├── ResourceAdmController.cs │ │ │ │ ├── ResourceAdminController.cs │ │ │ │ ├── StudioOidcController.cs │ │ │ │ ├── StudioctlController.cs │ │ │ │ ├── TaskNavigationController.cs │ │ │ │ ├── TextController.cs │ │ │ │ ├── UserController.cs │ │ │ │ └── ValidationController.cs │ │ │ ├── Converters/ │ │ │ │ ├── NextStepTypeJsonConverter.cs │ │ │ │ ├── PagesJsonConverter.cs │ │ │ │ └── TaskNavigationGroupJsonConverter.cs │ │ │ ├── Designer.csproj │ │ │ ├── Enums/ │ │ │ │ ├── AltinnCoreFileStatusType.cs │ │ │ │ ├── AltinnRepositoryType.cs │ │ │ │ ├── CanUseFeatureEnum.cs │ │ │ │ ├── ChatRole.cs │ │ │ │ ├── DeleteBranchResult.cs │ │ │ │ ├── FileEditorMode.cs │ │ │ │ ├── FileStatus.cs │ │ │ │ ├── FileSystemObjectType.cs │ │ │ │ ├── ImageUrlValidationResult.cs │ │ │ │ ├── LibraryContentType.cs │ │ │ │ ├── ReferenceType.cs │ │ │ │ ├── RepositoryStatus.cs │ │ │ │ ├── ResourceAccessListMode.cs │ │ │ │ ├── ResourcePartyType.cs │ │ │ │ ├── ResourceReferenceSource.cs │ │ │ │ ├── ResourceReferenceType.cs │ │ │ │ ├── ResourceType.cs │ │ │ │ ├── ServiceType.cs │ │ │ │ └── TaskType.cs │ │ │ ├── Evaluators/ │ │ │ │ ├── CanUseFeatureEvaluatorRegistry.cs │ │ │ │ ├── CanUseUploadDataModelEvaluator.cs │ │ │ │ ├── ICanUseFeatureEvaluator.cs │ │ │ │ └── ICanUseUploadDataModelEvaluator.cs │ │ │ ├── EventHandlers/ │ │ │ │ ├── ComponentDeleted/ │ │ │ │ │ └── ComponentDeletedLayoutsHandler.cs │ │ │ │ ├── ComponentIdChanged/ │ │ │ │ │ ├── ComponentIdChangedLayoutsHandler.cs │ │ │ │ │ └── ComponentIdChangedSettingsHandler.cs │ │ │ │ ├── DeploymentPipelineCompleted/ │ │ │ │ │ ├── DeploymentPipelineCompletedReconcileHandler.cs │ │ │ │ │ ├── DeploymentPipelineCompletedStatisticsHandler.cs │ │ │ │ │ └── StudioStatisticsEvent.cs │ │ │ │ ├── DeploymentPipelineQueued/ │ │ │ │ │ └── DeploymentPipelineQueuedHandler.cs │ │ │ │ ├── FileSyncHandlerExecutor.cs │ │ │ │ ├── IFileSyncHandlerExecutor.cs │ │ │ │ ├── LanguageTextsKeyChanged/ │ │ │ │ │ └── LanguageTextsIdChanged.cs │ │ │ │ ├── LayoutPageAdded/ │ │ │ │ │ ├── LayoutPageAddedHandler.cs │ │ │ │ │ └── LayoutPageSubformHandler.cs │ │ │ │ ├── LayoutPageDeleted/ │ │ │ │ │ └── LayoutPageDeletedLayoutsHandler.cs │ │ │ │ ├── LayoutPageIdChanged/ │ │ │ │ │ └── LayoutPageIdChangedLayoutsHandler.cs │ │ │ │ ├── LayoutSetCreated/ │ │ │ │ │ └── SubformCreatedHandler.cs │ │ │ │ ├── LayoutSetDeleted/ │ │ │ │ │ └── LayoutSetDeletedLayoutsHandler.cs │ │ │ │ ├── LayoutSetIdChanged/ │ │ │ │ │ └── LayoutSetIdChangedLayoutsHandler.cs │ │ │ │ ├── ProcessDataTypesChanged/ │ │ │ │ │ ├── ProcessDataTypesChangedApplicationMetadataHandler.cs │ │ │ │ │ └── ProcessDataTypesChangedLayoutSetsHandler.cs │ │ │ │ └── ProcessTaskIdChanged/ │ │ │ │ ├── ProcessTaskIdChangedApplicationMetadataHandler.cs │ │ │ │ ├── ProcessTaskIdChangedLayoutSetsHandler.cs │ │ │ │ ├── ProcessTaskIdChangedLayoutsHandler.cs │ │ │ │ └── ProcessTaskIdChangedPolicyFileHandler.cs │ │ │ ├── Events/ │ │ │ │ ├── ComponentDeletedEvent.cs │ │ │ │ ├── ComponentIdChangedEvent.cs │ │ │ │ ├── DeploymentPipelineCompleted.cs │ │ │ │ ├── DeploymentPipelineQueued.cs │ │ │ │ ├── LanguageTextsKeyChangedEvent.cs │ │ │ │ ├── LayoutPageAddedEvent.cs │ │ │ │ ├── LayoutPageDeletedEvent.cs │ │ │ │ ├── LayoutPageIdChangedEvent.cs │ │ │ │ ├── LayoutSetCreatedEvent.cs │ │ │ │ ├── LayoutSetDeletedEvent.cs │ │ │ │ ├── LayoutSetIdChangedEvent.cs │ │ │ │ ├── ProcessDataTypesChangedEvent.cs │ │ │ │ └── ProcessTaskIdChangedEvent.cs │ │ │ ├── Exceptions/ │ │ │ │ ├── ApiKey/ │ │ │ │ │ └── DuplicateTokenNameException.cs │ │ │ │ ├── AppDevelopment/ │ │ │ │ │ ├── ConflictingFileNameException.cs │ │ │ │ │ ├── EmptyLayoutSetIdException.cs │ │ │ │ │ ├── InvalidExtensionImageUploadException.cs │ │ │ │ │ ├── InvalidLayoutSetIdException.cs │ │ │ │ │ ├── NoLayoutSetsFileFoundException.cs │ │ │ │ │ ├── NonUniqueLayoutSetIdException.cs │ │ │ │ │ ├── NonUniqueTaskForLayoutSetException.cs │ │ │ │ │ └── ResourceRegistryPublishingException.cs │ │ │ │ ├── CodeList/ │ │ │ │ │ └── IllegalCodeListTitleException.cs │ │ │ │ ├── CustomTemplate/ │ │ │ │ │ └── CustomTemplateException.cs │ │ │ │ ├── DataModeling/ │ │ │ │ │ └── ModelWithTheSameBaseTypeAlreadyExists.cs │ │ │ │ ├── Gitea/ │ │ │ │ │ └── GiteaClientException.cs │ │ │ │ ├── HttpStatusException.cs │ │ │ │ ├── Options/ │ │ │ │ │ └── InvalidOptionsFormatException.cs │ │ │ │ ├── OrgLibrary/ │ │ │ │ │ ├── IllegalCommitMessageException.cs │ │ │ │ │ └── InvalidModelStateException.cs │ │ │ │ ├── SharedContent/ │ │ │ │ │ └── SharedContentRequestException.cs │ │ │ │ ├── SourceControl/ │ │ │ │ │ └── BranchNotFoundException.cs │ │ │ │ └── UncommittedChangesException.cs │ │ │ ├── Factories/ │ │ │ │ ├── AltinnGitRepositoryFactory.cs │ │ │ │ ├── AzureBlobContainerClientFactory.cs │ │ │ │ └── IBlobContainerClientFactory.cs │ │ │ ├── Filters/ │ │ │ │ ├── ApiKey/ │ │ │ │ │ ├── ApiKeyErrorCodes.cs │ │ │ │ │ └── ApiKeyExceptionFilterAttribute.cs │ │ │ │ ├── AppDevelopment/ │ │ │ │ │ ├── AppDevelopmentErrorCodes.cs │ │ │ │ │ └── AppDevelopmentExceptionFilterAttribute.cs │ │ │ │ ├── DataModeling/ │ │ │ │ │ ├── DataModelingErrorCodes.cs │ │ │ │ │ └── DataModelingExceptionFilterAttribute.cs │ │ │ │ ├── Git/ │ │ │ │ │ ├── GitErrorCodes.cs │ │ │ │ │ └── GitExceptionFilterAttribute.cs │ │ │ │ ├── IO/ │ │ │ │ │ ├── IoErrorCodes.cs │ │ │ │ │ └── IoExceptionFilterAttribute.cs │ │ │ │ ├── Options/ │ │ │ │ │ ├── OptionsErrorCodes.cs │ │ │ │ │ └── OptionsExceptionFilterAttribute.cs │ │ │ │ ├── ProblemDetailsExtensionsCodes.cs │ │ │ │ ├── ProblemDetailsUtils.cs │ │ │ │ └── UseSystemTextJsonAttribute.cs │ │ │ ├── Health/ │ │ │ │ └── HealthCheck.cs │ │ │ ├── Helpers/ │ │ │ │ ├── AltinnAssembliesScanner.cs │ │ │ │ ├── AltinnRegexes.cs │ │ │ │ ├── AltinnStudioRepositoryScanner.cs │ │ │ │ ├── AppFrontendVersionHelper.cs │ │ │ │ ├── ApplicationHelper.cs │ │ │ │ ├── ApplicationMetadataJsonHelper.cs │ │ │ │ ├── AuthenticationHelper.cs │ │ │ │ ├── CodeListUtils.cs │ │ │ │ ├── CsprojPatcher.cs │ │ │ │ ├── DirectoryHelper.cs │ │ │ │ ├── EmbeddedResourceHelper.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ ├── CommandsExtensions.cs │ │ │ │ │ ├── DictionaryExtensions.cs │ │ │ │ │ ├── EnumExtensions.cs │ │ │ │ │ ├── ResourceCollectionExtensions.cs │ │ │ │ │ ├── StringExtensions.cs │ │ │ │ │ ├── UriExtensions.cs │ │ │ │ │ └── ZipArchiveExtensions.cs │ │ │ │ ├── GiteaUsernameGenerator.cs │ │ │ │ ├── Guard.cs │ │ │ │ ├── InputValidator.cs │ │ │ │ ├── JsonConverterHelpers/ │ │ │ │ │ ├── NotNullableAttribute.cs │ │ │ │ │ └── OptionConverterHelper.cs │ │ │ │ ├── LinkHeader.cs │ │ │ │ ├── MimeTypeMap.cs │ │ │ │ ├── OrgUtil.cs │ │ │ │ ├── PackageVersionHelper.cs │ │ │ │ ├── Preview/ │ │ │ │ │ └── NugetVersionHelper.cs │ │ │ │ ├── ResourceAdminHelper.cs │ │ │ │ └── UpperCaseUTF8Encoding.cs │ │ │ ├── Hosting/ │ │ │ │ └── OpenTelemetryExtensions.cs │ │ │ ├── Hubs/ │ │ │ │ ├── AlertsUpdate/ │ │ │ │ │ ├── AlertsConstants.cs │ │ │ │ │ ├── AlertsUpdated.cs │ │ │ │ │ ├── AlertsUpdatedHub.cs │ │ │ │ │ └── IAlertsUpdateClient.cs │ │ │ │ ├── Altinity/ │ │ │ │ │ ├── AltinityProxyHub.cs │ │ │ │ │ └── IAltinityClient.cs │ │ │ │ ├── EntityUpdate/ │ │ │ │ │ ├── EntityConstants.cs │ │ │ │ │ ├── EntityUpdated.cs │ │ │ │ │ ├── EntityUpdatedHub.cs │ │ │ │ │ └── IEntityUpdateClient.cs │ │ │ │ ├── HubsEndpointExtensions.cs │ │ │ │ ├── Preview/ │ │ │ │ │ ├── IPreviewClient.cs │ │ │ │ │ └── PreviewHub.cs │ │ │ │ └── Sync/ │ │ │ │ ├── ISyncClient.cs │ │ │ │ ├── Source.cs │ │ │ │ ├── SyncError.cs │ │ │ │ ├── SyncErrorCodes.cs │ │ │ │ ├── SyncHub.cs │ │ │ │ └── SyncSuccess.cs │ │ │ ├── Infrastructure/ │ │ │ │ ├── ApiKeyAuth/ │ │ │ │ │ ├── AllowApiKeyAttribute.cs │ │ │ │ │ ├── ApiKeyAuthenticationDefaults.cs │ │ │ │ │ ├── ApiKeyAuthenticationHandler.cs │ │ │ │ │ ├── ApiKeyScopeFilter.cs │ │ │ │ │ └── ConditionalAntiforgeryFilter.cs │ │ │ │ ├── AuthenticationConfiguration.cs │ │ │ │ ├── Authorization/ │ │ │ │ │ ├── AdminPermissionHandler.cs │ │ │ │ │ ├── AdminPermissionRequirement.cs │ │ │ │ │ ├── AiAssistantPermissionHandler.cs │ │ │ │ │ ├── AiAssistantPermissionRequirement.cs │ │ │ │ │ ├── AuthorizationConfiguration.cs │ │ │ │ │ ├── BelongsToOrganizationHandler.cs │ │ │ │ │ ├── BelongsToOrganizationRequirement.cs │ │ │ │ │ ├── GiteaDeployPermissionHandler.cs │ │ │ │ │ ├── GiteaDeployPermissionRequirement.cs │ │ │ │ │ ├── GiteaPublishResourcePermissionHandler.cs │ │ │ │ │ ├── GiteaPublishResourcePermissionRequirement.cs │ │ │ │ │ ├── GiteaPushPermissionHandler.cs │ │ │ │ │ ├── GiteaPushPermissionRequirement.cs │ │ │ │ │ ├── GiteaResourceAccessListPermissionHandler.cs │ │ │ │ │ ├── GiteaResourceAccessListPermissionRequirement.cs │ │ │ │ │ ├── OrgAccessHandler.cs │ │ │ │ │ ├── OrgAccessRequirement.cs │ │ │ │ │ ├── OrgOwnerHandler.cs │ │ │ │ │ ├── OrgOwnerRequirement.cs │ │ │ │ │ ├── OrganizationPermissionHandler.cs │ │ │ │ │ └── OrganizationPermissionRequirement.cs │ │ │ │ ├── ConfigurationSettings.cs │ │ │ │ ├── DataProtectionConfiguration.cs │ │ │ │ ├── DeveloperSession/ │ │ │ │ │ ├── DeveloperContext.cs │ │ │ │ │ ├── DeveloperContextExtensions.cs │ │ │ │ │ ├── DeveloperContextProvider.cs │ │ │ │ │ └── IDeveloperContextProvider.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ └── ByteArrayExtensions.cs │ │ │ │ ├── GitRepository/ │ │ │ │ │ ├── AltinnAppGitRepository.cs │ │ │ │ │ ├── AltinnGitRepository.cs │ │ │ │ │ ├── AltinnOrgGitRepository.cs │ │ │ │ │ ├── GitRepository.cs │ │ │ │ │ └── LocalGitCloneIoException.cs │ │ │ │ ├── LocalizationConfiguration.cs │ │ │ │ ├── Maskinporten/ │ │ │ │ │ ├── IssuerSchemeCache.cs │ │ │ │ │ ├── MaskinportenAuthenticationExtensions.cs │ │ │ │ │ └── MaskinportenConstants.cs │ │ │ │ ├── Models/ │ │ │ │ │ ├── AzureDevOpsSettings.cs │ │ │ │ │ └── PostgreSQLSettings.cs │ │ │ │ ├── MvcConfiguration.cs │ │ │ │ ├── ServiceRegistration.cs │ │ │ │ └── StudioOidc/ │ │ │ │ ├── StudioOidcAuthenticationExtensions.cs │ │ │ │ ├── StudioOidcConstants.cs │ │ │ │ └── StudioOidcErrorCodes.cs │ │ │ ├── Mappers/ │ │ │ │ ├── LayoutSetMapper.cs │ │ │ │ └── TaskNavigationGroupMapper.cs │ │ │ ├── Middleware/ │ │ │ │ ├── DeveloperContextMiddleware.cs │ │ │ │ └── UserRequestSynchronization/ │ │ │ │ ├── Abstractions/ │ │ │ │ │ ├── ILockService.cs │ │ │ │ │ ├── IRequestContextResolver.cs │ │ │ │ │ ├── IRequestSyncEvaluator.cs │ │ │ │ │ └── ISyncEligibilityEvaluator.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ └── DependencyInjectionRequestSyncExtensions.cs │ │ │ │ ├── OrgWide/ │ │ │ │ │ ├── DistributedLockProviderExtensions.cs │ │ │ │ │ ├── IOrgWideSyncEligibilityEvaluator.cs │ │ │ │ │ ├── RequestSyncEvaluators/ │ │ │ │ │ │ └── EndpointNameSyncEligibilityEvaluator.cs │ │ │ │ │ └── Services/ │ │ │ │ │ └── OrgWideRequestContextResolver.cs │ │ │ │ ├── RepoUserWide/ │ │ │ │ │ ├── DistributedLockProviderExtensions.cs │ │ │ │ │ ├── IRepoUserSyncEligibilityEvaluator.cs │ │ │ │ │ ├── RequestSyncEvaluators/ │ │ │ │ │ │ └── EndpointNameSyncEligibilityEvaluator.cs │ │ │ │ │ └── Services/ │ │ │ │ │ └── RepoUserWideRequestContextResolver.cs │ │ │ │ ├── RequestSynchronizationMiddleware.cs │ │ │ │ └── Services/ │ │ │ │ ├── HttpContextDataExtractor.cs │ │ │ │ ├── LockService.cs │ │ │ │ └── RequestSyncEvaluator.cs │ │ │ ├── Migrations/ │ │ │ │ ├── 20240409201554_InitMigration.Designer.cs │ │ │ │ ├── 20240409201554_InitMigration.cs │ │ │ │ ├── 20240919171846_AppScopesTable.Designer.cs │ │ │ │ ├── 20240919171846_AppScopesTable.cs │ │ │ │ ├── 20241111093515_DistributedCacheTable.Designer.cs │ │ │ │ ├── 20241111093515_DistributedCacheTable.cs │ │ │ │ ├── 20241126132300_RemovePgDistributedCacheTable.Designer.cs │ │ │ │ ├── 20241126132300_RemovePgDistributedCacheTable.cs │ │ │ │ ├── 20250107121305_AddBuidsTableAndDeploymentsColumns.Designer.cs │ │ │ │ ├── 20250107121305_AddBuidsTableAndDeploymentsColumns.cs │ │ │ │ ├── 20250107121538_NormalizeDeploymentsData.Designer.cs │ │ │ │ ├── 20250107121538_NormalizeDeploymentsData.cs │ │ │ │ ├── 20250110192106_BuildsGrants.Designer.cs │ │ │ │ ├── 20250110192106_BuildsGrants.cs │ │ │ │ ├── 20250113111744_DeploymentsTypeColumn.Designer.cs │ │ │ │ ├── 20250113111744_DeploymentsTypeColumn.cs │ │ │ │ ├── 20250121102651_QuartzTables.Designer.cs │ │ │ │ ├── 20250121102651_QuartzTables.cs │ │ │ │ ├── 20251201203326_DeployEventsTable.Designer.cs │ │ │ │ ├── 20251201203326_DeployEventsTable.cs │ │ │ │ ├── 20251203053910_DeployEventsTableGrants.Designer.cs │ │ │ │ ├── 20251203053910_DeployEventsTableGrants.cs │ │ │ │ ├── 20251211052910_AddCreatedAndOriginToDeployEvents.Designer.cs │ │ │ │ ├── 20251211052910_AddCreatedAndOriginToDeployEvents.cs │ │ │ │ ├── 20260212094926_AppSettingsTable.Designer.cs │ │ │ │ ├── 20260212094926_AppSettingsTable.cs │ │ │ │ ├── 20260308142044_UserAccountsAndApiKeys.Designer.cs │ │ │ │ ├── 20260308142044_UserAccountsAndApiKeys.cs │ │ │ │ ├── 20260316134914_ChatTables.Designer.cs │ │ │ │ ├── 20260316134914_ChatTables.cs │ │ │ │ ├── 20260322110009_BotAccounts.Designer.cs │ │ │ │ ├── 20260322110009_BotAccounts.cs │ │ │ │ ├── 20260324181650_ContactPoints.Designer.cs │ │ │ │ ├── 20260324181650_ContactPoints.cs │ │ │ │ ├── 20260408120448_DeploymentsBuildIdNullable.Designer.cs │ │ │ │ ├── 20260408120448_DeploymentsBuildIdNullable.cs │ │ │ │ ├── 20260423064727_AddAllowAppChangesAndSourcesToChatMessages.Designer.cs │ │ │ │ ├── 20260423064727_AddAllowAppChangesAndSourcesToChatMessages.cs │ │ │ │ ├── DesignerdbContextModelSnapshot.cs │ │ │ │ └── SqlScripts/ │ │ │ │ ├── Builds/ │ │ │ │ │ └── 01-setup-grants.sql │ │ │ │ ├── ChatTables/ │ │ │ │ │ └── setup-grants.sql │ │ │ │ ├── ContactPoints/ │ │ │ │ │ └── setup-grants.sql │ │ │ │ ├── DeployEvents/ │ │ │ │ │ └── setup-grants.sql │ │ │ │ ├── DeploymentsNormalization/ │ │ │ │ │ └── normalization.sql │ │ │ │ ├── DistributedCache/ │ │ │ │ │ ├── Create/ │ │ │ │ │ │ ├── 01-setup-distributedcache-table.sql │ │ │ │ │ │ └── 02-setup-grants.sql │ │ │ │ │ └── Drop/ │ │ │ │ │ └── 01-drop-distributedcache-table.sql │ │ │ │ ├── InitialSqlScripts/ │ │ │ │ │ ├── 01-setup-tables.sql │ │ │ │ │ ├── 02-setup-deployments.sql │ │ │ │ │ ├── 03-setup-releases.sql │ │ │ │ │ ├── 04-setup-grants.sql │ │ │ │ │ └── 05-setup-index.sql │ │ │ │ ├── QuartzTables/ │ │ │ │ │ ├── drop_tables.sql │ │ │ │ │ ├── setup-grants.sql │ │ │ │ │ └── tables_postgres.sql │ │ │ │ ├── SqlScriptsReadHelper.cs │ │ │ │ └── UserAccountsAndApiKeys/ │ │ │ │ └── setup-grants.sql │ │ │ ├── ModelBinding/ │ │ │ │ ├── AltinnCoreApiModel.cs │ │ │ │ ├── AltinnCoreApiModelBinder.cs │ │ │ │ ├── AltinnCoreApiModelBinderProvider.cs │ │ │ │ ├── BuildModel.cs │ │ │ │ ├── ClosedGenericMatcher.cs │ │ │ │ └── Constants/ │ │ │ │ └── AltinnPolicy.cs │ │ │ ├── Models/ │ │ │ │ ├── AccessList.cs │ │ │ │ ├── AccessListMember.cs │ │ │ │ ├── AccessListOrganizationNumbers.cs │ │ │ │ ├── AccessListPaging.cs │ │ │ │ ├── AccessPackageService.cs │ │ │ │ ├── Alerts/ │ │ │ │ │ ├── AlertPayload.cs │ │ │ │ │ ├── AlertRule.cs │ │ │ │ │ └── StudioGatewayAlert.cs │ │ │ │ ├── AltinnAuthenticatedRepoEditingContext.cs │ │ │ │ ├── AltinnCoreFile.cs │ │ │ │ ├── AltinnEnvironment.cs │ │ │ │ ├── AltinnOrgContext.cs │ │ │ │ ├── AltinnOrgEditingContext.cs │ │ │ │ ├── AltinnPageLayout.cs │ │ │ │ ├── AltinnRepoContext.cs │ │ │ │ ├── AltinnRepoEditingContext.cs │ │ │ │ ├── AltinnRepoName.cs │ │ │ │ ├── AltinnStudioSettings.cs │ │ │ │ ├── AltinnStudioViewModel.cs │ │ │ │ ├── ApiKeys/ │ │ │ │ │ ├── ApiKey.cs │ │ │ │ │ ├── ApiKeyHash.cs │ │ │ │ │ └── ApiKeyType.cs │ │ │ │ ├── App/ │ │ │ │ │ └── ApplicationMetadata.cs │ │ │ │ ├── AppKey.cs │ │ │ │ ├── ApplicationLanguage.cs │ │ │ │ ├── ApplicationSettings.cs │ │ │ │ ├── AttributeMatchV2.cs │ │ │ │ ├── AutoSaveBehaviourType.cs │ │ │ │ ├── AvailableService.cs │ │ │ │ ├── BotAccount/ │ │ │ │ │ └── BotAccount.cs │ │ │ │ ├── BranchModels.cs │ │ │ │ ├── BrregPartyResultSet.cs │ │ │ │ ├── Code.cs │ │ │ │ ├── CodeList.cs │ │ │ │ ├── CodeListSource.cs │ │ │ │ ├── Commit.cs │ │ │ │ ├── CommitInfo.cs │ │ │ │ ├── CompetentAuthority.cs │ │ │ │ ├── ConceptSchema.cs │ │ │ │ ├── ConsentMetadata.cs │ │ │ │ ├── ConsentTemplate.cs │ │ │ │ ├── ConsentTemplateTexts.cs │ │ │ │ ├── ConsentTemplateTypeText.cs │ │ │ │ ├── ContactPoint.cs │ │ │ │ ├── ContactPoints/ │ │ │ │ │ ├── ContactMethod.cs │ │ │ │ │ ├── ContactMethodType.cs │ │ │ │ │ └── ContactPoint.cs │ │ │ │ ├── CreateAccessListModel.cs │ │ │ │ ├── CreatePullRequestOption.cs │ │ │ │ ├── CustomTemplate.cs │ │ │ │ ├── CustomTemplateList.cs │ │ │ │ ├── CustomTemplateReference.cs │ │ │ │ ├── DataTheme.cs │ │ │ │ ├── DataThemesContainer.cs │ │ │ │ ├── DelegationCountOverview.cs │ │ │ │ ├── DeploymentsResponse.cs │ │ │ │ ├── Dto/ │ │ │ │ │ ├── AccessListInfoDtoPaginated.cs │ │ │ │ │ ├── AccessListMember.cs │ │ │ │ │ ├── AccessListResourceConnection.cs │ │ │ │ │ ├── AltinnProblemDetails.cs │ │ │ │ │ ├── ApiKeyResponse.cs │ │ │ │ │ ├── AppScopesRequest.cs │ │ │ │ │ ├── AppScopesResponse.cs │ │ │ │ │ ├── AppSettingsRequest.cs │ │ │ │ │ ├── AppSettingsResponse.cs │ │ │ │ │ ├── AuthStatus.cs │ │ │ │ │ ├── BelongsToOrg.cs │ │ │ │ │ ├── BotAccountApiKeyResponse.cs │ │ │ │ │ ├── BotAccountResponse.cs │ │ │ │ │ ├── CanUseFeatureDto.cs │ │ │ │ │ ├── CodeListWrapper.cs │ │ │ │ │ ├── ComponentIdChange.cs │ │ │ │ │ ├── ContactMethodRequest.cs │ │ │ │ │ ├── ContactMethodResponse.cs │ │ │ │ │ ├── ContactPointRequest.cs │ │ │ │ │ ├── ContactPointResponse.cs │ │ │ │ │ ├── CreateApiKeyRequest.cs │ │ │ │ │ ├── CreateApiKeyResponse.cs │ │ │ │ │ ├── CreateAppRequest.cs │ │ │ │ │ ├── CreateBotAccountApiKeyRequest.cs │ │ │ │ │ ├── CreateBotAccountApiKeyResponse.cs │ │ │ │ │ ├── CreateBotAccountRequest.cs │ │ │ │ │ ├── CreateBotAccountResponse.cs │ │ │ │ │ ├── CreateChatMessageRequest.cs │ │ │ │ │ ├── CreateChatThreadRequest.cs │ │ │ │ │ ├── DataTypeChange.cs │ │ │ │ │ ├── DeployEventRequest.cs │ │ │ │ │ ├── FeedbackForm.cs │ │ │ │ │ ├── FileMetadata.cs │ │ │ │ │ ├── FileOperation.cs │ │ │ │ │ ├── FileOperationContext.cs │ │ │ │ │ ├── FormLayoutPayload.cs │ │ │ │ │ ├── GetCodeListResponse.cs │ │ │ │ │ ├── GetSharedResourcesResponse.cs │ │ │ │ │ ├── GiteaBadRequestDto.cs │ │ │ │ │ ├── GiteaIdentity.cs │ │ │ │ │ ├── GroupDto.cs │ │ │ │ │ ├── ImportOptionListResponse.cs │ │ │ │ │ ├── InstancesResponse.cs │ │ │ │ │ ├── LatestCommitShaResponse.cs │ │ │ │ │ ├── LayoutSetDto.cs │ │ │ │ │ ├── LayoutSetPayload.cs │ │ │ │ │ ├── LibraryContentReference.cs │ │ │ │ │ ├── LibraryFile.cs │ │ │ │ │ ├── MaskinPortenScopeDto.cs │ │ │ │ │ ├── OptionListData.cs │ │ │ │ │ ├── OptionListReferences.cs │ │ │ │ │ ├── PageDto.cs │ │ │ │ │ ├── PageValidationOnNavigationDto.cs │ │ │ │ │ ├── PagesDto.cs │ │ │ │ │ ├── ProcessDefinitionMetadata.cs │ │ │ │ │ ├── PublishCodeListRequest.cs │ │ │ │ │ ├── PublishedApplication.cs │ │ │ │ │ ├── PublishedApplicationDetails.cs │ │ │ │ │ ├── PublishedVersionResponse.cs │ │ │ │ │ ├── SubjectResourcesDto.cs │ │ │ │ │ ├── TaskIdChange.cs │ │ │ │ │ ├── TaskNavigationGroupDto.cs │ │ │ │ │ ├── ToggleActiveRequest.cs │ │ │ │ │ ├── UndeployRequest.cs │ │ │ │ │ ├── UpdateBotAccountRequest.cs │ │ │ │ │ ├── UpdateChatThreadRequest.cs │ │ │ │ │ ├── UpdateCodeListRequest.cs │ │ │ │ │ ├── UpdateSharedResourceRequest.cs │ │ │ │ │ ├── UpsertAccessListResourceConnectionDto.cs │ │ │ │ │ ├── UserInfoResponse.cs │ │ │ │ │ ├── UserOrgPermission.cs │ │ │ │ │ ├── ValidationOnNavigationDto.cs │ │ │ │ │ └── VersionResponse.cs │ │ │ │ ├── EuroVocTerm.cs │ │ │ │ ├── EuroVocTerms.cs │ │ │ │ ├── ExportDelegationsRequestBE.cs │ │ │ │ ├── FileSystemObject.cs │ │ │ │ ├── FooterFile.cs │ │ │ │ ├── GitTreeStructure.cs │ │ │ │ ├── Group.cs │ │ │ │ ├── GroupType.cs │ │ │ │ ├── HeaderEtag.cs │ │ │ │ ├── Keyword.cs │ │ │ │ ├── LayoutSetModel.cs │ │ │ │ ├── LayoutSets.cs │ │ │ │ ├── LayoutSetsModel.cs │ │ │ │ ├── LayoutSettings.cs │ │ │ │ ├── ListviewServiceResource.cs │ │ │ │ ├── LosTerm.cs │ │ │ │ ├── LosTerms.cs │ │ │ │ ├── Metrics/ │ │ │ │ │ ├── AppErrorMetric.cs │ │ │ │ │ ├── AppHealthMetric.cs │ │ │ │ │ ├── AppMetric.cs │ │ │ │ │ └── ErrorMetric.cs │ │ │ │ ├── Option.cs │ │ │ │ ├── Org.cs │ │ │ │ ├── OrgList.cs │ │ │ │ ├── PagedAccessListMembersResponse.cs │ │ │ │ ├── PagedAccessListResponse.cs │ │ │ │ ├── Pages.cs │ │ │ │ ├── PidHash.cs │ │ │ │ ├── Preview/ │ │ │ │ │ ├── DataPatchRequest.cs │ │ │ │ │ ├── DataPatchRequestMultiple.cs │ │ │ │ │ ├── DataPatchResponse.cs │ │ │ │ │ ├── DataPatchResponseMultiple.cs │ │ │ │ │ ├── DataPostResponse.cs │ │ │ │ │ └── ValidationIssueWithSource.cs │ │ │ │ ├── Reference.cs │ │ │ │ ├── RepoStatus.cs │ │ │ │ ├── RepositoryContent.cs │ │ │ │ ├── RepositorySearch.cs │ │ │ │ ├── Resource.cs │ │ │ │ ├── ResourceAccessList.cs │ │ │ │ ├── ResourceCollection.cs │ │ │ │ ├── ResourceReference.cs │ │ │ │ ├── ResourceVersionInfo.cs │ │ │ │ ├── ServiceIdentifier.cs │ │ │ │ ├── ServiceResource.cs │ │ │ │ ├── ServiceResourceStatus.cs │ │ │ │ ├── SharedContent/ │ │ │ │ │ ├── IndexFile.cs │ │ │ │ │ └── SharedCodeList.cs │ │ │ │ ├── Signature.cs │ │ │ │ ├── StudioStatisticsModel.cs │ │ │ │ ├── StylesConfig.cs │ │ │ │ ├── SubjectResources.cs │ │ │ │ ├── TaskModel.cs │ │ │ │ ├── TextResource.cs │ │ │ │ ├── TextResourceElement.cs │ │ │ │ ├── TextResourceVariable.cs │ │ │ │ ├── UserAccount/ │ │ │ │ │ └── AccountType.cs │ │ │ │ ├── ValidationOnNavigation.cs │ │ │ │ └── Variable.cs │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── README.md │ │ │ ├── Repository/ │ │ │ │ ├── IApiKeyRepository.cs │ │ │ │ ├── IAppScopesRepository.cs │ │ │ │ ├── IAppSettingsRepository.cs │ │ │ │ ├── IChatRepository.cs │ │ │ │ ├── IContactPointsRepository.cs │ │ │ │ ├── IDeployEventRepository.cs │ │ │ │ ├── IDeploymentRepository.cs │ │ │ │ ├── IReleaseRepository.cs │ │ │ │ ├── IResourceRegistryRepository.cs │ │ │ │ ├── Implementation/ │ │ │ │ │ └── ResourceRegistryRepository.cs │ │ │ │ ├── Models/ │ │ │ │ │ ├── AppScope/ │ │ │ │ │ │ ├── AppScopesEntity.cs │ │ │ │ │ │ └── MaskinPortenScopeEntity.cs │ │ │ │ │ ├── AppSettings/ │ │ │ │ │ │ └── AppSettingsEntity.cs │ │ │ │ │ ├── BaseEntity.cs │ │ │ │ │ ├── BuildEntity.cs │ │ │ │ │ ├── ChatMessageEntity.cs │ │ │ │ │ ├── ChatSourceEntity.cs │ │ │ │ │ ├── ChatThreadEntity.cs │ │ │ │ │ ├── ContactPoint/ │ │ │ │ │ │ ├── ContactMethodEntity.cs │ │ │ │ │ │ └── ContactPointEntity.cs │ │ │ │ │ ├── DeploymentEntity.cs │ │ │ │ │ ├── EntityExtensions.cs │ │ │ │ │ └── ReleaseEntity.cs │ │ │ │ └── ORMImplementation/ │ │ │ │ ├── ApiKeyRepository.cs │ │ │ │ ├── AppScopesRepository.cs │ │ │ │ ├── AppSettingsRepository.cs │ │ │ │ ├── ChatRepository.cs │ │ │ │ ├── ContactPointRepository.cs │ │ │ │ ├── Data/ │ │ │ │ │ ├── DesignerdbContext.cs │ │ │ │ │ └── EntityConfigurations/ │ │ │ │ │ ├── ApiKeyConfiguration.cs │ │ │ │ │ ├── AppScopesConfiguration.cs │ │ │ │ │ ├── AppSettingsConfiguration.cs │ │ │ │ │ ├── BuildConfiguration.cs │ │ │ │ │ ├── ChatMessageConfiguration.cs │ │ │ │ │ ├── ChatThreadConfiguration.cs │ │ │ │ │ ├── ContactMethodConfiguration.cs │ │ │ │ │ ├── ContactPointConfiguration.cs │ │ │ │ │ ├── DeployEventConfiguration.cs │ │ │ │ │ ├── DeploymentConfiguration.cs │ │ │ │ │ ├── ReleaseConfiguration.cs │ │ │ │ │ └── UserAccountConfiguration.cs │ │ │ │ ├── DeployEventRepository.cs │ │ │ │ ├── DeploymentRepository.cs │ │ │ │ ├── Mappers/ │ │ │ │ │ ├── AppScopesMapper.cs │ │ │ │ │ ├── AppSettingsMapper.cs │ │ │ │ │ ├── BuildMapper.cs │ │ │ │ │ ├── ChatMessageMapper.cs │ │ │ │ │ ├── ChatThreadMapper.cs │ │ │ │ │ ├── ContactPointMapper.cs │ │ │ │ │ ├── DeploymentMapper.cs │ │ │ │ │ └── ReleaseMapper.cs │ │ │ │ ├── Models/ │ │ │ │ │ ├── ApiKeyDbModel.cs │ │ │ │ │ ├── AppScopesDbModel.cs │ │ │ │ │ ├── AppSettingsDbModel.cs │ │ │ │ │ ├── BuildDbModel.cs │ │ │ │ │ ├── ChatMessageDbModel.cs │ │ │ │ │ ├── ChatThreadDbModel.cs │ │ │ │ │ ├── ContactMethodDbModel.cs │ │ │ │ │ ├── ContactPointDbModel.cs │ │ │ │ │ ├── DeployEventDbModel.cs │ │ │ │ │ ├── DeploymentDbModel.cs │ │ │ │ │ ├── ReleaseDbModel.cs │ │ │ │ │ └── UserAccountDbModel.cs │ │ │ │ └── ReleaseRepository.cs │ │ │ ├── RepositoryClient/ │ │ │ │ └── Model/ │ │ │ │ ├── AccessToken.cs │ │ │ │ ├── Branch.cs │ │ │ │ ├── CommitAffectedFile.cs │ │ │ │ ├── ContentsResponse.cs │ │ │ │ ├── CreateAccessTokenOption.cs │ │ │ │ ├── CreateEmailOption.cs │ │ │ │ ├── CreateGPGKeyOption.cs │ │ │ │ ├── CreateKeyOption.cs │ │ │ │ ├── CreateRepoOption.cs │ │ │ │ ├── DeleteEmailOption.cs │ │ │ │ ├── Email.cs │ │ │ │ ├── FileLinksResponse.cs │ │ │ │ ├── GPGKey.cs │ │ │ │ ├── GPGKeyEmail.cs │ │ │ │ ├── GiteaCommit.cs │ │ │ │ ├── GiteaRepoCommitInfo.cs │ │ │ │ ├── GiteaRepoCommitMeta.cs │ │ │ │ ├── GiteaRepoCommitStats.cs │ │ │ │ ├── GiteaRepoCommitUser.cs │ │ │ │ ├── GiteaRepoPayloadCommitVerification.cs │ │ │ │ ├── GiteaRepoPayloadUser.cs │ │ │ │ ├── GiteaUser.cs │ │ │ │ ├── Organization.cs │ │ │ │ ├── PayloadCommit.cs │ │ │ │ ├── PayloadCommitVerification.cs │ │ │ │ ├── PayloadUser.cs │ │ │ │ ├── Permission.cs │ │ │ │ ├── PublicKey.cs │ │ │ │ ├── Repository.cs │ │ │ │ ├── SearchOptions.cs │ │ │ │ ├── SearchResults.cs │ │ │ │ ├── Team.cs │ │ │ │ ├── TrackedTime.cs │ │ │ │ ├── User.cs │ │ │ │ └── UserType.cs │ │ │ ├── Scheduling/ │ │ │ │ ├── AppInactivityUndeployAppJob.cs │ │ │ │ ├── AppInactivityUndeployJob.cs │ │ │ │ ├── AppInactivityUndeployJobConstants.cs │ │ │ │ ├── AppInactivityUndeployJobQueue.cs │ │ │ │ ├── AppInactivityUndeployPerOrgJob.cs │ │ │ │ ├── ChatInactivityCleanupJob.cs │ │ │ │ ├── ChatInactivityCleanupJobConstants.cs │ │ │ │ ├── DeploymentPipelinePollingJob.cs │ │ │ │ ├── DeploymentPipelinePollingJobConstants.cs │ │ │ │ ├── IAppInactivityUndeployJobQueue.cs │ │ │ │ ├── JobDataMapExtensions.cs │ │ │ │ └── SchedulingDependencyInjectionExtensions.cs │ │ │ ├── Schemas/ │ │ │ │ └── customtemplate.schema.json │ │ │ ├── Services/ │ │ │ │ ├── Implementation/ │ │ │ │ │ ├── AlertsService.cs │ │ │ │ │ ├── Altinity/ │ │ │ │ │ │ ├── AltinityAttachmentBuffer.cs │ │ │ │ │ │ └── AltinityWebSocketService.cs │ │ │ │ │ ├── ApiKeyService.cs │ │ │ │ │ ├── AppDevelopmentService.cs │ │ │ │ │ ├── AppInactivityUndeployService.cs │ │ │ │ │ ├── AppResourcesService.cs │ │ │ │ │ ├── AppScopesService.cs │ │ │ │ │ ├── AppSettingsService.cs │ │ │ │ │ ├── ApplicationInformationService.cs │ │ │ │ │ ├── ApplicationMetadataService.cs │ │ │ │ │ ├── AuthorizationPolicyService.cs │ │ │ │ │ ├── BotAccountService.cs │ │ │ │ │ ├── BranchService.cs │ │ │ │ │ ├── ChatService.cs │ │ │ │ │ ├── ContactPointsService.cs │ │ │ │ │ ├── CustomTemplateService.cs │ │ │ │ │ ├── DeploymentService.cs │ │ │ │ │ ├── EnvironmentsService.cs │ │ │ │ │ ├── GitOps/ │ │ │ │ │ │ ├── GitRepoGitOpsConfigurationManager.cs │ │ │ │ │ │ ├── ManifestsPathHelper.cs │ │ │ │ │ │ ├── ScribanGitOpsManifestsRenderer.cs │ │ │ │ │ │ └── Templates/ │ │ │ │ │ │ ├── apps/ │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ ├── kustomize.yaml │ │ │ │ │ │ │ └── oci-repository.yaml │ │ │ │ │ │ ├── base/ │ │ │ │ │ │ │ ├── altinn-studio-helm-chart.yaml │ │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ │ └── environment/ │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ ├── GiteaAuthHeadersProvider.cs │ │ │ │ │ ├── GiteaContentLibraryService.cs │ │ │ │ │ ├── GiteaDbStudioOidcUsernameProvider.cs │ │ │ │ │ ├── GiteaDeployEnvironmentAccessService.cs │ │ │ │ │ ├── GiteaUserProvisioningService.cs │ │ │ │ │ ├── ImageUrlValidationService.cs │ │ │ │ │ ├── ImagesService.cs │ │ │ │ │ ├── KafkaProducer.cs │ │ │ │ │ ├── KubernetesDeploymentsService.cs │ │ │ │ │ ├── LayoutService.cs │ │ │ │ │ ├── MaskinPortenClientDefinition.cs │ │ │ │ │ ├── MetricsService.cs │ │ │ │ │ ├── ModelNameValidator.cs │ │ │ │ │ ├── OptionListReferenceService.cs │ │ │ │ │ ├── OptionsService.cs │ │ │ │ │ ├── OrgContentService.cs │ │ │ │ │ ├── OrgService.cs │ │ │ │ │ ├── Organisation/ │ │ │ │ │ │ ├── OrgCodeListService.cs │ │ │ │ │ │ ├── OrgLibraryService.cs │ │ │ │ │ │ └── OrgTextsService.cs │ │ │ │ │ ├── Preview/ │ │ │ │ │ │ ├── DataService.cs │ │ │ │ │ │ └── InstanceService.cs │ │ │ │ │ ├── PreviewService.cs │ │ │ │ │ ├── ProcessModeling/ │ │ │ │ │ │ ├── ProcessModelingService.cs │ │ │ │ │ │ └── Templates/ │ │ │ │ │ │ ├── v7/ │ │ │ │ │ │ │ ├── start-data-confirmation-end.bpmn │ │ │ │ │ │ │ ├── start-data-data-data-end.bpmn │ │ │ │ │ │ │ └── start-data-end.bpmn │ │ │ │ │ │ └── v8/ │ │ │ │ │ │ ├── start-data-confirmation-end.bpmn │ │ │ │ │ │ ├── start-data-confirmation-feedback-end.bpmn │ │ │ │ │ │ ├── start-data-end.bpmn │ │ │ │ │ │ └── start-data-signing-end.bpmn │ │ │ │ │ ├── ReleaseService.cs │ │ │ │ │ ├── RepositoryService.cs │ │ │ │ │ ├── ResourceRegistryService.cs │ │ │ │ │ ├── SchemaModelService.cs │ │ │ │ │ ├── SourceControlService.cs │ │ │ │ │ ├── StudioctlInstallScriptService.cs │ │ │ │ │ ├── TaskNavigationService.cs │ │ │ │ │ ├── TextResourceService.cs │ │ │ │ │ ├── TextsService.cs │ │ │ │ │ ├── UrlPolicyValidator.cs │ │ │ │ │ ├── UserOrganizationService.cs │ │ │ │ │ ├── UserService.cs │ │ │ │ │ └── Validation/ │ │ │ │ │ └── AltinnAppServiceResourceService.cs │ │ │ │ ├── Interfaces/ │ │ │ │ │ ├── Altinity/ │ │ │ │ │ │ └── IAltinityWebSocketService.cs │ │ │ │ │ ├── GitOps/ │ │ │ │ │ │ ├── IGitOpsConfigurationManager.cs │ │ │ │ │ │ └── IGitOpsManifestsRenderer.cs │ │ │ │ │ ├── IAlertsService.cs │ │ │ │ │ ├── IAltinnGitRepository.cs │ │ │ │ │ ├── IAltinnGitRepositoryFactory.cs │ │ │ │ │ ├── IApiKeyService.cs │ │ │ │ │ ├── IAppDevelopmentService.cs │ │ │ │ │ ├── IAppInactivityUndeployService.cs │ │ │ │ │ ├── IAppResourcesService.cs │ │ │ │ │ ├── IAppScopesService.cs │ │ │ │ │ ├── IAppSettingsService.cs │ │ │ │ │ ├── IApplicationInformationService.cs │ │ │ │ │ ├── IApplicationMetadataService.cs │ │ │ │ │ ├── IAuthorizationPolicyService.cs │ │ │ │ │ ├── IBotAccountService.cs │ │ │ │ │ ├── IBranchService.cs │ │ │ │ │ ├── IChatService.cs │ │ │ │ │ ├── IContactPointsService.cs │ │ │ │ │ ├── ICustomTemplateService.cs │ │ │ │ │ ├── IDeployEnvironmentAccessService.cs │ │ │ │ │ ├── IDeploymentService.cs │ │ │ │ │ ├── IEnvironmentsService.cs │ │ │ │ │ ├── IGitServerAuthHeadersProvider.cs │ │ │ │ │ ├── IGiteaContentLibraryService.cs │ │ │ │ │ ├── IImageUrlValidationService.cs │ │ │ │ │ ├── IImagesService.cs │ │ │ │ │ ├── IKafkaProducer.cs │ │ │ │ │ ├── IKubernetesDeploymentsService.cs │ │ │ │ │ ├── ILayoutService.cs │ │ │ │ │ ├── IMetricsService.cs │ │ │ │ │ ├── IModelNameValidator.cs │ │ │ │ │ ├── IOptionListReferenceService.cs │ │ │ │ │ ├── IOptionsService.cs │ │ │ │ │ ├── IOrgContentService.cs │ │ │ │ │ ├── IOrgService.cs │ │ │ │ │ ├── IPreviewService.cs │ │ │ │ │ ├── IProcessModelingService.cs │ │ │ │ │ ├── IReleaseService.cs │ │ │ │ │ ├── IRepository.cs │ │ │ │ │ ├── IResourceRegistry.cs │ │ │ │ │ ├── ISchemaModelService.cs │ │ │ │ │ ├── ISourceControl.cs │ │ │ │ │ ├── IStudioOidcUsernameProvider.cs │ │ │ │ │ ├── IStudioctlInstallScriptService.cs │ │ │ │ │ ├── ITaskNavigationService.cs │ │ │ │ │ ├── ITextResourceService.cs │ │ │ │ │ ├── ITextsService.cs │ │ │ │ │ ├── IUrlPolicyValidator.cs │ │ │ │ │ ├── IUserOrganizationService.cs │ │ │ │ │ ├── IUserProvisioningService.cs │ │ │ │ │ ├── IUserService.cs │ │ │ │ │ ├── Organisation/ │ │ │ │ │ │ ├── IOrgCodeListService.cs │ │ │ │ │ │ ├── IOrgLibraryService.cs │ │ │ │ │ │ └── IOrgTextsService.cs │ │ │ │ │ ├── Preview/ │ │ │ │ │ │ ├── IDataService.cs │ │ │ │ │ │ └── IInstanceService.cs │ │ │ │ │ └── Validation/ │ │ │ │ │ └── IAltinnAppServiceResourceService.cs │ │ │ │ └── Models/ │ │ │ │ ├── AltinnOrgModel.cs │ │ │ │ ├── AltinnOrgsModel.cs │ │ │ │ ├── DeploymentModel.cs │ │ │ │ ├── EnvironmentModel.cs │ │ │ │ ├── EnvironmentsModel.cs │ │ │ │ ├── InactivityUndeployCandidate.cs │ │ │ │ ├── InactivityUndeployEvaluationOptions.cs │ │ │ │ ├── LanguageConst.cs │ │ │ │ ├── ProcessDataTypeTag.cs │ │ │ │ ├── ProcessTaskMetadata.cs │ │ │ │ └── StudioctlInstallScriptModels.cs │ │ │ ├── Telemetry/ │ │ │ │ └── ServiceTelemetry.cs │ │ │ ├── TypedHttpClients/ │ │ │ │ ├── Altinn2Metadata/ │ │ │ │ │ ├── Altinn2MetadataClient.cs │ │ │ │ │ └── IAltinn2MetadataClient.cs │ │ │ │ ├── AltinnAuthentication/ │ │ │ │ │ ├── AltinnAuthenticationClient.cs │ │ │ │ │ └── IAltinnAuthenticationClient.cs │ │ │ │ ├── AltinnAuthorization/ │ │ │ │ │ ├── AltinnAuthorizationPolicyClient.cs │ │ │ │ │ ├── IAltinnAuthorizationPolicyClient.cs │ │ │ │ │ ├── IPolicyOptions.cs │ │ │ │ │ └── PolicyOptionsClient.cs │ │ │ │ ├── AltinnStorage/ │ │ │ │ │ ├── AltinnStorageAppMetadataClient.cs │ │ │ │ │ ├── AltinnStorageInstancesClient.cs │ │ │ │ │ ├── AltinnStorageTextResourceClient.cs │ │ │ │ │ ├── IAltinnStorageAppMetadataClient.cs │ │ │ │ │ ├── IAltinnStorageInstancesClient.cs │ │ │ │ │ ├── IAltinnStorageTextResourceClient.cs │ │ │ │ │ └── Models/ │ │ │ │ │ ├── QueryResponse.cs │ │ │ │ │ ├── SimpleDataElement.cs │ │ │ │ │ ├── SimpleInstance.cs │ │ │ │ │ └── SimpleInstanceDetails.cs │ │ │ │ ├── AzureDevOps/ │ │ │ │ │ ├── AzureDevOpsBuildClient.cs │ │ │ │ │ ├── Enums/ │ │ │ │ │ │ ├── BuildResult.cs │ │ │ │ │ │ ├── BuildStatus.cs │ │ │ │ │ │ └── EnumExtensions.cs │ │ │ │ │ ├── IAzureDevOpsBuildClient.cs │ │ │ │ │ └── Models/ │ │ │ │ │ ├── Build.cs │ │ │ │ │ ├── DefinitionReference.cs │ │ │ │ │ ├── GitOpsManagementBuildParameters.cs │ │ │ │ │ ├── QueueBuildParameters.cs │ │ │ │ │ └── QueueBuildRequest.cs │ │ │ │ ├── DelegatingHandlers/ │ │ │ │ │ ├── AzureDevOpsTokenDelegatingHandler.cs │ │ │ │ │ ├── CachingDelegatingHandler.cs │ │ │ │ │ ├── Custom401Handler.cs │ │ │ │ │ ├── EnsureSuccessHandler.cs │ │ │ │ │ ├── GitOpsBotTokenDelegatingHandler.cs │ │ │ │ │ ├── GiteaTokenDelegatingHandler.cs │ │ │ │ │ ├── GiteaWebAuthDelegatingHandler.cs │ │ │ │ │ ├── OidcTokenDelegatingHandler.cs │ │ │ │ │ ├── PlatformBearerTokenHandler.cs │ │ │ │ │ └── PlatformSubscriptionAuthDelegatingHandler.cs │ │ │ │ ├── Exceptions/ │ │ │ │ │ ├── GiteaUnathorizedException.cs │ │ │ │ │ └── NotFoundHttpRequestException.cs │ │ │ │ ├── ImageClient/ │ │ │ │ │ └── ImageClient.cs │ │ │ │ ├── KubernetesWrapper/ │ │ │ │ │ ├── IKubernetesWrapperClient.cs │ │ │ │ │ ├── KubernetesDeployment.cs │ │ │ │ │ ├── KubernetesWrapperClient.cs │ │ │ │ │ └── KubernetesWrapperResponseException.cs │ │ │ │ ├── MaskinPorten/ │ │ │ │ │ ├── IMaskinPortenHttpClient.cs │ │ │ │ │ ├── MaskinPortenAccessScopeResponse.cs │ │ │ │ │ ├── MaskinPortenAllScopeResponse.cs │ │ │ │ │ ├── MaskinPortenHttpClient.cs │ │ │ │ │ ├── MaskinPortenHttpClientSettings.cs │ │ │ │ │ └── MaskinPortenScope.cs │ │ │ │ ├── ResourceRegistryOptions/ │ │ │ │ │ ├── IResourceRegistryOptions.cs │ │ │ │ │ └── ResourceRegistryOptionsClient.cs │ │ │ │ ├── RuntimeGateway/ │ │ │ │ │ ├── IRuntimeGatewayClient.cs │ │ │ │ │ ├── Models/ │ │ │ │ │ │ ├── AppActivityMetricsResponse.cs │ │ │ │ │ │ ├── AppDeployment.cs │ │ │ │ │ │ └── IsAppDeployedResponse.cs │ │ │ │ │ ├── RuntimeGatewayClient.cs │ │ │ │ │ └── ServiceCollectionExtensions.cs │ │ │ │ ├── Slack/ │ │ │ │ │ ├── ISlackClient.cs │ │ │ │ │ ├── SlackBlock.cs │ │ │ │ │ ├── SlackClient.cs │ │ │ │ │ ├── SlackMessage.cs │ │ │ │ │ └── SlackText.cs │ │ │ │ └── TypedHttpClientRegistration.cs │ │ │ ├── ViewModels/ │ │ │ │ ├── Request/ │ │ │ │ │ ├── AzureDevOpsWebHookEventModel.cs │ │ │ │ │ ├── CreateDeploymentRequestViewModel.cs │ │ │ │ │ ├── CreateModelViewModel.cs │ │ │ │ │ ├── CreateReleaseRequestViewModel.cs │ │ │ │ │ ├── DocumentQueryModel.cs │ │ │ │ │ ├── Enums/ │ │ │ │ │ │ └── SortDirection.cs │ │ │ │ │ ├── RequestExtensionMethods.cs │ │ │ │ │ └── UpdateReleaseRequestViewModel.cs │ │ │ │ └── Response/ │ │ │ │ └── SearchResults.cs │ │ │ ├── Views/ │ │ │ │ └── Home/ │ │ │ │ └── StartPage.cshtml │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.Production.json │ │ │ ├── appsettings.Staging.json │ │ │ ├── appsettings.json │ │ │ ├── web.config │ │ │ └── wwwroot/ │ │ │ ├── css/ │ │ │ │ └── startpage.css │ │ │ ├── designer/ │ │ │ │ ├── config/ │ │ │ │ │ └── env.json │ │ │ │ └── openapi.html │ │ │ └── manifest.json │ │ └── tests/ │ │ ├── DataModeling.Tests/ │ │ │ ├── AltinnJsonSchemaValidationTests.cs │ │ │ ├── Assertions/ │ │ │ │ ├── JsonSchemaAssertions.cs │ │ │ │ ├── MetadataAssertions.cs │ │ │ │ ├── TypeAssertions.cs │ │ │ │ └── XmlSchemaAssertions.cs │ │ │ ├── BaseClasses/ │ │ │ │ ├── CsharpModelConversionTestsBase.cs │ │ │ │ └── SchemaConversionTestsBase.cs │ │ │ ├── CsharpEnd2EndGenerationTests.cs │ │ │ ├── DataModeling.Tests.csproj │ │ │ ├── DataValidationWithModelPopulatingTests.cs │ │ │ ├── GlobalSuppressions.cs │ │ │ ├── Json/ │ │ │ │ ├── Formats/ │ │ │ │ │ └── CustomFormatsTests.cs │ │ │ │ ├── JsonSchemaNormalizerTests.cs │ │ │ │ ├── JsonSchemaSeresAnalyzerTests.cs │ │ │ │ ├── Keywords/ │ │ │ │ │ ├── BaseClasses/ │ │ │ │ │ │ ├── ConverterTestBase.cs │ │ │ │ │ │ ├── KeywordTestsBase.cs │ │ │ │ │ │ ├── ValueKeywordConverterTestBase.cs │ │ │ │ │ │ └── ValueKeywordTestsBase.cs │ │ │ │ │ ├── FormatRange/ │ │ │ │ │ │ ├── Converter/ │ │ │ │ │ │ │ ├── FormatExclusiveMaximumKeywordJsonConverterConverterTests.cs │ │ │ │ │ │ │ ├── FormatExclusiveMinimumKeywordJsonConverterConverterTests.cs │ │ │ │ │ │ │ ├── FormatMaximumKeywordJsonConverterConverterTests.cs │ │ │ │ │ │ │ └── FormatMinimumKeywordJsonConverterConverterTests.cs │ │ │ │ │ │ └── Keyword/ │ │ │ │ │ │ ├── FormatExclusiveMaximumKeywordTests.cs │ │ │ │ │ │ ├── FormatExclusiveMinimumKeywordTests.cs │ │ │ │ │ │ ├── FormatMaximumKeywordTests.cs │ │ │ │ │ │ └── FormatMinimumKeywordTests.cs │ │ │ │ │ ├── OccursKeywords/ │ │ │ │ │ │ ├── Converter/ │ │ │ │ │ │ │ ├── XsdMaxOccursKeywordJsonConverterTests.cs │ │ │ │ │ │ │ └── XsdMinOccursKeywordJsonConverterTests.cs │ │ │ │ │ │ └── Keyword/ │ │ │ │ │ │ ├── XsdMaxOccursKeywordTests.cs │ │ │ │ │ │ └── XsdMinOccursKeywordTests.cs │ │ │ │ │ ├── XsdNillableKeywordJsonConverterTests.cs │ │ │ │ │ ├── XsdNillableKeywordTests.cs │ │ │ │ │ ├── XsdRootElementKeywordJsonConverterTests.cs │ │ │ │ │ ├── XsdRootElementKeywordTests.cs │ │ │ │ │ ├── XsdTextKeywordJsonConverterTests.cs │ │ │ │ │ ├── XsdTextKeywordTests.cs │ │ │ │ │ ├── XsdTotalDigitsKeywordJsonConverterTests.cs │ │ │ │ │ ├── XsdTotalDigitsKeywordTests.cs │ │ │ │ │ └── XsdUnhandledEnumAttributesKeywordJsonConverterTests.cs │ │ │ │ ├── SeresConverterTests.cs │ │ │ │ └── SeresStrategyTests.cs │ │ │ ├── JsonMetadataParserTests.cs │ │ │ ├── JsonSchemaToMetamodelConverterTests.cs │ │ │ ├── JsonSchemaToXmlTests.cs │ │ │ ├── ModelSerializationDeserializationTests.cs │ │ │ ├── ModelSerializationTests.cs │ │ │ ├── Seres2JsonSchema2SeresTests.cs │ │ │ ├── Templates/ │ │ │ │ ├── GeneralJsonTemplateTests.cs │ │ │ │ └── SeresJsonTemplateTests.cs │ │ │ ├── TestDataClasses/ │ │ │ │ ├── AltinnJsonSchemaValidationTestData.cs │ │ │ │ ├── CSharpE2ERestrictionsTestData.cs │ │ │ │ ├── CSharpEnd2EndTestData.cs │ │ │ │ ├── Json2XmlTestData.cs │ │ │ │ ├── JsonAndXmlDeserializationComparisonTestData.cs │ │ │ │ ├── JsonRoundSerializationTestData.cs │ │ │ │ ├── RoundTripConversionTestData.cs │ │ │ │ ├── ValidationTestData.cs │ │ │ │ ├── Xml2JsonTestData.cs │ │ │ │ └── XmlRoundSerializationTestData.cs │ │ │ ├── Utils/ │ │ │ │ ├── JsonSchemaNavigationExtensionsTests.cs │ │ │ │ ├── RandomObjectModelGenerator.cs │ │ │ │ ├── RestrictionHelperTests.cs │ │ │ │ ├── SerializationHelper.cs │ │ │ │ ├── UrlHelperTests.cs │ │ │ │ └── XmlSchemaTypesTests.cs │ │ │ ├── XmlDeserializeSerializeTests.cs │ │ │ └── XmlSchemaToJsonTests.cs │ │ ├── Designer.Tests/ │ │ │ ├── Clients/ │ │ │ │ ├── AzureSharedContentClientTests.cs │ │ │ │ ├── Gitea/ │ │ │ │ │ └── GiteaClientTest.cs │ │ │ │ ├── LocalFileSharedContentClientTests.cs │ │ │ │ └── _snapshots/ │ │ │ │ ├── AzureSharedContentClientTests.AddIndexFile.verified.txt │ │ │ │ ├── AzureSharedContentClientTests.CreateCodeListFiles.verified.txt │ │ │ │ ├── LocalFileSharedContentClientTests.AddIndexFile.verified.txt │ │ │ │ └── LocalFileSharedContentClientTests.CreateCodeListFiles.verified.txt │ │ │ ├── Controllers/ │ │ │ │ ├── ApiTests/ │ │ │ │ │ ├── ApiTestsAuthAndCookieDelegatingHandler.cs │ │ │ │ │ ├── ApiTestsBase.cs │ │ │ │ │ ├── DbDesignerEndpointsTestsBase.cs │ │ │ │ │ ├── DesignerEndpointsTestsBase.cs │ │ │ │ │ ├── TestAuthConstants.cs │ │ │ │ │ ├── TestAuthHandler.cs │ │ │ │ │ └── TestSchemeProvider.cs │ │ │ │ ├── AppDevelopmentController/ │ │ │ │ │ ├── AddLayoutSetTests.cs │ │ │ │ │ ├── DeleteFormLayoutTests.cs │ │ │ │ │ ├── DeleteLayoutSetTests.cs │ │ │ │ │ ├── FileSync/ │ │ │ │ │ │ └── ComponentIdChangeTests/ │ │ │ │ │ │ ├── LayoutFilesSyncComponentIdsTests.cs │ │ │ │ │ │ └── LayoutSettingsFileSyncComponentIdsTests.cs │ │ │ │ │ ├── GetAppMetadataModelIdsTests.cs │ │ │ │ │ ├── GetAppVersionTests.cs │ │ │ │ │ ├── GetFormLayoutsTests.cs │ │ │ │ │ ├── GetLayoutSetsTests.cs │ │ │ │ │ ├── GetLayoutSettingsTests.cs │ │ │ │ │ ├── GetModelMetadataTests.cs │ │ │ │ │ ├── GetRuleConfigTests.cs │ │ │ │ │ ├── GetRuleHandlerTests.cs │ │ │ │ │ ├── SaveFormLayoutTests.cs │ │ │ │ │ ├── SaveLayoutSettingsTests.cs │ │ │ │ │ ├── SaveRuleConfigTests.cs │ │ │ │ │ ├── SaveRuleHandlerTests.cs │ │ │ │ │ ├── UpdateFormLayoutNameTests.cs │ │ │ │ │ ├── UpdateLayoutSetNameTests.cs │ │ │ │ │ └── _snapshots/ │ │ │ │ │ ├── AddLayoutSetTests.AddLayoutSet_TaskTypeIsPdf_AddsLayoutSetWithPdfLayoutsAndReturnsOk_errorPageLayout.verified.txt │ │ │ │ │ ├── AddLayoutSetTests.AddLayoutSet_TaskTypeIsPdf_AddsLayoutSetWithPdfLayoutsAndReturnsOk_layoutSettings.verified.txt │ │ │ │ │ └── AddLayoutSetTests.AddLayoutSet_TaskTypeIsPdf_AddsLayoutSetWithPdfLayoutsAndReturnsOk_pdfLayout.verified.txt │ │ │ │ ├── AppScopesController/ │ │ │ │ │ ├── Base/ │ │ │ │ │ │ └── AppScopesControllerTestsBase.cs │ │ │ │ │ ├── GetAppScopesTests.cs │ │ │ │ │ ├── GetScopesFromMaskinPortenTests.cs │ │ │ │ │ ├── UpsertAppScopesTests.cs │ │ │ │ │ └── Utils/ │ │ │ │ │ ├── MaskinPortenMockServerExtensions.cs │ │ │ │ │ └── TestOidcAuthHandler.cs │ │ │ │ ├── ApplicationMetadataController/ │ │ │ │ │ ├── AddMetadataForAttachmentTests.cs │ │ │ │ │ ├── CreateApplicationMetadataTests.cs │ │ │ │ │ ├── DeleteMetadataForAttachmentTests.cs │ │ │ │ │ ├── GetApplicationMetadataTests.cs │ │ │ │ │ ├── UpdateApplicationMetadataTests.cs │ │ │ │ │ └── UpdateMetadataForAttachmentTests.cs │ │ │ │ ├── AppsSyncRootController/ │ │ │ │ │ └── PublishSyncRootTests.cs │ │ │ │ ├── CanUseFeatureController/ │ │ │ │ │ └── GetCanUseFeatureTests.cs │ │ │ │ ├── ChatController/ │ │ │ │ │ ├── ChatControllerTestsBase.cs │ │ │ │ │ ├── CreateMessageTests.cs │ │ │ │ │ ├── CreateThreadTests.cs │ │ │ │ │ ├── DeleteMessageTests.cs │ │ │ │ │ ├── DeleteThreadTests.cs │ │ │ │ │ ├── GetMessagesTests.cs │ │ │ │ │ ├── GetThreadsTests.cs │ │ │ │ │ ├── ThreadOwnershipTests.cs │ │ │ │ │ └── UpdateThreadTests.cs │ │ │ │ ├── ConfigController/ │ │ │ │ │ ├── GetServiceConfigTests.cs │ │ │ │ │ ├── ServiceConfigurationUtils.cs │ │ │ │ │ └── SetServiceConfigTests.cs │ │ │ │ ├── ContactController/ │ │ │ │ │ └── FetchBelongsToOrgTests.cs │ │ │ │ ├── ContactPointsController/ │ │ │ │ │ ├── AddContactPointTests.cs │ │ │ │ │ ├── ContactPointsControllerTestsBase.cs │ │ │ │ │ ├── DeleteContactPointTests.cs │ │ │ │ │ ├── GetContactPointsTests.cs │ │ │ │ │ ├── ToggleContactPointActiveTests.cs │ │ │ │ │ └── UpdateContactPointTests.cs │ │ │ │ ├── ControlPlaneController/ │ │ │ │ │ ├── Base/ │ │ │ │ │ │ ├── ControlPlaneControllerTestsBase.cs │ │ │ │ │ │ └── MaskinportenTestAuthHandler.cs │ │ │ │ │ ├── FeatureFlagDisabledTests.cs │ │ │ │ │ └── HealthTests.cs │ │ │ │ ├── CustomTemplateController/ │ │ │ │ │ └── CustomTemplateControllerTests.cs │ │ │ │ ├── DataModelsController/ │ │ │ │ │ ├── AddXsdTests.cs │ │ │ │ │ ├── CsharpNamespaceTests.cs │ │ │ │ │ ├── DeleteDatamodelTests.cs │ │ │ │ │ ├── GetDatamodelsTests.cs │ │ │ │ │ ├── GetTests.cs │ │ │ │ │ ├── GetXsdDatamodelsTests.cs │ │ │ │ │ ├── PostTests.cs │ │ │ │ │ ├── PutDatamodelTests.cs │ │ │ │ │ ├── UseXsdFromRepoTests.cs │ │ │ │ │ └── Utils/ │ │ │ │ │ └── FileContentVerifier.cs │ │ │ │ ├── DeploymentWebhooksController/ │ │ │ │ │ └── ReceiveDeployEventTests.cs │ │ │ │ ├── DeploymentsController/ │ │ │ │ │ ├── CreateTests.cs │ │ │ │ │ ├── CreateWithGitOpsEnabledTests.cs │ │ │ │ │ ├── GetDeploymentsTests.cs │ │ │ │ │ ├── GetPermissionsTests.cs │ │ │ │ │ ├── UndeployTests.cs │ │ │ │ │ ├── UndeployWithGitOpsEnabledTests.cs │ │ │ │ │ └── Utils/ │ │ │ │ │ └── DeploymentMockServerExtensions.cs │ │ │ │ ├── FeedbackFormController/ │ │ │ │ │ ├── Base/ │ │ │ │ │ │ └── FeedbackFormControllerTestBase.cs │ │ │ │ │ ├── SendMessageToSlackTests.cs │ │ │ │ │ └── Utils/ │ │ │ │ │ └── SlackMockServerExtensions.cs │ │ │ │ ├── ImageController/ │ │ │ │ │ ├── DeleteImageTests.cs │ │ │ │ │ ├── GetAllImagesFileNamesTests.cs │ │ │ │ │ ├── GetImageByNameTests.cs │ │ │ │ │ ├── UploadImageTests.cs │ │ │ │ │ └── ValidateExternalImageUrlTests.cs │ │ │ │ ├── InternalsController/ │ │ │ │ │ └── InactivityUndeployRunTests.cs │ │ │ │ ├── OptionsController/ │ │ │ │ │ ├── DeleteOptionsTests.cs │ │ │ │ │ ├── GetOptionListsReferencesTests.cs │ │ │ │ │ ├── GetOptionsTests.cs │ │ │ │ │ ├── ImportOptionsListFromOrgTests.cs │ │ │ │ │ ├── UpdateOptionListIdTests.cs │ │ │ │ │ ├── UpdateOptionsTests.cs │ │ │ │ │ └── UploadOptionsTests.cs │ │ │ │ ├── OrgCodeListController/ │ │ │ │ │ ├── CreateCodeListTests.cs │ │ │ │ │ ├── DeleteCodeListTests.cs │ │ │ │ │ ├── GetCodeListsTests.cs │ │ │ │ │ ├── UpdateCodeListIdTests.cs │ │ │ │ │ ├── UpdateCodeListTests.cs │ │ │ │ │ └── UploadCodeListTests.cs │ │ │ │ ├── OrgContentController/ │ │ │ │ │ └── GetOrgContentReferencesTests.cs │ │ │ │ ├── OrgLibraryController/ │ │ │ │ │ ├── GetLatestCommitOnBranchTests.cs │ │ │ │ │ ├── GetPublishedResourcesTests.cs │ │ │ │ │ ├── GetSharedResourcesTests.cs │ │ │ │ │ └── UpdateSharedResourcesTests.cs │ │ │ │ ├── OrgTextController/ │ │ │ │ │ ├── CreateResourceTests.cs │ │ │ │ │ ├── GetLanguagesTests.cs │ │ │ │ │ ├── GetResourcesTests.cs │ │ │ │ │ └── UpdateResourceTests.cs │ │ │ │ ├── PolicyController/ │ │ │ │ │ ├── GetAccessPackageOptionsTests.cs │ │ │ │ │ ├── GetActionOptionsTests.cs │ │ │ │ │ ├── GetAppPolicyTests.cs │ │ │ │ │ ├── GetResourcePolicyTests.cs │ │ │ │ │ ├── GetSubjectOptionsTests.cs │ │ │ │ │ ├── TestPolicyHelper.cs │ │ │ │ │ ├── UpdateApplicationPolicyTests.cs │ │ │ │ │ ├── UpdateResourcePolicyTests.cs │ │ │ │ │ ├── ValidateAppPolicyTests.cs │ │ │ │ │ └── ValidateResourcePolicyTests.cs │ │ │ │ ├── Preview/ │ │ │ │ │ ├── DataControllerTests.cs │ │ │ │ │ └── InstancesControllerTests.cs │ │ │ │ ├── PreviewController/ │ │ │ │ │ ├── AnonymousTests.cs │ │ │ │ │ ├── ApplicationMetadataTests.cs │ │ │ │ │ ├── ApplicationSettingsTests.cs │ │ │ │ │ ├── CurrentPartyTests.cs │ │ │ │ │ ├── CurrentUserTests.cs │ │ │ │ │ ├── DatamodelTests.cs │ │ │ │ │ ├── DeleteAttachmentTests.cs │ │ │ │ │ ├── GetApplicationLanguagesTests.cs │ │ │ │ │ ├── GetFooterTests.cs │ │ │ │ │ ├── GetFormLayoutsTests.cs │ │ │ │ │ ├── GetFormLayoutsV4Tests.cs │ │ │ │ │ ├── GetImageTests.cs │ │ │ │ │ ├── GetOptionsTests.cs │ │ │ │ │ ├── GetRuleConfigurationTests.cs │ │ │ │ │ ├── GetRuleConfigurationV4Tests.cs │ │ │ │ │ ├── GetRuleHandlerTests.cs │ │ │ │ │ ├── GetRuleHandlerV4Tests.cs │ │ │ │ │ ├── InstanceForNextTaskTests.cs │ │ │ │ │ ├── KeepAliveTests.cs │ │ │ │ │ ├── LanguageTests.cs │ │ │ │ │ ├── LayoutSetsTests.cs │ │ │ │ │ ├── LayoutSettingsTests.cs │ │ │ │ │ ├── LayoutSettingsV4Tests.cs │ │ │ │ │ ├── OrganisationLookupTests.cs │ │ │ │ │ ├── PersonLookupTests.cs │ │ │ │ │ ├── PostAttachmentTests.cs │ │ │ │ │ ├── PreviewControllerTestsBase.cs │ │ │ │ │ ├── ProcessNextTests.cs │ │ │ │ │ ├── TextResourcesTests.cs │ │ │ │ │ ├── UpdateFormDataTests.cs │ │ │ │ │ ├── UpdateProcessNextTests.cs │ │ │ │ │ └── ValidateInstantiationTests.cs │ │ │ │ ├── ProcessModelingController/ │ │ │ │ │ ├── AddDataTypeToApplicationMetadataTests.cs │ │ │ │ │ ├── DeleteDataTypeFromApplicationMetadataTests.cs │ │ │ │ │ ├── FileSync/ │ │ │ │ │ │ ├── DataTypesChangeTests/ │ │ │ │ │ │ │ ├── ApplicationMetadataFileSyncDataTypesTests.cs │ │ │ │ │ │ │ └── LayoutSetsFileSyncDataTypesTests.cs │ │ │ │ │ │ └── TaskIdChangeTests/ │ │ │ │ │ │ ├── ApplicationMetadataFileSyncTaskIdTests.cs │ │ │ │ │ │ ├── LayoutFileSyncTaskIdTests.cs │ │ │ │ │ │ ├── LayoutSetsFileSyncTaskIdTests.cs │ │ │ │ │ │ └── PolicyFileSyncTaskIdTests.cs │ │ │ │ │ ├── GetProcessDefinitionTests.cs │ │ │ │ │ ├── ProcessDataTypesChangedNotifyTests.cs │ │ │ │ │ └── UpsertProcessDefinitionAndNotifyTests.cs │ │ │ │ ├── ReleasesController/ │ │ │ │ │ └── GetTests.cs │ │ │ │ ├── RepositoryController/ │ │ │ │ │ ├── BranchesTests.cs │ │ │ │ │ ├── CheckoutBranchTests.cs │ │ │ │ │ ├── ContentsTests.cs │ │ │ │ │ ├── CopyAppTests.cs │ │ │ │ │ ├── CreateAppTests.cs │ │ │ │ │ ├── CreateBranchTests.cs │ │ │ │ │ ├── DeleteBranchTests.cs │ │ │ │ │ ├── DiscardChangesTests.cs │ │ │ │ │ ├── GetCurrentBranchTests.cs │ │ │ │ │ ├── OrgReposTests.cs │ │ │ │ │ └── ResetLocalRepositoryTests.cs │ │ │ │ ├── ResourceAdminController/ │ │ │ │ │ ├── AccessListTests.cs │ │ │ │ │ ├── AddResourceTests.cs │ │ │ │ │ ├── GetAltinn2LinkServicesTests.cs │ │ │ │ │ ├── GetGetLosTermsTests.cs │ │ │ │ │ ├── GetPublishStatusByIdTests.cs │ │ │ │ │ ├── GetRepositoryResourceListTests.cs │ │ │ │ │ ├── GetRepositoryTests.cs │ │ │ │ │ ├── GetResourceByIdTests.cs │ │ │ │ │ ├── GetSectorsTests.cs │ │ │ │ │ ├── GetServicesForAccessPackageTests.cs │ │ │ │ │ ├── GetValidateResourceTests.cs │ │ │ │ │ ├── ImportResourceTests.cs │ │ │ │ │ ├── ResourceAdminControllerTestsBaseClass.cs │ │ │ │ │ └── UpdateResourceTests.cs │ │ │ │ ├── TaskNavigationController/ │ │ │ │ │ ├── GetTaskNavigationTests.cs │ │ │ │ │ └── UpdateTaskNavigationGroupTests.cs │ │ │ │ └── TextController/ │ │ │ │ ├── DeleteLanguageTests.cs │ │ │ │ ├── GetLanguagesTests.cs │ │ │ │ ├── GetResourceTests.cs │ │ │ │ ├── SaveResourceTests.cs │ │ │ │ └── UpdateTextsForKeysTests.cs │ │ │ ├── Converters/ │ │ │ │ └── NextStepTypeJsonConverterTests.cs │ │ │ ├── DbIntegrationTests/ │ │ │ │ ├── AppScopesRepository/ │ │ │ │ │ ├── GetAppScopesAsyncTests.cs │ │ │ │ │ ├── UpsertAppScopesAsyncIntegrationTests.cs │ │ │ │ │ └── Utils/ │ │ │ │ │ ├── AppScopesEntityAsserts.cs │ │ │ │ │ └── EntityGenerationUtils.cs │ │ │ │ ├── AppSettingsRepository/ │ │ │ │ │ └── UpsertAsyncIntegrationTests.cs │ │ │ │ ├── ChatRepository/ │ │ │ │ │ ├── CreateMessageAsyncTests.cs │ │ │ │ │ ├── CreateThreadAsyncTests.cs │ │ │ │ │ ├── DeleteInactiveThreadsAsyncTests.cs │ │ │ │ │ ├── DeleteMessageAsyncTests.cs │ │ │ │ │ ├── DeleteThreadAsyncTests.cs │ │ │ │ │ ├── GetMessagesAsyncTests.cs │ │ │ │ │ ├── GetThreadsAsyncTests.cs │ │ │ │ │ ├── UpdateThreadAsyncTests.cs │ │ │ │ │ └── Utils/ │ │ │ │ │ ├── ChatDesignerDbFixtureExtensions.cs │ │ │ │ │ └── EntityGenerationUtils.cs │ │ │ │ ├── ContactPointRepository/ │ │ │ │ │ └── ContactPointRepositoryIntegrationTests.cs │ │ │ │ ├── DbIntegrationTestsBase.cs │ │ │ │ ├── DeployEventRepository/ │ │ │ │ │ ├── AddAsyncTests.cs │ │ │ │ │ └── Utils/ │ │ │ │ │ └── DeployEventDesignerDbFixtureExtensions.cs │ │ │ │ ├── DeploymentEntityRepository/ │ │ │ │ │ ├── CreateIntegrationTests.cs │ │ │ │ │ ├── GetIntegrationTests.cs │ │ │ │ │ ├── GetLastDeployedTests.cs │ │ │ │ │ ├── GetPendingDecommissionTests.cs │ │ │ │ │ ├── GetSingleIntegrationTests.cs │ │ │ │ │ ├── GetSucceededTests.cs │ │ │ │ │ ├── UpdateIntegrationTests.cs │ │ │ │ │ └── Utils/ │ │ │ │ │ ├── DeploymentEntityAsserts.cs │ │ │ │ │ ├── DeploymentEntityDesignerDbFixtureExtensions.cs │ │ │ │ │ └── EntityGenerationUtils.cs │ │ │ │ ├── EntityAssertions.cs │ │ │ │ ├── EntityGenerationUtils.cs │ │ │ │ └── ReleaseEntityRepository/ │ │ │ │ ├── Base/ │ │ │ │ │ └── ReleaseEntityIntegrationTestsBase.cs │ │ │ │ ├── CreateIntegrationTests.cs │ │ │ │ ├── GetBuildStatusAndResultsFilterIntegrationTests.cs │ │ │ │ ├── GetSingleIntegrationTests.cs │ │ │ │ ├── GetSucceededReleaseFromDbIntegrationTests.cs │ │ │ │ ├── GetTopAndSortedIntegrationTests.cs │ │ │ │ ├── UpdateIntegrationTests.cs │ │ │ │ └── Utils/ │ │ │ │ ├── EntityGenerationUtils.cs │ │ │ │ ├── ReleaseEntityAsserts.cs │ │ │ │ └── ReleaseEntityDesignerDbFixtureExtensions.cs │ │ │ ├── Designer.Tests.csproj │ │ │ ├── Evaluators/ │ │ │ │ ├── CanUseFeatureEvaluatorRegistryTests.cs │ │ │ │ └── CanUseUploadDataModelEvaluatorTests.cs │ │ │ ├── Fixtures/ │ │ │ │ ├── DesignerDbCollection.cs │ │ │ │ ├── DesignerDbFixture.cs │ │ │ │ ├── DesignerDbFixtureExtensions.cs │ │ │ │ ├── GiteaAuthDelegatingHandler.cs │ │ │ │ ├── GiteaConstants.cs │ │ │ │ ├── GiteaFixture.cs │ │ │ │ ├── GiteaIntegrationTestsCollection.cs │ │ │ │ ├── GiteaWebAppApplicationFactoryFixture.cs │ │ │ │ ├── MockServerFixture.cs │ │ │ │ ├── SharedDesignerHttpClientProvider.cs │ │ │ │ ├── StudioOidcAuthDelegatingHandler.cs │ │ │ │ ├── StudioOidcGiteaFixture.cs │ │ │ │ ├── StudioOidcGiteaIntegrationTestsCollection.cs │ │ │ │ ├── StudioOidcGiteaWebAppApplicationFactoryFixture.cs │ │ │ │ ├── StudioOidcSharedDesignerHttpClientProvider.cs │ │ │ │ ├── TestDbConstants.cs │ │ │ │ ├── TestDbProvider.cs │ │ │ │ └── TestUrlsProvider.cs │ │ │ ├── GiteaIntegrationTests/ │ │ │ │ ├── GiteaIntegrationTestsBase.cs │ │ │ │ ├── RepositoryController/ │ │ │ │ │ ├── CopyAppGiteaIntegrationTests.cs │ │ │ │ │ ├── GitDiffIntegrationTests.cs │ │ │ │ │ ├── GitNotesGiteaIntegrationTests.cs │ │ │ │ │ └── RepositoryControllerGiteaIntegrationTests.cs │ │ │ │ └── UserControllerGiteaIntegrationTests.cs │ │ │ ├── GlobalSuppressions.cs │ │ │ ├── Helpers/ │ │ │ │ ├── AltinnAssembliesScannerTests.cs │ │ │ │ ├── AltinnStudioRepositoryScannerTests.cs │ │ │ │ ├── DictionaryExtensionsTests.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ ├── StringExtenionsTests.cs │ │ │ │ │ └── UriExtensionsTests.cs │ │ │ │ ├── GiteaUsernameGeneratorTests.cs │ │ │ │ ├── GuardTests.cs │ │ │ │ ├── HeadersExtensions.cs │ │ │ │ ├── InputValidatorTests.cs │ │ │ │ ├── PackageVersionHelperTests.cs │ │ │ │ ├── PolicyHelperTests.cs │ │ │ │ ├── Preview/ │ │ │ │ │ └── NugetVersionHelperTests.cs │ │ │ │ ├── WebScrapingUtils.cs │ │ │ │ └── _snapshots/ │ │ │ │ ├── PackageVersionHelperTests.TryGetPackageVersionFromCsprojFile_GivenValidCsprojFileWithPinnedVersions_ReturnsTrue_packageName=Altinn.App.Api.verified.txt │ │ │ │ ├── PackageVersionHelperTests.TryGetPackageVersionFromCsprojFile_GivenValidCsprojFile_ReturnsTrue_packageName=Altinn.App.Api.verified.txt │ │ │ │ └── PackageVersionHelperTests.TryGetPackageVersionFromCsprojFile_GivenValidCsprojFile_ReturnsTrue_packageName=NonExistingNuget.verified.txt │ │ │ ├── Hubs/ │ │ │ │ ├── EntityUpdated/ │ │ │ │ │ └── EntityUpdatedHubConnectionTests.cs │ │ │ │ ├── PreviewHubTests.cs │ │ │ │ └── Sync/ │ │ │ │ └── SyncHubConnectionTests.cs │ │ │ ├── Infrastructure/ │ │ │ │ ├── Authorization/ │ │ │ │ │ ├── AiAssistantPermissionHandlerTests.cs │ │ │ │ │ ├── BelongsToOrganizationHandlerTests.cs │ │ │ │ │ └── OrgAccessHandlerTests.cs │ │ │ │ └── GitRepository/ │ │ │ │ ├── AltinnAppGitRepositoryTests.cs │ │ │ │ ├── AltinnGitRepositoryTests.cs │ │ │ │ ├── AltinnOrgGitRepositoryTests.cs │ │ │ │ └── GitRepositoryTests.cs │ │ │ ├── Kafka/ │ │ │ │ ├── KafkaProducerTests.cs │ │ │ │ └── LocalKafkaConstants.cs │ │ │ ├── Mocks/ │ │ │ │ ├── IGiteaClientMock.cs │ │ │ │ └── ISourceControlMock.cs │ │ │ ├── Models/ │ │ │ │ ├── AltinnCoreFileTests.cs │ │ │ │ └── CodeTests.cs │ │ │ ├── ModuleInitializer.cs │ │ │ ├── Properties/ │ │ │ │ └── AssemblyInfo.cs │ │ │ ├── Scheduling/ │ │ │ │ ├── AppInactivityUndeployAppJobTests.cs │ │ │ │ ├── AppInactivityUndeployJobQueueTests.cs │ │ │ │ ├── AppInactivityUndeployPerOrgJobTests.cs │ │ │ │ ├── ChatInactivityCleanupJobTests.cs │ │ │ │ └── DeploymentPipelinePollingJobTest.cs │ │ │ ├── Services/ │ │ │ │ ├── AltinityAttachmentBufferTests.cs │ │ │ │ ├── AltinnAppServiceResourceServiceTests.cs │ │ │ │ ├── AppDevelopmentServiceTest.cs │ │ │ │ ├── AppInactivityUndeployServiceTests.cs │ │ │ │ ├── ChatServiceTests.cs │ │ │ │ ├── CustomTemplate/ │ │ │ │ │ ├── ApplyTemplateToRepositoryTests.cs │ │ │ │ │ ├── GetCustomTemplateListTests.cs │ │ │ │ │ └── ValidateTemplateManifestTests.cs │ │ │ │ ├── DeploymentServiceTest.cs │ │ │ │ ├── EnvironmentsServiceTests.cs │ │ │ │ ├── GitOps/ │ │ │ │ │ ├── GitRepoGitOpsConfigurationManagerTests/ │ │ │ │ │ │ ├── AddAppToGitOpsConfigurationTests.cs │ │ │ │ │ │ ├── AppExistsInGitOpsConfigurationTests.cs │ │ │ │ │ │ ├── DeleteLocalRepositoryTests.cs │ │ │ │ │ │ ├── EnsureGitOpsConfigurationExistsTests.cs │ │ │ │ │ │ ├── GitOpsConfigurationExistsTests.cs │ │ │ │ │ │ ├── GitRepoGitOpsConfigurationManagerTestsBase.cs │ │ │ │ │ │ ├── PersistGitOpsConfigurationTests.cs │ │ │ │ │ │ └── RemoveAppFromGitOpsEnvironmentConfigurationTests.cs │ │ │ │ │ ├── ManifestTestDataProvider.cs │ │ │ │ │ └── ScribanGitOpsManifestsRendererTests.cs │ │ │ │ ├── GiteaAuthHeadersProviderTests.cs │ │ │ │ ├── GiteaContentLibraryServiceTests.cs │ │ │ │ ├── GiteaDbStudioOidcUsernameProviderTests.cs │ │ │ │ ├── Implementation/ │ │ │ │ │ └── ApplicationMetadataServiceTest.cs │ │ │ │ ├── KubernetesDeploymentsServiceTest.cs │ │ │ │ ├── LayoutServiceTests.cs │ │ │ │ ├── OptionListReferenceServiceTests.cs │ │ │ │ ├── OptionsServiceTests.cs │ │ │ │ ├── OrgCodeListServiceTests.cs │ │ │ │ ├── OrgContentServiceTests.cs │ │ │ │ ├── OrgLibraryServiceTests.cs │ │ │ │ ├── OrgTextsServiceTests.cs │ │ │ │ ├── Preview/ │ │ │ │ │ └── DataServiceTest.cs │ │ │ │ ├── ProcessModelingServiceTests.cs │ │ │ │ ├── ReleaseServiceTest.cs │ │ │ │ ├── RepositoryServiceTests.cs │ │ │ │ ├── SchemaModelServiceTests.cs │ │ │ │ ├── SourceControlServiceTest.cs │ │ │ │ ├── StudioctlInstallScriptServiceTests.cs │ │ │ │ ├── TextResourceServiceTest.cs │ │ │ │ ├── TextsServiceTest.cs │ │ │ │ ├── UrlPolicyValidatorTests.cs │ │ │ │ ├── UserOrganizationServiceTests.cs │ │ │ │ ├── UserServiceTests.cs │ │ │ │ └── _snapshots/ │ │ │ │ ├── EnvironmentsServiceTests.GetAppClusterUri_ReturnsCorrectUri_envName=at22.verified.txt │ │ │ │ ├── EnvironmentsServiceTests.GetAppClusterUri_ReturnsCorrectUri_envName=at23.verified.txt │ │ │ │ ├── EnvironmentsServiceTests.GetAppClusterUri_ReturnsCorrectUri_envName=at24.verified.txt │ │ │ │ ├── EnvironmentsServiceTests.GetAppClusterUri_ReturnsCorrectUri_envName=production.verified.txt │ │ │ │ ├── EnvironmentsServiceTests.GetAppClusterUri_ReturnsCorrectUri_envName=tt02.verified.txt │ │ │ │ └── EnvironmentsServiceTests.GetAppClusterUri_ReturnsCorrectUri_envName=yt01.verified.txt │ │ │ ├── StudioOidcGiteaIntegrationTests/ │ │ │ │ ├── ApiKeysController/ │ │ │ │ │ ├── ApiKeyAuthStudioOidcTests.cs │ │ │ │ │ ├── CreateApiKeyStudioOidcTests.cs │ │ │ │ │ ├── ListApiKeyStudioOidcTests.cs │ │ │ │ │ └── RevokeApiKeyStudioOidcTests.cs │ │ │ │ ├── BotAccountsController/ │ │ │ │ │ ├── BotAccountApiKeysStudioOidcTests.cs │ │ │ │ │ ├── CreateBotAccountStudioOidcTests.cs │ │ │ │ │ ├── DeactivateBotAccountStudioOidcTests.cs │ │ │ │ │ ├── GetBotAccountStudioOidcTests.cs │ │ │ │ │ ├── ListBotAccountsStudioOidcTests.cs │ │ │ │ │ └── UpdateBotAccountStudioOidcTests.cs │ │ │ │ ├── RepositoryController/ │ │ │ │ │ ├── CopyAppStudioOidcTests.cs │ │ │ │ │ ├── GitDiffStudioOidcTests.cs │ │ │ │ │ ├── GitNotesStudioOidcTests.cs │ │ │ │ │ └── RepositoryControllerStudioOidcTests.cs │ │ │ │ ├── StudioOidcGiteaIntegrationTestsBase.cs │ │ │ │ ├── TokenRefreshStudioOidcTests.cs │ │ │ │ └── UserControllerStudioOidcTests.cs │ │ │ ├── TestAttributes/ │ │ │ │ ├── OsPlatformConsts.cs │ │ │ │ ├── SkipOnOsPlatformsFact.cs │ │ │ │ └── SkipOnOsPlatformsTheory.cs │ │ │ ├── TestDataClasses/ │ │ │ │ └── FormLayoutsTestData.cs │ │ │ ├── TypedHttpClients/ │ │ │ │ └── DelegatingHandlers/ │ │ │ │ ├── AzureDevOpsTokenDelegatingHandlerTests.cs │ │ │ │ └── CachingDelegatingHandlerTests.cs │ │ │ ├── Utils/ │ │ │ │ ├── AssertionUtil.cs │ │ │ │ ├── AuthenticationUtil.cs │ │ │ │ ├── AuthorizationUtil.cs │ │ │ │ ├── AzureDevopsMockServerBuildExtensions.cs │ │ │ │ ├── CommandExecutor.cs │ │ │ │ ├── TestDataHelper.cs │ │ │ │ ├── TestLockPathProvider.cs │ │ │ │ └── TestSetupUtils.cs │ │ │ └── _TestData/ │ │ │ ├── AppChangesForIntegrationTests/ │ │ │ │ └── GitDiffResponse.json │ │ │ ├── Authorization/ │ │ │ │ └── Policies/ │ │ │ │ └── Xacml/ │ │ │ │ ├── brg_rrh-innrapportering.json │ │ │ │ ├── brg_rrh-innrapportering.xml │ │ │ │ ├── dsb_uhell_med_eksplosiver.json │ │ │ │ ├── dsb_uhell_med_eksplosiver.xml │ │ │ │ ├── hmrhf_newsamhandlingsavik.json │ │ │ │ ├── hmrhf_newsamhandlingsavik.xml │ │ │ │ ├── krt_krt-1012a-1.json │ │ │ │ ├── krt_krt-1012a-1.xml │ │ │ │ ├── resource_registry_delegatableapi.xml │ │ │ │ ├── skd_mva-melding-innsending-v1.xml │ │ │ │ ├── skd_sirius_skattemelding_sit_tk.json │ │ │ │ ├── skd_sirius_skattemelding_sit_tk.xml │ │ │ │ ├── ssb_ra1000-01.json │ │ │ │ └── ssb_ra1000-01.xml │ │ │ ├── DataNorge/ │ │ │ │ ├── data-themes.json │ │ │ │ ├── eurovocs.json │ │ │ │ └── themes-and-words.json │ │ │ ├── Deployments/ │ │ │ │ ├── completedDeployments.json │ │ │ │ └── createdDeployment.json │ │ │ ├── FileSystemObjects/ │ │ │ │ └── ttd/ │ │ │ │ ├── apps-test/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── texts/ │ │ │ │ │ ├── 3e1099738e0d15490390a01c74b2abc16282d85f/ │ │ │ │ │ │ ├── directoryList.json │ │ │ │ │ │ ├── resource.en.json │ │ │ │ │ │ └── resource.nb.json │ │ │ │ │ ├── 5e651c2b784571e481c90fbf26325ce336b634b8/ │ │ │ │ │ │ ├── directoryList.json │ │ │ │ │ │ ├── resource.nb.json │ │ │ │ │ │ └── resources.en.json │ │ │ │ │ └── a69255710e6f1d1c59bef004dd36fff0c5dfd236/ │ │ │ │ │ ├── directoryList.json │ │ │ │ │ └── resource.nb.json │ │ │ │ ├── deploy-gitops-test/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ └── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── deploy-test-at22/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ └── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── deploy-test-tt02/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ └── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── gitops-app-exists/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ └── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── gitops-app-new/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ └── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── queue-build-test/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ ├── authorization/ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ └── texts/ │ │ │ │ │ └── abc123def456/ │ │ │ │ │ ├── directoryList.json │ │ │ │ │ ├── resource.en.json │ │ │ │ │ └── resource.nb.json │ │ │ │ ├── test-validchars1/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ └── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ └── test-validchars2/ │ │ │ │ └── App/ │ │ │ │ └── config/ │ │ │ │ ├── applicationmetadata.json │ │ │ │ └── authorization/ │ │ │ │ └── policy.xml │ │ │ ├── GitOps/ │ │ │ │ └── Manifests/ │ │ │ │ ├── apps/ │ │ │ │ │ ├── test-app/ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ ├── kustomize.yaml │ │ │ │ │ │ └── oci-repository.yaml │ │ │ │ │ ├── test-app-2/ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ ├── kustomize.yaml │ │ │ │ │ │ └── oci-repository.yaml │ │ │ │ │ └── test-app-3/ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ ├── kustomize.yaml │ │ │ │ │ └── oci-repository.yaml │ │ │ │ ├── base/ │ │ │ │ │ ├── altinn-studio-helm-chart.yaml │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── prod/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ └── tt02/ │ │ │ │ └── kustomization.yaml │ │ │ ├── KubernetesDeployments/ │ │ │ │ └── completedDeployments.json │ │ │ ├── ReleasesCollection/ │ │ │ │ ├── completedReleases.json │ │ │ │ ├── createdRelease.json │ │ │ │ ├── singleLaggingRelease.json │ │ │ │ └── updatedRelease.json │ │ │ ├── Remote/ │ │ │ │ └── ttd/ │ │ │ │ ├── apps-test/ │ │ │ │ │ ├── App/ │ │ │ │ │ │ ├── appsettings.json │ │ │ │ │ │ └── config/ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ └── authorization/ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ ├── App.sln │ │ │ │ │ └── gitconfig │ │ │ │ ├── deploy-gitops-test/ │ │ │ │ │ ├── App/ │ │ │ │ │ │ ├── appsettings.json │ │ │ │ │ │ └── config/ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ └── authorization/ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ ├── App.sln │ │ │ │ │ └── gitconfig │ │ │ │ └── existing-repo/ │ │ │ │ └── content.json │ │ │ ├── RepoCollection/ │ │ │ │ └── repositories.json │ │ │ ├── Repositories/ │ │ │ │ └── testUser/ │ │ │ │ └── ttd/ │ │ │ │ ├── app-for-deletion.pretest/ │ │ │ │ │ └── App.sln │ │ │ │ ├── app-with-groups-and-task-navigation/ │ │ │ │ │ └── App/ │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ ├── process/ │ │ │ │ │ │ │ └── process.bpmn │ │ │ │ │ │ └── texts/ │ │ │ │ │ │ ├── resource.en.json │ │ │ │ │ │ └── resource.nb.json │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── model.schema.json │ │ │ │ │ │ └── subform.schema.json │ │ │ │ │ └── ui/ │ │ │ │ │ ├── footer.json │ │ │ │ │ ├── form/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── age.json │ │ │ │ │ │ ├── birthday.json │ │ │ │ │ │ ├── cars.json │ │ │ │ │ │ ├── emails.json │ │ │ │ │ │ ├── extra.json │ │ │ │ │ │ ├── feedback.json │ │ │ │ │ │ ├── firstname.json │ │ │ │ │ │ ├── important.json │ │ │ │ │ │ ├── info1.json │ │ │ │ │ │ ├── info2.json │ │ │ │ │ │ ├── lastname.json │ │ │ │ │ │ └── summary.json │ │ │ │ │ ├── layout-sets.json │ │ │ │ │ └── subform/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ ├── brand.json │ │ │ │ │ ├── reg.json │ │ │ │ │ └── year.json │ │ │ │ ├── app-with-layoutsets/ │ │ │ │ │ └── App/ │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ ├── process/ │ │ │ │ │ │ │ └── process.bpmn │ │ │ │ │ │ └── texts/ │ │ │ │ │ │ └── resource.nb.json │ │ │ │ │ ├── models/ │ │ │ │ │ │ └── datamodel.schema.json │ │ │ │ │ ├── options/ │ │ │ │ │ │ └── test-options.json │ │ │ │ │ └── ui/ │ │ │ │ │ ├── footer.json │ │ │ │ │ ├── layout-sets.json │ │ │ │ │ ├── layoutSet1/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── layoutFile1InSet1.json │ │ │ │ │ │ └── layoutFile2InSet1.json │ │ │ │ │ └── layoutSet2/ │ │ │ │ │ ├── RuleConfiguration.json │ │ │ │ │ ├── RuleHandler.js │ │ │ │ │ └── layouts/ │ │ │ │ │ ├── layoutFile1InSet2.json │ │ │ │ │ └── layoutFile2InSet2.json │ │ │ │ ├── app-with-misplaced-datamodels/ │ │ │ │ │ ├── .altinnstudio/ │ │ │ │ │ │ └── settings.json │ │ │ │ │ └── App/ │ │ │ │ │ ├── model.schema.json │ │ │ │ │ └── model.xsd │ │ │ │ ├── app-with-options/ │ │ │ │ │ └── App/ │ │ │ │ │ ├── config/ │ │ │ │ │ │ └── process/ │ │ │ │ │ │ └── process.bpmn │ │ │ │ │ ├── options/ │ │ │ │ │ │ ├── options-with-null-fields.json │ │ │ │ │ │ ├── other-options.json │ │ │ │ │ │ └── test-options.json │ │ │ │ │ └── ui/ │ │ │ │ │ ├── layout-sets.json │ │ │ │ │ ├── layoutSet1/ │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── layoutWithFourCheckboxComponentsAndThreeOptionListIdRefs.json │ │ │ │ │ │ └── layoutWithOneOptionListIdRef.json │ │ │ │ │ └── layoutSet2/ │ │ │ │ │ └── layouts/ │ │ │ │ │ └── layoutWithTwoOptionListIdRefs.json │ │ │ │ ├── app-with-process/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── process/ │ │ │ │ │ └── process.bpmn │ │ │ │ ├── app-with-process-and-layoutsets/ │ │ │ │ │ └── App/ │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ └── process/ │ │ │ │ │ │ └── process.bpmn │ │ │ │ │ ├── models/ │ │ │ │ │ │ └── datamodel.schema.json │ │ │ │ │ ├── options/ │ │ │ │ │ │ └── test-options.json │ │ │ │ │ ├── texts/ │ │ │ │ │ │ └── resource.nb.json │ │ │ │ │ └── ui/ │ │ │ │ │ ├── layout-sets.json │ │ │ │ │ └── layoutSet1/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ ├── layoutFile1InSet1.json │ │ │ │ │ └── layoutFile2InSet1.json │ │ │ │ ├── app-with-resource-metadata/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ ├── app-with-summary2-components/ │ │ │ │ │ └── App/ │ │ │ │ │ └── ui/ │ │ │ │ │ ├── component/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── Side1.json │ │ │ │ │ │ └── Side2.json │ │ │ │ │ ├── component2/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── Side1.json │ │ │ │ │ │ └── Side2.json │ │ │ │ │ ├── layout/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── Side1.json │ │ │ │ │ │ └── Side2.json │ │ │ │ │ ├── layout-sets.json │ │ │ │ │ ├── layout2/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── Side1.json │ │ │ │ │ │ └── Side2.json │ │ │ │ │ ├── layoutSet/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── Side1.json │ │ │ │ │ │ └── Side2.json │ │ │ │ │ └── layoutSet2/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ ├── Side1.json │ │ │ │ │ └── Side2.json │ │ │ │ ├── app-with-summary2-components-after-deleting-references/ │ │ │ │ │ └── App/ │ │ │ │ │ └── ui/ │ │ │ │ │ ├── component/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── Side1.json │ │ │ │ │ │ └── Side2.json │ │ │ │ │ ├── component2/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── Side1.json │ │ │ │ │ │ └── Side2.json │ │ │ │ │ ├── layout/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ └── Side1.json │ │ │ │ │ ├── layout-sets.json │ │ │ │ │ ├── layout2/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── Side1.json │ │ │ │ │ │ └── Side2.json │ │ │ │ │ └── layoutSet2/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ ├── Side1.json │ │ │ │ │ └── Side2.json │ │ │ │ ├── app-with-summary2-components-after-updating-references/ │ │ │ │ │ └── App/ │ │ │ │ │ └── ui/ │ │ │ │ │ ├── component/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── Side1.json │ │ │ │ │ │ └── Side2.json │ │ │ │ │ ├── component2/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── Side1.json │ │ │ │ │ │ └── Side2.json │ │ │ │ │ ├── layout/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── Side1.json │ │ │ │ │ │ └── Side2-new.json │ │ │ │ │ ├── layout-sets.json │ │ │ │ │ ├── layout2/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── Side1.json │ │ │ │ │ │ └── Side2.json │ │ │ │ │ ├── layoutSet-new/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ ├── Side1.json │ │ │ │ │ │ └── Side2.json │ │ │ │ │ └── layoutSet2/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ ├── Side1.json │ │ │ │ │ └── Side2.json │ │ │ │ ├── app-with-wwwroot-content/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ ├── app-without-layoutsets/ │ │ │ │ │ └── App/ │ │ │ │ │ ├── config/ │ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ │ ├── models/ │ │ │ │ │ │ └── datamodel.schema.json │ │ │ │ │ └── ui/ │ │ │ │ │ ├── RuleConfiguration.json │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ ├── layoutFile1.json │ │ │ │ │ └── layoutFile2.json │ │ │ │ ├── app-without-layoutsets-mismatch-modelname/ │ │ │ │ │ └── App/ │ │ │ │ │ ├── config/ │ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ │ ├── models/ │ │ │ │ │ │ └── datamodel.schema.json │ │ │ │ │ └── ui/ │ │ │ │ │ ├── RuleConfiguration.json │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ ├── layoutFile1.json │ │ │ │ │ └── layoutFile2.json │ │ │ │ ├── apps-test/ │ │ │ │ │ ├── App/ │ │ │ │ │ │ ├── appsettings.json │ │ │ │ │ │ └── config/ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ └── authorization/ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ └── App.sln │ │ │ │ ├── apps-test-2021/ │ │ │ │ │ ├── App/ │ │ │ │ │ │ ├── appsettings.json │ │ │ │ │ │ └── config/ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ └── authorization/ │ │ │ │ │ │ └── policy.xml │ │ │ │ │ ├── App.sln │ │ │ │ │ └── gitconfig │ │ │ │ ├── convert-texts/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── texts/ │ │ │ │ │ └── resource.nb.json │ │ │ │ ├── deploy-gitops-test/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ ├── deploy-test-at22/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ ├── deploy-test-tt02/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ ├── empty-app/ │ │ │ │ │ ├── App/ │ │ │ │ │ │ └── config/ │ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ │ └── README.md │ │ │ │ ├── empty-app-pref-json/ │ │ │ │ │ ├── .altinnstudio/ │ │ │ │ │ │ └── settings.json │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ ├── empty-datamodels/ │ │ │ │ │ └── .altinnstudio/ │ │ │ │ │ └── settings.json │ │ │ │ ├── hvem-er-hvem/ │ │ │ │ │ ├── App/ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ │ └── texts/ │ │ │ │ │ │ │ ├── non.text_resource.json │ │ │ │ │ │ │ ├── resource.en.json │ │ │ │ │ │ │ └── resource.nb.json │ │ │ │ │ │ ├── config.json │ │ │ │ │ │ ├── models/ │ │ │ │ │ │ │ ├── HvemErHvem.json │ │ │ │ │ │ │ ├── HvemErHvem_ExternalTypes.schema.json │ │ │ │ │ │ │ ├── HvemErHvem_FlatNoTypes.schema.json │ │ │ │ │ │ │ ├── HvemErHvem_InternalTypes.schema.json │ │ │ │ │ │ │ ├── HvemErHvem_InternalTypes_AllOf.schema.json │ │ │ │ │ │ │ ├── HvemErHvem_SERES.json │ │ │ │ │ │ │ ├── HvemErHvem_SERES.schema.json │ │ │ │ │ │ │ ├── Kursdomene_HvemErHvem_M_2021-04-08_5742_34627_SERES.metadata.json │ │ │ │ │ │ │ ├── Kursdomene_HvemErHvem_M_2021-04-08_5742_34627_SERES.schema.json │ │ │ │ │ │ │ ├── Kursdomene_HvemErHvem_M_2021-04-08_5742_34627_SERES.xsd │ │ │ │ │ │ │ ├── innraportoer.schema.json │ │ │ │ │ │ │ ├── testModel.metadata.json │ │ │ │ │ │ │ └── testModel.xsd │ │ │ │ │ │ └── ui/ │ │ │ │ │ │ ├── Settings.json │ │ │ │ │ │ └── layouts/ │ │ │ │ │ │ └── layout.json │ │ │ │ │ └── config.json │ │ │ │ ├── invalid-texts-and-ruleconfig/ │ │ │ │ │ └── App/ │ │ │ │ │ ├── config/ │ │ │ │ │ │ └── texts/ │ │ │ │ │ │ ├── en.texts.json │ │ │ │ │ │ └── text.en.json │ │ │ │ │ └── ui/ │ │ │ │ │ └── RuleConfiguration.json │ │ │ │ ├── keys-management/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── texts/ │ │ │ │ │ ├── en.texts.json │ │ │ │ │ ├── nb.texts.json │ │ │ │ │ └── nn.texts.json │ │ │ │ ├── markdown-files/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── texts/ │ │ │ │ │ ├── md/ │ │ │ │ │ │ ├── markdown-text.uk.texts.md │ │ │ │ │ │ ├── more-markdown.nb.texts.md │ │ │ │ │ │ └── text-with-markdown.nb.texts.md │ │ │ │ │ ├── nb.texts.json │ │ │ │ │ └── uk.texts.json │ │ │ │ ├── new-texts-format/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── texts/ │ │ │ │ │ ├── md/ │ │ │ │ │ │ └── should-not-be-included-in-languages.uk.texts.md │ │ │ │ │ ├── nb.texts.json │ │ │ │ │ └── nn.texts.json │ │ │ │ ├── org-content/ │ │ │ │ │ ├── CodeListsWithTextResources/ │ │ │ │ │ │ ├── codeListBoolean.json │ │ │ │ │ │ ├── codeListMissingLabel.json │ │ │ │ │ │ ├── codeListMissingValue.json │ │ │ │ │ │ ├── codeListNumber.json │ │ │ │ │ │ ├── codeListString.json │ │ │ │ │ │ ├── codeListTrailingComma.json │ │ │ │ │ │ └── codeListWithTextResources.json │ │ │ │ │ └── Texts/ │ │ │ │ │ ├── resource.en.json │ │ │ │ │ └── resource.nb.json │ │ │ │ ├── org-content-empty/ │ │ │ │ │ └── .gitignore │ │ │ │ ├── preview-app/ │ │ │ │ │ └── App/ │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── applicationmetadata.json │ │ │ │ │ │ └── texts/ │ │ │ │ │ │ ├── resource.en.json │ │ │ │ │ │ └── resource.nb.json │ │ │ │ │ ├── models/ │ │ │ │ │ │ └── custom-dm-name.schema.json │ │ │ │ │ ├── options/ │ │ │ │ │ │ └── test-options.json │ │ │ │ │ └── ui/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ └── layout.json │ │ │ │ ├── queue-build-test/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ ├── test-validchars1/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ ├── test-validchars2/ │ │ │ │ │ └── App/ │ │ │ │ │ └── config/ │ │ │ │ │ └── applicationmetadata.json │ │ │ │ ├── ttd-datamodels/ │ │ │ │ │ ├── .altinnstudio/ │ │ │ │ │ │ └── settings.json │ │ │ │ │ └── App/ │ │ │ │ │ └── models/ │ │ │ │ │ ├── 0678.xsd │ │ │ │ │ ├── 32578.xsd │ │ │ │ │ ├── 35721.xsd │ │ │ │ │ └── 41111.xsd │ │ │ │ ├── ttd-gitops/ │ │ │ │ │ ├── apps/ │ │ │ │ │ │ ├── test-app/ │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ ├── kustomize.yaml │ │ │ │ │ │ │ └── oci-repository.yaml │ │ │ │ │ │ ├── test-app-2/ │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ ├── kustomize.yaml │ │ │ │ │ │ │ └── oci-repository.yaml │ │ │ │ │ │ └── test-app-3/ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ ├── kustomize.yaml │ │ │ │ │ │ └── oci-repository.yaml │ │ │ │ │ ├── base/ │ │ │ │ │ │ ├── altinn-studio-helm-chart.yaml │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ ├── prod/ │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ └── tt02/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── ttd-resources/ │ │ │ │ │ ├── ttdres1/ │ │ │ │ │ │ ├── ttdres1_policy.xml │ │ │ │ │ │ └── ttdres1_resource.json │ │ │ │ │ └── ttdres2/ │ │ │ │ │ ├── ttdres2_policy0.xml │ │ │ │ │ └── ttdres2_resource.json │ │ │ │ └── xyz-datamodels/ │ │ │ │ ├── .altinnstudio/ │ │ │ │ │ └── settings.json │ │ │ │ └── Studio/ │ │ │ │ └── hvem-er-hvem/ │ │ │ │ ├── HvemErHvem_ExternalTypes.schema.json │ │ │ │ ├── HvemErHvem_FlatNoTypes.schema.json │ │ │ │ ├── HvemErHvem_InternalTypes.schema.json │ │ │ │ ├── HvemErHvem_InternalTypes_AllOf.schema.json │ │ │ │ ├── HvemErHvem_SERES.schema.json │ │ │ │ └── Kursdomene_HvemErHvem_M_2021-04-08_5742_34627_SERES.schema.json │ │ │ └── Templates/ │ │ │ ├── AppCsprojTemplate.txt │ │ │ ├── AppCsprojTemplateWithoutAppLib.txt │ │ │ ├── Index.cshtml.txt │ │ │ └── IndexWithoutFrontendVersion.cshtml.txt │ │ └── SharedResources.Tests/ │ │ ├── FluentTestsBase.cs │ │ ├── JsonUtils.cs │ │ ├── SharedResources.Tests.csproj │ │ ├── SharedResourcesHelper.cs │ │ ├── Utf8StringWriter.cs │ │ └── XmlSchemaValidator.cs │ ├── compose.yaml │ ├── development/ │ │ ├── README.md │ │ ├── azure-devops-mock/ │ │ │ ├── .dockerignore │ │ │ ├── .gitignore │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── environments.json │ │ │ ├── examples/ │ │ │ │ └── build-request.json │ │ │ ├── package.json │ │ │ └── src/ │ │ │ ├── index.js │ │ │ ├── routes/ │ │ │ │ ├── apps.js │ │ │ │ ├── authentication.js │ │ │ │ ├── builds.js │ │ │ │ ├── environments.js │ │ │ │ └── storage.js │ │ │ └── utils.js │ │ ├── data/ │ │ │ └── gitea-teams.json │ │ ├── db/ │ │ │ └── init.sql │ │ ├── fake-ansattporten/ │ │ │ ├── Dockerfile │ │ │ ├── go.mod │ │ │ └── main.go │ │ ├── kafka/ │ │ │ └── compose.yaml │ │ ├── setup.js │ │ └── utils/ │ │ ├── check-if-dns-is-correct.js │ │ ├── create-cypress-env-file.js │ │ ├── ensure-dot-env.js │ │ ├── git-commit-hash.js │ │ ├── gitea-api.js │ │ ├── run-command.js │ │ ├── wait-for-healthy.js │ │ ├── wait-for.js │ │ └── write-env-file.js │ ├── frontend/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── AGENTS.md │ │ ├── CLAUDE.md │ │ ├── README.md │ │ ├── admin/ │ │ │ ├── README.md │ │ │ ├── components/ │ │ │ │ ├── IndexRedirect/ │ │ │ │ │ ├── IndexRedirect.test.tsx │ │ │ │ │ └── IndexRedirect.tsx │ │ │ │ ├── NoOrgSelected/ │ │ │ │ │ ├── NoOrgSelected.test.tsx │ │ │ │ │ └── NoOrgSelected.tsx │ │ │ │ └── NotFound/ │ │ │ │ └── NotFound.tsx │ │ │ ├── constants/ │ │ │ │ └── constants.ts │ │ │ ├── contexts/ │ │ │ │ ├── OrgContext.test.tsx │ │ │ │ └── OrgContext.tsx │ │ │ ├── features/ │ │ │ │ └── apps/ │ │ │ │ ├── components/ │ │ │ │ │ ├── Alert/ │ │ │ │ │ │ ├── Alert.module.css │ │ │ │ │ │ └── Alert.tsx │ │ │ │ │ ├── Breadcrumbs/ │ │ │ │ │ │ └── Breadcrumbs.tsx │ │ │ │ │ ├── LabelValue/ │ │ │ │ │ │ ├── LabelValue.module.css │ │ │ │ │ │ └── LabelValue.tsx │ │ │ │ │ └── TimeRangeSelect/ │ │ │ │ │ ├── TimeRangeSelect.module.css │ │ │ │ │ ├── TimeRangeSelect.test.tsx │ │ │ │ │ └── TimeRangeSelect.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ ├── queries/ │ │ │ │ │ │ ├── useAppDetailsQuery.ts │ │ │ │ │ │ ├── useAppErrorMetricsQuery.ts │ │ │ │ │ │ ├── useAppHealthMetricsQuery.ts │ │ │ │ │ │ ├── useAppInstanceDetailsQuery.ts │ │ │ │ │ │ ├── useAppInstancesQuery.ts │ │ │ │ │ │ ├── useAppMetadataQuery.ts │ │ │ │ │ │ ├── useAppMetricsQuery.ts │ │ │ │ │ │ ├── useErrorMetricsQuery.ts │ │ │ │ │ │ ├── useProcessMetadataQuery.ts │ │ │ │ │ │ └── useRunningAppsQuery.ts │ │ │ │ │ ├── useEffectEventPolyfill.ts │ │ │ │ │ ├── useEnvironmentTitle.test.ts │ │ │ │ │ ├── useEnvironmentTitle.ts │ │ │ │ │ ├── useQueryParamState.ts │ │ │ │ │ └── useReduceQueries.ts │ │ │ │ ├── layout/ │ │ │ │ │ ├── PageLayout.module.css │ │ │ │ │ └── PageLayout.tsx │ │ │ │ ├── pages/ │ │ │ │ │ ├── appDetails/ │ │ │ │ │ │ ├── AppDetails.module.css │ │ │ │ │ │ ├── AppDetails.tsx │ │ │ │ │ │ └── components/ │ │ │ │ │ │ ├── AppErrorMetric.tsx │ │ │ │ │ │ ├── AppHealthMetric.tsx │ │ │ │ │ │ ├── AppInfo.module.css │ │ │ │ │ │ ├── AppInfo.tsx │ │ │ │ │ │ ├── AppMetric.tsx │ │ │ │ │ │ ├── AppMetricPlaceholder.module.css │ │ │ │ │ │ ├── AppMetricPlaceholder.test.tsx │ │ │ │ │ │ ├── AppMetricPlaceholder.tsx │ │ │ │ │ │ ├── AppMetrics.module.css │ │ │ │ │ │ ├── AppMetrics.test.tsx │ │ │ │ │ │ └── AppMetrics.tsx │ │ │ │ │ ├── apps/ │ │ │ │ │ │ ├── Apps.tsx │ │ │ │ │ │ └── components/ │ │ │ │ │ │ ├── AppsTable.module.css │ │ │ │ │ │ ├── AppsTable.test.tsx │ │ │ │ │ │ └── AppsTable.tsx │ │ │ │ │ ├── instanceDetails/ │ │ │ │ │ │ ├── InstanceDetails.module.css │ │ │ │ │ │ ├── InstanceDetails.tsx │ │ │ │ │ │ └── components/ │ │ │ │ │ │ ├── InstanceDataView.module.css │ │ │ │ │ │ └── InstanceDataView.tsx │ │ │ │ │ └── instances/ │ │ │ │ │ ├── Instances.module.css │ │ │ │ │ ├── Instances.tsx │ │ │ │ │ └── components/ │ │ │ │ │ ├── ArchiveReferenceSearch.module.css │ │ │ │ │ ├── ArchiveReferenceSearch.tsx │ │ │ │ │ ├── InstanceStatus.module.css │ │ │ │ │ ├── InstanceStatus.tsx │ │ │ │ │ ├── InstancesTable.module.css │ │ │ │ │ ├── InstancesTable.tsx │ │ │ │ │ ├── ProcessTaskFilter.tsx │ │ │ │ │ ├── StatusFilter.module.css │ │ │ │ │ └── StatusFilter.tsx │ │ │ │ ├── types/ │ │ │ │ │ ├── InstancesResponse.ts │ │ │ │ │ ├── PublishedApplication.ts │ │ │ │ │ ├── PublishedApplicationDetails.ts │ │ │ │ │ ├── SimpleInstanceDetails.ts │ │ │ │ │ └── metrics/ │ │ │ │ │ ├── AppHealthMetric.ts │ │ │ │ │ ├── AppMetric.ts │ │ │ │ │ └── ErrorMetric.ts │ │ │ │ └── utils/ │ │ │ │ ├── apiPaths.ts │ │ │ │ ├── charts.test.ts │ │ │ │ ├── charts.ts │ │ │ │ └── formatDateAndTime.ts │ │ │ ├── hooks/ │ │ │ │ ├── useRequiredRoutePathsParams.test.ts │ │ │ │ └── useRequiredRoutePathsParams.ts │ │ │ ├── index.html │ │ │ ├── index.tsx │ │ │ ├── jest.config.js │ │ │ ├── layouts/ │ │ │ │ ├── OrgPageLayout/ │ │ │ │ │ ├── OrgPageLayout.test.tsx │ │ │ │ │ ├── OrgPageLayout.tsx │ │ │ │ │ └── WebSocketSyncWrapper/ │ │ │ │ │ ├── WebSocketSyncWrapper.test.tsx │ │ │ │ │ ├── WebSocketSyncWrapper.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── PageLayout/ │ │ │ │ ├── PageLayout.css │ │ │ │ ├── PageLayout.module.css │ │ │ │ ├── PageLayout.test.tsx │ │ │ │ └── PageLayout.tsx │ │ │ ├── package.json │ │ │ ├── routes/ │ │ │ │ ├── PageRouterErrorBoundary.tsx │ │ │ │ ├── PageRoutes.tsx │ │ │ │ ├── RoutePaths.ts │ │ │ │ ├── RoutePathsParams.ts │ │ │ │ └── routes.tsx │ │ │ ├── testing/ │ │ │ │ └── mocks.tsx │ │ │ ├── tsconfig.json │ │ │ └── vite.config.ts │ │ ├── app-development/ │ │ │ ├── README.md │ │ │ ├── components/ │ │ │ │ ├── WebSocketSyncWrapper/ │ │ │ │ │ ├── WebSocketSyncWrapper.test.tsx │ │ │ │ │ ├── WebSocketSyncWrapper.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── contexts/ │ │ │ │ ├── AppDevelopmentContext.test.tsx │ │ │ │ ├── AppDevelopmentContext.tsx │ │ │ │ ├── LayoutContext/ │ │ │ │ │ ├── LayoutContext.test.tsx │ │ │ │ │ ├── LayoutContext.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── PageHeaderContext/ │ │ │ │ │ ├── PageHeaderContext.test.tsx │ │ │ │ │ ├── PageHeaderContext.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── PreviewContext/ │ │ │ │ ├── PreviewContext.test.tsx │ │ │ │ ├── PreviewContext.tsx │ │ │ │ └── index.ts │ │ │ ├── enums/ │ │ │ │ ├── GiteaRoutePaths.ts │ │ │ │ ├── HeaderMenuGroupKey.ts │ │ │ │ ├── HeaderMenuItemKey.ts │ │ │ │ └── RoutePaths.ts │ │ │ ├── features/ │ │ │ │ ├── aiAssistant/ │ │ │ │ │ ├── AiAssistant.module.css │ │ │ │ │ ├── AiAssistant.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── FileBrowser.module.css │ │ │ │ │ │ ├── FileBrowser.tsx │ │ │ │ │ │ ├── Preview.module.css │ │ │ │ │ │ ├── Preview.test.tsx │ │ │ │ │ │ └── Preview.tsx │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── useAltinityAssistant/ │ │ │ │ │ │ │ ├── useAltinityAssistant.test.ts │ │ │ │ │ │ │ └── useAltinityAssistant.ts │ │ │ │ │ │ ├── useAltinityPermissions/ │ │ │ │ │ │ │ ├── useAltinityPermissions.test.tsx │ │ │ │ │ │ │ └── useAltinityPermissions.ts │ │ │ │ │ │ ├── useAltinityThreads/ │ │ │ │ │ │ │ ├── useAltinityThreads.test.ts │ │ │ │ │ │ │ └── useAltinityThreads.ts │ │ │ │ │ │ ├── useAltinityWebSocket/ │ │ │ │ │ │ │ └── useAltinityWebSocket.ts │ │ │ │ │ │ ├── useAltinityWorkflow/ │ │ │ │ │ │ │ ├── useAltinityWorkflow.test.tsx │ │ │ │ │ │ │ └── useAltinityWorkflow.ts │ │ │ │ │ │ └── usePreviewLayoutMetadata/ │ │ │ │ │ │ ├── usePreviewLayoutMetadata.test.ts │ │ │ │ │ │ └── usePreviewLayoutMetadata.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── utils/ │ │ │ │ │ ├── messageUtils.test.ts │ │ │ │ │ └── messageUtils.ts │ │ │ │ ├── appContentLibrary/ │ │ │ │ │ ├── AppContentLibrary.test.tsx │ │ │ │ │ ├── AppContentLibrary.tsx │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ ├── codeListTitles.ts │ │ │ │ │ │ ├── optionListDataList.ts │ │ │ │ │ │ └── textResources.ts │ │ │ │ │ └── utils/ │ │ │ │ │ ├── convertTextResourceToMutationArgs.test.ts │ │ │ │ │ ├── convertTextResourceToMutationArgs.ts │ │ │ │ │ ├── mapToCodeListDataList.test.ts │ │ │ │ │ ├── mapToCodeListDataList.ts │ │ │ │ │ ├── mapToCodeListUsages.test.ts │ │ │ │ │ └── mapToCodeListUsages.ts │ │ │ │ ├── appPublish/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── ConfirmUndeployDialog/ │ │ │ │ │ │ │ ├── ConfirmUndeployDialog.module.css │ │ │ │ │ │ │ ├── ConfirmUndeployDialog.test.tsx │ │ │ │ │ │ │ ├── ConfirmUndeployDialog.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── CreateRelease.module.css │ │ │ │ │ │ ├── CreateRelease.test.tsx │ │ │ │ │ │ ├── CreateRelease.tsx │ │ │ │ │ │ ├── Deploy/ │ │ │ │ │ │ │ ├── Deploy.test.tsx │ │ │ │ │ │ │ ├── Deploy.tsx │ │ │ │ │ │ │ ├── DeployDropdown/ │ │ │ │ │ │ │ │ ├── DeployDropdown.module.css │ │ │ │ │ │ │ │ ├── DeployDropdown.test.tsx │ │ │ │ │ │ │ │ ├── DeployDropdown.tsx │ │ │ │ │ │ │ │ ├── DeployPopover/ │ │ │ │ │ │ │ │ │ ├── DeployPopover.module.css │ │ │ │ │ │ │ │ │ ├── DeployPopover.test.tsx │ │ │ │ │ │ │ │ │ ├── DeployPopover.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── DeployMoreOptionsMenu/ │ │ │ │ │ │ │ ├── DeployMoreOptionsMenu.module.css │ │ │ │ │ │ │ ├── DeployMoreOptionsMenu.test.tsx │ │ │ │ │ │ │ └── DeployMoreOptionsMenu.tsx │ │ │ │ │ │ ├── DeploymentEnvironment.module.css │ │ │ │ │ │ ├── DeploymentEnvironment.tsx │ │ │ │ │ │ ├── DeploymentEnvironmentLogList.module.css │ │ │ │ │ │ ├── DeploymentEnvironmentLogList.test.tsx │ │ │ │ │ │ ├── DeploymentEnvironmentLogList.tsx │ │ │ │ │ │ ├── DeploymentEnvironmentStatus.module.css │ │ │ │ │ │ ├── DeploymentEnvironmentStatus.test.tsx │ │ │ │ │ │ ├── DeploymentEnvironmentStatus.tsx │ │ │ │ │ │ ├── ImageOption.ts │ │ │ │ │ │ ├── InfoCard.module.css │ │ │ │ │ │ ├── InfoCard.tsx │ │ │ │ │ │ ├── Release.module.css │ │ │ │ │ │ ├── Release.tsx │ │ │ │ │ │ ├── UndeployConsequenceDialog/ │ │ │ │ │ │ │ ├── UndeployConsequenceDialog.test.tsx │ │ │ │ │ │ │ ├── UndeployConsequenceDialog.tsx │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ ├── DialogContent.module.css │ │ │ │ │ │ │ │ ├── DialogContent.test.tsx │ │ │ │ │ │ │ │ ├── DialogContent.tsx │ │ │ │ │ │ │ │ ├── ListItemWithLink.tsx │ │ │ │ │ │ │ │ └── Section/ │ │ │ │ │ │ │ │ ├── Section.module.css │ │ │ │ │ │ │ │ ├── Section.test.tsx │ │ │ │ │ │ │ │ ├── Section.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── consequences.data.ts │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ ├── isItemWithLink.test.ts │ │ │ │ │ │ │ └── isItemWithLink.ts │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── containers/ │ │ │ │ │ │ ├── DeploymentContainer.module.css │ │ │ │ │ │ ├── DeploymentContainer.test.tsx │ │ │ │ │ │ ├── DeploymentContainer.tsx │ │ │ │ │ │ ├── ReleaseContainer.module.css │ │ │ │ │ │ ├── ReleaseContainer.test.tsx │ │ │ │ │ │ └── ReleaseContainer.tsx │ │ │ │ │ └── pages/ │ │ │ │ │ ├── DeployPage.module.css │ │ │ │ │ ├── DeployPage.test.tsx │ │ │ │ │ └── DeployPage.tsx │ │ │ │ ├── appSettings/ │ │ │ │ │ ├── AppSettings.module.css │ │ │ │ │ ├── AppSettings.test.tsx │ │ │ │ │ ├── AppSettings.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── ContentMenu/ │ │ │ │ │ │ │ ├── ContentMenu.test.tsx │ │ │ │ │ │ │ ├── ContentMenu.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── TabsContent/ │ │ │ │ │ │ ├── LoadingTabData/ │ │ │ │ │ │ │ ├── LoadingTabData.test.tsx │ │ │ │ │ │ │ ├── LoadingTabData.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── TabDataError/ │ │ │ │ │ │ │ ├── TabDataError.test.tsx │ │ │ │ │ │ │ ├── TabDataError.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── TabPageHeader/ │ │ │ │ │ │ │ ├── TabPageHeader.module.css │ │ │ │ │ │ │ ├── TabPageHeader.test.tsx │ │ │ │ │ │ │ ├── TabPageHeader.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── TabPageWrapper/ │ │ │ │ │ │ │ ├── TabPageWrapper.module.css │ │ │ │ │ │ │ ├── TabPageWrapper.test.tsx │ │ │ │ │ │ │ ├── TabPageWrapper.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Tabs/ │ │ │ │ │ │ │ ├── AboutTab/ │ │ │ │ │ │ │ │ ├── AboutTab.module.css │ │ │ │ │ │ │ │ ├── AboutTab.test.tsx │ │ │ │ │ │ │ │ ├── AboutTab.tsx │ │ │ │ │ │ │ │ ├── AppConfigForm/ │ │ │ │ │ │ │ │ │ ├── ActionButtons/ │ │ │ │ │ │ │ │ │ │ ├── ActionButtons.module.css │ │ │ │ │ │ │ │ │ │ ├── ActionButtons.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ActionButtons.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── AppConfigForm.module.css │ │ │ │ │ │ │ │ │ ├── AppConfigForm.test.tsx │ │ │ │ │ │ │ │ │ ├── AppConfigForm.tsx │ │ │ │ │ │ │ │ │ ├── AppVisibilityAndDelegationCard/ │ │ │ │ │ │ │ │ │ │ ├── AppVisibilityAndDelegationCard.module.css │ │ │ │ │ │ │ │ │ │ ├── AppVisibilityAndDelegationCard.test.tsx │ │ │ │ │ │ │ │ │ │ ├── AppVisibilityAndDelegationCard.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── ContactPointsTable/ │ │ │ │ │ │ │ │ │ │ ├── ContactPointDialog/ │ │ │ │ │ │ │ │ │ │ │ ├── ContactPointDialog.module.css │ │ │ │ │ │ │ │ │ │ │ ├── ContactPointDialog.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── ContactPointDialog.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── ContactPointTableHeader/ │ │ │ │ │ │ │ │ │ │ │ ├── ContactPointTableHeader.module.css │ │ │ │ │ │ │ │ │ │ │ ├── ContactPointTableHeader.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── ContactPointTableHeader.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── ContactPointTableRow/ │ │ │ │ │ │ │ │ │ │ │ ├── ContactPointTableRow.module.css │ │ │ │ │ │ │ │ │ │ │ ├── ContactPointTableRow.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── ContactPointTableRow.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── ContactPointsTable.module.css │ │ │ │ │ │ │ │ │ │ ├── ContactPointsTable.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ContactPointsTable.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── InputfieldsWithTranslation/ │ │ │ │ │ │ │ │ │ │ ├── InputfieldsWithTranslation.module.css │ │ │ │ │ │ │ │ │ │ ├── InputfieldsWithTranslation.test.tsx │ │ │ │ │ │ │ │ │ │ ├── InputfieldsWithTranslation.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── CreatedFor/ │ │ │ │ │ │ │ │ │ ├── CreatedFor.module.css │ │ │ │ │ │ │ │ │ ├── CreatedFor.test.tsx │ │ │ │ │ │ │ │ │ ├── CreatedFor.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── Infobox/ │ │ │ │ │ │ │ │ │ ├── Infobox.module.css │ │ │ │ │ │ │ │ │ └── Infobox.tsx │ │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ │ ├── useScrollAndFocusOnParamTarget.test.ts │ │ │ │ │ │ │ │ │ ├── useScrollAndFocusOnParamTarget.ts │ │ │ │ │ │ │ │ │ ├── useScrollIntoView.test.ts │ │ │ │ │ │ │ │ │ └── useScrollIntoView.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ │ ├── appConfigAvailableForTypeUtils.ts │ │ │ │ │ │ │ │ ├── appConfigKeywordUtils.test.ts │ │ │ │ │ │ │ │ ├── appConfigKeywordUtils.ts │ │ │ │ │ │ │ │ ├── appConfigLanguageUtils.test.ts │ │ │ │ │ │ │ │ ├── appConfigLanguageUtils.ts │ │ │ │ │ │ │ │ ├── appConfigStatusUtils.test.ts │ │ │ │ │ │ │ │ ├── appConfigStatusUtils.ts │ │ │ │ │ │ │ │ ├── appConfigValidationUtils.test.ts │ │ │ │ │ │ │ │ └── appConfigValidationUtils.ts │ │ │ │ │ │ │ ├── AccessControlTab/ │ │ │ │ │ │ │ │ ├── AccessControlTab.module.css │ │ │ │ │ │ │ │ ├── AccessControlTab.test.tsx │ │ │ │ │ │ │ │ ├── AccessControlTab.tsx │ │ │ │ │ │ │ │ ├── SelectAllowedPartyTypes/ │ │ │ │ │ │ │ │ │ ├── SelectAllowedPartyTypes.module.css │ │ │ │ │ │ │ │ │ ├── SelectAllowedPartyTypes.test.tsx │ │ │ │ │ │ │ │ │ ├── SelectAllowedPartyTypes.tsx │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── MaskinportenTab/ │ │ │ │ │ │ │ │ ├── MaskinportenTab.module.css │ │ │ │ │ │ │ │ ├── MaskinportenTab.test.tsx │ │ │ │ │ │ │ │ ├── MaskinportenTab.tsx │ │ │ │ │ │ │ │ ├── ScopeListContainer/ │ │ │ │ │ │ │ │ │ ├── LoggedInTitle/ │ │ │ │ │ │ │ │ │ │ ├── LoggedInTitle.module.css │ │ │ │ │ │ │ │ │ │ ├── LoggedInTitle.test.tsx │ │ │ │ │ │ │ │ │ │ ├── LoggedInTitle.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── NoScopesAlert/ │ │ │ │ │ │ │ │ │ │ ├── NoScopesAlert.module.css │ │ │ │ │ │ │ │ │ │ ├── NoScopesAlert.test.tsx │ │ │ │ │ │ │ │ │ │ ├── NoScopesAlert.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── ScopeList/ │ │ │ │ │ │ │ │ │ │ ├── ScopeList.module.css │ │ │ │ │ │ │ │ │ │ ├── ScopeList.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ScopeList.tsx │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ │ ├── ScopeListContainer.test.tsx │ │ │ │ │ │ │ │ │ ├── ScopeListContainer.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── PolicyTab/ │ │ │ │ │ │ │ │ ├── PolicyTab.test.tsx │ │ │ │ │ │ │ │ ├── PolicyTab.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── RunTab/ │ │ │ │ │ │ │ │ ├── RunTab.module.css │ │ │ │ │ │ │ │ ├── RunTab.test.tsx │ │ │ │ │ │ │ │ ├── RunTab.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── SetupTab/ │ │ │ │ │ │ │ ├── SetupTab.test.tsx │ │ │ │ │ │ │ ├── SetupTab.tsx │ │ │ │ │ │ │ ├── SetupTabInputFields/ │ │ │ │ │ │ │ │ ├── SetupTabInputFields.module.css │ │ │ │ │ │ │ │ ├── SetupTabInputFields.test.tsx │ │ │ │ │ │ │ │ ├── SetupTabInputFields.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── TabsContent.test.tsx │ │ │ │ │ │ ├── TabsContent.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── constants/ │ │ │ │ │ │ └── appConfigResourceType.ts │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── useAppSettingsMenuTabConfig.test.tsx │ │ │ │ │ │ ├── useAppSettingsMenuTabConfigs.tsx │ │ │ │ │ │ ├── useCurrentSettingsTab.test.ts │ │ │ │ │ │ └── useCurrentSettingsTab.ts │ │ │ │ │ ├── mocks/ │ │ │ │ │ │ ├── appConfigMock.ts │ │ │ │ │ │ └── repositoryMock.ts │ │ │ │ │ ├── types/ │ │ │ │ │ │ ├── LabelAndValue.ts │ │ │ │ │ │ ├── SettingsTabId.ts │ │ │ │ │ │ └── Translation.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── dataModelling/ │ │ │ │ │ ├── DataModelling.test.tsx │ │ │ │ │ ├── DataModelling.tsx │ │ │ │ │ ├── SchemaEditorWithToolbar/ │ │ │ │ │ │ ├── LandingPagePanel.module.css │ │ │ │ │ │ ├── LandingPagePanel.test.tsx │ │ │ │ │ │ ├── LandingPagePanel.tsx │ │ │ │ │ │ ├── SchemaEditorWithToolbar.module.css │ │ │ │ │ │ ├── SchemaEditorWithToolbar.tsx │ │ │ │ │ │ ├── SchemaGenerationErrorsPanel.module.css │ │ │ │ │ │ ├── SchemaGenerationErrorsPanel.test.tsx │ │ │ │ │ │ ├── SchemaGenerationErrorsPanel.tsx │ │ │ │ │ │ ├── SelectedSchemaEditor.test.tsx │ │ │ │ │ │ ├── SelectedSchemaEditor.tsx │ │ │ │ │ │ ├── TopToolbar/ │ │ │ │ │ │ │ ├── CreateNewWrapper/ │ │ │ │ │ │ │ │ ├── CreateNewWrapper.module.css │ │ │ │ │ │ │ │ ├── CreateNewWrapper.test.tsx │ │ │ │ │ │ │ │ ├── CreateNewWrapper.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── DeleteWrapper/ │ │ │ │ │ │ │ │ ├── DeleteWrapper.module.css │ │ │ │ │ │ │ │ ├── DeleteWrapper.test.tsx │ │ │ │ │ │ │ │ ├── DeleteWrapper.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── GenerateModelsButton/ │ │ │ │ │ │ │ │ ├── GenerateModelsButton.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── SchemaSelect/ │ │ │ │ │ │ │ │ ├── SchemaSelect.module.css │ │ │ │ │ │ │ │ ├── SchemaSelect.test.tsx │ │ │ │ │ │ │ │ ├── SchemaSelect.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── TopToolbar.module.css │ │ │ │ │ │ │ ├── TopToolbar.test.tsx │ │ │ │ │ │ │ ├── TopToolbar.tsx │ │ │ │ │ │ │ ├── XSDUpload/ │ │ │ │ │ │ │ │ ├── XSDUpload.test.tsx │ │ │ │ │ │ │ │ ├── XSDUpload.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── useValidationAlert.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ ├── validationUtils.test.ts │ │ │ │ │ │ │ └── validationUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── containers/ │ │ │ │ │ │ ├── DataModellingContainer.module.css │ │ │ │ │ │ ├── DataModellingContainer.test.tsx │ │ │ │ │ │ └── DataModellingContainer.tsx │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── useOnUnmount.test.tsx │ │ │ │ │ │ └── useOnUnmount.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── navigateToLatestCommitInGitea/ │ │ │ │ │ ├── NavigateToLatestCommitInGitea.test.tsx │ │ │ │ │ ├── NavigateToLatestCommitInGitea.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── overview/ │ │ │ │ │ └── components/ │ │ │ │ │ ├── Deployments/ │ │ │ │ │ │ ├── DeploymentContainer/ │ │ │ │ │ │ │ ├── DeploymentContainer.test.tsx │ │ │ │ │ │ │ ├── DeploymentContainer.tsx │ │ │ │ │ │ │ ├── DeploymentLogList.module.css │ │ │ │ │ │ │ ├── DeploymentLogList.test.tsx │ │ │ │ │ │ │ ├── DeploymentLogList.tsx │ │ │ │ │ │ │ ├── DeploymentStatus.module.css │ │ │ │ │ │ │ ├── DeploymentStatus.test.tsx │ │ │ │ │ │ │ ├── DeploymentStatus.tsx │ │ │ │ │ │ │ ├── DeploymentStatusList.module.css │ │ │ │ │ │ │ ├── DeploymentStatusList.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Deployments.test.tsx │ │ │ │ │ │ ├── Deployments.tsx │ │ │ │ │ │ ├── NoEnvironmentsAlert/ │ │ │ │ │ │ │ ├── NoEnviormentsAlert.test.tsx │ │ │ │ │ │ │ ├── NoEnvironmentsAlert.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── RepoOwnedByPersonInfo/ │ │ │ │ │ │ │ ├── RepoOwnedByPersonInfo.module.css │ │ │ │ │ │ │ ├── RepoOwnedByPersonInfo.test.tsx │ │ │ │ │ │ │ ├── RepoOwnedByPersonInfo.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Documentation/ │ │ │ │ │ │ ├── Documentation.module.css │ │ │ │ │ │ ├── Documentation.test.tsx │ │ │ │ │ │ ├── Documentation.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Header.tsx │ │ │ │ │ ├── Navigation/ │ │ │ │ │ │ ├── Navigation.module.css │ │ │ │ │ │ ├── Navigation.test.tsx │ │ │ │ │ │ ├── Navigation.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── News/ │ │ │ │ │ │ ├── News.module.css │ │ │ │ │ │ ├── News.test.tsx │ │ │ │ │ │ ├── News.tsx │ │ │ │ │ │ ├── NewsContent/ │ │ │ │ │ │ │ ├── news.nb.json │ │ │ │ │ │ │ └── news.schema.json │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Overview.module.css │ │ │ │ │ ├── Overview.test.tsx │ │ │ │ │ └── Overview.tsx │ │ │ │ ├── processEditor/ │ │ │ │ │ ├── ProcessEditor.test.tsx │ │ │ │ │ ├── ProcessEditor.tsx │ │ │ │ │ ├── bpmnHandlerUtils/ │ │ │ │ │ │ ├── bpmnHandlerUtils.test.ts │ │ │ │ │ │ └── bpmnHandlerUtils.ts │ │ │ │ │ └── handlers/ │ │ │ │ │ ├── OnProcessTaskAddHandler.test.ts │ │ │ │ │ ├── OnProcessTaskAddHandler.ts │ │ │ │ │ ├── OnProcessTaskRemoveHandler.test.ts │ │ │ │ │ └── OnProcessTaskRemoveHandler.ts │ │ │ │ ├── textEditor/ │ │ │ │ │ ├── TextEditor.test.tsx │ │ │ │ │ └── TextEditor.tsx │ │ │ │ └── uiEditor/ │ │ │ │ ├── UiEditor.test.tsx │ │ │ │ └── UiEditor.tsx │ │ │ ├── hooks/ │ │ │ │ ├── mutations/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useAddDataTypeToAppMetadata.test.ts │ │ │ │ │ ├── useAddDataTypeToAppMetadata.ts │ │ │ │ │ ├── useAddLanguageMutation.ts │ │ │ │ │ ├── useAddLayoutSetMutation.test.ts │ │ │ │ │ ├── useAddLayoutSetMutation.ts │ │ │ │ │ ├── useAddXsdMutation.test.ts │ │ │ │ │ ├── useAddXsdMutation.ts │ │ │ │ │ ├── useAppMetadataMutation.ts │ │ │ │ │ ├── useAppPolicyMutation.ts │ │ │ │ │ ├── useCreateDataModelMutation.ts │ │ │ │ │ ├── useCreateDeploymentMutation.ts │ │ │ │ │ ├── useCreateReleaseMutation.ts │ │ │ │ │ ├── useDeleteDataModelMutation.test.ts │ │ │ │ │ ├── useDeleteDataModelMutation.ts │ │ │ │ │ ├── useDeleteDataTypeFromAppMetadata.test.ts │ │ │ │ │ ├── useDeleteDataTypeFromAppMetadata.ts │ │ │ │ │ ├── useDeleteLanguageMutation.ts │ │ │ │ │ ├── useDeleteLayoutSetMutation.test.ts │ │ │ │ │ ├── useDeleteLayoutSetMutation.ts │ │ │ │ │ ├── useGenerateModelsMutation.ts │ │ │ │ │ ├── useImportCodeListFromOrgToAppMutation.test.ts │ │ │ │ │ ├── useImportCodeListFromOrgToAppMutation.ts │ │ │ │ │ ├── useSchemaMutation.test.ts │ │ │ │ │ ├── useSchemaMutation.ts │ │ │ │ │ ├── useTextIdMutation.ts │ │ │ │ │ ├── useUndeployMutation.test.ts │ │ │ │ │ ├── useUndeployMutation.ts │ │ │ │ │ ├── useUpdateAppSettingsMutation.ts │ │ │ │ │ ├── useUpdateLayoutSetIdMutation.test.ts │ │ │ │ │ ├── useUpdateLayoutSetIdMutation.ts │ │ │ │ │ ├── useUpdateProcessDataTypesMutation.test.ts │ │ │ │ │ ├── useUpdateProcessDataTypesMutation.ts │ │ │ │ │ ├── useUpdateSelectedMaskinportenScopesMutation.test.ts │ │ │ │ │ ├── useUpdateSelectedMaskinportenScopesMutation.ts │ │ │ │ │ ├── useUploadDataModelMutation.test.ts │ │ │ │ │ └── useUploadDataModelMutation.ts │ │ │ │ ├── queries/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useAppConfigQuery.ts │ │ │ │ │ ├── useAppDeploymentsQuery.ts │ │ │ │ │ ├── useAppPolicyQuery.ts │ │ │ │ │ ├── useAppReleasesQuery.ts │ │ │ │ │ ├── useAppSettingsQuery.ts │ │ │ │ │ ├── useAppValidationQuery.ts │ │ │ │ │ ├── useBranchStatusQuery.ts │ │ │ │ │ ├── useCanUseFeatureQuery.ts │ │ │ │ │ ├── useDeployPermissionsQuery.ts │ │ │ │ │ ├── useEnvironmentsQuery.ts │ │ │ │ │ ├── useGetAvailableOrgResourcesQuery.test.ts │ │ │ │ │ ├── useGetAvailableOrgResourcesQuery.ts │ │ │ │ │ ├── useGetScopesQuery.ts │ │ │ │ │ ├── useGetSelectedScopesQuery.ts │ │ │ │ │ ├── useLanguagesQuery.ts │ │ │ │ │ ├── useOrgListQuery.ts │ │ │ │ │ ├── useSchemaQuery.test.ts │ │ │ │ │ └── useSchemaQuery.ts │ │ │ │ └── useInvalidator.ts │ │ │ ├── index.html │ │ │ ├── index.tsx │ │ │ ├── jest.config.js │ │ │ ├── layout/ │ │ │ │ ├── App.css │ │ │ │ ├── App.module.css │ │ │ │ ├── App.tsx │ │ │ │ ├── NotFoundPage/ │ │ │ │ │ ├── NotFoundPage.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── PageHeader/ │ │ │ │ │ ├── LargeNavigationMenu/ │ │ │ │ │ │ ├── LargeNavigationMenu.module.css │ │ │ │ │ │ ├── LargeNavigationMenu.test.tsx │ │ │ │ │ │ ├── LargeNavigationMenu.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── PageHeader.test.tsx │ │ │ │ │ ├── PageHeader.tsx │ │ │ │ │ ├── SmallHeaderMenu/ │ │ │ │ │ │ ├── SmallHeaderMenu.module.css │ │ │ │ │ │ ├── SmallHeaderMenu.test.tsx │ │ │ │ │ │ ├── SmallHeaderMenu.tsx │ │ │ │ │ │ ├── SmallHeaderMenuItem/ │ │ │ │ │ │ │ ├── SmallHeaderMenuItem.module.css │ │ │ │ │ │ │ ├── SmallHeaderMenuItem.test.tsx │ │ │ │ │ │ │ ├── SmallHeaderMenuItem.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── SubHeader/ │ │ │ │ │ │ ├── PreviewButton/ │ │ │ │ │ │ │ ├── PreviewButton.module.css │ │ │ │ │ │ │ ├── PreviewButton.test.tsx │ │ │ │ │ │ │ ├── PreviewButton.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ProblemStatusIndicator/ │ │ │ │ │ │ │ ├── ProblemStatusIndicator.test.tsx │ │ │ │ │ │ │ ├── ProblemStatusIndicator.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── SettingsPageButton/ │ │ │ │ │ │ │ ├── SettingsPageButton.module.css │ │ │ │ │ │ │ ├── SettingsPageButton.test.tsx │ │ │ │ │ │ │ ├── SettingsPageButton.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── useNavigateFrom.test.ts │ │ │ │ │ │ │ └── useNavigateFrom.ts │ │ │ │ │ │ ├── SubHeader.module.css │ │ │ │ │ │ ├── SubHeader.test.tsx │ │ │ │ │ │ ├── SubHeader.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── PageLayout.test.tsx │ │ │ │ ├── PageLayout.tsx │ │ │ │ └── VersionDialog/ │ │ │ │ ├── VersionDialog.module.css │ │ │ │ ├── VersionDialog.test.tsx │ │ │ │ ├── VersionDialog.tsx │ │ │ │ ├── VersionDialogTableRow.tsx │ │ │ │ ├── useVersionStatus.test.tsx │ │ │ │ └── useVersionStatus.tsx │ │ │ ├── package.json │ │ │ ├── router/ │ │ │ │ ├── PageRouterErrorBoundry.tsx │ │ │ │ ├── PageRoutes.tsx │ │ │ │ ├── RouterErrorBoundary.test.tsx │ │ │ │ └── routes.tsx │ │ │ ├── test/ │ │ │ │ ├── applicationMetadataMock.ts │ │ │ │ ├── headerMocks.ts │ │ │ │ ├── jsonSchemaMock.ts │ │ │ │ ├── mocks.tsx │ │ │ │ ├── testUtils.tsx │ │ │ │ └── userMock.ts │ │ │ ├── tsconfig.json │ │ │ ├── types/ │ │ │ │ ├── HeaderMenu/ │ │ │ │ │ ├── HeaderMenuGroup.ts │ │ │ │ │ ├── HeaderMenuItem.ts │ │ │ │ │ ├── NavigationMenuItem.ts │ │ │ │ │ ├── NavigationMenuSmallGroup.ts │ │ │ │ │ └── NavigationMenuSmallItem.ts │ │ │ │ ├── MetadataOption.ts │ │ │ │ ├── MetadataOptionsGroup.ts │ │ │ │ └── SettingsPageTabId.ts │ │ │ ├── utils/ │ │ │ │ ├── context/ │ │ │ │ │ └── combineComponents.tsx │ │ │ │ ├── headerMenu/ │ │ │ │ │ ├── headerMenuUtils.test.ts │ │ │ │ │ ├── headerMenuUtils.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── metadataUtils.test.ts │ │ │ │ ├── metadataUtils.ts │ │ │ │ ├── policy/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── payment/ │ │ │ │ │ │ ├── PaymentPolicyBuilder.test.tsx │ │ │ │ │ │ └── PaymentPolicyBuilder.ts │ │ │ │ │ └── types.ts │ │ │ │ └── urlHelper.ts │ │ │ └── vite.config.ts │ │ ├── app-preview/ │ │ │ ├── App.css │ │ │ ├── README.md │ │ │ ├── index.html │ │ │ ├── index.tsx │ │ │ ├── jest.config.js │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── PreviewApp.module.css │ │ │ │ ├── PreviewApp.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── AppPreviewSubMenu/ │ │ │ │ │ │ ├── AppPreviewSubMenu.module.css │ │ │ │ │ │ ├── AppPreviewSubMenu.test.tsx │ │ │ │ │ │ ├── AppPreviewSubMenu.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── PreviewControlHeader/ │ │ │ │ │ │ ├── PreviewControlHeader.module.css │ │ │ │ │ │ ├── PreviewControlHeader.test.tsx │ │ │ │ │ │ ├── PreviewControlHeader.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── UserProfileMenu/ │ │ │ │ │ ├── UserProfileMenu.test.tsx │ │ │ │ │ ├── UserProfileMenu.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── hooks/ │ │ │ │ │ └── useBackToEditingHref/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useBackToEditingHref.test.tsx │ │ │ │ │ └── useBackToEditingHref.tsx │ │ │ │ └── views/ │ │ │ │ ├── LandingPage.module.css │ │ │ │ ├── LandingPage.test.tsx │ │ │ │ ├── LandingPage.tsx │ │ │ │ └── NoMatch.tsx │ │ │ ├── test/ │ │ │ │ └── mocks.tsx │ │ │ ├── tsconfig.json │ │ │ └── vite.config.ts │ │ ├── dashboard/ │ │ │ ├── README.md │ │ │ ├── app/ │ │ │ │ ├── App.css │ │ │ │ ├── App.module.css │ │ │ │ ├── App.test.tsx │ │ │ │ └── App.tsx │ │ │ ├── components/ │ │ │ │ ├── CenterContainer/ │ │ │ │ │ ├── CenterContainer.module.css │ │ │ │ │ ├── CenterContainer.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── CreateFromTemplate/ │ │ │ │ │ ├── CreateFromTemplate.test.tsx │ │ │ │ │ ├── CreateFromTemplate.tsx │ │ │ │ │ ├── TemplateDetails.test.tsx │ │ │ │ │ ├── TemplateDetails.tsx │ │ │ │ │ ├── TemplateSelector.module.css │ │ │ │ │ ├── TemplateSelector.test.tsx │ │ │ │ │ └── TemplateSelector.tsx │ │ │ │ ├── DataModelsRepoList/ │ │ │ │ │ ├── DataModelsRepoList.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── FavoriteReposList/ │ │ │ │ │ ├── FavoriteReposList.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Footer/ │ │ │ │ │ ├── Footer.module.css │ │ │ │ │ ├── Footer.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── MakeCopyModal/ │ │ │ │ │ ├── MakeCopyModal.test.tsx │ │ │ │ │ ├── MakeCopyModal.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── NewApplicationForm/ │ │ │ │ │ ├── NewApplicationForm.module.css │ │ │ │ │ ├── NewApplicationForm.test.tsx │ │ │ │ │ ├── NewApplicationForm.tsx │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── useCreateAppFormValidation.test.ts │ │ │ │ │ │ └── useCreateAppFormValidation.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── OrgRepoList/ │ │ │ │ │ ├── OrgReposList.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── RepoList/ │ │ │ │ │ ├── ActionLinks.module.css │ │ │ │ │ ├── ActionLinks.test.tsx │ │ │ │ │ ├── ActionLinks.tsx │ │ │ │ │ ├── FavoriteButton.module.css │ │ │ │ │ ├── FavoriteButton.test.tsx │ │ │ │ │ ├── FavoriteButton.tsx │ │ │ │ │ ├── RepoList.module.css │ │ │ │ │ ├── RepoList.test.tsx │ │ │ │ │ ├── RepoList.tsx │ │ │ │ │ ├── RepoNameWithLink.module.css │ │ │ │ │ ├── RepoNameWithLink.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── RepoNameInput/ │ │ │ │ │ ├── RepoNameInput.module.css │ │ │ │ │ ├── RepoNameInput.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ResourceItem/ │ │ │ │ │ ├── ResourceItem.module.css │ │ │ │ │ ├── ResourceItem.test.tsx │ │ │ │ │ ├── ResourceItem.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Resources/ │ │ │ │ │ ├── Resources.module.css │ │ │ │ │ ├── Resources.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ResourcesRepoList/ │ │ │ │ │ ├── ResourcesRepoList.test.tsx │ │ │ │ │ └── ResourcesRepoList.tsx │ │ │ │ ├── SafeErrorView/ │ │ │ │ │ ├── SafeErrorView.test.tsx │ │ │ │ │ ├── SafeErrorView.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── SearchResultReposList/ │ │ │ │ │ ├── SearchResultReposList.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── ServiceOwnerSelector/ │ │ │ │ ├── ServiceOwnerSelector.test.tsx │ │ │ │ ├── ServiceOwnerSelector.tsx │ │ │ │ └── index.ts │ │ │ ├── constants/ │ │ │ │ └── index.ts │ │ │ ├── context/ │ │ │ │ └── HeaderContext/ │ │ │ │ ├── HeaderContext.test.tsx │ │ │ │ ├── HeaderContext.tsx │ │ │ │ └── index.ts │ │ │ ├── dashboardTestUtils.tsx │ │ │ ├── data-mocks/ │ │ │ │ └── searchRepositoryResponseMock.ts │ │ │ ├── enums/ │ │ │ │ ├── HeaderMenuGroupKey.ts │ │ │ │ ├── HeaderMenuItemKey.ts │ │ │ │ ├── SelectedContextType.ts │ │ │ │ └── Subroute.ts │ │ │ ├── hooks/ │ │ │ │ ├── guards/ │ │ │ │ │ └── useContextRedirectionGuard.ts │ │ │ │ ├── mutations/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useAddRepoMutation.ts │ │ │ │ │ ├── useCopyAppMutation.ts │ │ │ │ │ ├── useSetStarredRepoMutation.ts │ │ │ │ │ └── useUnsetStarredRepoMutation.ts │ │ │ │ ├── queries/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useAvailableTemplatesForUserQuery.ts │ │ │ │ │ ├── useOrganizationsQuery.ts │ │ │ │ │ ├── useSearchReposQuery.ts │ │ │ │ │ └── useStarredReposQuery.ts │ │ │ │ ├── useAugmentReposWithStarred/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useAugmentReposWithStarred.ts │ │ │ │ ├── useOrgRepoName/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useOrgRepoName.test.ts │ │ │ │ │ └── useOrgRepoName.ts │ │ │ │ ├── usePageHeaderTitle/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── usePageHeaderTitle.test.tsx │ │ │ │ │ └── usePageHeaderTitle.tsx │ │ │ │ ├── useProfileMenuTriggerButtonText/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useProfileMenuTriggerButtonText.test.tsx │ │ │ │ │ └── useProfileMenuTriggerButtonText.tsx │ │ │ │ ├── useRepoPath/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useRepoPath.test.tsx │ │ │ │ │ └── useRepoPath.tsx │ │ │ │ ├── useReposSearch/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useRepoSearch.test.tsx │ │ │ │ │ └── useRepoSearch.ts │ │ │ │ ├── useSelectedContext/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useSelectedContext.ts │ │ │ │ └── useSubRoute/ │ │ │ │ ├── index.ts │ │ │ │ └── useSubroute.ts │ │ │ ├── index.html │ │ │ ├── index.tsx │ │ │ ├── jest.config.js │ │ │ ├── package.json │ │ │ ├── pages/ │ │ │ │ ├── CreateService/ │ │ │ │ │ ├── CreateService.module.css │ │ │ │ │ ├── CreateService.test.tsx │ │ │ │ │ ├── CreateService.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Dashboard/ │ │ │ │ │ ├── Dashboard.module.css │ │ │ │ │ ├── Dashboard.test.tsx │ │ │ │ │ ├── Dashboard.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── OrgContentLibraryPage/ │ │ │ │ │ ├── FeedbackForm/ │ │ │ │ │ │ ├── FeedbackForm.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── OrgContentLibraryPage.test.tsx │ │ │ │ │ ├── OrgContentLibraryPage.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ ├── codeListDataList.ts │ │ │ │ │ │ ├── codeLists.ts │ │ │ │ │ │ ├── sharedResourcesResponse.ts │ │ │ │ │ │ └── textResources.ts │ │ │ │ │ ├── types/ │ │ │ │ │ │ └── SharedResources.ts │ │ │ │ │ ├── usePublishCodeList/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── usePublishCodeList.test.ts │ │ │ │ │ │ └── usePublishCodeList.ts │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ ├── utils.ts │ │ │ │ │ └── validators/ │ │ │ │ │ ├── codelist.schema.v1.json │ │ │ │ │ ├── isCodeListValid.test.ts │ │ │ │ │ └── isCodelistValid.ts │ │ │ │ └── PageLayout/ │ │ │ │ ├── DashboardHeader/ │ │ │ │ │ ├── DashboardHeader.test.tsx │ │ │ │ │ ├── DashboardHeader.tsx │ │ │ │ │ ├── LargeNavigationMenu/ │ │ │ │ │ │ ├── LargeNavigationMenu.module.css │ │ │ │ │ │ ├── LargeNavigationMenu.test.tsx │ │ │ │ │ │ ├── LargeNavigationMenu.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── SmallHeaderMenu/ │ │ │ │ │ │ ├── SmallHeaderMenu.module.css │ │ │ │ │ │ ├── SmallHeaderMenu.test.tsx │ │ │ │ │ │ ├── SmallHeaderMenu.tsx │ │ │ │ │ │ ├── SmallHeaderMenuItem/ │ │ │ │ │ │ │ ├── SmallHeaderMenuItem.module.css │ │ │ │ │ │ │ ├── SmallHeaderMenuItem.test.tsx │ │ │ │ │ │ │ ├── SmallHeaderMenuItem.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── SubHeader/ │ │ │ │ │ │ ├── SubHeader.test.tsx │ │ │ │ │ │ ├── SubHeader.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── PageLayout.test.tsx │ │ │ │ ├── PageLayout.tsx │ │ │ │ └── index.ts │ │ │ ├── testing/ │ │ │ │ ├── headerContextMock.ts │ │ │ │ ├── mocks.tsx │ │ │ │ ├── organizationMock.ts │ │ │ │ └── userMock.ts │ │ │ ├── tsconfig.json │ │ │ ├── types/ │ │ │ │ ├── HeaderMenuGroup.ts │ │ │ │ ├── HeaderMenuItem.ts │ │ │ │ ├── NavigationMenuGroup.ts │ │ │ │ ├── NavigationMenuItem.ts │ │ │ │ ├── NewAppForm.ts │ │ │ │ ├── Resource.ts │ │ │ │ └── TableSortStorageKey.ts │ │ │ ├── utils/ │ │ │ │ ├── createStrictContext/ │ │ │ │ │ ├── createStrictContext.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── customTemplateUtils/ │ │ │ │ │ ├── customTemplateUtils.test.ts │ │ │ │ │ └── customTemplateUtils.ts │ │ │ │ ├── filterUtils/ │ │ │ │ │ ├── filterUtils.test.ts │ │ │ │ │ ├── filterUtils.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── headerUtils/ │ │ │ │ │ ├── headerUtils.test.ts │ │ │ │ │ ├── headerUtils.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── orgUtils/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── orgUtils.test.ts │ │ │ │ │ └── orgUtils.ts │ │ │ │ ├── repoUtils/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── repoUtils.test.ts │ │ │ │ │ └── repoUtils.ts │ │ │ │ ├── urlUtils/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── urlUtils.test.ts │ │ │ │ │ └── urlUtils.ts │ │ │ │ └── userUtils/ │ │ │ │ ├── index.ts │ │ │ │ ├── userUtils.test.ts │ │ │ │ └── userUtils.ts │ │ │ └── vite.config.ts │ │ ├── declaration.d.ts │ │ ├── jest.config.js │ │ ├── language/ │ │ │ ├── README.md │ │ │ ├── language.test.ts │ │ │ ├── package.json │ │ │ ├── sort-keys.js │ │ │ ├── src/ │ │ │ │ ├── en.json │ │ │ │ └── nb.json │ │ │ └── type.ts │ │ ├── libs/ │ │ │ ├── studio-assistant/ │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── README.md │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ └── src/ │ │ │ │ ├── Assistant/ │ │ │ │ │ ├── Assistant.test.tsx │ │ │ │ │ └── Assistant.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── ChatColumn/ │ │ │ │ │ │ ├── ChatAvatar/ │ │ │ │ │ │ │ ├── ChatAvatar.module.css │ │ │ │ │ │ │ ├── ChatAvatar.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ChatColumn.module.css │ │ │ │ │ │ ├── ChatColumn.test.tsx │ │ │ │ │ │ ├── ChatColumn.tsx │ │ │ │ │ │ ├── Messages/ │ │ │ │ │ │ │ ├── Messages.module.css │ │ │ │ │ │ │ ├── Messages.test.tsx │ │ │ │ │ │ │ ├── Messages.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── UserInput/ │ │ │ │ │ │ │ ├── UserInput.module.css │ │ │ │ │ │ │ ├── UserInput.test.tsx │ │ │ │ │ │ │ ├── UserInput.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── CompactInterface/ │ │ │ │ │ │ ├── CompactInterface.module.css │ │ │ │ │ │ ├── CompactInterface.test.tsx │ │ │ │ │ │ └── CompactInterface.tsx │ │ │ │ │ ├── CompleteInterface/ │ │ │ │ │ │ ├── CompleteInterface.module.css │ │ │ │ │ │ ├── CompleteInterface.test.tsx │ │ │ │ │ │ └── CompleteInterface.tsx │ │ │ │ │ ├── HeadingBar/ │ │ │ │ │ │ ├── HeadingBar.module.css │ │ │ │ │ │ ├── HeadingBar.test.tsx │ │ │ │ │ │ └── HeadingBar.tsx │ │ │ │ │ ├── ThreadColumn/ │ │ │ │ │ │ ├── AboutAssistantDialog/ │ │ │ │ │ │ │ ├── AboutAssistantDialog.test.tsx │ │ │ │ │ │ │ ├── AboutAssistantDialog.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ThreadColumn.module.css │ │ │ │ │ │ ├── ThreadColumn.test.tsx │ │ │ │ │ │ ├── ThreadColumn.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ThreadColumnCollapsed/ │ │ │ │ │ │ ├── ThreadColumnCollapsed.module.css │ │ │ │ │ │ ├── ThreadColumnCollapsed.test.tsx │ │ │ │ │ │ └── ThreadColumnCollapsed.tsx │ │ │ │ │ └── ToolColumn/ │ │ │ │ │ ├── ToolColumn.module.css │ │ │ │ │ ├── ToolColumn.test.tsx │ │ │ │ │ ├── ToolColumn.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── mocks/ │ │ │ │ │ ├── mockChatThreads.ts │ │ │ │ │ └── mockTexts.ts │ │ │ │ ├── types/ │ │ │ │ │ ├── AssistantConfig.ts │ │ │ │ │ ├── AssistantTexts.ts │ │ │ │ │ ├── ChatThread.ts │ │ │ │ │ ├── ConnectionStatus.ts │ │ │ │ │ ├── MessageAuthor.ts │ │ │ │ │ ├── ToolColumnMode.ts │ │ │ │ │ ├── User.ts │ │ │ │ │ └── WorkflowStatus.ts │ │ │ │ └── utils/ │ │ │ │ ├── messageUtils.test.ts │ │ │ │ ├── messageUtils.ts │ │ │ │ ├── threadUtils.test.ts │ │ │ │ └── threadUtils.ts │ │ │ ├── studio-browser-storage/ │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── CookieStorage/ │ │ │ │ │ │ ├── CookieSerializer.test.ts │ │ │ │ │ │ ├── CookieSerializer.ts │ │ │ │ │ │ ├── CookieStorage.test.ts │ │ │ │ │ │ ├── CookieStorage.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ └── index.ts │ │ │ │ └── tsconfig.json │ │ │ ├── studio-components/ │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── .storybook/ │ │ │ │ │ ├── main.ts │ │ │ │ │ ├── manager.ts │ │ │ │ │ ├── preview-head.html │ │ │ │ │ ├── preview.tsx │ │ │ │ │ └── studioTheme.ts │ │ │ │ ├── README.md │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── Overview.mdx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── StudioActionCard/ │ │ │ │ │ │ │ ├── StudioActionCard.module.css │ │ │ │ │ │ │ ├── StudioActionCard.stories.tsx │ │ │ │ │ │ │ ├── StudioActionCard.test.tsx │ │ │ │ │ │ │ ├── StudioActionCard.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioActionCloseButton/ │ │ │ │ │ │ │ ├── StudioActionCloseButton.stories.tsx │ │ │ │ │ │ │ ├── StudioActionCloseButton.test.tsx │ │ │ │ │ │ │ ├── StudioActionCloseButton.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioAlert/ │ │ │ │ │ │ │ ├── StudioAlert.test.tsx │ │ │ │ │ │ │ ├── StudioAlert.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioAnimateHeight/ │ │ │ │ │ │ │ ├── StudioAnimateHeight.mdx │ │ │ │ │ │ │ ├── StudioAnimateHeight.module.css │ │ │ │ │ │ │ ├── StudioAnimateHeight.stories.tsx │ │ │ │ │ │ │ ├── StudioAnimateHeight.test.tsx │ │ │ │ │ │ │ ├── StudioAnimateHeight.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioAvatar/ │ │ │ │ │ │ │ ├── StudioAvatar.module.css │ │ │ │ │ │ │ ├── StudioAvatar.stories.tsx │ │ │ │ │ │ │ ├── StudioAvatar.test.tsx │ │ │ │ │ │ │ ├── StudioAvatar.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioBanner/ │ │ │ │ │ │ │ ├── StudioBanner.module.css │ │ │ │ │ │ │ ├── StudioBanner.stories.tsx │ │ │ │ │ │ │ ├── StudioBanner.test.tsx │ │ │ │ │ │ │ ├── StudioBanner.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioBlobDownloader/ │ │ │ │ │ │ │ ├── StudioBlobDownloader.mdx │ │ │ │ │ │ │ ├── StudioBlobDownloader.stories.tsx │ │ │ │ │ │ │ ├── StudioBlobDownloader.test.tsx │ │ │ │ │ │ │ ├── StudioBlobDownloader.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioBooleanToggleGroup/ │ │ │ │ │ │ │ ├── StudioBooleanToggleGroup.stories.tsx │ │ │ │ │ │ │ ├── StudioBooleanToggleGroup.test.tsx │ │ │ │ │ │ │ ├── StudioBooleanToggleGroup.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioBreadcrumbs/ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioButton/ │ │ │ │ │ │ │ ├── StudioButton.module.css │ │ │ │ │ │ │ ├── StudioButton.stories.tsx │ │ │ │ │ │ │ ├── StudioButton.test.tsx │ │ │ │ │ │ │ ├── StudioButton.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioCallToActionBar/ │ │ │ │ │ │ │ ├── StudioCallToActionBar.module.css │ │ │ │ │ │ │ ├── StudioCallToActionBar.stories.tsx │ │ │ │ │ │ │ ├── StudioCallToActionBar.test.tsx │ │ │ │ │ │ │ ├── StudioCallToActionBar.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioCard/ │ │ │ │ │ │ │ ├── Block.tsx │ │ │ │ │ │ │ ├── StudioCard.stories.tsx │ │ │ │ │ │ │ ├── StudioCard.test.tsx │ │ │ │ │ │ │ ├── StudioCard.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioCenter/ │ │ │ │ │ │ │ ├── StudioCenter.module.css │ │ │ │ │ │ │ ├── StudioCenter.stories.tsx │ │ │ │ │ │ │ ├── StudioCenter.test.tsx │ │ │ │ │ │ │ ├── StudioCenter.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioCheckbox/ │ │ │ │ │ │ │ ├── StudioCheckbox.test.tsx │ │ │ │ │ │ │ ├── StudioCheckbox.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioCheckboxGroup/ │ │ │ │ │ │ │ ├── StudioCheckboxGroup.stories.tsx │ │ │ │ │ │ │ ├── StudioCheckboxGroup.test.tsx │ │ │ │ │ │ │ ├── StudioCheckboxGroup.tsx │ │ │ │ │ │ │ ├── StudioCheckboxGroupError.tsx │ │ │ │ │ │ │ ├── StudioCheckboxGroupItem.tsx │ │ │ │ │ │ │ ├── StudioGetCheckboxProps.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── useStudioCheckboxGroup.ts │ │ │ │ │ │ ├── StudioCheckboxTable/ │ │ │ │ │ │ │ ├── StudioCheckboxTable.mdx │ │ │ │ │ │ │ ├── StudioCheckboxTable.module.css │ │ │ │ │ │ │ ├── StudioCheckboxTable.stories.tsx │ │ │ │ │ │ │ ├── StudioCheckboxTable.test.tsx │ │ │ │ │ │ │ ├── StudioCheckboxTable.tsx │ │ │ │ │ │ │ ├── StudioCheckboxTableBody/ │ │ │ │ │ │ │ │ ├── StudioCheckboxTableBody.test.tsx │ │ │ │ │ │ │ │ ├── StudioCheckboxTableBody.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioCheckboxTableContext/ │ │ │ │ │ │ │ │ ├── StudioCheckboxTableContext.test.tsx │ │ │ │ │ │ │ │ ├── StudioCheckboxTableContext.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioCheckboxTableHead/ │ │ │ │ │ │ │ │ ├── StudioCheckboxTableHead.test.tsx │ │ │ │ │ │ │ │ ├── StudioCheckboxTableHead.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioCheckboxTableRow/ │ │ │ │ │ │ │ │ ├── StudioCheckboxTableRow.test.tsx │ │ │ │ │ │ │ │ ├── StudioCheckboxTableRow.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── constants/ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── hook/ │ │ │ │ │ │ │ │ ├── useStudioCheckboxTable.test.ts │ │ │ │ │ │ │ │ └── useStudioCheckboxTable.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── types/ │ │ │ │ │ │ │ └── StudioGetCheckboxProps.ts │ │ │ │ │ │ ├── StudioCodeFragment/ │ │ │ │ │ │ │ ├── StudioCodeFragment.module.css │ │ │ │ │ │ │ ├── StudioCodeFragment.stories.tsx │ │ │ │ │ │ │ ├── StudioCodeFragment.test.tsx │ │ │ │ │ │ │ ├── StudioCodeFragment.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioCodeListEditor/ │ │ │ │ │ │ │ ├── StudioCodeListEditor.module.css │ │ │ │ │ │ │ ├── StudioCodeListEditor.stories.tsx │ │ │ │ │ │ │ ├── StudioCodeListEditor.test.tsx │ │ │ │ │ │ │ ├── StudioCodeListEditor.tsx │ │ │ │ │ │ │ ├── StudioCodeListEditorContext.tsx │ │ │ │ │ │ │ ├── StudioCodeListEditorRow/ │ │ │ │ │ │ │ │ ├── StudioCodeListEditorRow.module.css │ │ │ │ │ │ │ │ ├── StudioCodeListEditorRow.tsx │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ │ └── CodeListItemTextProperty.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ │ │ ├── codeList.ts │ │ │ │ │ │ │ │ └── texts.ts │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ ├── CodeList.ts │ │ │ │ │ │ │ │ ├── CodeListEditorTexts.ts │ │ │ │ │ │ │ │ ├── CodeListItem.ts │ │ │ │ │ │ │ │ ├── ValueError.ts │ │ │ │ │ │ │ │ └── ValueErrorMap.ts │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ ├── utils.ts │ │ │ │ │ │ │ └── validation/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── validation.test.ts │ │ │ │ │ │ │ └── validation.ts │ │ │ │ │ │ ├── StudioConfigCard/ │ │ │ │ │ │ │ ├── StudioConfigCard.module.css │ │ │ │ │ │ │ ├── StudioConfigCard.stories.tsx │ │ │ │ │ │ │ ├── StudioConfigCard.test.tsx │ │ │ │ │ │ │ ├── StudioConfigCard.tsx │ │ │ │ │ │ │ ├── StudioConfigCardBody/ │ │ │ │ │ │ │ │ ├── StudioConfigCardBody.module.css │ │ │ │ │ │ │ │ └── StudioConfigCardBody.tsx │ │ │ │ │ │ │ ├── StudioConfigCardFooter/ │ │ │ │ │ │ │ │ ├── StudioConfigCardFooter.module.css │ │ │ │ │ │ │ │ ├── StudioConfigCardFooter.test.tsx │ │ │ │ │ │ │ │ └── StudioConfigCardFooter.tsx │ │ │ │ │ │ │ ├── StudioConfigCardHeader/ │ │ │ │ │ │ │ │ ├── StudioConfigCardHeader.module.css │ │ │ │ │ │ │ │ ├── StudioConfigCardHeader.test.tsx │ │ │ │ │ │ │ │ └── StudioConfigCardHeader.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioContentMenu/ │ │ │ │ │ │ │ ├── StudioContentMenu.module.css │ │ │ │ │ │ │ ├── StudioContentMenu.stories.tsx │ │ │ │ │ │ │ ├── StudioContentMenu.test.tsx │ │ │ │ │ │ │ ├── StudioContentMenuBase.tsx │ │ │ │ │ │ │ ├── StudioContentMenuButtonTab/ │ │ │ │ │ │ │ │ ├── StudioContentMenuButtonTab.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioContentMenuDynamic.tsx │ │ │ │ │ │ │ ├── StudioContentMenuLinkTab/ │ │ │ │ │ │ │ │ ├── StudioContentMenuLinkTab.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioContentMenuStoryExample.module.css │ │ │ │ │ │ │ ├── StudioContentMenuStoryExample.tsx │ │ │ │ │ │ │ ├── StudioMenuTab/ │ │ │ │ │ │ │ │ ├── StudioMenuTab.module.css │ │ │ │ │ │ │ │ ├── StudioMenuTab.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── context/ │ │ │ │ │ │ │ │ ├── StudioContentMenuContext.test.tsx │ │ │ │ │ │ │ │ └── StudioContentMenuContext.tsx │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ ├── useTabProps.module.css │ │ │ │ │ │ │ │ └── useTabProps.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ ├── dom-utils.test.tsx │ │ │ │ │ │ │ └── dom-utils.ts │ │ │ │ │ │ ├── StudioDecimalInput/ │ │ │ │ │ │ │ ├── StudioDecimalInput.stories.tsx │ │ │ │ │ │ │ ├── StudioDecimalInput.test.tsx │ │ │ │ │ │ │ ├── StudioDecimalInput.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ ├── StudioDeleteButton/ │ │ │ │ │ │ │ ├── StudioDeleteButton.mdx │ │ │ │ │ │ │ ├── StudioDeleteButton.stories.tsx │ │ │ │ │ │ │ ├── StudioDeleteButton.test.tsx │ │ │ │ │ │ │ ├── StudioDeleteButton.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioDetails/ │ │ │ │ │ │ │ ├── StudioDetails.stories.tsx │ │ │ │ │ │ │ ├── StudioDetails.test.tsx │ │ │ │ │ │ │ ├── StudioDetails.tsx │ │ │ │ │ │ │ ├── StudioDetailsContent.tsx │ │ │ │ │ │ │ ├── StudioDetailsSummary.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioDialog/ │ │ │ │ │ │ │ ├── StudioDialog.stories.tsx │ │ │ │ │ │ │ ├── StudioDialog.test.tsx │ │ │ │ │ │ │ ├── StudioDialog.tsx │ │ │ │ │ │ │ ├── StudioDialogBlock/ │ │ │ │ │ │ │ │ ├── StudioDialogBlock.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioDialogTrigger/ │ │ │ │ │ │ │ │ ├── StudioDialogTrigger.test.tsx │ │ │ │ │ │ │ │ ├── StudioDialogTrigger.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioDialogTriggerContext/ │ │ │ │ │ │ │ │ ├── StudioDialogTriggerContext.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioDisplayTile/ │ │ │ │ │ │ │ ├── StudioDisplayTile.mdx │ │ │ │ │ │ │ ├── StudioDisplayTile.module.css │ │ │ │ │ │ │ ├── StudioDisplayTile.stories.tsx │ │ │ │ │ │ │ ├── StudioDisplayTile.test.tsx │ │ │ │ │ │ │ ├── StudioDisplayTile.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioDivider/ │ │ │ │ │ │ │ ├── StudioDivider.stories.tsx │ │ │ │ │ │ │ ├── StudioDivider.test.tsx │ │ │ │ │ │ │ ├── StudioDivider.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioDragAndDrop/ │ │ │ │ │ │ │ ├── StudioDragAndDrop.stories.tsx │ │ │ │ │ │ │ ├── StudioDragAndDropList/ │ │ │ │ │ │ │ │ ├── StudioDragAndDropList.module.css │ │ │ │ │ │ │ │ ├── StudioDragAndDropList.test.tsx │ │ │ │ │ │ │ │ ├── StudioDragAndDropList.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioDragAndDropListItem/ │ │ │ │ │ │ │ │ ├── StudioDragAndDropListItem.module.css │ │ │ │ │ │ │ │ ├── StudioDragAndDropListItem.test.tsx │ │ │ │ │ │ │ │ ├── StudioDragAndDropListItem.tsx │ │ │ │ │ │ │ │ ├── StudioDragAndDropListItemContext.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioDragAndDropNewItem/ │ │ │ │ │ │ │ │ ├── StudioDragAndDropNewItem.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioDragAndDropProvider/ │ │ │ │ │ │ │ │ ├── StudioDragAndDropProvider.tsx │ │ │ │ │ │ │ │ ├── StudioDragAndDropRootContext.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ ├── useDomSelectors.test.tsx │ │ │ │ │ │ │ │ ├── useDomSelectors.ts │ │ │ │ │ │ │ │ ├── useGapValue.test.tsx │ │ │ │ │ │ │ │ ├── useGapValue.ts │ │ │ │ │ │ │ │ ├── useIsParentDisabled.test.tsx │ │ │ │ │ │ │ │ ├── useIsParentDisabled.ts │ │ │ │ │ │ │ │ ├── useOnDrop.test.tsx │ │ │ │ │ │ │ │ ├── useOnDrop.ts │ │ │ │ │ │ │ │ ├── useParentId.test.tsx │ │ │ │ │ │ │ │ └── useParentId.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── testUtils/ │ │ │ │ │ │ │ │ └── dataTestIds.ts │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ ├── dndUtils.test.ts │ │ │ │ │ │ │ ├── dndUtils.ts │ │ │ │ │ │ │ ├── domUtils.test.tsx │ │ │ │ │ │ │ └── domUtils.ts │ │ │ │ │ │ ├── StudioDragAndDropTree/ │ │ │ │ │ │ │ ├── StudioDragAndDropTree.stories.tsx │ │ │ │ │ │ │ ├── StudioDragAndDropTree.test.tsx │ │ │ │ │ │ │ ├── StudioDragAndDropTreeItem/ │ │ │ │ │ │ │ │ ├── StudioDragAndDropTreeItem.module.css │ │ │ │ │ │ │ │ ├── StudioDragAndDropTreeItem.test.tsx │ │ │ │ │ │ │ │ ├── StudioDragAndDropTreeItem.tsx │ │ │ │ │ │ │ │ ├── StudioDragAndDropTreeItemContext.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioDragAndDropTreeProvider/ │ │ │ │ │ │ │ │ ├── StudioDragAndDropTreeProvider.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioDragAndDropTreeRoot/ │ │ │ │ │ │ │ │ ├── StudioDragAndDropTreeRoot.test.tsx │ │ │ │ │ │ │ │ ├── StudioDragAndDropTreeRoot.tsx │ │ │ │ │ │ │ │ ├── StudioDragAndDropTreeRootContext.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioEmptyList/ │ │ │ │ │ │ │ │ ├── StudioEmptyList.module.css │ │ │ │ │ │ │ │ ├── StudioEmptyList.test.tsx │ │ │ │ │ │ │ │ ├── StudioEmptyList.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioDropdown/ │ │ │ │ │ │ │ ├── StudioDropdown.stories.tsx │ │ │ │ │ │ │ ├── StudioDropdown.test.tsx │ │ │ │ │ │ │ ├── StudioDropdown.tsx │ │ │ │ │ │ │ ├── StudioDropdownButton/ │ │ │ │ │ │ │ │ ├── StudioDropdownButton.module.css │ │ │ │ │ │ │ │ ├── StudioDropdownButton.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioDropdownFileUploaderButton/ │ │ │ │ │ │ │ │ ├── StudioDropdownFileUploaderButton.module.css │ │ │ │ │ │ │ │ ├── StudioDropdownFileUploaderButton.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioDropdownHeading/ │ │ │ │ │ │ │ │ ├── StudioDropdownHeading.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioDropdownItem/ │ │ │ │ │ │ │ │ ├── StudioDropdownItem.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioDropdownList/ │ │ │ │ │ │ │ │ ├── StudioDropdownList.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── context/ │ │ │ │ │ │ │ │ ├── StudioDropdownContext.test.tsx │ │ │ │ │ │ │ │ └── StudioDropdownContext.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioError/ │ │ │ │ │ │ │ ├── StudioError.test.tsx │ │ │ │ │ │ │ ├── StudioError.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioErrorSummary/ │ │ │ │ │ │ │ ├── StudioErrorSummary.test.tsx │ │ │ │ │ │ │ ├── StudioErrorSummary.tsx │ │ │ │ │ │ │ ├── StudioErrorSummaryHeading.tsx │ │ │ │ │ │ │ ├── StudioErrorSummaryItem.tsx │ │ │ │ │ │ │ ├── StudioErrorSummaryLink.tsx │ │ │ │ │ │ │ ├── StudioErrorSummaryList.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioExpression/ │ │ │ │ │ │ │ ├── SimplifiedEditor/ │ │ │ │ │ │ │ │ ├── BooleanEditor/ │ │ │ │ │ │ │ │ │ ├── BooleanEditor.module.css │ │ │ │ │ │ │ │ │ ├── BooleanEditor.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── InternalFormatEditor.tsx │ │ │ │ │ │ │ │ ├── LogicalExpressionEditor/ │ │ │ │ │ │ │ │ │ ├── LogicalExpressionEditor.module.css │ │ │ │ │ │ │ │ │ ├── LogicalExpressionEditor.tsx │ │ │ │ │ │ │ │ │ ├── LogicalOperatorToggle/ │ │ │ │ │ │ │ │ │ │ ├── LogicalOperatorToggle.module.css │ │ │ │ │ │ │ │ │ │ ├── LogicalOperatorToggle.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── OperatorBetweenSubexpressions/ │ │ │ │ │ │ │ │ │ │ ├── OperatorBetweenSubexpressions.module.css │ │ │ │ │ │ │ │ │ │ ├── OperatorBetweenSubexpressions.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── SubExpression/ │ │ │ │ │ │ │ │ │ │ ├── RelationalOperatorSelector/ │ │ │ │ │ │ │ │ │ │ │ ├── RelationalOperatorSelector.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── SubExpressionErrors/ │ │ │ │ │ │ │ │ │ │ │ ├── SubexpressionErrors.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── SubexpressionErrors.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── SubExpressionToolbar/ │ │ │ │ │ │ │ │ │ │ │ ├── SubexpressionToolbar.module.css │ │ │ │ │ │ │ │ │ │ │ ├── SubexpressionToolbar.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── SubExpressionValueSelector/ │ │ │ │ │ │ │ │ │ │ │ ├── SubExpressionValueContentInput/ │ │ │ │ │ │ │ │ │ │ │ │ ├── BooleanInput.tsx │ │ │ │ │ │ │ │ │ │ │ │ ├── ComponentIdSelector.tsx │ │ │ │ │ │ │ │ │ │ │ │ ├── DataModelPointerSelector.tsx │ │ │ │ │ │ │ │ │ │ │ │ ├── GatewayActionSelector.tsx │ │ │ │ │ │ │ │ │ │ │ │ ├── InstanceContextKeySelector.tsx │ │ │ │ │ │ │ │ │ │ │ │ ├── NumberInput.tsx │ │ │ │ │ │ │ │ │ │ │ │ ├── Props.ts │ │ │ │ │ │ │ │ │ │ │ │ ├── StringInput.tsx │ │ │ │ │ │ │ │ │ │ │ │ ├── SubexpressionValueContentInput.tsx │ │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ │ ├── SubExpressionValueReadonly/ │ │ │ │ │ │ │ │ │ │ │ │ ├── SubexpressionValueReadonly.module.css │ │ │ │ │ │ │ │ │ │ │ │ ├── SubexpressionValueReadonly.tsx │ │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ │ ├── SubExpressionValueTypeSelector/ │ │ │ │ │ │ │ │ │ │ │ │ ├── SubexpressionValueTypeSelector.tsx │ │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ │ ├── SubexpressionValueSelector.module.css │ │ │ │ │ │ │ │ │ │ │ ├── SubexpressionValueSelector.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── SubexpressionValueSelector.tsx │ │ │ │ │ │ │ │ │ │ │ ├── getDefaultValueOfType/ │ │ │ │ │ │ │ │ │ │ │ │ ├── getDefaultValueOfType.test.ts │ │ │ │ │ │ │ │ │ │ │ │ ├── getDefaultValueOfType.ts │ │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── Subexpression.module.css │ │ │ │ │ │ │ │ │ │ ├── Subexpression.tsx │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ │ │ │ ├── changeSubexpressionUtils.test.ts │ │ │ │ │ │ │ │ │ │ ├── changeSubexpressionUtils.ts │ │ │ │ │ │ │ │ │ │ ├── findSubexpressionErrors.test.ts │ │ │ │ │ │ │ │ │ │ └── findSubexpressionErrors.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── SimplifiedEditor.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ ├── StudioExpression.module.css │ │ │ │ │ │ │ ├── StudioExpression.stories.tsx │ │ │ │ │ │ │ ├── StudioExpression.test.tsx │ │ │ │ │ │ │ ├── StudioExpression.tsx │ │ │ │ │ │ │ ├── StudioExpressionContext.tsx │ │ │ │ │ │ │ ├── config.ts │ │ │ │ │ │ │ ├── converters/ │ │ │ │ │ │ │ │ ├── complexToSimpleExpression.test.ts │ │ │ │ │ │ │ │ ├── complexToSimpleExpression.ts │ │ │ │ │ │ │ │ ├── simpleToComplexExpression.test.ts │ │ │ │ │ │ │ │ └── simpleToComplexExpression.ts │ │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ │ ├── DataLookupFuncName.ts │ │ │ │ │ │ │ │ ├── ExpressionErrorKey.ts │ │ │ │ │ │ │ │ ├── GeneralRelationOperator.ts │ │ │ │ │ │ │ │ ├── InstanceContext.ts │ │ │ │ │ │ │ │ ├── KeyLookupFuncName.ts │ │ │ │ │ │ │ │ ├── LogicalTupleOperator.ts │ │ │ │ │ │ │ │ ├── NumberRelationOperator.ts │ │ │ │ │ │ │ │ ├── PredefinedGatewayAction.ts │ │ │ │ │ │ │ │ └── SimpleSubexpressionValueType.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ │ │ ├── dataLookupOptions.ts │ │ │ │ │ │ │ │ ├── expressions.ts │ │ │ │ │ │ │ │ └── texts.ts │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ ├── DataLookupOptions.ts │ │ │ │ │ │ │ │ ├── Expression.ts │ │ │ │ │ │ │ │ ├── ExpressionTexts.ts │ │ │ │ │ │ │ │ ├── RelationFunc.ts │ │ │ │ │ │ │ │ ├── RelationalOperator.ts │ │ │ │ │ │ │ │ ├── SimpleSubexpression.ts │ │ │ │ │ │ │ │ ├── SimpleSubexpressionValue.ts │ │ │ │ │ │ │ │ ├── SimplifiedExpression.ts │ │ │ │ │ │ │ │ └── ValueInComplexFormat.ts │ │ │ │ │ │ │ └── validators/ │ │ │ │ │ │ │ ├── expression.schema.v1.json │ │ │ │ │ │ │ ├── isExpressionSimple.test.ts │ │ │ │ │ │ │ ├── isExpressionSimple.ts │ │ │ │ │ │ │ ├── isExpressionValid.test.ts │ │ │ │ │ │ │ ├── isExpressionValid.ts │ │ │ │ │ │ │ ├── isPredefinedGatewayAction.test.ts │ │ │ │ │ │ │ ├── isPredefinedGatewayAction.ts │ │ │ │ │ │ │ ├── isStringValidAsExpression.test.ts │ │ │ │ │ │ │ └── isStringValidAsExpression.ts │ │ │ │ │ │ ├── StudioField/ │ │ │ │ │ │ │ ├── Description.tsx │ │ │ │ │ │ │ ├── StudioField.test.tsx │ │ │ │ │ │ │ ├── StudioField.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioFieldset/ │ │ │ │ │ │ │ ├── StudioFieldset.module.css │ │ │ │ │ │ │ ├── StudioFieldset.stories.tsx │ │ │ │ │ │ │ ├── StudioFieldset.test.tsx │ │ │ │ │ │ │ ├── StudioFieldset.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioFileUploader/ │ │ │ │ │ │ │ ├── StudioFileUploader.module.css │ │ │ │ │ │ │ ├── StudioFileUploader.stories.tsx │ │ │ │ │ │ │ ├── StudioFileUploader.test.tsx │ │ │ │ │ │ │ ├── StudioFileUploader.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioFormActions/ │ │ │ │ │ │ │ ├── StudioFormActions.module.css │ │ │ │ │ │ │ ├── StudioFormActions.stories.tsx │ │ │ │ │ │ │ ├── StudioFormActions.test.tsx │ │ │ │ │ │ │ ├── StudioFormActions.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioFormGroup/ │ │ │ │ │ │ │ ├── StudioFormGroup.stories.tsx │ │ │ │ │ │ │ ├── StudioFormGroup.test.tsx │ │ │ │ │ │ │ ├── StudioFormGroup.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioGridSelector/ │ │ │ │ │ │ │ ├── StudioGridSelector.mdx │ │ │ │ │ │ │ ├── StudioGridSelector.module.css │ │ │ │ │ │ │ ├── StudioGridSelector.stories.tsx │ │ │ │ │ │ │ ├── StudioGridSelector.test.tsx │ │ │ │ │ │ │ ├── StudioGridSelector.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── types/ │ │ │ │ │ │ │ └── GridSize.ts │ │ │ │ │ │ ├── StudioHeading/ │ │ │ │ │ │ │ ├── StudioHeading.module.css │ │ │ │ │ │ │ ├── StudioHeading.test.tsx │ │ │ │ │ │ │ ├── StudioHeading.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioHelpText/ │ │ │ │ │ │ │ ├── StudioHelpText.module.css │ │ │ │ │ │ │ ├── StudioHelpText.test.tsx │ │ │ │ │ │ │ ├── StudioHelpText.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioIconCard/ │ │ │ │ │ │ │ ├── StudioIconCard.mdx │ │ │ │ │ │ │ ├── StudioIconCard.module.css │ │ │ │ │ │ │ ├── StudioIconCard.stories.module.css │ │ │ │ │ │ │ ├── StudioIconCard.stories.tsx │ │ │ │ │ │ │ ├── StudioIconCard.test.tsx │ │ │ │ │ │ │ ├── StudioIconCard.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioIconTextfield/ │ │ │ │ │ │ │ ├── StudioIconTextfield.mdx │ │ │ │ │ │ │ ├── StudioIconTextfield.module.css │ │ │ │ │ │ │ ├── StudioIconTextfield.stories.tsx │ │ │ │ │ │ │ ├── StudioIconTextfield.test.tsx │ │ │ │ │ │ │ ├── StudioIconTextfield.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioIconViewer/ │ │ │ │ │ │ │ ├── StudioIconViewer.module.css │ │ │ │ │ │ │ ├── StudioIconViewer.stories.tsx │ │ │ │ │ │ │ ├── StudioIconViewer.test.tsx │ │ │ │ │ │ │ ├── StudioIconViewer.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioInlineTextField/ │ │ │ │ │ │ │ ├── StudioInlineTextField.module.css │ │ │ │ │ │ │ ├── StudioInlineTextField.stories.tsx │ │ │ │ │ │ │ ├── StudioInlineTextField.test.tsx │ │ │ │ │ │ │ ├── StudioInlineTextField.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioInputTable/ │ │ │ │ │ │ │ ├── Cell/ │ │ │ │ │ │ │ │ ├── BaseInputCell.ts │ │ │ │ │ │ │ │ ├── Cell.module.css │ │ │ │ │ │ │ │ ├── Cell.tsx │ │ │ │ │ │ │ │ ├── CellButton.tsx │ │ │ │ │ │ │ │ ├── CellCheckbox.tsx │ │ │ │ │ │ │ │ ├── CellTextarea.tsx │ │ │ │ │ │ │ │ ├── CellTextfield.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── useEventProps.ts │ │ │ │ │ │ │ │ └── useFormEventProps.ts │ │ │ │ │ │ │ ├── HeaderCell/ │ │ │ │ │ │ │ │ ├── HeaderCell.tsx │ │ │ │ │ │ │ │ ├── HeaderCellCheckbox.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── Row/ │ │ │ │ │ │ │ │ ├── Row.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioInputTable.module.css │ │ │ │ │ │ │ ├── StudioInputTable.stories.tsx │ │ │ │ │ │ │ ├── StudioInputTable.test.tsx │ │ │ │ │ │ │ ├── StudioInputTable.tsx │ │ │ │ │ │ │ ├── StudioInputTableContext.tsx │ │ │ │ │ │ │ ├── dom-utils/ │ │ │ │ │ │ │ │ ├── caretUtils.test.tsx │ │ │ │ │ │ │ │ ├── caretUtils.ts │ │ │ │ │ │ │ │ ├── getNextInputElement.test.tsx │ │ │ │ │ │ │ │ ├── getNextInputElement.ts │ │ │ │ │ │ │ │ ├── isCombobox.test.tsx │ │ │ │ │ │ │ │ └── isCombobox.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ │ │ ├── TestTable.tsx │ │ │ │ │ │ │ │ └── testTableData.ts │ │ │ │ │ │ │ └── types/ │ │ │ │ │ │ │ ├── CellCoords.ts │ │ │ │ │ │ │ ├── EventName.ts │ │ │ │ │ │ │ ├── EventPropName.ts │ │ │ │ │ │ │ ├── EventProps.ts │ │ │ │ │ │ │ ├── FormEventProps.ts │ │ │ │ │ │ │ ├── HTMLCellInputElement.ts │ │ │ │ │ │ │ └── InputCellComponent.ts │ │ │ │ │ │ ├── StudioLabel/ │ │ │ │ │ │ │ ├── StudioLabel.test.tsx │ │ │ │ │ │ │ ├── StudioLabel.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioLabelAsParagraph/ │ │ │ │ │ │ │ ├── StudioLabelAsParagraph.mdx │ │ │ │ │ │ │ ├── StudioLabelAsParagraph.stories.tsx │ │ │ │ │ │ │ ├── StudioLabelAsParagraph.test.tsx │ │ │ │ │ │ │ ├── StudioLabelAsParagraph.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioLabelWrapper/ │ │ │ │ │ │ │ ├── StudioLabelWrapper.module.css │ │ │ │ │ │ │ ├── StudioLabelWrapper.test.tsx │ │ │ │ │ │ │ ├── StudioLabelWrapper.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioLanguagePicker/ │ │ │ │ │ │ │ ├── StudioLanguagePicker.module.css │ │ │ │ │ │ │ ├── StudioLanguagePicker.stories.tsx │ │ │ │ │ │ │ ├── StudioLanguagePicker.test.tsx │ │ │ │ │ │ │ ├── StudioLanguagePicker.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ │ │ ├── UncontrolledLanguagePicker.tsx │ │ │ │ │ │ │ │ └── props.ts │ │ │ │ │ │ │ ├── validateCode.test.ts │ │ │ │ │ │ │ └── validateCode.ts │ │ │ │ │ │ ├── StudioLibraryElement/ │ │ │ │ │ │ │ ├── StudioLibraryElement.module.css │ │ │ │ │ │ │ ├── StudioLibraryElement.stories.tsx │ │ │ │ │ │ │ ├── StudioLibraryElement.test.tsx │ │ │ │ │ │ │ ├── StudioLibraryElement.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioLink/ │ │ │ │ │ │ │ ├── StudioLink.stories.tsx │ │ │ │ │ │ │ ├── StudioLink.test.tsx │ │ │ │ │ │ │ ├── StudioLink.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioLinkButton/ │ │ │ │ │ │ │ ├── StudioLinkButton.module.css │ │ │ │ │ │ │ ├── StudioLinkButton.stories.tsx │ │ │ │ │ │ │ ├── StudioLinkButton.test.tsx │ │ │ │ │ │ │ ├── StudioLinkButton.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioList/ │ │ │ │ │ │ │ ├── StudioList.test.tsx │ │ │ │ │ │ │ ├── StudioList.tsx │ │ │ │ │ │ │ ├── StudioListOrdered.stories.tsx │ │ │ │ │ │ │ ├── StudioListRoot.tsx │ │ │ │ │ │ │ ├── StudioListUnordered.stories.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioManualExpression/ │ │ │ │ │ │ │ ├── StudioManualExpression.module.css │ │ │ │ │ │ │ ├── StudioManualExpression.stories.tsx │ │ │ │ │ │ │ ├── StudioManualExpression.tsx │ │ │ │ │ │ │ ├── converters/ │ │ │ │ │ │ │ │ ├── expressionToString.test.ts │ │ │ │ │ │ │ │ ├── expressionToString.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── stringToExpression.test.ts │ │ │ │ │ │ │ │ └── stringToExpression.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioNotFoundPage/ │ │ │ │ │ │ │ ├── StudioNotFound.mdx │ │ │ │ │ │ │ ├── StudioNotFoundPage.module.css │ │ │ │ │ │ │ ├── StudioNotFoundPage.stories.tsx │ │ │ │ │ │ │ ├── StudioNotFoundPage.test.tsx │ │ │ │ │ │ │ ├── StudioNotFoundPage.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioPageError/ │ │ │ │ │ │ │ ├── StudioPageError.mdx │ │ │ │ │ │ │ ├── StudioPageError.module.css │ │ │ │ │ │ │ ├── StudioPageError.stories.tsx │ │ │ │ │ │ │ ├── StudioPageError.test.tsx │ │ │ │ │ │ │ ├── StudioPageError.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioPageHeader/ │ │ │ │ │ │ │ ├── StudioPageHeader.mdx │ │ │ │ │ │ │ ├── StudioPageHeader.module.css │ │ │ │ │ │ │ ├── StudioPageHeader.stories.tsx │ │ │ │ │ │ │ ├── StudioPageHeader.test.tsx │ │ │ │ │ │ │ ├── StudioPageHeader.tsx │ │ │ │ │ │ │ ├── StudioPageHeaderCenter/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderCenter.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderCenter.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderButton/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderButton.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderButton.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderLink/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderLink.module.css │ │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderLink.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderLink.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderLeft/ │ │ │ │ │ │ │ │ ├── DigdirLogoLink/ │ │ │ │ │ │ │ │ │ ├── DigdirLogo.tsx │ │ │ │ │ │ │ │ │ ├── DigdirLogoLink.module.css │ │ │ │ │ │ │ │ │ ├── DigdirLogoLink.test.tsx │ │ │ │ │ │ │ │ │ ├── DigdirLogoLink.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── StudioPageHeaderLeft.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderLeft.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderMain/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderMain.module.css │ │ │ │ │ │ │ │ ├── StudioPageHeaderMain.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderMain.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderPopoverTrigger/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderPopoverTrigger.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderPopoverTrigger.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderProfileMenu/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderProfileMenu.module.css │ │ │ │ │ │ │ │ ├── StudioPageHeaderProfileMenu.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderProfileMenu.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── types/ │ │ │ │ │ │ │ │ ├── StudioProfileMenuGroup.ts │ │ │ │ │ │ │ │ └── StudioProfileMenuItem.ts │ │ │ │ │ │ │ ├── StudioPageHeaderRight/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderRight.module.css │ │ │ │ │ │ │ │ ├── StudioPageHeaderRight.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderRight.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderSub/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderSub.module.css │ │ │ │ │ │ │ │ ├── StudioPageHeaderSub.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderSub.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── context/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderContext.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderContext.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── types/ │ │ │ │ │ │ │ ├── StudioPageHeaderColor.ts │ │ │ │ │ │ │ └── StudioPageHeaderVariant.ts │ │ │ │ │ │ ├── StudioPageImageBackgroundContainer/ │ │ │ │ │ │ │ ├── StudioPageImageBackgroundContainer.module.css │ │ │ │ │ │ │ ├── StudioPageImageBackgroundContainer.stories.tsx │ │ │ │ │ │ │ ├── StudioPageImageBackgroundContainer.test.tsx │ │ │ │ │ │ │ ├── StudioPageImageBackgroundContainer.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioPageSpinner/ │ │ │ │ │ │ │ ├── StudioPageSpinner.module.css │ │ │ │ │ │ │ ├── StudioPageSpinner.stories.tsx │ │ │ │ │ │ │ ├── StudioPageSpinner.test.tsx │ │ │ │ │ │ │ ├── StudioPageSpinner.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioPaginatedContent/ │ │ │ │ │ │ │ ├── StudioPaginatedContent.module.css │ │ │ │ │ │ │ ├── StudioPaginatedContent.stories.tsx │ │ │ │ │ │ │ ├── StudioPaginatedContent.test.tsx │ │ │ │ │ │ │ ├── StudioPaginatedContent.tsx │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ ├── usePagination.test.tsx │ │ │ │ │ │ │ │ └── usePagination.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── types/ │ │ │ │ │ │ │ ├── StudioPaginatedItem.ts │ │ │ │ │ │ │ └── StudioPaginatedNavigation.ts │ │ │ │ │ │ ├── StudioParagraph/ │ │ │ │ │ │ │ ├── StudioParagraph.module.css │ │ │ │ │ │ │ ├── StudioParagraph.test.tsx │ │ │ │ │ │ │ ├── StudioParagraph.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioPopover/ │ │ │ │ │ │ │ ├── StudioPopover.stories.tsx │ │ │ │ │ │ │ ├── StudioPopover.test.tsx │ │ │ │ │ │ │ ├── StudioPopover.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioProperty/ │ │ │ │ │ │ │ ├── StudioProperties.mdx │ │ │ │ │ │ │ ├── StudioProperty.stories.tsx │ │ │ │ │ │ │ ├── StudioProperty.test.tsx │ │ │ │ │ │ │ ├── StudioPropertyButton/ │ │ │ │ │ │ │ │ ├── StudioPropertyButton.module.css │ │ │ │ │ │ │ │ ├── StudioPropertyButton.stories.tsx │ │ │ │ │ │ │ │ ├── StudioPropertyButton.test.tsx │ │ │ │ │ │ │ │ ├── StudioPropertyButton.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPropertyFieldset/ │ │ │ │ │ │ │ │ ├── StudioPropertyFieldset.module.css │ │ │ │ │ │ │ │ ├── StudioPropertyFieldset.stories.tsx │ │ │ │ │ │ │ │ ├── StudioPropertyFieldset.test.tsx │ │ │ │ │ │ │ │ ├── StudioPropertyFieldset.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── test-data/ │ │ │ │ │ │ │ │ └── FieldsetContent/ │ │ │ │ │ │ │ │ ├── FieldsetContent.module.css │ │ │ │ │ │ │ │ ├── FieldsetContent.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPropertyGroup/ │ │ │ │ │ │ │ │ ├── StudioPropertyGroup.module.css │ │ │ │ │ │ │ │ ├── StudioPropertyGroup.test.tsx │ │ │ │ │ │ │ │ ├── StudioPropertyGroup.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── storybook-utils/ │ │ │ │ │ │ │ │ └── Decorator/ │ │ │ │ │ │ │ │ ├── Decorator.module.css │ │ │ │ │ │ │ │ ├── Decorator.test.tsx │ │ │ │ │ │ │ │ ├── Decorator.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── test-data/ │ │ │ │ │ │ │ ├── ComposedComponent/ │ │ │ │ │ │ │ │ ├── ComposedComponent.module.css │ │ │ │ │ │ │ │ ├── ComposedComponent.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── buttons.ts │ │ │ │ │ │ ├── StudioRadio/ │ │ │ │ │ │ │ ├── StudioRadio.test.tsx │ │ │ │ │ │ │ ├── StudioRadio.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioRadioGroup/ │ │ │ │ │ │ │ ├── StudioGetRadioProps.ts │ │ │ │ │ │ │ ├── StudioRadioGroup.stories.tsx │ │ │ │ │ │ │ ├── StudioRadioGroup.test.tsx │ │ │ │ │ │ │ ├── StudioRadioGroup.tsx │ │ │ │ │ │ │ ├── StudioRadioGroupError.tsx │ │ │ │ │ │ │ ├── StudioRadioGroupItem.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── useStudioRadioGroup.ts │ │ │ │ │ │ ├── StudioRecommendedNextAction/ │ │ │ │ │ │ │ ├── StudioRecommendedNextAction.mdx │ │ │ │ │ │ │ ├── StudioRecommendedNextAction.module.css │ │ │ │ │ │ │ ├── StudioRecommendedNextAction.stories.tsx │ │ │ │ │ │ │ ├── StudioRecommendedNextAction.test.tsx │ │ │ │ │ │ │ ├── StudioRecommendedNextAction.tsx │ │ │ │ │ │ │ ├── context/ │ │ │ │ │ │ │ │ ├── StudioRecommendedNextActionContext.test.tsx │ │ │ │ │ │ │ │ ├── StudioRecommendedNextActionContext.tsx │ │ │ │ │ │ │ │ └── useStudioRecommendedNextActionContext.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioRedirectBox/ │ │ │ │ │ │ │ ├── StudioRedirectBox.module.css │ │ │ │ │ │ │ ├── StudioRedirectBox.stories.tsx │ │ │ │ │ │ │ ├── StudioRedirectBox.test.tsx │ │ │ │ │ │ │ ├── StudioRedirectBox.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioResizableLayout/ │ │ │ │ │ │ │ ├── StudioResizableLayout.mdx │ │ │ │ │ │ │ ├── StudioResizableLayout.stories.tsx │ │ │ │ │ │ │ ├── StudioResizableLayoutContainer/ │ │ │ │ │ │ │ │ ├── StudioResizableLayoutContainer.module.css │ │ │ │ │ │ │ │ ├── StudioResizableLayoutContainer.test.tsx │ │ │ │ │ │ │ │ └── StudioResizableLayoutContainer.tsx │ │ │ │ │ │ │ ├── StudioResizableLayoutElement/ │ │ │ │ │ │ │ │ ├── StudioResizableLayoutElement.module.css │ │ │ │ │ │ │ │ └── StudioResizableLayoutElement.tsx │ │ │ │ │ │ │ ├── StudioResizableLayoutHandle/ │ │ │ │ │ │ │ │ ├── StudioResizableLayoutHandle.module.css │ │ │ │ │ │ │ │ └── StudioResizableLayoutHandle.tsx │ │ │ │ │ │ │ ├── classes/ │ │ │ │ │ │ │ │ └── StudioResizableLayoutElement.ts │ │ │ │ │ │ │ ├── context/ │ │ │ │ │ │ │ │ └── StudioResizableLayoutContext.ts │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ ├── useKeyboardControls.test.ts │ │ │ │ │ │ │ │ ├── useKeyboardControls.ts │ │ │ │ │ │ │ │ ├── useStudioResizableFunctions.test.ts │ │ │ │ │ │ │ │ ├── useStudioResizableFunctions.ts │ │ │ │ │ │ │ │ ├── useStudioResizableLayoutContext.ts │ │ │ │ │ │ │ │ ├── useStudioResizableLayoutMouseMovement.test.ts │ │ │ │ │ │ │ │ ├── useStudioResizableLayoutMouseMovement.ts │ │ │ │ │ │ │ │ └── useTrackContainerSizes.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioSearch/ │ │ │ │ │ │ │ ├── StudioSearch.module.css │ │ │ │ │ │ │ ├── StudioSearch.stories.tsx │ │ │ │ │ │ │ ├── StudioSearch.test.tsx │ │ │ │ │ │ │ ├── StudioSearch.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioSectionHeader/ │ │ │ │ │ │ │ ├── StudioSectionHeader.mdx │ │ │ │ │ │ │ ├── StudioSectionHeader.module.css │ │ │ │ │ │ │ ├── StudioSectionHeader.stories.tsx │ │ │ │ │ │ │ ├── StudioSectionHeader.test.tsx │ │ │ │ │ │ │ ├── StudioSectionHeader.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioSelect/ │ │ │ │ │ │ │ ├── StudioSelect.mdx │ │ │ │ │ │ │ ├── StudioSelect.module.css │ │ │ │ │ │ │ ├── StudioSelect.stories.tsx │ │ │ │ │ │ │ ├── StudioSelect.test.tsx │ │ │ │ │ │ │ ├── StudioSelect.tsx │ │ │ │ │ │ │ ├── StudioSelectOption.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioSpinner/ │ │ │ │ │ │ │ ├── StudioSpinner.module.css │ │ │ │ │ │ │ ├── StudioSpinner.stories.tsx │ │ │ │ │ │ │ ├── StudioSpinner.test.tsx │ │ │ │ │ │ │ ├── StudioSpinner.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioSuggestion/ │ │ │ │ │ │ │ ├── StudioSuggestion.module.css │ │ │ │ │ │ │ ├── StudioSuggestion.stories.tsx │ │ │ │ │ │ │ ├── StudioSuggestion.test.tsx │ │ │ │ │ │ │ ├── StudioSuggestion.tsx │ │ │ │ │ │ │ ├── StudioSuggestionItem/ │ │ │ │ │ │ │ │ └── StudioSuggestionItem.tsx │ │ │ │ │ │ │ ├── StudioSuggestionOption/ │ │ │ │ │ │ │ │ └── StudioSuggestionOption.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioSwitch/ │ │ │ │ │ │ │ ├── StudioSwitch.test.tsx │ │ │ │ │ │ │ ├── StudioSwitch.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioTable/ │ │ │ │ │ │ │ ├── StudioTable.test.tsx │ │ │ │ │ │ │ ├── StudioTable.tsx │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── StudioTableLocalPagination/ │ │ │ │ │ │ │ ├── StudioTableLocalPagination.mdx │ │ │ │ │ │ │ ├── StudioTableLocalPagination.stories.tsx │ │ │ │ │ │ │ ├── StudioTableLocalPagination.test.tsx │ │ │ │ │ │ │ ├── StudioTableLocalPagination.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioTableRemotePagination/ │ │ │ │ │ │ │ ├── StudioPagination/ │ │ │ │ │ │ │ │ ├── StudioPagination.test.tsx │ │ │ │ │ │ │ │ ├── StudioPagination.tsx │ │ │ │ │ │ │ │ ├── StudioPaginationUtils.test.ts │ │ │ │ │ │ │ │ ├── StudioPaginationUtils.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioTableRemotePagination.mdx │ │ │ │ │ │ │ ├── StudioTableRemotePagination.module.css │ │ │ │ │ │ │ ├── StudioTableRemotePagination.stories.tsx │ │ │ │ │ │ │ ├── StudioTableRemotePagination.test.tsx │ │ │ │ │ │ │ ├── StudioTableRemotePagination.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── mockData.module.css │ │ │ │ │ │ │ ├── mockData.tsx │ │ │ │ │ │ │ ├── utils.test.tsx │ │ │ │ │ │ │ └── utils.tsx │ │ │ │ │ │ ├── StudioTabs/ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioTag/ │ │ │ │ │ │ │ ├── StudioTag.test.tsx │ │ │ │ │ │ │ ├── StudioTag.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioTextResourceAction/ │ │ │ │ │ │ │ ├── StudioTextResourceAction.test.tsx │ │ │ │ │ │ │ ├── StudioTextResourceAction.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioTextResourceEditor/ │ │ │ │ │ │ │ ├── StudioTextResourceEditor.module.css │ │ │ │ │ │ │ ├── StudioTextResourceEditor.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioTextResourceInput/ │ │ │ │ │ │ │ ├── StudioTextResourceInput.module.css │ │ │ │ │ │ │ ├── StudioTextResourceInput.stories.tsx │ │ │ │ │ │ │ ├── StudioTextResourceInput.test.tsx │ │ │ │ │ │ │ ├── StudioTextResourceInput.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ ├── Mode.ts │ │ │ │ │ │ │ │ └── TextResourceInputTexts.ts │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ ├── StudioTextResourcePicker/ │ │ │ │ │ │ │ ├── StudioTextResourcePicker.module.css │ │ │ │ │ │ │ ├── StudioTextResourcePicker.stories.tsx │ │ │ │ │ │ │ ├── StudioTextResourcePicker.test.tsx │ │ │ │ │ │ │ ├── StudioTextResourcePicker.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ ├── StudioTextResourcePicker2/ │ │ │ │ │ │ │ ├── StudioTextResourcePicker2.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioTextResourceValueEditor/ │ │ │ │ │ │ │ ├── StudioTextResourceValueEditor.module.css │ │ │ │ │ │ │ ├── StudioTextResourceValueEditor.test.tsx │ │ │ │ │ │ │ ├── StudioTextResourceValueEditor.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioTextarea/ │ │ │ │ │ │ │ ├── StudioTextarea.stories.tsx │ │ │ │ │ │ │ ├── StudioTextarea.test.tsx │ │ │ │ │ │ │ ├── StudioTextarea.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioTextfield/ │ │ │ │ │ │ │ ├── StudioTextfield.stories.tsx │ │ │ │ │ │ │ ├── StudioTextfield.test.tsx │ │ │ │ │ │ │ ├── StudioTextfield.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioToggleGroup/ │ │ │ │ │ │ │ ├── StudioToggleGroup.test.tsx │ │ │ │ │ │ │ ├── StudioToggleGroup.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioToggleableTextfield/ │ │ │ │ │ │ │ ├── StudioToggleableTextfield.module.css │ │ │ │ │ │ │ ├── StudioToggleableTextfield.stories.tsx │ │ │ │ │ │ │ ├── StudioToggleableTextfield.test.tsx │ │ │ │ │ │ │ ├── StudioToggleableTextfield.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioToggleableTextfieldSchema/ │ │ │ │ │ │ │ ├── JsonSchemaValidator.test.tsx │ │ │ │ │ │ │ ├── JsonSchemaValidator.ts │ │ │ │ │ │ │ ├── StudioToggleableTextfieldSchema.mdx │ │ │ │ │ │ │ ├── StudioToggleableTextfieldSchema.stories.tsx │ │ │ │ │ │ │ ├── StudioToggleableTextfieldSchema.test.tsx │ │ │ │ │ │ │ ├── StudioToggleableTextfieldSchema.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioTreeView/ │ │ │ │ │ │ │ ├── StudioTreeView.mdx │ │ │ │ │ │ │ ├── StudioTreeView.stories.tsx │ │ │ │ │ │ │ ├── StudioTreeView.test.tsx │ │ │ │ │ │ │ ├── StudioTreeViewItem/ │ │ │ │ │ │ │ │ ├── StudioTreeViewItem.module.css │ │ │ │ │ │ │ │ ├── StudioTreeViewItem.test.tsx │ │ │ │ │ │ │ │ ├── StudioTreeViewItem.tsx │ │ │ │ │ │ │ │ ├── StudioTreeViewItemContext.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioTreeViewRoot/ │ │ │ │ │ │ │ │ ├── StudioTreeViewRoot.module.css │ │ │ │ │ │ │ │ ├── StudioTreeViewRoot.tsx │ │ │ │ │ │ │ │ ├── StudioTreeViewRootContext.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ ├── useTreeViewItemContext.test.tsx │ │ │ │ │ │ │ │ ├── useTreeViewItemContext.ts │ │ │ │ │ │ │ │ ├── useTreeViewItemOpenOnHierarchySelect.ts │ │ │ │ │ │ │ │ ├── useTreeViewRootContext.test.tsx │ │ │ │ │ │ │ │ └── useTreeViewRootContext.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ ├── domUtils.test.tsx │ │ │ │ │ │ │ ├── domUtils.ts │ │ │ │ │ │ │ ├── treeViewItemUtils.test.ts │ │ │ │ │ │ │ └── treeViewItemUtils.ts │ │ │ │ │ │ ├── StudioValidationMessage/ │ │ │ │ │ │ │ ├── StudioValidationMessage.test.tsx │ │ │ │ │ │ │ ├── StudioValidationMessage.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── TextWithIcon/ │ │ │ │ │ │ │ ├── TextWithIcon.module.css │ │ │ │ │ │ │ ├── TextWithIcon.test.tsx │ │ │ │ │ │ │ ├── TextWithIcon.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── style/ │ │ │ │ │ │ └── studio-variables.css │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── useAutoSizeTextArea.test.tsx │ │ │ │ │ │ ├── useAutoSizeTextArea.ts │ │ │ │ │ │ ├── useLocalStorage.test.ts │ │ │ │ │ │ ├── useLocalStorage.ts │ │ │ │ │ │ ├── useOnWindowSizeChange.ts │ │ │ │ │ │ ├── useRetainWhileLoading.test.tsx │ │ │ │ │ │ ├── useRetainWhileLoading.ts │ │ │ │ │ │ ├── useTableSorting.test.tsx │ │ │ │ │ │ └── useTableSorting.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── storybook-utils/ │ │ │ │ │ │ └── decorators/ │ │ │ │ │ │ └── FixedWidthDecorator/ │ │ │ │ │ │ ├── FixedWidthDecorator.module.css │ │ │ │ │ │ ├── FixedWidthDecorator.test.tsx │ │ │ │ │ │ ├── FixedWidthDecorator.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── style/ │ │ │ │ │ │ ├── studio-variables.css │ │ │ │ │ │ └── studioBetaTag.module.css │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ └── textResourcesMock.ts │ │ │ │ │ ├── test-utils/ │ │ │ │ │ │ ├── selectors.ts │ │ │ │ │ │ ├── testCustomAttributes.ts │ │ │ │ │ │ ├── testOnClickCallbackReceivesNativeEvent.ts │ │ │ │ │ │ ├── testRefForwarding.ts │ │ │ │ │ │ └── testRootClassNameAppending.ts │ │ │ │ │ ├── types/ │ │ │ │ │ │ ├── IconPlacement.ts │ │ │ │ │ │ ├── JSONSchema.ts │ │ │ │ │ │ ├── KeyValuePairs.ts │ │ │ │ │ │ ├── LabelRequired.ts │ │ │ │ │ │ ├── MultiLanguageText.ts │ │ │ │ │ │ ├── OverridableComponent.ts │ │ │ │ │ │ ├── OverridableComponentProps.ts │ │ │ │ │ │ ├── OverridableComponentRef.ts │ │ │ │ │ │ ├── Override.ts │ │ │ │ │ │ ├── RequiredSelection.ts │ │ │ │ │ │ ├── TableSortStorageKey.ts │ │ │ │ │ │ └── WithoutAsChild.ts │ │ │ │ │ └── utils/ │ │ │ │ │ ├── labelUtils.test.ts │ │ │ │ │ └── labelUtils.ts │ │ │ │ └── tsconfig.json │ │ │ ├── studio-components-legacy/ │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── .storybook/ │ │ │ │ │ ├── main.ts │ │ │ │ │ ├── manager.ts │ │ │ │ │ ├── preview-head.html │ │ │ │ │ ├── preview.tsx │ │ │ │ │ └── studioTheme.ts │ │ │ │ ├── README.md │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── Overview.mdx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── StudioButton/ │ │ │ │ │ │ │ ├── StudioButton.mdx │ │ │ │ │ │ │ ├── StudioButton.module.css │ │ │ │ │ │ │ ├── StudioButton.stories.tsx │ │ │ │ │ │ │ ├── StudioButton.test.tsx │ │ │ │ │ │ │ ├── StudioButton.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioCheckbox/ │ │ │ │ │ │ │ ├── StudioCheckbox.stories.tsx │ │ │ │ │ │ │ ├── StudioCheckbox.test.tsx │ │ │ │ │ │ │ ├── StudioCheckbox.tsx │ │ │ │ │ │ │ ├── StudioCheckboxGroup.stories.tsx │ │ │ │ │ │ │ ├── StudioCheckboxGroup.test.tsx │ │ │ │ │ │ │ ├── StudioCheckboxGroup.tsx │ │ │ │ │ │ │ ├── StudioCheckboxGroupContext.ts │ │ │ │ │ │ │ ├── constants.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioCodeFragment/ │ │ │ │ │ │ │ ├── StudioCodeFragment.mdx │ │ │ │ │ │ │ ├── StudioCodeFragment.module.css │ │ │ │ │ │ │ ├── StudioCodeFragment.stories.tsx │ │ │ │ │ │ │ ├── StudioCodeFragment.test.tsx │ │ │ │ │ │ │ ├── StudioCodeFragment.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioCodeListEditor/ │ │ │ │ │ │ │ ├── StudioCodeListEditor.module.css │ │ │ │ │ │ │ ├── StudioCodeListEditor.stories.tsx │ │ │ │ │ │ │ ├── StudioCodeListEditor.test.tsx │ │ │ │ │ │ │ ├── StudioCodeListEditor.tsx │ │ │ │ │ │ │ ├── StudioCodeListEditorContext.ts │ │ │ │ │ │ │ ├── StudioCodeListEditorReducer.test.tsx │ │ │ │ │ │ │ ├── StudioCodeListEditorReducer.tsx │ │ │ │ │ │ │ ├── StudioCodeListEditorRow/ │ │ │ │ │ │ │ │ ├── StudioCodeListEditorRow.module.css │ │ │ │ │ │ │ │ ├── StudioCodeListEditorRow.tsx │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ ├── TypeSelector/ │ │ │ │ │ │ │ │ ├── TypeSelector.module.css │ │ │ │ │ │ │ │ ├── TypeSelector.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ │ │ ├── codeListWithBooleans.ts │ │ │ │ │ │ │ │ ├── codeListWithMultipleTypes.ts │ │ │ │ │ │ │ │ ├── codeListWithNumbers.ts │ │ │ │ │ │ │ │ ├── codeListWithStrings.ts │ │ │ │ │ │ │ │ ├── codeListWithUndefinedValues.ts │ │ │ │ │ │ │ │ ├── codeListWithoutTextResources.ts │ │ │ │ │ │ │ │ ├── textResources.ts │ │ │ │ │ │ │ │ └── texts.ts │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ ├── CodeListEditorTexts.ts │ │ │ │ │ │ │ │ ├── CodeListItem.ts │ │ │ │ │ │ │ │ ├── CodeListItemTextProperty.ts │ │ │ │ │ │ │ │ ├── CodeListItemType.ts │ │ │ │ │ │ │ │ ├── CodeListItemValue.ts │ │ │ │ │ │ │ │ ├── CodeListWithTextResources.ts │ │ │ │ │ │ │ │ ├── ValueError.ts │ │ │ │ │ │ │ │ └── ValueErrorMap.ts │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ ├── utils.ts │ │ │ │ │ │ │ └── validation/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── validation.test.ts │ │ │ │ │ │ │ └── validation.ts │ │ │ │ │ │ ├── StudioCombobox/ │ │ │ │ │ │ │ ├── StudioCombobox.stories.tsx │ │ │ │ │ │ │ ├── StudioCombobox.test.tsx │ │ │ │ │ │ │ ├── StudioCombobox.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── isWithinDialog.test.tsx │ │ │ │ │ │ │ └── isWithinDialog.ts │ │ │ │ │ │ ├── StudioDecimalInput/ │ │ │ │ │ │ │ ├── StudioDecimalInput.mdx │ │ │ │ │ │ │ ├── StudioDecimalInput.stories.tsx │ │ │ │ │ │ │ ├── StudioDecimalInput.test.tsx │ │ │ │ │ │ │ ├── StudioDecimalInput.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ ├── StudioFieldset/ │ │ │ │ │ │ │ ├── StudioFieldset.stories.tsx │ │ │ │ │ │ │ ├── StudioFieldset.test.tsx │ │ │ │ │ │ │ ├── StudioFieldset.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioGridSelector/ │ │ │ │ │ │ │ ├── StudioGridSelector.mdx │ │ │ │ │ │ │ ├── StudioGridSelector.module.css │ │ │ │ │ │ │ ├── StudioGridSelector.stories.tsx │ │ │ │ │ │ │ ├── StudioGridSelector.test.tsx │ │ │ │ │ │ │ ├── StudioGridSelector.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── types/ │ │ │ │ │ │ │ └── GridSize.ts │ │ │ │ │ │ ├── StudioInputTable/ │ │ │ │ │ │ │ ├── Cell/ │ │ │ │ │ │ │ │ ├── BaseInputCell.ts │ │ │ │ │ │ │ │ ├── Cell.module.css │ │ │ │ │ │ │ │ ├── Cell.tsx │ │ │ │ │ │ │ │ ├── CellButton.tsx │ │ │ │ │ │ │ │ ├── CellCheckbox.tsx │ │ │ │ │ │ │ │ ├── CellNumberfield.tsx │ │ │ │ │ │ │ │ ├── CellTextResource.tsx │ │ │ │ │ │ │ │ ├── CellTextarea.tsx │ │ │ │ │ │ │ │ ├── CellTextfield.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── useEventProps.ts │ │ │ │ │ │ │ │ └── useFormEventProps.ts │ │ │ │ │ │ │ ├── HeaderCell/ │ │ │ │ │ │ │ │ ├── HeaderCell.tsx │ │ │ │ │ │ │ │ ├── HeaderCellCheckbox.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── Row/ │ │ │ │ │ │ │ │ ├── Row.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioInputTable.module.css │ │ │ │ │ │ │ ├── StudioInputTable.stories.tsx │ │ │ │ │ │ │ ├── StudioInputTable.test.tsx │ │ │ │ │ │ │ ├── StudioInputTable.tsx │ │ │ │ │ │ │ ├── StudioInputTableContext.tsx │ │ │ │ │ │ │ ├── dom-utils/ │ │ │ │ │ │ │ │ ├── caretUtils.test.tsx │ │ │ │ │ │ │ │ ├── caretUtils.ts │ │ │ │ │ │ │ │ ├── getNextInputElement.test.tsx │ │ │ │ │ │ │ │ ├── getNextInputElement.ts │ │ │ │ │ │ │ │ ├── isCombobox.test.tsx │ │ │ │ │ │ │ │ └── isCombobox.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ │ │ ├── TestTable.tsx │ │ │ │ │ │ │ │ └── testTableData.ts │ │ │ │ │ │ │ └── types/ │ │ │ │ │ │ │ ├── CellCoords.ts │ │ │ │ │ │ │ ├── EventName.ts │ │ │ │ │ │ │ ├── EventPropName.ts │ │ │ │ │ │ │ ├── EventProps.ts │ │ │ │ │ │ │ ├── FormEventProps.ts │ │ │ │ │ │ │ ├── HTMLCellInputElement.ts │ │ │ │ │ │ │ └── InputCellComponent.ts │ │ │ │ │ │ ├── StudioLabelWrapper/ │ │ │ │ │ │ │ ├── StudioLabelWrapper.mdx │ │ │ │ │ │ │ ├── StudioLabelWrapper.module.css │ │ │ │ │ │ │ ├── StudioLabelWrapper.stories.tsx │ │ │ │ │ │ │ ├── StudioLabelWrapper.test.tsx │ │ │ │ │ │ │ ├── StudioLabelWrapper.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioNativeSelect/ │ │ │ │ │ │ │ ├── StudioNativeSelect.stories.tsx │ │ │ │ │ │ │ ├── StudioNativeSelect.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioPageHeader/ │ │ │ │ │ │ │ ├── StudioPageHeader.mdx │ │ │ │ │ │ │ ├── StudioPageHeader.module.css │ │ │ │ │ │ │ ├── StudioPageHeader.stories.tsx │ │ │ │ │ │ │ ├── StudioPageHeader.test.tsx │ │ │ │ │ │ │ ├── StudioPageHeader.tsx │ │ │ │ │ │ │ ├── StudioPageHeaderCenter/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderCenter.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderCenter.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderButton/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderButton.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderButton.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderLink/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderLink.module.css │ │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderLink.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderHeaderLink.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderLeft/ │ │ │ │ │ │ │ │ ├── DigdirLogoLink/ │ │ │ │ │ │ │ │ │ ├── DigdirLogo.tsx │ │ │ │ │ │ │ │ │ ├── DigdirLogoLink.module.css │ │ │ │ │ │ │ │ │ ├── DigdirLogoLink.test.tsx │ │ │ │ │ │ │ │ │ ├── DigdirLogoLink.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── StudioPageHeaderLeft.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderLeft.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderMain/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderMain.module.css │ │ │ │ │ │ │ │ ├── StudioPageHeaderMain.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderMain.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderPopoverTrigger/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderPopoverTrigger.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderPopoverTrigger.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderProfileMenu/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderProfileMenu.module.css │ │ │ │ │ │ │ │ ├── StudioPageHeaderProfileMenu.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderProfileMenu.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── types/ │ │ │ │ │ │ │ │ ├── StudioProfileMenuGroup.ts │ │ │ │ │ │ │ │ └── StudioProfileMenuItem.ts │ │ │ │ │ │ │ ├── StudioPageHeaderRight/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderRight.module.css │ │ │ │ │ │ │ │ ├── StudioPageHeaderRight.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderRight.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPageHeaderSub/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderSub.module.css │ │ │ │ │ │ │ │ ├── StudioPageHeaderSub.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderSub.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── common.module.css │ │ │ │ │ │ │ ├── context/ │ │ │ │ │ │ │ │ ├── StudioPageHeaderContext.test.tsx │ │ │ │ │ │ │ │ ├── StudioPageHeaderContext.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── types/ │ │ │ │ │ │ │ ├── StudioPageHeaderColor.ts │ │ │ │ │ │ │ └── StudioPageHeaderVariant.ts │ │ │ │ │ │ ├── StudioParagraph/ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── StudioPopover/ │ │ │ │ │ │ │ ├── StudioPopover.stories.tsx │ │ │ │ │ │ │ ├── StudioPopover.test.tsx │ │ │ │ │ │ │ ├── StudioPopover.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioProperty/ │ │ │ │ │ │ │ ├── StudioProperties.mdx │ │ │ │ │ │ │ ├── StudioProperty.stories.tsx │ │ │ │ │ │ │ ├── StudioProperty.test.tsx │ │ │ │ │ │ │ ├── StudioPropertyButton/ │ │ │ │ │ │ │ │ ├── StudioPropertyButton.module.css │ │ │ │ │ │ │ │ ├── StudioPropertyButton.stories.tsx │ │ │ │ │ │ │ │ ├── StudioPropertyButton.test.tsx │ │ │ │ │ │ │ │ ├── StudioPropertyButton.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPropertyFieldset/ │ │ │ │ │ │ │ │ ├── StudioPropertyFieldset.module.css │ │ │ │ │ │ │ │ ├── StudioPropertyFieldset.stories.tsx │ │ │ │ │ │ │ │ ├── StudioPropertyFieldset.test.tsx │ │ │ │ │ │ │ │ ├── StudioPropertyFieldset.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── test-data/ │ │ │ │ │ │ │ │ └── FieldsetContent/ │ │ │ │ │ │ │ │ ├── FieldsetContent.module.css │ │ │ │ │ │ │ │ ├── FieldsetContent.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── StudioPropertyGroup/ │ │ │ │ │ │ │ │ ├── StudioPropertyGroup.module.css │ │ │ │ │ │ │ │ ├── StudioPropertyGroup.test.tsx │ │ │ │ │ │ │ │ ├── StudioPropertyGroup.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── storybook-utils/ │ │ │ │ │ │ │ │ └── Decorator/ │ │ │ │ │ │ │ │ ├── Decorator.module.css │ │ │ │ │ │ │ │ ├── Decorator.test.tsx │ │ │ │ │ │ │ │ ├── Decorator.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── test-data/ │ │ │ │ │ │ │ ├── ComposedComponent/ │ │ │ │ │ │ │ │ ├── ComposedComponent.module.css │ │ │ │ │ │ │ │ ├── ComposedComponent.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── buttons.ts │ │ │ │ │ │ ├── StudioTable/ │ │ │ │ │ │ │ ├── StudioTable.stories.tsx │ │ │ │ │ │ │ ├── StudioTable.test.tsx │ │ │ │ │ │ │ ├── StudioTable.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioTextResourceInput/ │ │ │ │ │ │ │ ├── StudioTextResourceInput.module.css │ │ │ │ │ │ │ ├── StudioTextResourceInput.stories.tsx │ │ │ │ │ │ │ ├── StudioTextResourceInput.test.tsx │ │ │ │ │ │ │ ├── StudioTextResourceInput.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ ├── Mode.ts │ │ │ │ │ │ │ │ └── TextResourceInputTexts.ts │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ ├── StudioTextResourcePicker/ │ │ │ │ │ │ │ ├── StudioTextResourcePicker.module.css │ │ │ │ │ │ │ ├── StudioTextResourcePicker.stories.tsx │ │ │ │ │ │ │ ├── StudioTextResourcePicker.test.tsx │ │ │ │ │ │ │ ├── StudioTextResourcePicker.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ ├── StudioTextarea/ │ │ │ │ │ │ │ ├── StudioTextarea.stories.tsx │ │ │ │ │ │ │ ├── StudioTextarea.test.tsx │ │ │ │ │ │ │ ├── StudioTextarea.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── StudioTextfield/ │ │ │ │ │ │ │ ├── StudioTextfield.stories.tsx │ │ │ │ │ │ │ ├── StudioTextfield.test.tsx │ │ │ │ │ │ │ ├── StudioTextfield.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── useLocalStorage.test.ts │ │ │ │ │ │ ├── useLocalStorage.ts │ │ │ │ │ │ ├── useMediaQuery.test.ts │ │ │ │ │ │ ├── useMediaQuery.ts │ │ │ │ │ │ ├── usePrevious.test.ts │ │ │ │ │ │ ├── usePrevious.ts │ │ │ │ │ │ └── useTextInputProps.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── storybook-utils/ │ │ │ │ │ │ └── decorators/ │ │ │ │ │ │ └── FixedWidthDecorator/ │ │ │ │ │ │ ├── FixedWidthDecorator.module.css │ │ │ │ │ │ ├── FixedWidthDecorator.test.tsx │ │ │ │ │ │ ├── FixedWidthDecorator.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── style/ │ │ │ │ │ │ ├── studio-variables.css │ │ │ │ │ │ └── studioBetaTag.module.css │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ └── textResourcesMock.ts │ │ │ │ │ ├── test-utils/ │ │ │ │ │ │ ├── selectors.ts │ │ │ │ │ │ ├── testCustomAttributes.ts │ │ │ │ │ │ ├── testRefForwarding.ts │ │ │ │ │ │ └── testRootClassNameAppending.ts │ │ │ │ │ └── types/ │ │ │ │ │ ├── IconPlacement.ts │ │ │ │ │ ├── OverridableComponent.ts │ │ │ │ │ ├── OverridableComponentProps.ts │ │ │ │ │ ├── OverridableComponentRef.ts │ │ │ │ │ ├── Override.ts │ │ │ │ │ ├── RequiredSelection.ts │ │ │ │ │ ├── SharedTextInputProps.ts │ │ │ │ │ ├── TextResource.ts │ │ │ │ │ └── WithoutAsChild.ts │ │ │ │ └── tsconfig.json │ │ │ ├── studio-content-library/ │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── README.md │ │ │ │ ├── jest.config.js │ │ │ │ ├── mocks/ │ │ │ │ │ └── mockPagesConfig.ts │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── ContentLibrary/ │ │ │ │ │ │ ├── ContentLibrary.module.css │ │ │ │ │ │ ├── ContentLibrary.test.tsx │ │ │ │ │ │ ├── ContentLibrary.tsx │ │ │ │ │ │ ├── LibraryBody/ │ │ │ │ │ │ │ ├── LibraryBody.module.css │ │ │ │ │ │ │ ├── LibraryBody.tsx │ │ │ │ │ │ │ ├── Menu/ │ │ │ │ │ │ │ │ ├── Menu.test.tsx │ │ │ │ │ │ │ │ ├── Menu.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── LibraryHeader/ │ │ │ │ │ │ │ ├── LibraryHeader.module.css │ │ │ │ │ │ │ ├── LibraryHeader.test.tsx │ │ │ │ │ │ │ ├── LibraryHeader.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── InfoBox/ │ │ │ │ │ │ ├── InfoBox.module.css │ │ │ │ │ │ ├── InfoBox.test.tsx │ │ │ │ │ │ ├── InfoBox.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── infoBoxConfigs.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── pages/ │ │ │ │ │ │ ├── CodeLists/ │ │ │ │ │ │ │ ├── CodeLists.tsx │ │ │ │ │ │ │ ├── CodeListsPage/ │ │ │ │ │ │ │ │ ├── CodeListDataEditor/ │ │ │ │ │ │ │ │ │ ├── CodeListDataEditor.module.css │ │ │ │ │ │ │ │ │ ├── CodeListDataEditor.test.tsx │ │ │ │ │ │ │ │ │ ├── CodeListDataEditor.tsx │ │ │ │ │ │ │ │ │ ├── Publishing.tsx │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ ├── CodeListsPage.module.css │ │ │ │ │ │ │ │ ├── CodeListsPage.test.tsx │ │ │ │ │ │ │ │ ├── CodeListsPage.tsx │ │ │ │ │ │ │ │ ├── Errors.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ │ │ │ ├── codeListMap.ts │ │ │ │ │ │ │ │ │ └── codeLists.ts │ │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ │ ├── CodeListMap.ts │ │ │ │ │ │ │ │ │ └── CodeListMapError.ts │ │ │ │ │ │ │ │ ├── useCodeListEditorTexts.ts │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── CodeListsWithTextResources/ │ │ │ │ │ │ │ ├── CodeListsWithTextResources.tsx │ │ │ │ │ │ │ ├── CodeListsWithTextResourcesPage/ │ │ │ │ │ │ │ │ ├── CodeListsActionsBar/ │ │ │ │ │ │ │ │ │ ├── AddCodeListDropdown/ │ │ │ │ │ │ │ │ │ │ ├── AddCodeListDropdown.module.css │ │ │ │ │ │ │ │ │ │ ├── AddCodeListDropdown.test.tsx │ │ │ │ │ │ │ │ │ │ ├── AddCodeListDropdown.tsx │ │ │ │ │ │ │ │ │ │ ├── CreateNewCodeListDialog/ │ │ │ │ │ │ │ │ │ │ │ ├── CreateNewCodeListDialog.module.css │ │ │ │ │ │ │ │ │ │ │ ├── CreateNewCodeListDialog.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── CreateNewCodeListDialog.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── ImportFromOrgLibraryDialog/ │ │ │ │ │ │ │ │ │ │ │ ├── ImportFromOrgLibraryDialog.module.css │ │ │ │ │ │ │ │ │ │ │ ├── ImportFromOrgLibraryDialog.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── ImportFromOrgLibraryDialog.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ │ ├── CodeListsActionsBar.module.css │ │ │ │ │ │ │ │ │ ├── CodeListsActionsBar.test.tsx │ │ │ │ │ │ │ │ │ ├── CodeListsActionsBar.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── CodeListsCounterMessage/ │ │ │ │ │ │ │ │ │ ├── CodeListsCounterMessage.test.tsx │ │ │ │ │ │ │ │ │ ├── CodeListsCounterMessage.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── CodeListsWithTextResources/ │ │ │ │ │ │ │ │ │ ├── CodeListsWithTextResources.module.css │ │ │ │ │ │ │ │ │ ├── CodeListsWithTextResources.test.tsx │ │ │ │ │ │ │ │ │ ├── CodeListsWithTextResources.tsx │ │ │ │ │ │ │ │ │ ├── EditCodeList/ │ │ │ │ │ │ │ │ │ │ ├── CodeListUsages/ │ │ │ │ │ │ │ │ │ │ │ ├── CodeListUsages.module.css │ │ │ │ │ │ │ │ │ │ │ ├── CodeListUsages.test.tsx │ │ │ │ │ │ │ │ │ │ │ └── CodeListUsages.tsx │ │ │ │ │ │ │ │ │ │ ├── EditCodeList.module.css │ │ │ │ │ │ │ │ │ │ └── EditCodeList.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── CodeListsWithTextResourcesPage.module.css │ │ │ │ │ │ │ │ ├── CodeListsWithTextResourcesPage.test.tsx │ │ │ │ │ │ │ │ ├── CodeListsWithTextResourcesPage.tsx │ │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ │ ├── useCodeListEditorTexts.ts │ │ │ │ │ │ │ │ │ ├── useInputCodeListNameErrorMessage.test.ts │ │ │ │ │ │ │ │ │ ├── useInputCodeListNameErrorMessage.ts │ │ │ │ │ │ │ │ │ ├── useUploadCodeListNameErrorMessage.test.ts │ │ │ │ │ │ │ │ │ └── useUploadCodeListNameErrorMessage.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ │ ├── CodeListReference.ts │ │ │ │ │ │ │ │ │ └── CodeListWithMetadata.ts │ │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Images/ │ │ │ │ │ │ │ ├── Images.tsx │ │ │ │ │ │ │ ├── ImagesPage/ │ │ │ │ │ │ │ │ ├── ImagesPage.module.css │ │ │ │ │ │ │ │ ├── ImagesPage.test.tsx │ │ │ │ │ │ │ │ ├── ImagesPage.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Landing/ │ │ │ │ │ │ │ ├── Landing.tsx │ │ │ │ │ │ │ ├── LandingPage/ │ │ │ │ │ │ │ │ ├── LandingPage.module.css │ │ │ │ │ │ │ │ ├── LandingPage.test.tsx │ │ │ │ │ │ │ │ ├── LandingPage.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Page.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ ├── codeListDataList.ts │ │ │ │ │ │ ├── externalResources.ts │ │ │ │ │ │ └── textResources.ts │ │ │ │ │ └── types/ │ │ │ │ │ ├── CodeList.ts │ │ │ │ │ ├── CodeListData.ts │ │ │ │ │ ├── CodeListDataWithTextResources.ts │ │ │ │ │ ├── CodeListUsageTaskType.ts │ │ │ │ │ ├── CodeListWithTextResources.ts │ │ │ │ │ ├── ContentLibraryConfig.ts │ │ │ │ │ ├── ContentLibraryRouter.ts │ │ │ │ │ ├── InfoBoxProps.ts │ │ │ │ │ ├── PageName.ts │ │ │ │ │ ├── PagesProps.ts │ │ │ │ │ ├── TextResource.ts │ │ │ │ │ ├── TextResourceWithLanguage.ts │ │ │ │ │ └── TextResources.ts │ │ │ │ ├── test-utils/ │ │ │ │ │ └── renderWithProviders.tsx │ │ │ │ └── tsconfig.json │ │ │ ├── studio-feature-flags/ │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── FeatureFlag.ts │ │ │ │ │ ├── FeatureFlagMutationContext.test.tsx │ │ │ │ │ ├── FeatureFlagMutationContext.ts │ │ │ │ │ ├── FeatureFlagsContext.test.tsx │ │ │ │ │ ├── FeatureFlagsContext.ts │ │ │ │ │ ├── FeatureFlagsProvider.test.tsx │ │ │ │ │ ├── FeatureFlagsProvider.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useFeatureFlag.test.tsx │ │ │ │ │ ├── useFeatureFlag.ts │ │ │ │ │ ├── useFeatureToggle.test.tsx │ │ │ │ │ ├── useFeatureToggle.ts │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ └── utils.ts │ │ │ │ └── tsconfig.json │ │ │ ├── studio-feedback-form/ │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── README.md │ │ │ │ ├── jest.config.js │ │ │ │ ├── mocks/ │ │ │ │ │ └── mockQuestionsConfig.ts │ │ │ │ ├── package.json │ │ │ │ └── src/ │ │ │ │ ├── FeedbackForm/ │ │ │ │ │ ├── FeedbackForm.module.css │ │ │ │ │ ├── FeedbackForm.test.tsx │ │ │ │ │ ├── FeedbackForm.tsx │ │ │ │ │ └── Question/ │ │ │ │ │ ├── TextQuestion.test.tsx │ │ │ │ │ ├── TextQuestion.tsx │ │ │ │ │ ├── YesNoQuestion.module.css │ │ │ │ │ ├── YesNoQuestion.test.tsx │ │ │ │ │ └── YesNoQuestion.tsx │ │ │ │ ├── config/ │ │ │ │ │ ├── FeedbackFormImpl.test.tsx │ │ │ │ │ └── FeedbackFormImpl.tsx │ │ │ │ ├── contexts/ │ │ │ │ │ ├── FeedbackFormContext.test.tsx │ │ │ │ │ └── FeedbackFormContext.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── types/ │ │ │ │ │ ├── FeedbackFormConfig.ts │ │ │ │ │ └── QuestionsProps.ts │ │ │ │ └── utils/ │ │ │ │ ├── questionUtils.test.ts │ │ │ │ ├── questionUtils.ts │ │ │ │ ├── submitUtils.test.ts │ │ │ │ └── submitUtils.ts │ │ │ ├── studio-guard/ │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── Guard.test.ts │ │ │ │ │ ├── Guard.ts │ │ │ │ │ └── index.ts │ │ │ │ └── tsconfig.json │ │ │ ├── studio-hooks/ │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── README.md │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── useDebounce.test.ts │ │ │ │ │ │ ├── useDebounce.ts │ │ │ │ │ │ ├── useForwardedRef.test.tsx │ │ │ │ │ │ ├── useForwardedRef.ts │ │ │ │ │ │ ├── useMediaQuery.test.ts │ │ │ │ │ │ ├── useMediaQuery.ts │ │ │ │ │ │ ├── useOrgAppScopedStorage.test.tsx │ │ │ │ │ │ ├── useOrgAppScopedStorage.ts │ │ │ │ │ │ ├── usePrevious.test.ts │ │ │ │ │ │ ├── usePrevious.ts │ │ │ │ │ │ ├── usePropState.test.ts │ │ │ │ │ │ ├── usePropState.ts │ │ │ │ │ │ ├── useResetState.test.ts │ │ │ │ │ │ ├── useResetState.ts │ │ │ │ │ │ ├── useUniqueKey.test.ts │ │ │ │ │ │ ├── useUniqueKeys.ts │ │ │ │ │ │ ├── useUnsavedChangesWarning.test.ts │ │ │ │ │ │ └── useUnsavedChangesWarning.ts │ │ │ │ │ └── index.ts │ │ │ │ └── tsconfig.json │ │ │ ├── studio-icons/ │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── README.md │ │ │ │ ├── jest.config.json │ │ │ │ ├── package.json │ │ │ │ ├── setupTests.ts │ │ │ │ ├── src/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── react/ │ │ │ │ │ ├── icons/ │ │ │ │ │ │ ├── AccordionIcon.tsx │ │ │ │ │ │ ├── ArrayIcon.tsx │ │ │ │ │ │ ├── BooleanIcon.tsx │ │ │ │ │ │ ├── CheckboxIcon.tsx │ │ │ │ │ │ ├── CodeListsIcon.tsx │ │ │ │ │ │ ├── CombinationIcon.tsx │ │ │ │ │ │ ├── ConfirmationTaskIcon.tsx │ │ │ │ │ │ ├── ContactResourceIcon.tsx │ │ │ │ │ │ ├── DataTaskIcon.tsx │ │ │ │ │ │ ├── DefinitionIcon.tsx │ │ │ │ │ │ ├── DesignResourceIcon.tsx │ │ │ │ │ │ ├── DocsResourceIcon.tsx │ │ │ │ │ │ ├── ElementIcon.tsx │ │ │ │ │ │ ├── EndEventIcon.tsx │ │ │ │ │ │ ├── FeedbackTaskIcon.tsx │ │ │ │ │ │ ├── GitHubIcon.tsx │ │ │ │ │ │ ├── GiteaIcon.tsx │ │ │ │ │ │ ├── GroupIcon.tsx │ │ │ │ │ │ ├── Icons.test.tsx │ │ │ │ │ │ ├── IntegerIcon.tsx │ │ │ │ │ │ ├── LikertIcon.tsx │ │ │ │ │ │ ├── LongTextIcon.tsx │ │ │ │ │ │ ├── MaskinportenIcon.tsx │ │ │ │ │ │ ├── NavBarIcon.tsx │ │ │ │ │ │ ├── ObjectIcon.tsx │ │ │ │ │ │ ├── OperationStatusResourceIcon.tsx │ │ │ │ │ │ ├── OrgResourceIcon.tsx │ │ │ │ │ │ ├── PaymentDetailsIcon.tsx │ │ │ │ │ │ ├── PaymentTaskIcon.tsx │ │ │ │ │ │ ├── PdfTaskIcon.tsx │ │ │ │ │ │ ├── PropertyIcon.tsx │ │ │ │ │ │ ├── RadioButtonIcon.tsx │ │ │ │ │ │ ├── ReferenceIcon.tsx │ │ │ │ │ │ ├── RepeatingGroupIcon.tsx │ │ │ │ │ │ ├── RoadmapResourceIcon.tsx │ │ │ │ │ │ ├── SectionHeaderWarningIcon.tsx │ │ │ │ │ │ ├── SelectIcon.tsx │ │ │ │ │ │ ├── ShortTextIcon.tsx │ │ │ │ │ │ ├── SignTaskIcon.tsx │ │ │ │ │ │ ├── SlackIcon.tsx │ │ │ │ │ │ ├── StringIcon.tsx │ │ │ │ │ │ ├── SvgTemplate.tsx │ │ │ │ │ │ ├── TextIcon.tsx │ │ │ │ │ │ ├── TitleIcon.tsx │ │ │ │ │ │ ├── UserControlledSigningIcon.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── types/ │ │ │ │ │ ├── IconProps.ts │ │ │ │ │ └── index.ts │ │ │ │ └── tsconfig.json │ │ │ ├── studio-pure-functions/ │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── README.md │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── ArrayUtils/ │ │ │ │ │ │ ├── ArrayUtils.test.ts │ │ │ │ │ │ ├── ArrayUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── BlobDownloader/ │ │ │ │ │ │ ├── BlobDownloader.test.ts │ │ │ │ │ │ ├── BlobDownloader.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── DateUtils/ │ │ │ │ │ │ ├── DateUtils.test.ts │ │ │ │ │ │ ├── DateUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── FileNameUtils/ │ │ │ │ │ │ ├── FileNameUtils.test.ts │ │ │ │ │ │ ├── FileNameUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── FileUtils/ │ │ │ │ │ │ ├── FileUtils.test.ts │ │ │ │ │ │ ├── FileUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── NumberUtils/ │ │ │ │ │ │ ├── NumberUtils.test.ts │ │ │ │ │ │ ├── NumberUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ObjectUtils/ │ │ │ │ │ │ ├── ObjectUtils.test.ts │ │ │ │ │ │ ├── ObjectUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── PublishedElements/ │ │ │ │ │ │ ├── PublishedElements.test.ts │ │ │ │ │ │ ├── PublishedElements.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ReadonlyMapUtils/ │ │ │ │ │ │ ├── ReadonlyMapUtils.test.ts │ │ │ │ │ │ ├── ReadonlyMapUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ScopedStorage/ │ │ │ │ │ │ ├── ScopedStorage.test.ts │ │ │ │ │ │ ├── ScopedStorage.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── StringUtils/ │ │ │ │ │ │ ├── StringUtils.test.ts │ │ │ │ │ │ ├── StringUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── TextResourceUtils/ │ │ │ │ │ │ ├── TextResourceUtils.test.ts │ │ │ │ │ │ ├── TextResourceUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── UrlUtils/ │ │ │ │ │ │ ├── UrlUtils.test.ts │ │ │ │ │ │ ├── UrlUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ValidationUtils/ │ │ │ │ │ │ ├── ValidationUtils.test.ts │ │ │ │ │ │ ├── ValidationUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── WebStorage/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── webStorage.test.ts │ │ │ │ │ │ └── webStorage.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types/ │ │ │ │ │ ├── Interval.ts │ │ │ │ │ ├── KeyValuePairs.ts │ │ │ │ │ ├── Mutable.ts │ │ │ │ │ ├── TextResource.ts │ │ │ │ │ ├── TextResourceMap.ts │ │ │ │ │ ├── TextResourcesWithLanguage.ts │ │ │ │ │ └── index.ts │ │ │ │ └── tsconfig.json │ │ │ └── studio-ui-test/ │ │ │ ├── .eslintrc.js │ │ │ ├── README.md │ │ │ ├── declaration.d.ts │ │ │ ├── jest.config.js │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ ├── matchers.ts │ │ │ │ ├── renderAndRunTimers.test.tsx │ │ │ │ ├── renderAndRunTimers.ts │ │ │ │ ├── studioTest.test.tsx │ │ │ │ └── studioTest.ts │ │ │ └── tsconfig.json │ │ ├── package.json │ │ ├── packages/ │ │ │ ├── policy-editor/ │ │ │ │ ├── .eslintrc.json │ │ │ │ ├── README.md │ │ │ │ ├── index.ts │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── PolicyEditor.module.css │ │ │ │ │ ├── PolicyEditor.test.tsx │ │ │ │ │ ├── PolicyEditor.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── AddPolicyRuleButton/ │ │ │ │ │ │ │ ├── AddPolicyRuleButton.module.css │ │ │ │ │ │ │ ├── AddPolicyRuleButton.test.tsx │ │ │ │ │ │ │ ├── AddPolicyRuleButton.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ConsentResourcePolicyRulesEditor/ │ │ │ │ │ │ │ ├── ConsentResourcePolicyRulesEditor.module.css │ │ │ │ │ │ │ ├── ConsentResourcePolicyRulesEditor.test.tsx │ │ │ │ │ │ │ ├── ConsentResourcePolicyRulesEditor.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── PolicyCardRules/ │ │ │ │ │ │ │ ├── PolicyCardRules.module.css │ │ │ │ │ │ │ ├── PolicyCardRules.test.tsx │ │ │ │ │ │ │ ├── PolicyCardRules.tsx │ │ │ │ │ │ │ ├── PolicyRule/ │ │ │ │ │ │ │ │ ├── ExpandablePolicyElement/ │ │ │ │ │ │ │ │ │ ├── ExpandablePolicyElement.module.css │ │ │ │ │ │ │ │ │ ├── ExpandablePolicyElement.test.tsx │ │ │ │ │ │ │ │ │ ├── ExpandablePolicyElement.tsx │ │ │ │ │ │ │ │ │ ├── PolicyEditorDropdownMenu/ │ │ │ │ │ │ │ │ │ │ ├── PolicyEditorDropdownMenu.module.css │ │ │ │ │ │ │ │ │ │ ├── PolicyEditorDropdownMenu.test.tsx │ │ │ │ │ │ │ │ │ │ ├── PolicyEditorDropdownMenu.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── PolicyAccessPackages/ │ │ │ │ │ │ │ │ │ ├── AllAccessPackages/ │ │ │ │ │ │ │ │ │ │ ├── AllAccessPackages.module.css │ │ │ │ │ │ │ │ │ │ ├── AllAccessPackages.test.tsx │ │ │ │ │ │ │ │ │ │ ├── AllAccessPackages.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageAccordion/ │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageAccordion.module.css │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageAccordion.test.tsx │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageAccordion.tsx │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageAccordionCheckbox/ │ │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageAccordionCheckbox.module.css │ │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageAccordionCheckbox.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageAccordionCheckbox.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageAccordionContent/ │ │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageAccordionContent.module.css │ │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageAccordionContent.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageAccordionContent.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageServices/ │ │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageServices.module.css │ │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageServices.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackageServices.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackages.module.css │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackages.test.tsx │ │ │ │ │ │ │ │ │ ├── PolicyAccessPackages.tsx │ │ │ │ │ │ │ │ │ ├── PolicyAccordion/ │ │ │ │ │ │ │ │ │ │ ├── PolicyAccordion.module.css │ │ │ │ │ │ │ │ │ │ ├── PolicyAccordion.test.tsx │ │ │ │ │ │ │ │ │ │ ├── PolicyAccordion.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── policyAccessPackageUtils.test.ts │ │ │ │ │ │ │ │ │ └── policyAccessPackageUtils.ts │ │ │ │ │ │ │ │ ├── PolicyActions/ │ │ │ │ │ │ │ │ │ ├── PolicyActions.module.css │ │ │ │ │ │ │ │ │ ├── PolicyActions.test.tsx │ │ │ │ │ │ │ │ │ ├── PolicyActions.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── PolicyDescription/ │ │ │ │ │ │ │ │ │ ├── PolicyDescription.module.css │ │ │ │ │ │ │ │ │ ├── PolicyDescription.test.tsx │ │ │ │ │ │ │ │ │ ├── PolicyDescription.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── PolicyRule.test.tsx │ │ │ │ │ │ │ │ ├── PolicyRule.tsx │ │ │ │ │ │ │ │ ├── PolicyRuleErrorMessage/ │ │ │ │ │ │ │ │ │ ├── PolicyRuleErrorMessage.test.tsx │ │ │ │ │ │ │ │ │ ├── PolicyRuleErrorMessage.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── PolicySubjects/ │ │ │ │ │ │ │ │ │ ├── ChosenSubjects/ │ │ │ │ │ │ │ │ │ │ ├── ChosenSubjects.module.css │ │ │ │ │ │ │ │ │ │ ├── ChosenSubjects.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ChosenSubjects.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── PolicySubjects.module.css │ │ │ │ │ │ │ │ │ ├── PolicySubjects.test.tsx │ │ │ │ │ │ │ │ │ ├── PolicySubjects.tsx │ │ │ │ │ │ │ │ │ ├── PolicySubjectsOrg.tsx │ │ │ │ │ │ │ │ │ ├── PolicySubjectsPerson.tsx │ │ │ │ │ │ │ │ │ ├── RoleList/ │ │ │ │ │ │ │ │ │ │ ├── RoleList.module.css │ │ │ │ │ │ │ │ │ │ ├── RoleList.test.tsx │ │ │ │ │ │ │ │ │ │ ├── RoleList.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── SubjectListItem/ │ │ │ │ │ │ │ │ │ │ ├── SubjectListItem.module.css │ │ │ │ │ │ │ │ │ │ ├── SubjectListItem.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── SubResources/ │ │ │ │ │ │ │ │ │ ├── ResourceNarrowingList/ │ │ │ │ │ │ │ │ │ │ ├── PolicyResourceFields/ │ │ │ │ │ │ │ │ │ │ │ ├── PolicyResourceFields.module.css │ │ │ │ │ │ │ │ │ │ │ ├── PolicyResourceFields.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── PolicyResourceFields.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── ResourceNarrowingList.module.css │ │ │ │ │ │ │ │ │ │ ├── ResourceNarrowingList.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ResourceNarrowingList.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── SubResources.module.css │ │ │ │ │ │ │ │ │ ├── SubResources.test.tsx │ │ │ │ │ │ │ │ │ ├── SubResources.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── PolicyEditorAlert/ │ │ │ │ │ │ │ ├── PolicyEditorAlert.module.css │ │ │ │ │ │ │ ├── PolicyEditorAlert.test.tsx │ │ │ │ │ │ │ ├── PolicyEditorAlert.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── PolicyEditorTabs/ │ │ │ │ │ │ │ ├── PolicyEditorTabs.test.tsx │ │ │ │ │ │ │ ├── PolicyEditorTabs.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── PolicyRulesEditor/ │ │ │ │ │ │ │ ├── PolicyRulesEditor.module.css │ │ │ │ │ │ │ ├── PolicyRulesEditor.test.tsx │ │ │ │ │ │ │ ├── PolicyRulesEditor.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── PolicySummary/ │ │ │ │ │ │ │ ├── FeedbackForm/ │ │ │ │ │ │ │ │ └── FeedbackForm.tsx │ │ │ │ │ │ │ ├── PolicyRuleSummary/ │ │ │ │ │ │ │ │ ├── PolicyRuleAccessPackageSummary.test.tsx │ │ │ │ │ │ │ │ ├── PolicyRuleAccessPackageSummary.tsx │ │ │ │ │ │ │ │ ├── PolicyRuleSubjectSummary.module.css │ │ │ │ │ │ │ │ ├── PolicyRuleSubjectSummary.test.tsx │ │ │ │ │ │ │ │ └── PolicyRuleSubjectSummary.tsx │ │ │ │ │ │ │ ├── PolicySummary.module.css │ │ │ │ │ │ │ ├── PolicySummary.test.tsx │ │ │ │ │ │ │ ├── PolicySummary.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── SecurityLevelSelect/ │ │ │ │ │ │ ├── SecurityLevelSelect.module.css │ │ │ │ │ │ ├── SecurityLevelSelect.test.tsx │ │ │ │ │ │ ├── SecurityLevelSelect.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── constants.ts │ │ │ │ │ ├── contexts/ │ │ │ │ │ │ ├── PolicyEditorContext/ │ │ │ │ │ │ │ ├── PolicyEditorContext.test.tsx │ │ │ │ │ │ │ ├── PolicyEditorContext.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── PolicyRuleContext/ │ │ │ │ │ │ ├── PolicyRuleContext.test.tsx │ │ │ │ │ │ ├── PolicyRuleContext.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── types/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── utils/ │ │ │ │ │ ├── AppPolicyUtils/ │ │ │ │ │ │ ├── AppPolicyUtils.test.ts │ │ │ │ │ │ ├── AppPolicyUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── PolicyEditorUtils.test.ts │ │ │ │ │ ├── PolicyRuleUtils/ │ │ │ │ │ │ ├── PolicyRuleUtils.test.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── test/ │ │ │ │ │ └── mocks/ │ │ │ │ │ ├── policyActionMocks.ts │ │ │ │ │ ├── policyEditorContextMock.ts │ │ │ │ │ ├── policyRuleContextMock.ts │ │ │ │ │ ├── policyRuleMocks.ts │ │ │ │ │ ├── policySubResourceMocks.ts │ │ │ │ │ └── policySubjectMocks.ts │ │ │ │ └── tsconfig.json │ │ │ ├── process-editor/ │ │ │ │ ├── .eslintrc.json │ │ │ │ ├── README.md │ │ │ │ ├── index.ts │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── ProcessEditor.module.css │ │ │ │ │ ├── ProcessEditor.test.tsx │ │ │ │ │ ├── ProcessEditor.tsx │ │ │ │ │ ├── bpmnProviders/ │ │ │ │ │ │ ├── SupportedContextPadProvider.js │ │ │ │ │ │ ├── SupportedPaletteProvider.js │ │ │ │ │ │ └── SupportedPaletteProvider.test.ts │ │ │ │ │ ├── commandHandlers/ │ │ │ │ │ │ ├── UpdateTaskIdCommandHandler.test.ts │ │ │ │ │ │ └── UpdateTaskIdCommandHandler.ts │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── Canvas/ │ │ │ │ │ │ │ ├── BPMNEditor/ │ │ │ │ │ │ │ │ ├── BPMNEditor.css │ │ │ │ │ │ │ │ ├── BPMNEditor.module.css │ │ │ │ │ │ │ │ ├── BPMNEditor.test.tsx │ │ │ │ │ │ │ │ ├── BPMNEditor.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── BPMNViewer/ │ │ │ │ │ │ │ │ ├── BPMNViewer.module.css │ │ │ │ │ │ │ │ ├── BPMNViewer.test.tsx │ │ │ │ │ │ │ │ ├── BPMNViewer.tsx │ │ │ │ │ │ │ │ ├── BPMNViewerErrorAlert/ │ │ │ │ │ │ │ │ │ ├── BPMNViewerErrorAlert.module.css │ │ │ │ │ │ │ │ │ ├── BPMNViewerErrorAlert.test.tsx │ │ │ │ │ │ │ │ │ ├── BPMNViewerErrorAlert.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── Canvas.module.css │ │ │ │ │ │ │ ├── Canvas.test.tsx │ │ │ │ │ │ │ ├── Canvas.tsx │ │ │ │ │ │ │ ├── VersionHelpText/ │ │ │ │ │ │ │ │ ├── VersionHelpText.module.css │ │ │ │ │ │ │ │ ├── VersionHelpText.test.tsx │ │ │ │ │ │ │ │ ├── VersionHelpText.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ConfigPanel/ │ │ │ │ │ │ │ ├── ConfigContent/ │ │ │ │ │ │ │ │ ├── ConfigContent.module.css │ │ │ │ │ │ │ │ ├── ConfigContent.test.tsx │ │ │ │ │ │ │ │ ├── ConfigContent.tsx │ │ │ │ │ │ │ │ ├── ConfigContentContainer.tsx │ │ │ │ │ │ │ │ ├── ConfigIcon/ │ │ │ │ │ │ │ │ │ ├── ConfigIcon.module.css │ │ │ │ │ │ │ │ │ ├── ConfigIcon.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── EditActions/ │ │ │ │ │ │ │ │ │ ├── ActionsEditor/ │ │ │ │ │ │ │ │ │ │ ├── ActionsEditor.module.css │ │ │ │ │ │ │ │ │ │ ├── ActionsEditor.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ActionsEditor.tsx │ │ │ │ │ │ │ │ │ │ ├── CustomActions/ │ │ │ │ │ │ │ │ │ │ │ ├── CustomAction.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── CustomActions.module.css │ │ │ │ │ │ │ │ │ │ │ ├── CustomActions.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── PredefinedActions/ │ │ │ │ │ │ │ │ │ │ │ ├── PredefinedActions.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── PredefinedActions.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ │ │ │ ├── useOnActionChange.test.tsx │ │ │ │ │ │ │ │ │ │ │ └── useOnActionChange.ts │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── EditActions.test.tsx │ │ │ │ │ │ │ │ │ ├── EditActions.tsx │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ └── useChecksum.ts │ │ │ │ │ │ │ │ ├── EditCorrespondenceResource/ │ │ │ │ │ │ │ │ │ ├── EditCorrespondenceResource.test.tsx │ │ │ │ │ │ │ │ │ ├── EditCorrespondenceResource.tsx │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── useGetCorrespondenceResource.ts │ │ │ │ │ │ │ │ │ ├── useUpdateCorrespondenceResource.test.ts │ │ │ │ │ │ │ │ │ └── useUpdateCorrespondenceResource.ts │ │ │ │ │ │ │ │ ├── EditDataTypes/ │ │ │ │ │ │ │ │ │ ├── EditDataTypes.test.tsx │ │ │ │ │ │ │ │ │ ├── EditDataTypes.tsx │ │ │ │ │ │ │ │ │ ├── SelectDataTypes/ │ │ │ │ │ │ │ │ │ │ ├── SelectDataTypes.module.css │ │ │ │ │ │ │ │ │ │ ├── SelectDataTypes.test.tsx │ │ │ │ │ │ │ │ │ │ ├── SelectDataTypes.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── EditDataTypesToSign/ │ │ │ │ │ │ │ │ │ ├── EditDataTypesToSign.test.tsx │ │ │ │ │ │ │ │ │ ├── EditDataTypesToSign.tsx │ │ │ │ │ │ │ │ │ ├── SelectDataTypesToSign/ │ │ │ │ │ │ │ │ │ │ ├── SelectDataTypesToSign.module.css │ │ │ │ │ │ │ │ │ │ ├── SelectDataTypesToSign.test.tsx │ │ │ │ │ │ │ │ │ │ ├── SelectDataTypesToSign.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── EditLayoutSetName/ │ │ │ │ │ │ │ │ │ ├── EditLayoutSetName.test.tsx │ │ │ │ │ │ │ │ │ ├── EditLayoutSetName.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── EditLayoutSetNameRecommendedAction/ │ │ │ │ │ │ │ │ │ ├── RecommendedActionChangeName.test.tsx │ │ │ │ │ │ │ │ │ └── RecommendedActionChangeName.tsx │ │ │ │ │ │ │ │ ├── EditPolicy/ │ │ │ │ │ │ │ │ │ ├── EditPolicy.module.css │ │ │ │ │ │ │ │ │ ├── EditPolicy.test.tsx │ │ │ │ │ │ │ │ │ ├── EditPolicy.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── EditTaskId/ │ │ │ │ │ │ │ │ │ ├── EditTaskId.test.tsx │ │ │ │ │ │ │ │ │ └── EditTaskId.tsx │ │ │ │ │ │ │ │ ├── EditUniqueFromSignaturesInDataTypes/ │ │ │ │ │ │ │ │ │ ├── EditUniqueFromSignaturesInDataTypes.test.tsx │ │ │ │ │ │ │ │ │ ├── EditUniqueFromSignaturesInDataTypes.tsx │ │ │ │ │ │ │ │ │ ├── SelectUniqueFromSignaturesInDataTypes/ │ │ │ │ │ │ │ │ │ │ ├── SelectUniqueFromSignaturesInDataTypes.module.css │ │ │ │ │ │ │ │ │ │ ├── SelectUniqueFromSignaturesInDataTypes.test.tsx │ │ │ │ │ │ │ │ │ │ ├── SelectUniqueFromSignaturesInDataTypes.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── UniqueFromSignaturesInDataTypesUtils.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── EditUserControlledImplementation/ │ │ │ │ │ │ │ │ │ ├── EditUserControlledImplementation.test.tsx │ │ │ │ │ │ │ │ │ ├── EditUserControlledImplementation.tsx │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── useGetDefaultUserControlledSigningInterfaceId.ts │ │ │ │ │ │ │ │ │ ├── useUpdateUserControlledImplementation.test.ts │ │ │ │ │ │ │ │ │ └── useUpdateUserControlledImplementation.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── ConfigEndEvent/ │ │ │ │ │ │ │ │ ├── ConfigEndEvent.module.css │ │ │ │ │ │ │ │ ├── ConfigEndEvent.test.tsx │ │ │ │ │ │ │ │ ├── ConfigEndEvent.tsx │ │ │ │ │ │ │ │ ├── CustomReceiptContent/ │ │ │ │ │ │ │ │ │ ├── CreateCustomReceiptForm/ │ │ │ │ │ │ │ │ │ │ ├── CreateCustomReceiptForm.module.css │ │ │ │ │ │ │ │ │ │ ├── CreateCustomReceiptForm.test.tsx │ │ │ │ │ │ │ │ │ │ ├── CreateCustomReceiptForm.tsx │ │ │ │ │ │ │ │ │ │ ├── SelectCustomReceiptDataModelId/ │ │ │ │ │ │ │ │ │ │ │ ├── SelectCustomReceiptDataModelId.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── SelectCustomReceiptDataModelId.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── CustomReceipt/ │ │ │ │ │ │ │ │ │ │ ├── CustomReceipt.module.css │ │ │ │ │ │ │ │ │ │ ├── CustomReceipt.test.tsx │ │ │ │ │ │ │ │ │ │ ├── CustomReceipt.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── CustomReceiptContent.module.css │ │ │ │ │ │ │ │ │ ├── CustomReceiptContent.test.tsx │ │ │ │ │ │ │ │ │ ├── CustomReceiptContent.tsx │ │ │ │ │ │ │ │ │ ├── RedirectToCreatePageButton/ │ │ │ │ │ │ │ │ │ │ ├── RedirectToCreatePageButton.module.css │ │ │ │ │ │ │ │ │ │ ├── RedirectToCreatePageButton.test.tsx │ │ │ │ │ │ │ │ │ │ ├── RedirectToCreatePageButton.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── ConfigPanel.module.css │ │ │ │ │ │ │ ├── ConfigPanel.test.tsx │ │ │ │ │ │ │ ├── ConfigPanel.tsx │ │ │ │ │ │ │ ├── ConfigSequenceFlow/ │ │ │ │ │ │ │ │ ├── ConfigSequenceFlow.module.css │ │ │ │ │ │ │ │ ├── ConfigSequenceFlow.test.tsx │ │ │ │ │ │ │ │ ├── ConfigSequenceFlow.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── ConfigServiceTask/ │ │ │ │ │ │ │ │ ├── ConfigPdfServiceTask/ │ │ │ │ │ │ │ │ │ ├── ConfigPdfServiceTask.module.css │ │ │ │ │ │ │ │ │ ├── ConfigPdfServiceTask.test.tsx │ │ │ │ │ │ │ │ │ ├── ConfigPdfServiceTask.tsx │ │ │ │ │ │ │ │ │ ├── PdfAutomaticTaskSelection/ │ │ │ │ │ │ │ │ │ │ ├── PdfAutomaticTaskSelection.module.css │ │ │ │ │ │ │ │ │ │ ├── PdfAutomaticTaskSelection.test.tsx │ │ │ │ │ │ │ │ │ │ ├── PdfAutomaticTaskSelection.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── PdfFilenameTextResource/ │ │ │ │ │ │ │ │ │ │ ├── PdfFilenameTextResource.module.css │ │ │ │ │ │ │ │ │ │ ├── PdfFilenameTextResource.test.tsx │ │ │ │ │ │ │ │ │ │ ├── PdfFilenameTextResource.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── PdfLayoutBasedSection/ │ │ │ │ │ │ │ │ │ │ ├── PdfLayoutBasedSection.module.css │ │ │ │ │ │ │ │ │ │ ├── PdfLayoutBasedSection.test.tsx │ │ │ │ │ │ │ │ │ │ ├── PdfLayoutBasedSection.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── testUtils.tsx │ │ │ │ │ │ │ │ │ ├── useCurrentLayoutSet.test.tsx │ │ │ │ │ │ │ │ │ ├── useCurrentLayoutSet.ts │ │ │ │ │ │ │ │ │ ├── usePdfConfig.test.tsx │ │ │ │ │ │ │ │ │ ├── usePdfConfig.ts │ │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ ├── ConfigServiceTask.module.css │ │ │ │ │ │ │ │ ├── ConfigServiceTask.test.tsx │ │ │ │ │ │ │ │ ├── ConfigServiceTask.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ConfigSurface/ │ │ │ │ │ │ │ ├── ConfigSurface.module.css │ │ │ │ │ │ │ ├── ConfigSurface.test.tsx │ │ │ │ │ │ │ └── ConfigSurface.tsx │ │ │ │ │ │ └── ConfigViewerPanel/ │ │ │ │ │ │ ├── ConfigViewerPanel.module.css │ │ │ │ │ │ ├── ConfigViewerPanel.test.tsx │ │ │ │ │ │ ├── ConfigViewerPanel.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── contexts/ │ │ │ │ │ │ ├── BpmnApiContext.tsx │ │ │ │ │ │ ├── BpmnConfigPanelContext.test.tsx │ │ │ │ │ │ ├── BpmnConfigPanelContext.tsx │ │ │ │ │ │ ├── BpmnContext.test.tsx │ │ │ │ │ │ └── BpmnContext.tsx │ │ │ │ │ ├── enum/ │ │ │ │ │ │ └── BpmnTypeEnum.ts │ │ │ │ │ ├── extensions/ │ │ │ │ │ │ └── altinnCustomTasks.ts │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── dataTypesToSign/ │ │ │ │ │ │ │ ├── useGetDataTypesToSign.ts │ │ │ │ │ │ │ └── useUpdateDataTypesToSign.ts │ │ │ │ │ │ ├── useBpmnEditor.test.tsx │ │ │ │ │ │ ├── useBpmnEditor.ts │ │ │ │ │ │ ├── useBpmnViewer.ts │ │ │ │ │ │ ├── useTaskIds.tsx │ │ │ │ │ │ ├── useUpdatePdfConfigTaskIds.test.tsx │ │ │ │ │ │ ├── useUpdatePdfConfigTaskIds.tsx │ │ │ │ │ │ └── useValidateBpmnId.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── types/ │ │ │ │ │ │ ├── BpmnBusinessObjectEditor.ts │ │ │ │ │ │ ├── BpmnBusinessObjectViewer.ts │ │ │ │ │ │ ├── BpmnDetails.ts │ │ │ │ │ │ ├── BpmnTaskType.ts │ │ │ │ │ │ ├── BpmnViewerError.ts │ │ │ │ │ │ ├── CustomReceiptType.ts │ │ │ │ │ │ ├── OnProcessTask.ts │ │ │ │ │ │ ├── SelectionChangeEvent.ts │ │ │ │ │ │ └── TaskEvent.ts │ │ │ │ │ └── utils/ │ │ │ │ │ ├── bpmnGuard/ │ │ │ │ │ │ ├── BpmnGuard.test.ts │ │ │ │ │ │ └── BpmnGuard.ts │ │ │ │ │ ├── bpmnModeler/ │ │ │ │ │ │ ├── BpmnActionModeler.ts │ │ │ │ │ │ ├── BpmnExpressionModeler.ts │ │ │ │ │ │ ├── BpmnModelerInstance.ts │ │ │ │ │ │ └── StudioModeler.ts │ │ │ │ │ ├── bpmnObjectBuilders/ │ │ │ │ │ │ ├── bpmnObjectBuilders.test.ts │ │ │ │ │ │ ├── bpmnObjectBuilders.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── configPanelUtils/ │ │ │ │ │ │ ├── configPanelUtils.test.ts │ │ │ │ │ │ ├── configPanelUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── processActions/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── processActions.test.ts │ │ │ │ │ │ └── processActions.ts │ │ │ │ │ ├── processEditorUtils/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── processEditorUtils.test.ts │ │ │ │ │ │ └── processEditorUtils.ts │ │ │ │ │ └── taskUtils/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── taskUtils.test.ts │ │ │ │ │ └── taskUtils.ts │ │ │ │ ├── test/ │ │ │ │ │ ├── EventListeners.test.ts │ │ │ │ │ ├── EventListeners.ts │ │ │ │ │ └── mocks/ │ │ │ │ │ ├── bpmnContextMock.ts │ │ │ │ │ ├── bpmnDetailsMock.ts │ │ │ │ │ ├── bpmnModelerMock.ts │ │ │ │ │ └── queryOptionMock.ts │ │ │ │ └── tsconfig.json │ │ │ ├── schema-editor/ │ │ │ │ ├── .eslintrc.json │ │ │ │ ├── README.md │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── App.css │ │ │ │ │ ├── SchemaEditorApp.module.css │ │ │ │ │ ├── SchemaEditorApp.test.tsx │ │ │ │ │ ├── SchemaEditorApp.tsx │ │ │ │ │ ├── classes/ │ │ │ │ │ │ ├── SavableSchemaModel.test.ts │ │ │ │ │ │ └── SavableSchemaModel.ts │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── AddPropertiesMenu/ │ │ │ │ │ │ │ ├── AddPropertiesMenu.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── NoItemSelectedMessage/ │ │ │ │ │ │ │ ├── NoItemSelectedMessage.module.css │ │ │ │ │ │ │ ├── NoItemSelectedMessage.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── NodeIcon/ │ │ │ │ │ │ │ ├── NodeIcon.module.css │ │ │ │ │ │ │ ├── NodeIcon.test.tsx │ │ │ │ │ │ │ ├── NodeIcon.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── NodePanel/ │ │ │ │ │ │ │ ├── HeadingRow/ │ │ │ │ │ │ │ │ ├── HeadingRow.module.css │ │ │ │ │ │ │ │ ├── HeadingRow.test.tsx │ │ │ │ │ │ │ │ ├── HeadingRow.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── test-data.test.ts │ │ │ │ │ │ │ │ └── test-data.ts │ │ │ │ │ │ │ ├── NodePanel.module.css │ │ │ │ │ │ │ ├── NodePanel.test.tsx │ │ │ │ │ │ │ ├── NodePanel.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── SchemaEditor/ │ │ │ │ │ │ │ ├── SchemaEditor.module.css │ │ │ │ │ │ │ ├── SchemaEditor.test.tsx │ │ │ │ │ │ │ ├── SchemaEditor.tsx │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ ├── useAddReference.test.ts │ │ │ │ │ │ │ │ ├── useAddReference.ts │ │ │ │ │ │ │ │ ├── useMoveProperty.test.ts │ │ │ │ │ │ │ │ └── useMoveProperty.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ ├── SchemaInspector/ │ │ │ │ │ │ │ ├── CustomProperties.module.css │ │ │ │ │ │ │ ├── CustomProperties.test.tsx │ │ │ │ │ │ │ ├── CustomProperties.tsx │ │ │ │ │ │ │ ├── InlineObject.module.css │ │ │ │ │ │ │ ├── InlineObject.tsx │ │ │ │ │ │ │ ├── ItemDataComponent.module.css │ │ │ │ │ │ │ ├── ItemDataComponent.test.tsx │ │ │ │ │ │ │ ├── ItemDataComponent.tsx │ │ │ │ │ │ │ ├── ItemFieldsTab/ │ │ │ │ │ │ │ │ ├── ItemFieldsTab.module.css │ │ │ │ │ │ │ │ ├── ItemFieldsTab.test.tsx │ │ │ │ │ │ │ │ ├── ItemFieldsTab.tsx │ │ │ │ │ │ │ │ ├── ItemFieldsTable/ │ │ │ │ │ │ │ │ │ ├── ItemFieldType/ │ │ │ │ │ │ │ │ │ │ ├── ItemFieldType.module.css │ │ │ │ │ │ │ │ │ │ ├── ItemFieldType.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ItemFieldType.tsx │ │ │ │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ │ │ │ ├── useKindName.ts │ │ │ │ │ │ │ │ │ │ │ └── useTypeName.ts │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── ItemFieldsTable.module.css │ │ │ │ │ │ │ │ │ ├── ItemFieldsTable.test.tsx │ │ │ │ │ │ │ │ │ ├── ItemFieldsTable.tsx │ │ │ │ │ │ │ │ │ ├── ItemFieldsTableRow.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── domUtils.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── ItemMetadataTab.test.tsx │ │ │ │ │ │ │ ├── ItemMetadataTab.tsx │ │ │ │ │ │ │ ├── ItemPropertiesTab.test.tsx │ │ │ │ │ │ │ ├── ItemPropertiesTab.tsx │ │ │ │ │ │ │ ├── ItemRestrictions/ │ │ │ │ │ │ │ │ ├── ArrayRestrictions/ │ │ │ │ │ │ │ │ │ ├── ArrayRestrictions.module.css │ │ │ │ │ │ │ │ │ ├── ArrayRestrictions.test.tsx │ │ │ │ │ │ │ │ │ ├── ArrayRestrictions.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── EnumList/ │ │ │ │ │ │ │ │ │ ├── EnumField/ │ │ │ │ │ │ │ │ │ │ ├── EnumField.module.css │ │ │ │ │ │ │ │ │ │ ├── EnumField.test.tsx │ │ │ │ │ │ │ │ │ │ ├── EnumField.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── EnumList.module.css │ │ │ │ │ │ │ │ │ ├── EnumList.test.tsx │ │ │ │ │ │ │ │ │ ├── EnumList.tsx │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ ├── ItemRestrictions.module.css │ │ │ │ │ │ │ │ ├── ItemRestrictions.test.tsx │ │ │ │ │ │ │ │ ├── ItemRestrictions.tsx │ │ │ │ │ │ │ │ ├── ItemWrapper/ │ │ │ │ │ │ │ │ │ ├── ItemWrapper.module.css │ │ │ │ │ │ │ │ │ ├── ItemWrapper.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── NumberRestrictions/ │ │ │ │ │ │ │ │ │ ├── NumberRestrictions.module.css │ │ │ │ │ │ │ │ │ ├── NumberRestrictions.test.tsx │ │ │ │ │ │ │ │ │ ├── NumberRestrictions.tsx │ │ │ │ │ │ │ │ │ ├── NumberRestrictionsReducer.test.tsx │ │ │ │ │ │ │ │ │ ├── NumberRestrictionsReducer.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── ObjectRestrictions/ │ │ │ │ │ │ │ │ │ ├── ObjectRestrictions.test.tsx │ │ │ │ │ │ │ │ │ ├── ObjectRestrictions.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── RestrictionField/ │ │ │ │ │ │ │ │ │ ├── RestrictionField.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── StringRestrictions/ │ │ │ │ │ │ │ │ │ ├── StringRestrictions.module.css │ │ │ │ │ │ │ │ │ ├── StringRestrictions.test.tsx │ │ │ │ │ │ │ │ │ ├── StringRestrictions.tsx │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── NameField.test.tsx │ │ │ │ │ │ │ ├── NameField.tsx │ │ │ │ │ │ │ ├── ReferenceSelectionComponent.module.css │ │ │ │ │ │ │ ├── ReferenceSelectionComponent.test.tsx │ │ │ │ │ │ │ ├── ReferenceSelectionComponent.tsx │ │ │ │ │ │ │ ├── SchemaInspector.module.css │ │ │ │ │ │ │ ├── SchemaInspector.test.tsx │ │ │ │ │ │ │ ├── SchemaInspector.tsx │ │ │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ │ │ └── options.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── SchemaTree/ │ │ │ │ │ │ │ ├── SchemaNode/ │ │ │ │ │ │ │ │ ├── ActionButtons/ │ │ │ │ │ │ │ │ │ ├── ActionButton.module.css │ │ │ │ │ │ │ │ │ ├── ActionButton.tsx │ │ │ │ │ │ │ │ │ ├── ActionButtons.module.css │ │ │ │ │ │ │ │ │ ├── ActionButtons.tsx │ │ │ │ │ │ │ │ │ ├── AddPropertyMenu.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── ReferenceButton.module.css │ │ │ │ │ │ │ │ ├── ReferenceButton.tsx │ │ │ │ │ │ │ │ ├── SchemaNode.module.css │ │ │ │ │ │ │ │ ├── SchemaNode.test.tsx │ │ │ │ │ │ │ │ ├── SchemaNode.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── renderIcon.test.tsx │ │ │ │ │ │ │ │ └── renderIcon.tsx │ │ │ │ │ │ │ ├── SchemaTree.test.tsx │ │ │ │ │ │ │ ├── SchemaTree.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── renderSchemaNodeList.tsx │ │ │ │ │ │ └── TypesInspector/ │ │ │ │ │ │ ├── TypeItem.module.css │ │ │ │ │ │ ├── TypeItem.test.tsx │ │ │ │ │ │ ├── TypeItem.tsx │ │ │ │ │ │ ├── TypesInspector.module.css │ │ │ │ │ │ ├── TypesInspector.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── contexts/ │ │ │ │ │ │ └── SchemaEditorAppContext.ts │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── useAddProperty.ts │ │ │ │ │ │ ├── useSavableSchemaModel.ts │ │ │ │ │ │ ├── useSchemaEditorAppContext.test.tsx │ │ │ │ │ │ └── useSchemaEditorAppContext.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mockData.ts │ │ │ │ │ ├── types/ │ │ │ │ │ │ ├── NameError.ts │ │ │ │ │ │ ├── NumberRestrictionsError.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── utils/ │ │ │ │ │ ├── ui-schema-utils.test.ts │ │ │ │ │ └── ui-schema-utils.ts │ │ │ │ ├── test/ │ │ │ │ │ ├── fixtures/ │ │ │ │ │ │ └── mock-string.json │ │ │ │ │ ├── mocks/ │ │ │ │ │ │ ├── jsonSchemaMock.ts │ │ │ │ │ │ ├── metadataMocks.ts │ │ │ │ │ │ ├── uiSchemaMock.test.ts │ │ │ │ │ │ └── uiSchemaMock.ts │ │ │ │ │ ├── renderHookWithProviders.tsx │ │ │ │ │ ├── renderWithProviders.tsx │ │ │ │ │ └── test-utils/ │ │ │ │ │ ├── getSavedModel.ts │ │ │ │ │ └── index.ts │ │ │ │ └── tsconfig.json │ │ │ ├── schema-model/ │ │ │ │ ├── README.md │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── config/ │ │ │ │ │ │ └── default-nodes.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── lib/ │ │ │ │ │ │ ├── SchemaModel/ │ │ │ │ │ │ │ ├── CircularReferenceDetector.test.ts │ │ │ │ │ │ │ ├── CircularReferenceDetector.ts │ │ │ │ │ │ │ ├── SchemaModel.test.ts │ │ │ │ │ │ │ ├── SchemaModel.ts │ │ │ │ │ │ │ ├── SchemaModelBase.test.ts │ │ │ │ │ │ │ ├── SchemaModelBase.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── build-json-schema.ts │ │ │ │ │ │ ├── build-ui-schema.ts │ │ │ │ │ │ ├── build.test.ts │ │ │ │ │ │ ├── constants.ts │ │ │ │ │ │ ├── mappers/ │ │ │ │ │ │ │ ├── custom-properties.test.ts │ │ │ │ │ │ │ ├── custom-properties.ts │ │ │ │ │ │ │ ├── field-type.test.ts │ │ │ │ │ │ │ ├── field-type.ts │ │ │ │ │ │ │ ├── generic.test.ts │ │ │ │ │ │ │ ├── generic.ts │ │ │ │ │ │ │ ├── getPointers.test.ts │ │ │ │ │ │ │ ├── getPointers.ts │ │ │ │ │ │ │ ├── required.test.ts │ │ │ │ │ │ │ └── required.ts │ │ │ │ │ │ ├── mutations/ │ │ │ │ │ │ │ ├── custom-properties.test.ts │ │ │ │ │ │ │ ├── custom-properties.ts │ │ │ │ │ │ │ ├── sort-nodes.test.ts │ │ │ │ │ │ │ ├── sort-nodes.ts │ │ │ │ │ │ │ ├── ui-schema-reducers.test.ts │ │ │ │ │ │ │ └── ui-schema-reducers.ts │ │ │ │ │ │ ├── pointerUtils.test.ts │ │ │ │ │ │ ├── pointerUtils.ts │ │ │ │ │ │ ├── restrictions.test.ts │ │ │ │ │ │ ├── restrictions.ts │ │ │ │ │ │ ├── selectors.test.ts │ │ │ │ │ │ ├── selectors.ts │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ └── types/ │ │ │ │ │ ├── CombinationKind.ts │ │ │ │ │ ├── CombinationNode.ts │ │ │ │ │ ├── CustomPropertyType.ts │ │ │ │ │ ├── FieldNode.ts │ │ │ │ │ ├── FieldType.ts │ │ │ │ │ ├── ItemCategory.ts │ │ │ │ │ ├── Keyword.ts │ │ │ │ │ ├── NodeMap.ts │ │ │ │ │ ├── NodePosition.ts │ │ │ │ │ ├── ObjectKind.ts │ │ │ │ │ ├── PointerCategory.ts │ │ │ │ │ ├── ReferenceNode.ts │ │ │ │ │ ├── SpecialArrayXsdField.ts │ │ │ │ │ ├── StringFormat.ts │ │ │ │ │ ├── UiSchemaNode.ts │ │ │ │ │ ├── UiSchemaNodes.ts │ │ │ │ │ ├── UiSchemaReducer.ts │ │ │ │ │ ├── UnhandledKeyword.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── restrictionKeys/ │ │ │ │ │ ├── ArrRestrictionKey.ts │ │ │ │ │ ├── IntRestrictionKey.ts │ │ │ │ │ ├── ObjRestrictionKey.ts │ │ │ │ │ ├── StrRestrictionKey.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── test/ │ │ │ │ │ ├── old-schema.json │ │ │ │ │ ├── testUtils.test.ts │ │ │ │ │ ├── testUtils.ts │ │ │ │ │ ├── uiSchemaMock.test.ts │ │ │ │ │ ├── uiSchemaMock.ts │ │ │ │ │ └── validateTestUiSchema.ts │ │ │ │ └── tsconfig.json │ │ │ ├── shared/ │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── api/ │ │ │ │ │ │ ├── mutations.ts │ │ │ │ │ │ ├── paths.js │ │ │ │ │ │ ├── paths.test.ts │ │ │ │ │ │ ├── prettier.config.js │ │ │ │ │ │ └── queries.ts │ │ │ │ │ ├── cdn-paths.js │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── AltinnConfirmDialog.module.css │ │ │ │ │ │ ├── AltinnConfirmDialog.test.tsx │ │ │ │ │ │ ├── AltinnConfirmDialog.tsx │ │ │ │ │ │ ├── AppValidationDialog/ │ │ │ │ │ │ │ ├── AppValidationDialog.module.css │ │ │ │ │ │ │ ├── AppValidationDialog.test.tsx │ │ │ │ │ │ │ ├── AppValidationDialog.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ButtonRouterLink/ │ │ │ │ │ │ │ ├── ButtonRouterLink.test.tsx │ │ │ │ │ │ │ ├── ButtonRouterLink.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ConsentBanner/ │ │ │ │ │ │ │ ├── ConsentBanner.test.tsx │ │ │ │ │ │ │ ├── ConsentBanner.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── FormField/ │ │ │ │ │ │ │ ├── FormField.module.css │ │ │ │ │ │ │ ├── FormField.test.tsx │ │ │ │ │ │ │ ├── FormField.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── GiteaHeader/ │ │ │ │ │ │ │ ├── GiteaHeader.module.css │ │ │ │ │ │ │ ├── GiteaHeader.tsx │ │ │ │ │ │ │ ├── ThreeDotsMenu/ │ │ │ │ │ │ │ │ ├── ClonePopoverContent/ │ │ │ │ │ │ │ │ │ ├── ClonePopoverContent.module.css │ │ │ │ │ │ │ │ │ ├── ClonePopoverContent.test.tsx │ │ │ │ │ │ │ │ │ ├── ClonePopoverContent.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── LocalChangesModal/ │ │ │ │ │ │ │ │ │ ├── DeleteModal/ │ │ │ │ │ │ │ │ │ │ ├── DeleteModal.module.css │ │ │ │ │ │ │ │ │ │ ├── DeleteModal.test.tsx │ │ │ │ │ │ │ │ │ │ ├── DeleteModal.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── LocalChanges/ │ │ │ │ │ │ │ │ │ │ ├── LocalChanges.module.css │ │ │ │ │ │ │ │ │ │ ├── LocalChanges.test.tsx │ │ │ │ │ │ │ │ │ │ ├── LocalChanges.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── LocalChangesActionButton/ │ │ │ │ │ │ │ │ │ │ ├── LocalChangesActionButton.module.css │ │ │ │ │ │ │ │ │ │ ├── LocalChangesActionButton.test.tsx │ │ │ │ │ │ │ │ │ │ ├── LocalChangesActionButton.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── LocalChangesModal.module.css │ │ │ │ │ │ │ │ │ ├── LocalChangesModal.test.tsx │ │ │ │ │ │ │ │ │ ├── LocalChangesModal.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── ThreeDotsMenu.module.css │ │ │ │ │ │ │ │ ├── ThreeDotsMenu.test.tsx │ │ │ │ │ │ │ │ ├── ThreeDotsMenu.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── VersionControlButtons/ │ │ │ │ │ │ │ │ ├── VersionControlButtons.module.css │ │ │ │ │ │ │ │ ├── VersionControlButtons.test.tsx │ │ │ │ │ │ │ │ ├── VersionControlButtons.tsx │ │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ │ ├── BranchDropdown/ │ │ │ │ │ │ │ │ │ │ ├── BranchDropdown.module.css │ │ │ │ │ │ │ │ │ │ ├── BranchDropdown.test.tsx │ │ │ │ │ │ │ │ │ │ ├── BranchDropdown.tsx │ │ │ │ │ │ │ │ │ │ ├── CreateBranchDialog/ │ │ │ │ │ │ │ │ │ │ │ ├── CreateBranchDialog.module.css │ │ │ │ │ │ │ │ │ │ │ ├── CreateBranchDialog.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── CreateBranchDialog.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── DeleteBranchDialog/ │ │ │ │ │ │ │ │ │ │ │ ├── DeleteBranchDialog.module.css │ │ │ │ │ │ │ │ │ │ │ ├── DeleteBranchDialog.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── DeleteBranchDialog.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── UncommittedChangesDialog/ │ │ │ │ │ │ │ │ │ │ │ ├── UncommittedChangesDialog.module.css │ │ │ │ │ │ │ │ │ │ │ ├── UncommittedChangesDialog.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── UncommittedChangesDialog.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── FetchChangesPopover/ │ │ │ │ │ │ │ │ │ │ ├── FetchChangesPopover.module.css │ │ │ │ │ │ │ │ │ │ ├── FetchChangesPopover.test.tsx │ │ │ │ │ │ │ │ │ │ ├── FetchChangesPopover.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── GiteaFetchCompleted/ │ │ │ │ │ │ │ │ │ │ ├── GiteaFetchCompleted.module.css │ │ │ │ │ │ │ │ │ │ ├── GiteaFetchCompleted.test.tsx │ │ │ │ │ │ │ │ │ │ ├── GiteaFetchCompleted.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── Notification/ │ │ │ │ │ │ │ │ │ │ ├── Notification.module.css │ │ │ │ │ │ │ │ │ │ ├── Notification.test.tsx │ │ │ │ │ │ │ │ │ │ ├── Notification.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── ShareChangesPopover/ │ │ │ │ │ │ │ │ │ │ ├── CommitAndPushContent/ │ │ │ │ │ │ │ │ │ │ │ ├── CommitAndPushContent.module.css │ │ │ │ │ │ │ │ │ │ │ ├── CommitAndPushContent.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── CommitAndPushContent.tsx │ │ │ │ │ │ │ │ │ │ │ ├── FileChangesInfoModal/ │ │ │ │ │ │ │ │ │ │ │ │ ├── FileChangesInfoModal.module.css │ │ │ │ │ │ │ │ │ │ │ │ ├── FileChangesInfoModal.test.tsx │ │ │ │ │ │ │ │ │ │ │ │ ├── FileChangesInfoModal.tsx │ │ │ │ │ │ │ │ │ │ │ │ ├── FilePath/ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── FilePath.module.css │ │ │ │ │ │ │ │ │ │ │ │ │ ├── FilePath.test.tsx │ │ │ │ │ │ │ │ │ │ │ │ │ ├── FilePath.tsx │ │ │ │ │ │ │ │ │ │ │ │ │ ├── FilePathUtils.test.ts │ │ │ │ │ │ │ │ │ │ │ │ │ └── FilePathUtils.ts │ │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── ShareChangesPopover.module.css │ │ │ │ │ │ │ │ │ │ ├── ShareChangesPopover.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ShareChangesPopover.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── SyncLoadingIndicator/ │ │ │ │ │ │ │ │ │ ├── SyncLoadingIndicator.test.tsx │ │ │ │ │ │ │ │ │ ├── SyncLoadingIndicator.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── context/ │ │ │ │ │ │ │ │ │ ├── VersionControlButtonsContext/ │ │ │ │ │ │ │ │ │ │ ├── VersionControlButtonsContext.test.tsx │ │ │ │ │ │ │ │ │ │ ├── VersionControlButtonsContext.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ │ ├── useBranchData/ │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ ├── useBranchData.test.ts │ │ │ │ │ │ │ │ │ │ └── useBranchData.ts │ │ │ │ │ │ │ │ │ ├── useBranchOperations/ │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ ├── useBranchOperations.test.ts │ │ │ │ │ │ │ │ │ │ └── useBranchOperations.ts │ │ │ │ │ │ │ │ │ └── useHasMergeConflict/ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── useHasMergeConflict.test.ts │ │ │ │ │ │ │ │ │ └── useHasMergeConflict.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── test/ │ │ │ │ │ │ │ │ └── mocks/ │ │ │ │ │ │ │ │ ├── branchingMocks.ts │ │ │ │ │ │ │ │ └── versionControlContextMock.ts │ │ │ │ │ │ │ ├── context/ │ │ │ │ │ │ │ │ └── GiteaHeaderContext/ │ │ │ │ │ │ │ │ ├── GiteaHeaderContext.test.tsx │ │ │ │ │ │ │ │ ├── GiteaHeaderContext.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── mocks/ │ │ │ │ │ │ │ └── renderWithProviders.tsx │ │ │ │ │ │ ├── MergeConflictWarning/ │ │ │ │ │ │ │ ├── MergeConflictWarning.module.css │ │ │ │ │ │ │ ├── MergeConflictWarning.test.tsx │ │ │ │ │ │ │ ├── MergeConflictWarning.tsx │ │ │ │ │ │ │ ├── RemoveChangesPopoverContent/ │ │ │ │ │ │ │ │ ├── RemoveChangesPopoverContent.module.css │ │ │ │ │ │ │ │ ├── RemoveChangesPopoverContent.test.tsx │ │ │ │ │ │ │ │ ├── RemoveChangesPopoverContent.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── PageHeader/ │ │ │ │ │ │ │ ├── NavigationMenu/ │ │ │ │ │ │ │ │ ├── NavigationMenu.module.css │ │ │ │ │ │ │ │ ├── NavigationMenu.tsx │ │ │ │ │ │ │ │ └── NavigationMenuItem.ts │ │ │ │ │ │ │ ├── PageHeader.test.tsx │ │ │ │ │ │ │ ├── PageHeader.tsx │ │ │ │ │ │ │ └── ProfileMenu/ │ │ │ │ │ │ │ ├── LargeProfileMenu/ │ │ │ │ │ │ │ │ ├── LargeProfileMenu.test.tsx │ │ │ │ │ │ │ │ └── LargeProfileMenu.tsx │ │ │ │ │ │ │ ├── ProfileMenu.test.tsx │ │ │ │ │ │ │ ├── ProfileMenu.tsx │ │ │ │ │ │ │ └── SmallProfileMenu/ │ │ │ │ │ │ │ ├── Items.module.css │ │ │ │ │ │ │ ├── Items.tsx │ │ │ │ │ │ │ ├── SmallProfileMenu.test.tsx │ │ │ │ │ │ │ ├── SmallProfileMenu.tsx │ │ │ │ │ │ │ ├── TriggerButton.module.css │ │ │ │ │ │ │ └── TriggerButton.tsx │ │ │ │ │ │ ├── PreviewLimitationsInfo/ │ │ │ │ │ │ │ ├── PreviewLimitationsInfo.module.css │ │ │ │ │ │ │ ├── PreviewLimitationsInfo.test.tsx │ │ │ │ │ │ │ └── PreviewLimitationsInfo.tsx │ │ │ │ │ │ ├── RemindChoiceDialog/ │ │ │ │ │ │ │ ├── RemindChoiceDialog.module.css │ │ │ │ │ │ │ ├── RemindChoiceDialog.test.tsx │ │ │ │ │ │ │ └── RemindChoiceDialog.tsx │ │ │ │ │ │ ├── StudioPageError/ │ │ │ │ │ │ │ ├── StudioPageError.test.tsx │ │ │ │ │ │ │ ├── StudioPageError.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── constants/ │ │ │ │ │ │ └── gitBranchValidation.ts │ │ │ │ │ ├── constants.js │ │ │ │ │ ├── contexts/ │ │ │ │ │ │ ├── EnvironmentConfigContext/ │ │ │ │ │ │ │ ├── EnvironmentConfigContext.test.tsx │ │ │ │ │ │ │ ├── EnvironmentConfigContext.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── LoggerContext.test.tsx │ │ │ │ │ │ ├── LoggerContext.tsx │ │ │ │ │ │ ├── PostHogContext/ │ │ │ │ │ │ │ ├── PostHogContext.test.tsx │ │ │ │ │ │ │ ├── PostHogContext.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ServicesContext.test.tsx │ │ │ │ │ │ └── ServicesContext.tsx │ │ │ │ │ ├── design-tokens.js │ │ │ │ │ ├── enums/ │ │ │ │ │ │ ├── ApiErrorCodes.ts │ │ │ │ │ │ ├── CanUseFeature.ts │ │ │ │ │ │ ├── LibraryContentType.ts │ │ │ │ │ │ ├── LocalStorageKey.ts │ │ │ │ │ │ └── ServerCodes.ts │ │ │ │ │ ├── events/ │ │ │ │ │ │ ├── common.ts │ │ │ │ │ │ └── invalidate-cache.ts │ │ │ │ │ ├── ext-urls.test.ts │ │ │ │ │ ├── ext-urls.ts │ │ │ │ │ ├── getInTouch/ │ │ │ │ │ │ ├── GetInTouchWith.test.ts │ │ │ │ │ │ ├── GetInTouchWith.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interfaces/ │ │ │ │ │ │ │ └── GetInTouchProvider.ts │ │ │ │ │ │ └── providers/ │ │ │ │ │ │ ├── EmailContactProvider.test.ts │ │ │ │ │ │ ├── EmailContactProvider.ts │ │ │ │ │ │ ├── GitHubIssueContactProvider.ts │ │ │ │ │ │ ├── GitHubIssuesContactProvider.test.ts │ │ │ │ │ │ ├── PhoneContactProvider.ts │ │ │ │ │ │ ├── SlackContactProvider.test.ts │ │ │ │ │ │ ├── SlackContactProvider.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── mutations/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── useAddImageMutation.test.ts │ │ │ │ │ │ │ ├── useAddImageMutation.ts │ │ │ │ │ │ │ ├── useAddOptionListMutation.test.ts │ │ │ │ │ │ │ ├── useAddOptionListMutation.ts │ │ │ │ │ │ │ ├── useBpmnMutation.ts │ │ │ │ │ │ │ ├── useCheckoutBranchMutation.ts │ │ │ │ │ │ │ ├── useCreateBranchMutation.ts │ │ │ │ │ │ │ ├── useCreateChatMessageMutation.test.ts │ │ │ │ │ │ │ ├── useCreateChatMessageMutation.ts │ │ │ │ │ │ │ ├── useCreateChatThreadMutation.test.ts │ │ │ │ │ │ │ ├── useCreateChatThreadMutation.ts │ │ │ │ │ │ │ ├── useCreateOrgCodeListMutation.test.ts │ │ │ │ │ │ │ ├── useCreateOrgCodeListMutation.ts │ │ │ │ │ │ │ ├── useCreateOrgTextResourcesMutation.test.ts │ │ │ │ │ │ │ ├── useCreateOrgTextResourcesMutation.ts │ │ │ │ │ │ │ ├── useCreatePreviewInstanceMutation.ts │ │ │ │ │ │ │ ├── useDeleteBranchMutation.ts │ │ │ │ │ │ │ ├── useDeleteChatMessageMutation.test.ts │ │ │ │ │ │ │ ├── useDeleteChatMessageMutation.ts │ │ │ │ │ │ │ ├── useDeleteChatThreadMutation.test.ts │ │ │ │ │ │ │ ├── useDeleteChatThreadMutation.ts │ │ │ │ │ │ │ ├── useDeleteImageMutation.test.ts │ │ │ │ │ │ │ ├── useDeleteImageMutation.ts │ │ │ │ │ │ │ ├── useDeleteOptionListMutation.test.ts │ │ │ │ │ │ │ ├── useDeleteOptionListMutation.ts │ │ │ │ │ │ │ ├── useDeleteOrgCodeListMutation.test.ts │ │ │ │ │ │ │ ├── useDeleteOrgCodeListMutation.ts │ │ │ │ │ │ │ ├── useDiscardChangesMutation.ts │ │ │ │ │ │ │ ├── useLogoutMutation.test.tsx │ │ │ │ │ │ │ ├── useLogoutMutation.tsx │ │ │ │ │ │ │ ├── usePublishCodeListMutation.test.ts │ │ │ │ │ │ │ ├── usePublishCodeListMutation.ts │ │ │ │ │ │ │ ├── useRepoCommitAndPushMutation.test.ts │ │ │ │ │ │ │ ├── useRepoCommitAndPushMutation.ts │ │ │ │ │ │ │ ├── useResetRepositoryMutation.test.tsx │ │ │ │ │ │ │ ├── useResetRepositoryMutation.ts │ │ │ │ │ │ │ ├── useUpdateChatThreadMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateChatThreadMutation.ts │ │ │ │ │ │ │ ├── useUpdateDataTypeMutation.ts │ │ │ │ │ │ │ ├── useUpdateOptionListIdMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateOptionListIdMutation.ts │ │ │ │ │ │ │ ├── useUpdateOptionListMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateOptionListMutation.ts │ │ │ │ │ │ │ ├── useUpdateOrgCodeListIdMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateOrgCodeListIdMutation.ts │ │ │ │ │ │ │ ├── useUpdateOrgCodeListMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateOrgCodeListMutation.ts │ │ │ │ │ │ │ ├── useUpdateOrgTextResourcesMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateOrgTextResourcesMutation.ts │ │ │ │ │ │ │ ├── useUpdateSharedResourcesMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateSharedResourcesMutation.ts │ │ │ │ │ │ │ ├── useUploadOrgCodeListMutation.test.ts │ │ │ │ │ │ │ ├── useUploadOrgCodeListMutation.ts │ │ │ │ │ │ │ ├── useUpsertTextResourceMutation.test.tsx │ │ │ │ │ │ │ ├── useUpsertTextResourceMutation.ts │ │ │ │ │ │ │ ├── useUpsertTextResourcesMutation.test.tsx │ │ │ │ │ │ │ └── useUpsertTextResourcesMutation.ts │ │ │ │ │ │ ├── queries/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── useAppMetadataModelIdsQuery.ts │ │ │ │ │ │ │ ├── useAppMetadataQuery.ts │ │ │ │ │ │ │ ├── useAppVersionQuery.ts │ │ │ │ │ │ │ ├── useBpmnQuery.ts │ │ │ │ │ │ │ ├── useBranchesQuery.ts │ │ │ │ │ │ │ ├── useChatMessagesQuery.test.ts │ │ │ │ │ │ │ ├── useChatMessagesQuery.ts │ │ │ │ │ │ │ ├── useChatThreadsQuery.test.ts │ │ │ │ │ │ │ ├── useChatThreadsQuery.ts │ │ │ │ │ │ │ ├── useCurrentBranchQuery.ts │ │ │ │ │ │ │ ├── useDataModelsJsonQuery.test.tsx │ │ │ │ │ │ │ ├── useDataModelsJsonQuery.ts │ │ │ │ │ │ │ ├── useDataModelsXsdQuery.test.tsx │ │ │ │ │ │ │ ├── useDataModelsXsdQuery.ts │ │ │ │ │ │ │ ├── useDataTypeQuery.ts │ │ │ │ │ │ │ ├── useGetAllImageFileNamesQuery.ts │ │ │ │ │ │ │ ├── useLayoutSetsExtendedQuery.ts │ │ │ │ │ │ │ ├── useLayoutSetsQuery.ts │ │ │ │ │ │ │ ├── useOptionListQuery.test.ts │ │ │ │ │ │ │ ├── useOptionListQuery.ts │ │ │ │ │ │ │ ├── useOptionListsQuery.test.ts │ │ │ │ │ │ │ ├── useOptionListsQuery.ts │ │ │ │ │ │ │ ├── useOptionListsReferencesQuery.test.ts │ │ │ │ │ │ │ ├── useOptionListsReferencesQuery.ts │ │ │ │ │ │ │ ├── useOrgCodeListsQuery.test.ts │ │ │ │ │ │ │ ├── useOrgCodeListsQuery.ts │ │ │ │ │ │ │ ├── useOrgListQuery.ts │ │ │ │ │ │ │ ├── useOrgTextLanguagesQuery.test.ts │ │ │ │ │ │ │ ├── useOrgTextLanguagesQuery.ts │ │ │ │ │ │ │ ├── useOrgTextResourcesQuery.test.ts │ │ │ │ │ │ │ ├── useOrgTextResourcesQuery.ts │ │ │ │ │ │ │ ├── useOrganizationsQuery.test.ts │ │ │ │ │ │ │ ├── useOrganizationsQuery.ts │ │ │ │ │ │ │ ├── usePublishedResourcesQuery.test.ts │ │ │ │ │ │ │ ├── usePublishedResourcesQuery.ts │ │ │ │ │ │ │ ├── useRepoDiffQuery.ts │ │ │ │ │ │ │ ├── useRepoMetadataQuery.ts │ │ │ │ │ │ │ ├── useRepoPullQuery.ts │ │ │ │ │ │ │ ├── useRepoStatusQuery.ts │ │ │ │ │ │ │ ├── useResourceAccessPackageServicesQuery.ts │ │ │ │ │ │ │ ├── useResourceAccessPackagesQuery.ts │ │ │ │ │ │ │ ├── useResourcePolicyActionsQuery.ts │ │ │ │ │ │ │ ├── useResourcePolicySubjectsQuery.ts │ │ │ │ │ │ │ ├── useSharedCodeListsQuery.test.ts │ │ │ │ │ │ │ ├── useSharedCodeListsQuery.ts │ │ │ │ │ │ │ ├── useTaskNavigationGroupQuery.test.ts │ │ │ │ │ │ │ ├── useTaskNavigationGroupQuery.ts │ │ │ │ │ │ │ ├── useTextResourcesQuery.test.tsx │ │ │ │ │ │ │ ├── useTextResourcesQuery.ts │ │ │ │ │ │ │ ├── useUserOrgPermissionsQuery.test.ts │ │ │ │ │ │ │ ├── useUserOrgPermissionsQuery.ts │ │ │ │ │ │ │ ├── useUserQuery.ts │ │ │ │ │ │ │ └── useValidateImageExternalUrlQuery.ts │ │ │ │ │ │ ├── useContentLibraryRouter.test.tsx │ │ │ │ │ │ ├── useContentLibraryRouter.tsx │ │ │ │ │ │ ├── useCustomReceiptLayoutSetName.ts │ │ │ │ │ │ ├── useEventListener.test.ts │ │ │ │ │ │ ├── useEventListener.ts │ │ │ │ │ │ ├── useExpressionTexts.ts │ │ │ │ │ │ ├── useListenToMergeConflictInRepo.test.tsx │ │ │ │ │ │ ├── useListenToMergeConflictInRepo.ts │ │ │ │ │ │ ├── useReactiveLocalStorage.ts │ │ │ │ │ │ ├── useRequiredParams.test.ts │ │ │ │ │ │ ├── useRequiredParams.ts │ │ │ │ │ │ ├── useSearchParamsState.test.ts │ │ │ │ │ │ ├── useSearchParamsState.ts │ │ │ │ │ │ ├── useSelectedFormLayoutName.test.tsx │ │ │ │ │ │ ├── useSelectedFormLayoutName.ts │ │ │ │ │ │ ├── useSelectedTaskId.test.tsx │ │ │ │ │ │ ├── useSelectedTaskId.ts │ │ │ │ │ │ ├── useStudioEnvironmentParams.test.ts │ │ │ │ │ │ ├── useStudioEnvironmentParams.ts │ │ │ │ │ │ ├── useTextResourcesSelector.ts │ │ │ │ │ │ ├── useUpdate.test.ts │ │ │ │ │ │ ├── useUpdate.ts │ │ │ │ │ │ ├── useUpdateBpmn.test.tsx │ │ │ │ │ │ ├── useUpdateBpmn.ts │ │ │ │ │ │ ├── useUserNameAndOrg.test.ts │ │ │ │ │ │ ├── useUserNameAndOrg.ts │ │ │ │ │ │ ├── useValidateLayoutSetName.test.ts │ │ │ │ │ │ ├── useValidateLayoutSetName.ts │ │ │ │ │ │ ├── useValidateSchemaName.test.ts │ │ │ │ │ │ ├── useValidateSchemaName.ts │ │ │ │ │ │ └── useWebSocket/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── useWebSocket.test.ts │ │ │ │ │ │ └── useWebSocket.ts │ │ │ │ │ ├── mocks/ │ │ │ │ │ │ ├── apiErrorMock.ts │ │ │ │ │ │ ├── bpmnDefinitionsMock.ts │ │ │ │ │ │ ├── dataModelMetadataMocks.ts │ │ │ │ │ │ ├── emptyTextResourceListMock.ts │ │ │ │ │ │ ├── mocks.ts │ │ │ │ │ │ ├── modelPathMocks.ts │ │ │ │ │ │ ├── queriesMock.ts │ │ │ │ │ │ ├── queryClientMock.ts │ │ │ │ │ │ ├── renderHookWithProviders.tsx │ │ │ │ │ │ └── textResourcesMock.ts │ │ │ │ │ ├── navigation/ │ │ │ │ │ │ └── PackagesRouter/ │ │ │ │ │ │ ├── PackagesRouter.test.ts │ │ │ │ │ │ ├── PackagesRouter.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── providers/ │ │ │ │ │ │ └── PreviewConnectionContext.tsx │ │ │ │ │ ├── queryInvalidator/ │ │ │ │ │ │ ├── AlertsUpdatedQueriesInvalidator.ts │ │ │ │ │ │ ├── EntityUpdatedQueriesInvalidator.test.ts │ │ │ │ │ │ ├── EntityUpdatedQueriesInvalidator.ts │ │ │ │ │ │ ├── SyncSuccessQueriesInvalidator.test.ts │ │ │ │ │ │ └── SyncSuccessQueriesInvalidator.ts │ │ │ │ │ ├── queue/ │ │ │ │ │ │ ├── Queue.test.ts │ │ │ │ │ │ └── Queue.ts │ │ │ │ │ ├── selectors/ │ │ │ │ │ │ ├── textResourceSelectors.test.ts │ │ │ │ │ │ └── textResourceSelectors.ts │ │ │ │ │ ├── styles/ │ │ │ │ │ │ └── toast.css │ │ │ │ │ ├── types/ │ │ │ │ │ │ ├── ActionButtonAction.ts │ │ │ │ │ │ ├── Altinn2LinkService.ts │ │ │ │ │ │ ├── AppConfig.ts │ │ │ │ │ │ ├── AppConfigFormError.ts │ │ │ │ │ │ ├── AppRelease.ts │ │ │ │ │ │ ├── AppRouteParams.ts │ │ │ │ │ │ ├── AppSettings.ts │ │ │ │ │ │ ├── AppVersion.ts │ │ │ │ │ │ ├── ApplicationAttachmentMetadata.ts │ │ │ │ │ │ ├── ApplicationMetadata.ts │ │ │ │ │ │ ├── AppsQueryKey.ts │ │ │ │ │ │ ├── BotAccount.ts │ │ │ │ │ │ ├── BpmnMetadataForm.ts │ │ │ │ │ │ ├── BpmnTaskType.ts │ │ │ │ │ │ ├── BranchStatus.ts │ │ │ │ │ │ ├── Build.ts │ │ │ │ │ │ ├── CodeListDataNew.ts │ │ │ │ │ │ ├── CodeListDataWithTextResources.ts │ │ │ │ │ │ ├── CodeListWithTextResources.ts │ │ │ │ │ │ ├── Commit.ts │ │ │ │ │ │ ├── ComponentSpecificConfig.ts │ │ │ │ │ │ ├── ComponentSpecificConfigV3.ts │ │ │ │ │ │ ├── ComponentType.ts │ │ │ │ │ │ ├── ComponentTypeV3.ts │ │ │ │ │ │ ├── ContactPoint.ts │ │ │ │ │ │ ├── CustomTemplate.ts │ │ │ │ │ │ ├── CustomTemplateReference.ts │ │ │ │ │ │ ├── DataModelFieldElement.ts │ │ │ │ │ │ ├── DataModelMetadata.ts │ │ │ │ │ │ ├── DataType.ts │ │ │ │ │ │ ├── Environment.ts │ │ │ │ │ │ ├── ExternalResource.ts │ │ │ │ │ │ ├── FilterKeysOfType.ts │ │ │ │ │ │ ├── FormPanelVariant.ts │ │ │ │ │ │ ├── GridRow.ts │ │ │ │ │ │ ├── HTMLAutoCompleteValue.ts │ │ │ │ │ │ ├── HeadingLevel.ts │ │ │ │ │ │ ├── JsonSchema.ts │ │ │ │ │ │ ├── KeyValuePairs.ts │ │ │ │ │ │ ├── LibraryFile.ts │ │ │ │ │ │ ├── MapLayer.ts │ │ │ │ │ │ ├── MaskinportenScope.ts │ │ │ │ │ │ ├── Option.ts │ │ │ │ │ │ ├── OptionList.ts │ │ │ │ │ │ ├── OptionListReferences.ts │ │ │ │ │ │ ├── OrgList.ts │ │ │ │ │ │ ├── Organization.ts │ │ │ │ │ │ ├── Policy.ts │ │ │ │ │ │ ├── PolicyAccessPackages.ts │ │ │ │ │ │ ├── PolicyAction.ts │ │ │ │ │ │ ├── PolicySubject.ts │ │ │ │ │ │ ├── QueryKey.ts │ │ │ │ │ │ ├── RepoStatus.ts │ │ │ │ │ │ ├── Repository.ts │ │ │ │ │ │ ├── ResourceAdm.ts │ │ │ │ │ │ ├── RuleConfig.ts │ │ │ │ │ │ ├── SupportedLanguages.ts │ │ │ │ │ │ ├── TextResourceEntry.ts │ │ │ │ │ │ ├── WithDataAttributes.ts │ │ │ │ │ │ ├── api/ │ │ │ │ │ │ │ ├── AddLanguagePayload.ts │ │ │ │ │ │ │ ├── AddLayoutSetResponse.ts │ │ │ │ │ │ │ ├── AddRepoParams.ts │ │ │ │ │ │ │ ├── AddUserApiKeyRequest.ts │ │ │ │ │ │ │ ├── AddUserApiKeyResponse.ts │ │ │ │ │ │ │ ├── AlertsUpdated.ts │ │ │ │ │ │ │ ├── ApiError.ts │ │ │ │ │ │ │ ├── AppReleasesResponse.ts │ │ │ │ │ │ │ ├── BranchTypes.ts │ │ │ │ │ │ │ ├── CanUseFeatureResponse.ts │ │ │ │ │ │ │ ├── ChatMessage.ts │ │ │ │ │ │ │ ├── ChatThread.ts │ │ │ │ │ │ │ ├── CodeListsResponse.ts │ │ │ │ │ │ │ ├── CreateDataModelPayload.ts │ │ │ │ │ │ │ ├── CreateDeploymentPayload.ts │ │ │ │ │ │ │ ├── CreateReleasePayload.ts │ │ │ │ │ │ │ ├── CreateRepoCommitPayload.ts │ │ │ │ │ │ │ ├── DataModelMetadataResponse.ts │ │ │ │ │ │ │ ├── DataTypesChange.ts │ │ │ │ │ │ │ ├── DeploymentsResponse.ts │ │ │ │ │ │ │ ├── EntityUpdated.ts │ │ │ │ │ │ │ ├── ExternalImageUrlValidationResponse.ts │ │ │ │ │ │ │ ├── FormLayoutRequest.ts │ │ │ │ │ │ │ ├── FormLayoutsResponse.ts │ │ │ │ │ │ │ ├── FormLayoutsResponseV3.ts │ │ │ │ │ │ │ ├── ImportCodeListResponse.ts │ │ │ │ │ │ │ ├── KubernetesDeployment.ts │ │ │ │ │ │ │ ├── LayoutSetPayload.ts │ │ │ │ │ │ │ ├── LayoutSetsResponse.ts │ │ │ │ │ │ │ ├── NewsList.ts │ │ │ │ │ │ │ ├── OptionListsResponse.ts │ │ │ │ │ │ │ ├── PipelineDeployment.ts │ │ │ │ │ │ │ ├── PublishCodeListPayload.ts │ │ │ │ │ │ │ ├── RepoDiffResponse.ts │ │ │ │ │ │ │ ├── SearchRepoFilterParams.ts │ │ │ │ │ │ │ ├── SearchRepositoryResponse.ts │ │ │ │ │ │ │ ├── SharedResourcesResponse.ts │ │ │ │ │ │ │ ├── SyncResponses.ts │ │ │ │ │ │ │ ├── UpdateSharedResourcesRequest.ts │ │ │ │ │ │ │ ├── UpdateTextIdPayload.ts │ │ │ │ │ │ │ ├── UserApiKey.ts │ │ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ │ │ ├── LayoutSetModel.ts │ │ │ │ │ │ │ │ ├── PageModel.ts │ │ │ │ │ │ │ │ ├── PagesModel.ts │ │ │ │ │ │ │ │ ├── TaskModel.ts │ │ │ │ │ │ │ │ └── TaskNavigationGroup.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── dndTypes.ts │ │ │ │ │ │ ├── global.ts │ │ │ │ │ │ ├── language.ts │ │ │ │ │ │ └── widgetTypes.ts │ │ │ │ │ ├── utils/ │ │ │ │ │ │ ├── ApiErrorUtils/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── isErrorUnknown.ts │ │ │ │ │ │ ├── BranchNameValidator.test.ts │ │ │ │ │ │ ├── BranchNameValidator.ts │ │ │ │ │ │ ├── LayoutAndLayoutSetNameValidationUtils/ │ │ │ │ │ │ │ ├── validateLayoutNameAndLayoutSetName.test.ts │ │ │ │ │ │ │ └── validateLayoutNameAndLayoutSetName.ts │ │ │ │ │ │ ├── SyncUtils.ts/ │ │ │ │ │ │ │ ├── SyncUtils.test.ts │ │ │ │ │ │ │ ├── SyncUtils.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── altinnStudioEnv.ts │ │ │ │ │ │ ├── appValidationUtils.test.ts │ │ │ │ │ │ ├── appValidationUtils.ts │ │ │ │ │ │ ├── bpmnUtils.ts │ │ │ │ │ │ ├── compareFunctions.test.ts │ │ │ │ │ │ ├── compareFunctions.ts │ │ │ │ │ │ ├── consent/ │ │ │ │ │ │ │ ├── ConsentContext.ts │ │ │ │ │ │ │ ├── ConsentMutationContext.ts │ │ │ │ │ │ │ ├── ConsentProvider.test.tsx │ │ │ │ │ │ │ ├── ConsentProvider.tsx │ │ │ │ │ │ │ ├── analyticsProvider.test.ts │ │ │ │ │ │ │ ├── analyticsProvider.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── types.ts │ │ │ │ │ │ ├── dndUtils.test.ts │ │ │ │ │ │ ├── dndUtils.ts │ │ │ │ │ │ ├── featureToggleUtils.test.ts │ │ │ │ │ │ ├── featureToggleUtils.ts │ │ │ │ │ │ ├── formValidationUtils/ │ │ │ │ │ │ │ ├── formValidationUtils.test.tsx │ │ │ │ │ │ │ ├── formValidationUtils.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── test-data/ │ │ │ │ │ │ │ ├── Input.schema.v1.json │ │ │ │ │ │ │ ├── common-defs.schema.v1.json │ │ │ │ │ │ │ ├── expression.schema.v1.json │ │ │ │ │ │ │ ├── layout.schema.v1.json │ │ │ │ │ │ │ └── number-format.schema.v1.json │ │ │ │ │ │ ├── formatDateAndTime.test.ts │ │ │ │ │ │ ├── formatDateAndTime.ts │ │ │ │ │ │ ├── generateRandomId.ts │ │ │ │ │ │ ├── httpResponseUtils.test.ts │ │ │ │ │ │ ├── httpResponseUtils.ts │ │ │ │ │ │ ├── layoutSetsUtils.test.ts │ │ │ │ │ │ ├── layoutSetsUtils.ts │ │ │ │ │ │ ├── networking.test.ts │ │ │ │ │ │ ├── networking.ts │ │ │ │ │ │ ├── postMessages.ts │ │ │ │ │ │ ├── repository.test.ts │ │ │ │ │ │ ├── repository.ts │ │ │ │ │ │ ├── tanstackQueryUtils.test.ts │ │ │ │ │ │ ├── tanstackQueryUtils.ts │ │ │ │ │ │ ├── textResourceUtils.test.ts │ │ │ │ │ │ ├── textResourceUtils.ts │ │ │ │ │ │ ├── urlUtils.test.ts │ │ │ │ │ │ └── urlUtils.ts │ │ │ │ │ └── websockets/ │ │ │ │ │ ├── WSConnector.test.ts │ │ │ │ │ ├── WSConnector.ts │ │ │ │ │ └── WSConnectorMissingWebSocketUrlsException.ts │ │ │ │ └── tsconfig.json │ │ │ ├── text-editor/ │ │ │ │ ├── index.ts │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── LangSelector.module.css │ │ │ │ │ ├── LangSelector.test.tsx │ │ │ │ │ ├── LangSelector.tsx │ │ │ │ │ ├── RightMenu.module.css │ │ │ │ │ ├── RightMenu.test.tsx │ │ │ │ │ ├── RightMenu.tsx │ │ │ │ │ ├── TextEditor.module.css │ │ │ │ │ ├── TextEditor.test.tsx │ │ │ │ │ ├── TextEditor.tsx │ │ │ │ │ ├── TextEntry.test.tsx │ │ │ │ │ ├── TextEntry.tsx │ │ │ │ │ ├── TextList.module.css │ │ │ │ │ ├── TextList.test.tsx │ │ │ │ │ ├── TextList.tsx │ │ │ │ │ ├── TextRow.module.css │ │ │ │ │ ├── TextRow.test.tsx │ │ │ │ │ ├── TextRow.tsx │ │ │ │ │ ├── Variables.module.css │ │ │ │ │ ├── Variables.test.tsx │ │ │ │ │ ├── Variables.tsx │ │ │ │ │ ├── constants.ts │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ └── useLayoutNamesQuery.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── types.d.ts │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ └── utils.ts │ │ │ │ └── tsconfig.json │ │ │ ├── ux-editor/ │ │ │ │ ├── README.md │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── App.test.tsx │ │ │ │ │ ├── App.tsx │ │ │ │ │ ├── AppContext.test.tsx │ │ │ │ │ ├── AppContext.tsx │ │ │ │ │ ├── SubApp.test.tsx │ │ │ │ │ ├── SubApp.tsx │ │ │ │ │ ├── classes/ │ │ │ │ │ │ ├── FormLayoutSettings.test.ts │ │ │ │ │ │ ├── FormLayoutSettings.ts │ │ │ │ │ │ ├── SavableFormLayoutSettings.test.ts │ │ │ │ │ │ ├── SavableFormLayoutSettings.ts │ │ │ │ │ │ ├── SubformUtils.test.ts │ │ │ │ │ │ └── SubformUtils.ts │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── Elements/ │ │ │ │ │ │ │ ├── ConfPageToolbar.module.css │ │ │ │ │ │ │ ├── ConfPageToolbar.test.tsx │ │ │ │ │ │ │ ├── ConfPageToolbar.tsx │ │ │ │ │ │ │ ├── DefaultToolbar.module.css │ │ │ │ │ │ │ ├── DefaultToolbar.tsx │ │ │ │ │ │ │ ├── Elements.module.css │ │ │ │ │ │ │ ├── Elements.test.tsx │ │ │ │ │ │ │ ├── Elements.tsx │ │ │ │ │ │ │ ├── ElementsUtils.test.ts │ │ │ │ │ │ │ ├── ElementsUtils.ts │ │ │ │ │ │ │ ├── ExportForm.tsx │ │ │ │ │ │ │ ├── PageElement.module.css │ │ │ │ │ │ │ ├── ToolbarItem.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── types/ │ │ │ │ │ │ │ └── ConfigPageType.ts │ │ │ │ │ │ ├── FormField.tsx │ │ │ │ │ │ ├── Pages/ │ │ │ │ │ │ │ └── PageGroupMoveDialog.tsx │ │ │ │ │ │ ├── Preview/ │ │ │ │ │ │ │ ├── Preview.module.css │ │ │ │ │ │ │ ├── Preview.test.tsx │ │ │ │ │ │ │ ├── Preview.tsx │ │ │ │ │ │ │ ├── PreviewActions/ │ │ │ │ │ │ │ │ ├── PreviewActions.module.css │ │ │ │ │ │ │ │ ├── PreviewActions.test.tsx │ │ │ │ │ │ │ │ └── PreviewActions.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Properties/ │ │ │ │ │ │ │ ├── CommonElements/ │ │ │ │ │ │ │ │ ├── ConfigPanelHeader/ │ │ │ │ │ │ │ │ │ ├── ConfigPanelHeader.module.css │ │ │ │ │ │ │ │ │ ├── ConfigPanelHeader.test.tsx │ │ │ │ │ │ │ │ │ └── ConfigPanelHeader.tsx │ │ │ │ │ │ │ │ └── MainSettingsHeader/ │ │ │ │ │ │ │ │ ├── MainSettingsHeader.module.css │ │ │ │ │ │ │ │ └── MainSettingsHeader.tsx │ │ │ │ │ │ │ ├── ComponentConfigPanel/ │ │ │ │ │ │ │ │ ├── ComponentConfigPanel.module.css │ │ │ │ │ │ │ │ ├── ComponentConfigPanel.test.tsx │ │ │ │ │ │ │ │ └── ComponentConfigPanel.tsx │ │ │ │ │ │ │ ├── DataModelBindings.module.css │ │ │ │ │ │ │ ├── DataModelBindings.test.tsx │ │ │ │ │ │ │ ├── DataModelBindings.tsx │ │ │ │ │ │ │ ├── EditSubformTableColumns/ │ │ │ │ │ │ │ │ ├── ColumnElement/ │ │ │ │ │ │ │ │ │ ├── ColumnElement.module.css │ │ │ │ │ │ │ │ │ ├── ColumnElement.test.tsx │ │ │ │ │ │ │ │ │ ├── ColumnElement.tsx │ │ │ │ │ │ │ │ │ ├── EditColumnElement/ │ │ │ │ │ │ │ │ │ │ ├── DataModelBindingsCombobox.tsx │ │ │ │ │ │ │ │ │ │ ├── EditColumnElement.module.css │ │ │ │ │ │ │ │ │ │ ├── EditColumnElement.test.tsx │ │ │ │ │ │ │ │ │ │ ├── EditColumnElement.tsx │ │ │ │ │ │ │ │ │ │ ├── EditColumnElementContent.module.css │ │ │ │ │ │ │ │ │ │ ├── EditColumnElementContent.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── EditSubformTableColumns.module.css │ │ │ │ │ │ │ │ ├── EditSubformTableColumns.test.tsx │ │ │ │ │ │ │ │ ├── EditSubformTableColumns.tsx │ │ │ │ │ │ │ │ ├── SubformMissingContentWarning/ │ │ │ │ │ │ │ │ │ ├── SubformMissingContentWarning.module.css │ │ │ │ │ │ │ │ │ ├── SubformMissingContentWarning.test.tsx │ │ │ │ │ │ │ │ │ └── SubformMissingContentWarning.tsx │ │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ │ ├── useSubformLayoutValidation.test.tsx │ │ │ │ │ │ │ │ │ └── useSubformLayoutValidation.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ │ └── TableColumn.ts │ │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ │ ├── editSubformTableColumnsUtils.test.ts │ │ │ │ │ │ │ │ ├── editSubformTableColumnsUtils.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── GroupConfigPanel/ │ │ │ │ │ │ │ │ ├── GroupConfigPanel.module.css │ │ │ │ │ │ │ │ ├── GroupConfigPanel.test.tsx │ │ │ │ │ │ │ │ └── GroupConfigPanel.tsx │ │ │ │ │ │ │ ├── ItemType.ts │ │ │ │ │ │ │ ├── PageConfigPanel/ │ │ │ │ │ │ │ │ ├── EditPageId.module.css │ │ │ │ │ │ │ │ ├── EditPageId.test.tsx │ │ │ │ │ │ │ │ ├── EditPageId.tsx │ │ │ │ │ │ │ │ ├── HiddenExpressionOnLayout.module.css │ │ │ │ │ │ │ │ ├── HiddenExpressionOnLayout.test.tsx │ │ │ │ │ │ │ │ ├── HiddenExpressionOnLayout.tsx │ │ │ │ │ │ │ │ ├── PageConfigPanel.module.css │ │ │ │ │ │ │ │ ├── PageConfigPanel.test.tsx │ │ │ │ │ │ │ │ ├── PageConfigPanel.tsx │ │ │ │ │ │ │ │ ├── PageConfigWarning.module.css │ │ │ │ │ │ │ │ ├── PageConfigWarning.tsx │ │ │ │ │ │ │ │ ├── PageConfigWarningModal/ │ │ │ │ │ │ │ │ │ ├── PageConfigWarningModal.module.css │ │ │ │ │ │ │ │ │ ├── PageConfigWarningModal.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── PdfConfig/ │ │ │ │ │ │ │ │ │ ├── ConvertPageToPdfWhenExistingModal/ │ │ │ │ │ │ │ │ │ │ ├── ConvertChoicesModal.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ConvertChoicesModal.tsx │ │ │ │ │ │ │ │ │ │ ├── OverrideCurrentPdfByConversionChoices.module.css │ │ │ │ │ │ │ │ │ │ └── OverrideCurrentPdfByConversionChoices.tsx │ │ │ │ │ │ │ │ │ ├── PdfConfig.test.tsx │ │ │ │ │ │ │ │ │ ├── PdfConfig.tsx │ │ │ │ │ │ │ │ │ ├── PdfConfigCard/ │ │ │ │ │ │ │ │ │ │ ├── PdfConfigCard.module.css │ │ │ │ │ │ │ │ │ │ ├── PdfConfigCard.test.tsx │ │ │ │ │ │ │ │ │ │ ├── PdfConfigCard.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── Properties.module.css │ │ │ │ │ │ │ ├── Properties.test.tsx │ │ │ │ │ │ │ ├── Properties.tsx │ │ │ │ │ │ │ ├── PropertiesHeader/ │ │ │ │ │ │ │ │ ├── ComponentMainConfig.module.css │ │ │ │ │ │ │ │ ├── ComponentMainConfig.test.tsx │ │ │ │ │ │ │ │ ├── ComponentMainConfig.tsx │ │ │ │ │ │ │ │ ├── DataModelMainConfig.test.tsx │ │ │ │ │ │ │ │ ├── DataModelMainConfig.tsx │ │ │ │ │ │ │ │ ├── EditComponentIdRow/ │ │ │ │ │ │ │ │ │ ├── EditComponentIdRow.module.css │ │ │ │ │ │ │ │ │ ├── EditComponentIdRow.test.tsx │ │ │ │ │ │ │ │ │ ├── EditComponentIdRow.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── EditLayoutSetForSubform/ │ │ │ │ │ │ │ │ │ ├── DefinedLayoutSet/ │ │ │ │ │ │ │ │ │ │ └── DefinedLayoutSet.tsx │ │ │ │ │ │ │ │ │ ├── EditLayoutSet/ │ │ │ │ │ │ │ │ │ │ ├── CreateNewSubformSection/ │ │ │ │ │ │ │ │ │ │ │ ├── CreateNewSubformButtons.module.css │ │ │ │ │ │ │ │ │ │ │ ├── CreateNewSubformButtons.tsx │ │ │ │ │ │ │ │ │ │ │ ├── CreateNewSubformSection.module.css │ │ │ │ │ │ │ │ │ │ │ ├── CreateNewSubformSection.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── CreateNewSubformSection.tsx │ │ │ │ │ │ │ │ │ │ │ ├── SubformDataModel.module.css │ │ │ │ │ │ │ │ │ │ │ ├── SubformDataModel.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── SubformDataModel.tsx │ │ │ │ │ │ │ │ │ │ │ ├── SubformInstructions.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── EditLayoutSet.test.tsx │ │ │ │ │ │ │ │ │ │ ├── EditLayoutSet.tsx │ │ │ │ │ │ │ │ │ │ ├── SelectSubformSection/ │ │ │ │ │ │ │ │ │ │ │ ├── SelectSubformSection.module.css │ │ │ │ │ │ │ │ │ │ │ ├── SelectSubformSection.test.tsx │ │ │ │ │ │ │ │ │ │ │ └── SelectSubformSection.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── EditLayoutSetForSubform.module.css │ │ │ │ │ │ │ │ │ ├── EditLayoutSetForSubform.test.tsx │ │ │ │ │ │ │ │ │ ├── EditLayoutSetForSubform.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── PropertiesHeader.module.css │ │ │ │ │ │ │ │ ├── PropertiesHeader.test.tsx │ │ │ │ │ │ │ │ ├── PropertiesHeader.tsx │ │ │ │ │ │ │ │ ├── SpecificMainConfig/ │ │ │ │ │ │ │ │ │ ├── ActionButtonMainConfig.tsx │ │ │ │ │ │ │ │ │ ├── AlertMainConfig.tsx │ │ │ │ │ │ │ │ │ ├── CustomButtonMainConfig.tsx │ │ │ │ │ │ │ │ │ ├── FileUploadMainConfig.tsx │ │ │ │ │ │ │ │ │ ├── ImageMainConfig.module.css │ │ │ │ │ │ │ │ │ ├── ImageMainConfig.test.tsx │ │ │ │ │ │ │ │ │ ├── ImageMainConfig.tsx │ │ │ │ │ │ │ │ │ ├── LinkMainConfig.tsx │ │ │ │ │ │ │ │ │ ├── OptionsMainConfig.test.tsx │ │ │ │ │ │ │ │ │ ├── OptionsMainConfig.tsx │ │ │ │ │ │ │ │ │ ├── PanelMainConfig.tsx │ │ │ │ │ │ │ │ │ ├── SubformMainConfig.tsx │ │ │ │ │ │ │ │ │ ├── SummaryMainConfig.test.tsx │ │ │ │ │ │ │ │ │ ├── SummaryMainConfig.tsx │ │ │ │ │ │ │ │ │ └── TitleMainConfig.tsx │ │ │ │ │ │ │ │ ├── TextResourceMainConfig.test.tsx │ │ │ │ │ │ │ │ ├── TextResourceMainConfig.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── Text.test.tsx │ │ │ │ │ │ │ ├── Text.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Settings/ │ │ │ │ │ │ │ ├── SettingsNavigation/ │ │ │ │ │ │ │ │ ├── SettingsNavigation.module.css │ │ │ │ │ │ │ │ ├── SettingsNavigation.test.tsx │ │ │ │ │ │ │ │ ├── SettingsNavigation.tsx │ │ │ │ │ │ │ │ └── ValidateNavigation/ │ │ │ │ │ │ │ │ ├── TargetVariants/ │ │ │ │ │ │ │ │ │ ├── ValidateAllTasksConfig.tsx │ │ │ │ │ │ │ │ │ ├── ValidateSelectedPagesConfig.tsx │ │ │ │ │ │ │ │ │ └── ValidateSelectedTasksConfig.tsx │ │ │ │ │ │ │ │ ├── ValidateCardContent/ │ │ │ │ │ │ │ │ │ ├── ValidateCardContent.test.tsx │ │ │ │ │ │ │ │ │ ├── ValidateCardContent.tsx │ │ │ │ │ │ │ │ │ ├── ValidateRuleConfig.test.tsx │ │ │ │ │ │ │ │ │ ├── ValidateRuleConfig.tsx │ │ │ │ │ │ │ │ │ ├── ValidateTargetSelectors.test.tsx │ │ │ │ │ │ │ │ │ └── ValidateTargetSelectors.tsx │ │ │ │ │ │ │ │ ├── ValidateNavigation.module.css │ │ │ │ │ │ │ │ ├── ValidateNavigation.tsx │ │ │ │ │ │ │ │ ├── ValidateNavigationConfig.module.css │ │ │ │ │ │ │ │ ├── ValidateNavigationConfig.test.tsx │ │ │ │ │ │ │ │ ├── ValidateNavigationConfig.tsx │ │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ │ ├── ValidateNavigationTestUtils.ts │ │ │ │ │ │ │ │ ├── ValidateNavigationTypes.ts │ │ │ │ │ │ │ │ ├── ValidateNavigationUtils.test.ts │ │ │ │ │ │ │ │ ├── ValidateNavigationUtils.ts │ │ │ │ │ │ │ │ ├── useConvertToInternalConfig.test.tsx │ │ │ │ │ │ │ │ └── useConvertToInternalConfig.tsx │ │ │ │ │ │ │ ├── SettingsTabs.module.css │ │ │ │ │ │ │ ├── SettingsTabs.test.tsx │ │ │ │ │ │ │ ├── SettingsTabs.tsx │ │ │ │ │ │ │ ├── SettingsUtils.test.tsx │ │ │ │ │ │ │ └── SettingsUtils.tsx │ │ │ │ │ │ ├── TaskNavigation/ │ │ │ │ │ │ │ ├── AddNewTask/ │ │ │ │ │ │ │ │ ├── AddNewTask.test.tsx │ │ │ │ │ │ │ │ ├── AddNewTask.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── AddSubformCard/ │ │ │ │ │ │ │ │ ├── AddSubformCard.test.tsx │ │ │ │ │ │ │ │ ├── AddSubformCard.tsx │ │ │ │ │ │ │ │ ├── AddSubformCardUtils.test.tsx │ │ │ │ │ │ │ │ ├── AddSubformCardUtils.tsx │ │ │ │ │ │ │ │ ├── CreateSubformMode.module.css │ │ │ │ │ │ │ │ ├── CreateSubformMode.test.tsx │ │ │ │ │ │ │ │ ├── CreateSubformMode.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── LayoutPageOverviewFeedback.test.tsx │ │ │ │ │ │ │ ├── LayoutPageOverviewFeedback.tsx │ │ │ │ │ │ │ ├── TaskCard.module.css │ │ │ │ │ │ │ ├── TaskCard.test.tsx │ │ │ │ │ │ │ ├── TaskCard.tsx │ │ │ │ │ │ │ ├── TaskCardBar.module.css │ │ │ │ │ │ │ ├── TaskCardBar.test.tsx │ │ │ │ │ │ │ ├── TaskCardBar.tsx │ │ │ │ │ │ │ ├── TaskCardEditing.module.css │ │ │ │ │ │ │ ├── TaskCardEditing.test.tsx │ │ │ │ │ │ │ └── TaskCardEditing.tsx │ │ │ │ │ │ ├── TasksTable/ │ │ │ │ │ │ │ ├── EditNameAction.module.css │ │ │ │ │ │ │ ├── EditNameAction.test.tsx │ │ │ │ │ │ │ ├── EditNameAction.tsx │ │ │ │ │ │ │ ├── TaskAction.module.css │ │ │ │ │ │ │ ├── TaskAction.test.tsx │ │ │ │ │ │ │ ├── TaskAction.tsx │ │ │ │ │ │ │ ├── TasksTable.module.css │ │ │ │ │ │ │ ├── TasksTable.test.tsx │ │ │ │ │ │ │ ├── TasksTable.tsx │ │ │ │ │ │ │ ├── TasksTableBody.module.css │ │ │ │ │ │ │ ├── TasksTableBody.test.tsx │ │ │ │ │ │ │ └── TasksTableBody.tsx │ │ │ │ │ │ ├── TextResource/ │ │ │ │ │ │ │ ├── TextResource.test.tsx │ │ │ │ │ │ │ ├── TextResource.tsx │ │ │ │ │ │ │ ├── TextResourceAction/ │ │ │ │ │ │ │ │ ├── TextResourceAction.test.tsx │ │ │ │ │ │ │ │ ├── TextResourceAction.tsx │ │ │ │ │ │ │ │ ├── TextResourceActionUtils.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── hooks/ │ │ │ │ │ │ │ ├── useTextResourceValue.test.tsx │ │ │ │ │ │ │ └── useTextResourceValue.ts │ │ │ │ │ │ ├── UnknownComponentAlert/ │ │ │ │ │ │ │ ├── UnknownComponentAlert.test.tsx │ │ │ │ │ │ │ ├── UnknownComponentAlert.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── WithHoverAddButton/ │ │ │ │ │ │ │ ├── WithHoverAddButton.module.css │ │ │ │ │ │ │ ├── WithHoverAddButton.test.tsx │ │ │ │ │ │ │ ├── WithHoverAddButton.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ ├── ConfigProperties/ │ │ │ │ │ │ │ │ ├── ConfigArrayProperties.test.tsx │ │ │ │ │ │ │ │ ├── ConfigArrayProperties.tsx │ │ │ │ │ │ │ │ ├── ConfigBooleanProperties.module.css │ │ │ │ │ │ │ │ ├── ConfigBooleanProperties.test.tsx │ │ │ │ │ │ │ │ ├── ConfigBooleanProperties.tsx │ │ │ │ │ │ │ │ ├── ConfigCustomFileEnding.test.tsx │ │ │ │ │ │ │ │ ├── ConfigCustomFileEnding.tsx │ │ │ │ │ │ │ │ ├── ConfigGridProperties.test.tsx │ │ │ │ │ │ │ │ ├── ConfigGridProperties.tsx │ │ │ │ │ │ │ │ ├── ConfigNumberProperties.test.tsx │ │ │ │ │ │ │ │ ├── ConfigNumberProperties.tsx │ │ │ │ │ │ │ │ ├── ConfigObjectProperty/ │ │ │ │ │ │ │ │ │ ├── ConfigObjectProperty.test.tsx │ │ │ │ │ │ │ │ │ ├── ConfigObjectProperty.tsx │ │ │ │ │ │ │ │ │ └── ConfigObjectPropertyCard.tsx │ │ │ │ │ │ │ │ ├── ConfigPropertiesUtils.test.ts │ │ │ │ │ │ │ │ ├── ConfigPropertiesUtils.ts │ │ │ │ │ │ │ │ ├── ConfigStringProperties.test.tsx │ │ │ │ │ │ │ │ ├── ConfigStringProperties.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── testConfigUtils.ts │ │ │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ │ │ ├── useConfigProperty.test.tsx │ │ │ │ │ │ │ │ ├── useConfigProperty.tsx │ │ │ │ │ │ │ │ ├── usePropertyTypes.ts │ │ │ │ │ │ │ │ ├── useTranslateKeyValue.test.tsx │ │ │ │ │ │ │ │ └── useTranslateKeyValue.tsx │ │ │ │ │ │ │ ├── EditFormComponent.module.css │ │ │ │ │ │ │ ├── EditFormComponent.test.tsx │ │ │ │ │ │ │ ├── EditFormComponent.tsx │ │ │ │ │ │ │ ├── EditName.module.css │ │ │ │ │ │ │ ├── EditName.test.tsx │ │ │ │ │ │ │ ├── EditName.tsx │ │ │ │ │ │ │ ├── ExpressionContent/ │ │ │ │ │ │ │ │ ├── Expression/ │ │ │ │ │ │ │ │ │ ├── Expression.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── ExpressionContent.module.css │ │ │ │ │ │ │ │ ├── ExpressionContent.test.tsx │ │ │ │ │ │ │ │ ├── ExpressionContent.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── Expressions/ │ │ │ │ │ │ │ │ ├── ExpressionHeading.module.css │ │ │ │ │ │ │ │ ├── ExpressionHeading.tsx │ │ │ │ │ │ │ │ ├── Expressions.module.css │ │ │ │ │ │ │ │ ├── Expressions.test.tsx │ │ │ │ │ │ │ │ ├── Expressions.tsx │ │ │ │ │ │ │ │ ├── NewExpressionButton/ │ │ │ │ │ │ │ │ │ ├── NewExpressionButton.test.tsx │ │ │ │ │ │ │ │ │ ├── NewExpressionButton.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ ├── FormComponentConfig.module.css │ │ │ │ │ │ │ ├── FormComponentConfig.test.tsx │ │ │ │ │ │ │ ├── FormComponentConfig.tsx │ │ │ │ │ │ │ ├── SelectPropertyEditor/ │ │ │ │ │ │ │ │ ├── SelectPropertyEditor.module.css │ │ │ │ │ │ │ │ ├── SelectPropertyEditor.test.tsx │ │ │ │ │ │ │ │ ├── SelectPropertyEditor.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── componentConfig.tsx │ │ │ │ │ │ │ ├── componentSpecificContent/ │ │ │ │ │ │ │ │ ├── AttachmentList/ │ │ │ │ │ │ │ │ │ ├── AttachmentListComponent.test.tsx │ │ │ │ │ │ │ │ │ ├── AttachmentListComponent.tsx │ │ │ │ │ │ │ │ │ ├── AttachmentListContent.module.css │ │ │ │ │ │ │ │ │ ├── AttachmentListContent.tsx │ │ │ │ │ │ │ │ │ ├── AttachmentListInternalFormat.tsx │ │ │ │ │ │ │ │ │ ├── attachmentListUtils.test.ts │ │ │ │ │ │ │ │ │ ├── attachmentListUtils.ts │ │ │ │ │ │ │ │ │ ├── convertFunctions/ │ │ │ │ │ │ │ │ │ │ ├── convertToExternalFormat.test.ts │ │ │ │ │ │ │ │ │ │ ├── convertToExternalFormat.ts │ │ │ │ │ │ │ │ │ │ ├── convertToInternalFormat.test.ts │ │ │ │ │ │ │ │ │ │ └── convertToInternalFormat.ts │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ └── types.ts │ │ │ │ │ │ │ │ ├── ComponentSpecificContent.module.css │ │ │ │ │ │ │ │ ├── ComponentSpecificContent.tsx │ │ │ │ │ │ │ │ ├── Image/ │ │ │ │ │ │ │ │ │ ├── ImageComponent.module.css │ │ │ │ │ │ │ │ │ ├── ImageComponent.test.tsx │ │ │ │ │ │ │ │ │ ├── ImageComponent.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── ImageUpload/ │ │ │ │ │ │ │ │ │ ├── ImageUploadCard.tsx/ │ │ │ │ │ │ │ │ │ │ ├── ImageUploadCard.module.css │ │ │ │ │ │ │ │ │ │ ├── ImageUploadCard.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ImageUploadCard.tsx │ │ │ │ │ │ │ │ │ │ ├── ImageUploadShape.tsx │ │ │ │ │ │ │ │ │ │ ├── ImageUploadSize.test.tsx │ │ │ │ │ │ │ │ │ │ └── ImageUploadSize.tsx │ │ │ │ │ │ │ │ │ ├── ImageUploadComponent.test.tsx │ │ │ │ │ │ │ │ │ ├── ImageUploadComponent.tsx │ │ │ │ │ │ │ │ │ ├── ImageUploadTypes.ts │ │ │ │ │ │ │ │ │ ├── ImageUploadUtils.test.ts │ │ │ │ │ │ │ │ │ ├── ImageUploadUtils.ts │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── useDisplayCropValues.test.tsx │ │ │ │ │ │ │ │ │ └── useDisplayCropValues.tsx │ │ │ │ │ │ │ │ ├── Map/ │ │ │ │ │ │ │ │ │ ├── MapComponent.module.css │ │ │ │ │ │ │ │ │ ├── MapComponent.test.tsx │ │ │ │ │ │ │ │ │ ├── MapComponent.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── Summary2/ │ │ │ │ │ │ │ │ │ ├── Override/ │ │ │ │ │ │ │ │ │ │ ├── OverrideFields/ │ │ │ │ │ │ │ │ │ │ │ ├── CompactViewSwitch.tsx │ │ │ │ │ │ │ │ │ │ │ ├── EmptyTextField.module.css │ │ │ │ │ │ │ │ │ │ │ ├── EmptyTextField.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── EmptyTextField.tsx │ │ │ │ │ │ │ │ │ │ │ ├── OverrideShowComponentSwitch.tsx │ │ │ │ │ │ │ │ │ │ │ ├── Summary2OverrideDisplaySelect.tsx │ │ │ │ │ │ │ │ │ │ │ └── Summary2OverrideDisplayType.tsx │ │ │ │ │ │ │ │ │ │ ├── Summary2Override.module.css │ │ │ │ │ │ │ │ │ │ ├── Summary2Override.test.tsx │ │ │ │ │ │ │ │ │ │ ├── Summary2Override.tsx │ │ │ │ │ │ │ │ │ │ ├── Summary2OverrideEntry.module.css │ │ │ │ │ │ │ │ │ │ ├── Summary2OverrideEntry.tsx │ │ │ │ │ │ │ │ │ │ ├── hook/ │ │ │ │ │ │ │ │ │ │ │ └── useCustomConfigType.ts │ │ │ │ │ │ │ │ │ │ ├── utils.test.tsx │ │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ │ ├── Summary2Component.test.tsx │ │ │ │ │ │ │ │ │ ├── Summary2Component.tsx │ │ │ │ │ │ │ │ │ ├── Summary2ComponentReferenceSelector.module.css │ │ │ │ │ │ │ │ │ ├── Summary2ComponentReferenceSelector.tsx │ │ │ │ │ │ │ │ │ ├── Summary2Target/ │ │ │ │ │ │ │ │ │ │ ├── Summary2Target.module.css │ │ │ │ │ │ │ │ │ │ ├── Summary2Target.tsx │ │ │ │ │ │ │ │ │ │ ├── targetUtils.ts │ │ │ │ │ │ │ │ │ │ └── useTargetTypes.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── TextComponent/ │ │ │ │ │ │ │ │ │ ├── TextComponent.test.tsx │ │ │ │ │ │ │ │ │ ├── TextComponent.tsx │ │ │ │ │ │ │ │ │ ├── TextComponentUtils.test.ts │ │ │ │ │ │ │ │ │ ├── TextComponentUtils.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── editModal/ │ │ │ │ │ │ │ ├── EditBooleanValue.test.tsx │ │ │ │ │ │ │ ├── EditBooleanValue.tsx │ │ │ │ │ │ │ ├── EditDataModelBinding/ │ │ │ │ │ │ │ │ ├── DefinedBinding/ │ │ │ │ │ │ │ │ │ ├── DefinedBinding.module.css │ │ │ │ │ │ │ │ │ ├── DefinedBinding.test.tsx │ │ │ │ │ │ │ │ │ ├── DefinedBinding.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── EditBinding/ │ │ │ │ │ │ │ │ │ ├── EditBinding.test.tsx │ │ │ │ │ │ │ │ │ ├── EditBinding.tsx │ │ │ │ │ │ │ │ │ ├── SelectDataFieldBinding.module.css │ │ │ │ │ │ │ │ │ ├── SelectDataFieldBinding.tsx │ │ │ │ │ │ │ │ │ ├── SelectDataModelBinding.module.css │ │ │ │ │ │ │ │ │ ├── SelectDataModelBinding.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── EditDataModelBinding.module.css │ │ │ │ │ │ │ │ ├── EditDataModelBinding.test.tsx │ │ │ │ │ │ │ │ ├── EditDataModelBinding.tsx │ │ │ │ │ │ │ │ └── UndefinedBinding/ │ │ │ │ │ │ │ │ ├── UndefinedBinding.test.tsx │ │ │ │ │ │ │ │ ├── UndefinedBinding.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── EditGrid/ │ │ │ │ │ │ │ │ ├── EditGrid.module.css │ │ │ │ │ │ │ │ ├── EditGrid.test.tsx │ │ │ │ │ │ │ │ ├── EditGrid.tsx │ │ │ │ │ │ │ │ ├── EditGridForGivenViewSize.module.css │ │ │ │ │ │ │ │ ├── EditGridForGivenViewSize.test.tsx │ │ │ │ │ │ │ │ ├── EditGridForGivenViewSize.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ │ ├── GridSizes.ts │ │ │ │ │ │ │ │ │ └── ViewSize.ts │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ ├── EditImage/ │ │ │ │ │ │ │ │ ├── ConflictingImageSourceAlert/ │ │ │ │ │ │ │ │ │ ├── ConflictingImageSourceAlert.module.css │ │ │ │ │ │ │ │ │ ├── ConflictingImageSourceAlert.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── EditImage.module.css │ │ │ │ │ │ │ │ ├── EditImage.test.tsx │ │ │ │ │ │ │ │ ├── EditImage.tsx │ │ │ │ │ │ │ │ ├── EditImageUtils.test.ts │ │ │ │ │ │ │ │ ├── EditImageUtils.ts │ │ │ │ │ │ │ │ ├── ExternalImage/ │ │ │ │ │ │ │ │ │ ├── ExternalImage.module.css │ │ │ │ │ │ │ │ │ ├── ExternalImage.test.tsx │ │ │ │ │ │ │ │ │ ├── ExternalImage.tsx │ │ │ │ │ │ │ │ │ ├── ExternalImageValidationStatus.module.css │ │ │ │ │ │ │ │ │ ├── ExternalImageValidationStatus.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── LocalImage/ │ │ │ │ │ │ │ │ │ ├── ImportImage/ │ │ │ │ │ │ │ │ │ │ ├── AddImageFromLibrary/ │ │ │ │ │ │ │ │ │ │ │ ├── AddImageFromLibraryModal.module.css │ │ │ │ │ │ │ │ │ │ │ ├── AddImageFromLibraryModal.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── AddImageFromLibraryModal.tsx │ │ │ │ │ │ │ │ │ │ │ └── ChooseFromLibrary/ │ │ │ │ │ │ │ │ │ │ │ ├── ChooseFromLibrary.module.css │ │ │ │ │ │ │ │ │ │ │ ├── ChooseFromLibrary.tsx │ │ │ │ │ │ │ │ │ │ │ └── ImageLibraryPreview.tsx │ │ │ │ │ │ │ │ │ │ ├── ImportImage.module.css │ │ │ │ │ │ │ │ │ │ ├── ImportImage.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ImportImage.tsx │ │ │ │ │ │ │ │ │ │ ├── UploadImage/ │ │ │ │ │ │ │ │ │ │ │ ├── FileUploaderWithValidation/ │ │ │ │ │ │ │ │ │ │ │ │ ├── FileUploaderWithValidation.test.tsx │ │ │ │ │ │ │ │ │ │ │ │ ├── FileUploaderWithValidation.tsx │ │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ │ ├── UploadImage.module.css │ │ │ │ │ │ │ │ │ │ │ └── UploadImage.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── LocalImage.test.tsx │ │ │ │ │ │ │ │ │ ├── LocalImage.tsx │ │ │ │ │ │ │ │ │ ├── PreviewImageSummary/ │ │ │ │ │ │ │ │ │ │ ├── DeleteOptionsModal/ │ │ │ │ │ │ │ │ │ │ │ ├── DeleteOptions.tsx │ │ │ │ │ │ │ │ │ │ │ ├── DeleteOptionsModal.module.css │ │ │ │ │ │ │ │ │ │ │ └── DeleteOptionsModal.tsx │ │ │ │ │ │ │ │ │ │ ├── PreviewFileInfo.module.css │ │ │ │ │ │ │ │ │ │ ├── PreviewFileInfo.tsx │ │ │ │ │ │ │ │ │ │ ├── PreviewImageSummary.module.css │ │ │ │ │ │ │ │ │ │ ├── PreviewImageSummary.test.tsx │ │ │ │ │ │ │ │ │ │ ├── PreviewImageSummary.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── constants.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── EditNumberValue.test.tsx │ │ │ │ │ │ │ ├── EditNumberValue.tsx │ │ │ │ │ │ │ ├── EditOptions/ │ │ │ │ │ │ │ │ ├── EditOptions.module.css │ │ │ │ │ │ │ │ ├── EditOptions.test.tsx │ │ │ │ │ │ │ │ ├── EditOptions.tsx │ │ │ │ │ │ │ │ ├── OptionTabs/ │ │ │ │ │ │ │ │ │ ├── EditTab/ │ │ │ │ │ │ │ │ │ │ ├── EditTab.module.css │ │ │ │ │ │ │ │ │ │ ├── EditTab.test.tsx │ │ │ │ │ │ │ │ │ │ ├── EditTab.tsx │ │ │ │ │ │ │ │ │ │ ├── ManualOptionsDialog/ │ │ │ │ │ │ │ │ │ │ │ ├── ManualOptionsDialog.module.css │ │ │ │ │ │ │ │ │ │ │ ├── ManualOptionsDialog.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── ManualOptionsDialog.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── OptionListEditor/ │ │ │ │ │ │ │ │ │ │ │ ├── LibraryOptionsEditor/ │ │ │ │ │ │ │ │ │ │ │ │ ├── LibraryOptionsEditor.module.css │ │ │ │ │ │ │ │ │ │ │ │ ├── LibraryOptionsEditor.test.tsx │ │ │ │ │ │ │ │ │ │ │ │ ├── LibraryOptionsEditor.tsx │ │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ │ ├── ManualOptionsPanel/ │ │ │ │ │ │ │ │ │ │ │ │ ├── ManualOptionsPanel.test.tsx │ │ │ │ │ │ │ │ │ │ │ │ ├── ManualOptionsPanel.tsx │ │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ │ ├── OptionListButtons/ │ │ │ │ │ │ │ │ │ │ │ │ ├── OptionListButtons.module.css │ │ │ │ │ │ │ │ │ │ │ │ ├── OptionListButtons.tsx │ │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ │ ├── OptionListEditor.module.css │ │ │ │ │ │ │ │ │ │ │ ├── OptionListEditor.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── OptionListEditor.tsx │ │ │ │ │ │ │ │ │ │ │ ├── OptionListLabels/ │ │ │ │ │ │ │ │ │ │ │ │ ├── OptionListLabels.module.css │ │ │ │ │ │ │ │ │ │ │ │ ├── OptionListLabels.tsx │ │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ │ ├── PublishedCodeListEditor/ │ │ │ │ │ │ │ │ │ │ │ │ ├── PublishedCodeListEditor.module.css │ │ │ │ │ │ │ │ │ │ │ │ ├── PublishedCodeListEditor.tsx │ │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ │ │ ├── useConcatOptionListLabels.test.ts │ │ │ │ │ │ │ │ │ │ │ │ └── useConcatOptionListLabels.ts │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── OptionListFromAppLibrarySelector/ │ │ │ │ │ │ │ │ │ │ │ ├── OptionListFromAppLibrarySelector.module.css │ │ │ │ │ │ │ │ │ │ │ ├── OptionListFromAppLibrarySelector.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── OptionListFromAppLibrarySelector.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── OptionListUploader/ │ │ │ │ │ │ │ │ │ │ │ ├── OptionListUploader.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── OptionListUploader.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── PublishedOptionListSelector/ │ │ │ │ │ │ │ │ │ │ │ ├── PublishedOptionListSelector.module.css │ │ │ │ │ │ │ │ │ │ │ ├── PublishedOptionListSelector.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── PublishedOptionListSelector.tsx │ │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ │ │ │ ├── useHandleUpdateTextResource.test.ts │ │ │ │ │ │ │ │ │ │ │ ├── useHandleUpdateTextResource.ts │ │ │ │ │ │ │ │ │ │ │ ├── useTextResourcesForLanguage.test.ts │ │ │ │ │ │ │ │ │ │ │ └── useTextResourcesForLanguage.ts │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ │ ├── OptionTabs.module.css │ │ │ │ │ │ │ │ │ ├── OptionTabs.test.tsx │ │ │ │ │ │ │ │ │ ├── OptionTabs.tsx │ │ │ │ │ │ │ │ │ ├── ReferenceTab/ │ │ │ │ │ │ │ │ │ │ ├── ReferenceTab.module.css │ │ │ │ │ │ │ │ │ │ ├── ReferenceTab.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ReferenceTab.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ │ │ │ ├── OptionsTabKey.ts │ │ │ │ │ │ │ │ │ │ └── OptionsType.ts │ │ │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ └── useOptionListEditorTexts.ts │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ │ │ ├── CodeListIdContextData.ts │ │ │ │ │ │ │ │ │ │ └── PublishedCodeListReferenceValues.ts │ │ │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ │ │ ├── optionsUtils.test.ts │ │ │ │ │ │ │ │ │ ├── optionsUtils.ts │ │ │ │ │ │ │ │ │ ├── published-code-list-reference-utils.test.ts │ │ │ │ │ │ │ │ │ ├── published-code-list-reference-utils.ts │ │ │ │ │ │ │ │ │ ├── retrieveOptionsType.test.ts │ │ │ │ │ │ │ │ │ └── retrieveOptionsType.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── EditStringValue.test.tsx │ │ │ │ │ │ │ ├── EditStringValue.tsx │ │ │ │ │ │ │ ├── EditTextResourceBindings/ │ │ │ │ │ │ │ │ ├── EditTextResourceBinding/ │ │ │ │ │ │ │ │ │ ├── EditTextResourceBinding.test.tsx │ │ │ │ │ │ │ │ │ └── EditTextResourceBinding.tsx │ │ │ │ │ │ │ │ ├── EditTextResourceBindings.module.css │ │ │ │ │ │ │ │ ├── EditTextResourceBindings.test.tsx │ │ │ │ │ │ │ │ └── EditTextResourceBindings.tsx │ │ │ │ │ │ │ └── RedirectToLayoutSet/ │ │ │ │ │ │ │ ├── RedirectToLayoutSet.module.css │ │ │ │ │ │ │ ├── RedirectToLayoutSet.test.tsx │ │ │ │ │ │ │ ├── RedirectToLayoutSet.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── toolbar/ │ │ │ │ │ │ ├── InformationPanelComponent.module.css │ │ │ │ │ │ ├── InformationPanelComponent.tsx │ │ │ │ │ │ ├── ToolbarItemComponent.module.css │ │ │ │ │ │ └── ToolbarItemComponent.tsx │ │ │ │ │ ├── containers/ │ │ │ │ │ │ ├── BreadcrumbsTaskNavigation/ │ │ │ │ │ │ │ ├── BreadcrumbsTaskNavigation.module.css │ │ │ │ │ │ │ ├── BreadcrumbsTaskNavigation.test.tsx │ │ │ │ │ │ │ ├── BreadcrumbsTaskNavigation.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── DesignView/ │ │ │ │ │ │ │ ├── AddItem/ │ │ │ │ │ │ │ │ ├── AddItem.module.css │ │ │ │ │ │ │ │ ├── AddItem.test.tsx │ │ │ │ │ │ │ │ ├── AddItem.tsx │ │ │ │ │ │ │ │ ├── AddItemContent.module.css │ │ │ │ │ │ │ │ ├── AddItemContent.test.tsx │ │ │ │ │ │ │ │ ├── AddItemContent.tsx │ │ │ │ │ │ │ │ ├── AddItemModal.module.css │ │ │ │ │ │ │ │ ├── AddItemModal.test.tsx │ │ │ │ │ │ │ │ ├── AddItemModal.tsx │ │ │ │ │ │ │ │ ├── ComponentButton.module.css │ │ │ │ │ │ │ │ ├── ComponentButton.tsx │ │ │ │ │ │ │ │ ├── DefaultItems.module.css │ │ │ │ │ │ │ │ ├── DefaultItems.test.tsx │ │ │ │ │ │ │ │ ├── DefaultItems.tsx │ │ │ │ │ │ │ │ ├── FeedbackForm.test.tsx │ │ │ │ │ │ │ │ ├── FeedbackForm.tsx │ │ │ │ │ │ │ │ ├── ItemCategory/ │ │ │ │ │ │ │ │ │ ├── ItemCategory.module.css │ │ │ │ │ │ │ │ │ ├── ItemCategory.test.tsx │ │ │ │ │ │ │ │ │ ├── ItemCategory.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── ItemInfo/ │ │ │ │ │ │ │ │ │ ├── ItemInfo.module.css │ │ │ │ │ │ │ │ │ ├── ItemInfo.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ │ ├── ToggleAddComponentPoc.module.css │ │ │ │ │ │ │ │ ├── ToggleAddComponentPoc.test.tsx │ │ │ │ │ │ │ │ ├── ToggleAddComponentPoc.tsx │ │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ │ ├── useAddComponentHandlerSilent/ │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ ├── useAddComponentHandlerSilent.test.ts │ │ │ │ │ │ │ │ │ │ └── useAddComponentHandlerSilent.ts │ │ │ │ │ │ │ │ │ ├── useAddComponentHandlerWithCallback/ │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ ├── useAddComponentHandlerWithCallback.test.tsx │ │ │ │ │ │ │ │ │ │ └── useAddComponentHandlerWithCallback.ts │ │ │ │ │ │ │ │ │ └── useBaseAddComponentHandler/ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── useBaseAddComponentHandler.test.tsx │ │ │ │ │ │ │ │ │ └── useBaseAddComponentHandler.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ │ │ └── useSearchComponent/ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ │ │ ├── useSearchComponent.test.ts │ │ │ │ │ │ │ │ └── useSearchComponent.ts │ │ │ │ │ │ │ ├── DesignView.module.css │ │ │ │ │ │ │ ├── DesignView.test.tsx │ │ │ │ │ │ │ ├── DesignView.tsx │ │ │ │ │ │ │ ├── FormLayout.test.tsx │ │ │ │ │ │ │ ├── FormLayout.tsx │ │ │ │ │ │ │ ├── FormLayoutWarning.module.css │ │ │ │ │ │ │ ├── FormLayoutWarning.tsx │ │ │ │ │ │ │ ├── FormTree/ │ │ │ │ │ │ │ │ ├── FormItem/ │ │ │ │ │ │ │ │ │ ├── FormItem.tsx │ │ │ │ │ │ │ │ │ ├── FormItemTitle/ │ │ │ │ │ │ │ │ │ │ ├── FormItemTitle.module.css │ │ │ │ │ │ │ │ │ │ ├── FormItemTitle.test.tsx │ │ │ │ │ │ │ │ │ │ ├── FormItemTitle.tsx │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ ├── useDeleteItem.test.ts │ │ │ │ │ │ │ │ │ │ └── useDeleteItem.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── FormTree.test.tsx │ │ │ │ │ │ │ │ ├── FormTree.tsx │ │ │ │ │ │ │ │ ├── UnknownReferencedItem/ │ │ │ │ │ │ │ │ │ ├── UnknownReferencedItem.module.css │ │ │ │ │ │ │ │ │ ├── UnknownReferencedItem.test.tsx │ │ │ │ │ │ │ │ │ ├── UnknownReferencedItem.tsx │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ └── useDeleteUnknownComponentReference.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── renderItemList.tsx │ │ │ │ │ │ │ ├── PageAccordion/ │ │ │ │ │ │ │ │ ├── NavigationMenu/ │ │ │ │ │ │ │ │ │ ├── NavigationMenu.module.css │ │ │ │ │ │ │ │ │ ├── NavigationMenu.test.tsx │ │ │ │ │ │ │ │ │ ├── NavigationMenu.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── PageAccordion.module.css │ │ │ │ │ │ │ │ ├── PageAccordion.test.tsx │ │ │ │ │ │ │ │ ├── PageAccordion.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── PageGroupAccordion.module.css │ │ │ │ │ │ │ ├── PageGroupAccordion.test.tsx │ │ │ │ │ │ │ ├── PageGroupAccordion.tsx │ │ │ │ │ │ │ ├── PdfLayout/ │ │ │ │ │ │ │ │ └── PdfLayoutAccordion.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── DesignViewNavigation/ │ │ │ │ │ │ │ ├── DesignViewNavigation.module.css │ │ │ │ │ │ │ ├── DesignViewNavigation.test.tsx │ │ │ │ │ │ │ ├── DesignViewNavigation.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── FormDesignNavigation/ │ │ │ │ │ │ │ ├── FormDesignerNavigation.module.css │ │ │ │ │ │ │ ├── FormDesignerNavigation.test.tsx │ │ │ │ │ │ │ ├── FormDesignerNavigation.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── FormDesigner.module.css │ │ │ │ │ │ ├── FormDesigner.test.tsx │ │ │ │ │ │ ├── FormDesigner.tsx │ │ │ │ │ │ ├── FormDesignerToolbar.module.css │ │ │ │ │ │ ├── FormDesignerToolbar.test.tsx │ │ │ │ │ │ ├── FormDesignerToolbar.tsx │ │ │ │ │ │ ├── FormItemContext.test.tsx │ │ │ │ │ │ └── FormItemContext.tsx │ │ │ │ │ ├── converters/ │ │ │ │ │ │ ├── containerComponentConverters/ │ │ │ │ │ │ │ ├── externalContainerComponentToInternal.ts │ │ │ │ │ │ │ ├── externalGroupComponentToInternal.test.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── internalContainerComponentToExternal.ts │ │ │ │ │ │ │ └── internalGroupComponentToExternal.test.ts │ │ │ │ │ │ ├── formLayoutConverters/ │ │ │ │ │ │ │ ├── externalLayoutToInternal.test.ts │ │ │ │ │ │ │ ├── externalLayoutToInternal.ts │ │ │ │ │ │ │ ├── formLayoutConverters.test.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── internalLayoutToExternal.test.ts │ │ │ │ │ │ │ ├── internalLayoutToExternal.ts │ │ │ │ │ │ │ ├── pageIndexUtils.test.ts │ │ │ │ │ │ │ └── pageIndexUtils.ts │ │ │ │ │ │ └── simpleComponentConverters/ │ │ │ │ │ │ ├── externalSimpleComponentToInternal.test.ts │ │ │ │ │ │ ├── externalSimpleComponentToInternal.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── internalSimpleComponentToExternal.test.ts │ │ │ │ │ │ └── internalSimpleComponentToExternal.ts │ │ │ │ │ ├── data/ │ │ │ │ │ │ ├── FilterUtils.test.ts │ │ │ │ │ │ ├── FilterUtils.ts │ │ │ │ │ │ ├── containerComponentTypes.ts │ │ │ │ │ │ ├── formItemConfig.test.ts │ │ │ │ │ │ └── formItemConfig.ts │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── mutations/ │ │ │ │ │ │ │ ├── useAddAppAttachmentMetadataMutation.test.ts │ │ │ │ │ │ │ ├── useAddAppAttachmentMetadataMutation.ts │ │ │ │ │ │ │ ├── useAddGroupMutation.test.tsx │ │ │ │ │ │ │ ├── useAddGroupMutation.ts │ │ │ │ │ │ │ ├── useAddItemToLayoutMutation.test.ts │ │ │ │ │ │ │ ├── useAddItemToLayoutMutation.ts │ │ │ │ │ │ │ ├── useAddLayoutMutation.test.ts │ │ │ │ │ │ │ ├── useAddLayoutMutation.ts │ │ │ │ │ │ │ ├── useAddPageMutation.ts │ │ │ │ │ │ │ ├── useAddPageToGroup.test.ts │ │ │ │ │ │ │ ├── useAddPageToGroup.ts │ │ │ │ │ │ │ ├── useAddWidgetMutation.test.ts │ │ │ │ │ │ │ ├── useAddWidgetMutation.ts │ │ │ │ │ │ │ ├── useChangePageGroupOrder.ts │ │ │ │ │ │ │ ├── useChangePageOrderMutation.ts │ │ │ │ │ │ │ ├── useConvertToPageGroups.ts │ │ │ │ │ │ │ ├── useConvertToPageOrder.ts │ │ │ │ │ │ │ ├── useDeleteAppAttachmentMetadataMutation.test.ts │ │ │ │ │ │ │ ├── useDeleteAppAttachmentMetadataMutation.ts │ │ │ │ │ │ │ ├── useDeleteFormComponentMutation.test.ts │ │ │ │ │ │ │ ├── useDeleteFormComponentMutation.ts │ │ │ │ │ │ │ ├── useDeleteFormContainerMutation.test.ts │ │ │ │ │ │ │ ├── useDeleteFormContainerMutation.ts │ │ │ │ │ │ │ ├── useDeleteLayoutMutation.test.ts │ │ │ │ │ │ │ ├── useDeleteLayoutMutation.ts │ │ │ │ │ │ │ ├── useDeletePageGroupMutation.test.tsx │ │ │ │ │ │ │ ├── useDeletePageGroupMutation.ts │ │ │ │ │ │ │ ├── useDeletePageMutation.ts │ │ │ │ │ │ │ ├── useDeleteValidationOnNavigationLayoutSets.test.ts │ │ │ │ │ │ │ ├── useDeleteValidationOnNavigationLayoutSets.ts │ │ │ │ │ │ │ ├── useFormLayoutMutation.test.tsx │ │ │ │ │ │ │ ├── useFormLayoutMutation.ts │ │ │ │ │ │ │ ├── useFormLayoutSettingsMutation.test.ts │ │ │ │ │ │ │ ├── useFormLayoutSettingsMutation.ts │ │ │ │ │ │ │ ├── useModifyPageMutation.ts │ │ │ │ │ │ │ ├── useRuleConfigMutation.test.ts │ │ │ │ │ │ │ ├── useRuleConfigMutation.ts │ │ │ │ │ │ │ ├── useSaveValidationOnNavigationLayoutSets.test.ts │ │ │ │ │ │ │ ├── useSaveValidationOnNavigationLayoutSets.ts │ │ │ │ │ │ │ ├── useTaskNavigationGroupMutation.test.ts │ │ │ │ │ │ │ ├── useTaskNavigationGroupMutation.ts │ │ │ │ │ │ │ ├── useUpdateAppAttachmentMetadataMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateAppAttachmentMetadataMutation.ts │ │ │ │ │ │ │ ├── useUpdateFormComponentMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateFormComponentMutation.ts │ │ │ │ │ │ │ ├── useUpdateFormContainerMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateFormContainerMutation.ts │ │ │ │ │ │ │ ├── useUpdateGroupsMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateGroupsMutation.ts │ │ │ │ │ │ │ ├── useUpdateLayoutNameMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateLayoutNameMutation.ts │ │ │ │ │ │ │ ├── useUpdateValidationOnNavigationLayoutSettingsMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateValidationOnNavigationLayoutSettingsMutation.ts │ │ │ │ │ │ │ ├── useUpsertTextResourceMutation.test.ts │ │ │ │ │ │ │ ├── useUpsertTextResourceMutation.ts │ │ │ │ │ │ │ ├── useValidationOnNavigationPageSettingsMutation.test.ts │ │ │ │ │ │ │ └── useValidationOnNavigationPageSettingsMutation.ts │ │ │ │ │ │ ├── queries/ │ │ │ │ │ │ │ ├── useComponentSchemaQuery.ts │ │ │ │ │ │ │ ├── useDataModelMetadataQuery.ts │ │ │ │ │ │ │ ├── useFormLayoutSettingsQuery.ts │ │ │ │ │ │ │ ├── useFormLayoutsQuery.ts │ │ │ │ │ │ │ ├── useFrontEndSettingsQuery.test.ts │ │ │ │ │ │ │ ├── useFrontEndSettingsQuery.ts │ │ │ │ │ │ │ ├── useLayoutSchemaQuery.ts │ │ │ │ │ │ │ ├── useOptionListIdsQuery.ts │ │ │ │ │ │ │ ├── usePageValidationOnNavigationLayoutSettingsQuery.test.ts │ │ │ │ │ │ │ ├── usePageValidationOnNavigationLayoutSettingsQuery.ts │ │ │ │ │ │ │ ├── usePagesQuery.ts │ │ │ │ │ │ │ ├── useProcessTaskTypeQuery.ts │ │ │ │ │ │ │ ├── useRuleConfigQuery.ts │ │ │ │ │ │ │ ├── useValidationOnNavigationGroupedSettingsQuery.test.ts │ │ │ │ │ │ │ ├── useValidationOnNavigationGroupedSettingsQuery.ts │ │ │ │ │ │ │ ├── useValidationOnNavigationLayoutSetsQuery.test.ts │ │ │ │ │ │ │ ├── useValidationOnNavigationLayoutSetsQuery.ts │ │ │ │ │ │ │ ├── useWidgetsQuery.test.ts │ │ │ │ │ │ │ └── useWidgetsQuery.ts │ │ │ │ │ │ ├── useAppContext.test.tsx │ │ │ │ │ │ ├── useAppContext.ts │ │ │ │ │ │ ├── useChecksum.ts/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── useChecksum.test.ts │ │ │ │ │ │ │ └── useChecksum.ts │ │ │ │ │ │ ├── useComponentPropertyDescription.test.ts │ │ │ │ │ │ ├── useComponentPropertyDescription.ts │ │ │ │ │ │ ├── useComponentPropertyEnumValue.test.ts │ │ │ │ │ │ ├── useComponentPropertyEnumValue.ts │ │ │ │ │ │ ├── useComponentPropertyHelpText.test.ts │ │ │ │ │ │ ├── useComponentPropertyHelpText.ts │ │ │ │ │ │ ├── useComponentPropertyLabel.test.ts │ │ │ │ │ │ ├── useComponentPropertyLabel.ts │ │ │ │ │ │ ├── useComponentTitle.test.ts │ │ │ │ │ │ ├── useComponentTitle.ts │ │ │ │ │ │ ├── useCreateSubform.test.ts │ │ │ │ │ │ ├── useCreateSubform.ts │ │ │ │ │ │ ├── useFormLayout.test.ts │ │ │ │ │ │ ├── useFormLayout.ts │ │ │ │ │ │ ├── useFormLayouts.test.ts │ │ │ │ │ │ ├── useFormLayouts.ts │ │ │ │ │ │ ├── useGetBindableDataTypes.ts │ │ │ │ │ │ ├── useGetLayoutSetByName.test.ts │ │ │ │ │ │ ├── useGetLayoutSetByName.ts │ │ │ │ │ │ ├── useGetPageByName.ts │ │ │ │ │ │ ├── usePdf/ │ │ │ │ │ │ │ └── usePdf.ts │ │ │ │ │ │ ├── useSavableFormLayoutSettings.ts │ │ │ │ │ │ ├── useSelectedFormLayout.test.ts │ │ │ │ │ │ ├── useSelectedFormLayout.ts │ │ │ │ │ │ ├── useSelectedFormLayoutWithName.test.ts │ │ │ │ │ │ ├── useSelectedFormLayoutWithName.ts │ │ │ │ │ │ ├── useTaskNavigationGroupName.test.tsx │ │ │ │ │ │ ├── useTaskNavigationGroupName.tsx │ │ │ │ │ │ ├── useText.test.ts │ │ │ │ │ │ ├── useText.ts │ │ │ │ │ │ ├── useUxEditorParams.ts │ │ │ │ │ │ ├── useValidDataModels.test.ts │ │ │ │ │ │ └── useValidDataModels.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── selectors/ │ │ │ │ │ │ ├── formLayoutSelectors.test.ts │ │ │ │ │ │ └── formLayoutSelectors.ts │ │ │ │ │ ├── styles/ │ │ │ │ │ │ └── index.css │ │ │ │ │ ├── testing/ │ │ │ │ │ │ ├── appContextMock.ts │ │ │ │ │ │ ├── componentMocks.ts │ │ │ │ │ │ ├── componentSchemaMocks.ts │ │ │ │ │ │ ├── dataModelMock.ts │ │ │ │ │ │ ├── expressionMocks.ts │ │ │ │ │ │ ├── formItemContextMocks.ts │ │ │ │ │ │ ├── layoutMock.ts │ │ │ │ │ │ ├── layoutSetsMock.ts │ │ │ │ │ │ ├── layoutWithMultiPageGroupMocks.ts │ │ │ │ │ │ ├── mocks.tsx │ │ │ │ │ │ ├── ruleConfigMock.ts │ │ │ │ │ │ ├── schemas/ │ │ │ │ │ │ │ └── json/ │ │ │ │ │ │ │ ├── component/ │ │ │ │ │ │ │ │ ├── Accordion.schema.v1.json │ │ │ │ │ │ │ │ ├── AccordionGroup.schema.v1.json │ │ │ │ │ │ │ │ ├── ActionButton.schema.v1.json │ │ │ │ │ │ │ │ ├── Address.schema.v1.json │ │ │ │ │ │ │ │ ├── Alert.schema.v1.json │ │ │ │ │ │ │ │ ├── AttachmentList.schema.v1.json │ │ │ │ │ │ │ │ ├── Audio.schema.v1.json │ │ │ │ │ │ │ │ ├── Button.schema.v1.json │ │ │ │ │ │ │ │ ├── ButtonGroup.schema.v1.json │ │ │ │ │ │ │ │ ├── Cards.schema.v1.json │ │ │ │ │ │ │ │ ├── Checkboxes.schema.v1.json │ │ │ │ │ │ │ │ ├── Custom.schema.v1.json │ │ │ │ │ │ │ │ ├── CustomButton.schema.v1.json │ │ │ │ │ │ │ │ ├── Datepicker.schema.v1.json │ │ │ │ │ │ │ │ ├── Divider.schema.v1.json │ │ │ │ │ │ │ │ ├── Dropdown.schema.v1.json │ │ │ │ │ │ │ │ ├── FileUpload.schema.v1.json │ │ │ │ │ │ │ │ ├── FileUploadWithTag.schema.v1.json │ │ │ │ │ │ │ │ ├── Grid.schema.v1.json │ │ │ │ │ │ │ │ ├── Group.schema.v1.json │ │ │ │ │ │ │ │ ├── Header.schema.v1.json │ │ │ │ │ │ │ │ ├── IFrame.schema.v1.json │ │ │ │ │ │ │ │ ├── Image.schema.v1.json │ │ │ │ │ │ │ │ ├── ImageUpload.schema.v1.json │ │ │ │ │ │ │ │ ├── Input.schema.v1.json │ │ │ │ │ │ │ │ ├── InstanceInformation.schema.v1.json │ │ │ │ │ │ │ │ ├── InstantiationButton.schema.v1.json │ │ │ │ │ │ │ │ ├── Likert.schema.v1.json │ │ │ │ │ │ │ │ ├── Link.schema.v1.json │ │ │ │ │ │ │ │ ├── List.schema.v1.json │ │ │ │ │ │ │ │ ├── Map.schema.v1.json │ │ │ │ │ │ │ │ ├── MultipleSelect.schema.v1.json │ │ │ │ │ │ │ │ ├── NavigationBar.schema.v1.json │ │ │ │ │ │ │ │ ├── NavigationButtons.schema.v1.json │ │ │ │ │ │ │ │ ├── Number.schema.v1.json │ │ │ │ │ │ │ │ ├── OrganisationLookup.schema.v1.json │ │ │ │ │ │ │ │ ├── Panel.schema.v1.json │ │ │ │ │ │ │ │ ├── Paragraph.schema.v1.json │ │ │ │ │ │ │ │ ├── Payment.schema.v1.json │ │ │ │ │ │ │ │ ├── PaymentDetails.schema.v1.json │ │ │ │ │ │ │ │ ├── PersonLookup.schema.v1.json │ │ │ │ │ │ │ │ ├── PrintButton.schema.v1.json │ │ │ │ │ │ │ │ ├── RadioButtons.schema.v1.json │ │ │ │ │ │ │ │ ├── RepeatingGroup.schema.v1.json │ │ │ │ │ │ │ │ ├── Subform.schema.v1.json │ │ │ │ │ │ │ │ ├── Summary.schema.v1.json │ │ │ │ │ │ │ │ ├── Summary2.schema.v1.json │ │ │ │ │ │ │ │ ├── Tabs.schema.v1.json │ │ │ │ │ │ │ │ ├── Text.schema.v1.json │ │ │ │ │ │ │ │ ├── TextArea.schema.v1.json │ │ │ │ │ │ │ │ ├── Video.schema.v1.json │ │ │ │ │ │ │ │ ├── common-defs.schema.v1.json │ │ │ │ │ │ │ │ └── component-list.json │ │ │ │ │ │ │ └── layout/ │ │ │ │ │ │ │ ├── expression.schema.v1.json │ │ │ │ │ │ │ ├── footer.schema.v1.json │ │ │ │ │ │ │ ├── layout-sets.schema.v1.json │ │ │ │ │ │ │ ├── layout.schema.v1.json │ │ │ │ │ │ │ ├── layoutSettings.schema.v1.json │ │ │ │ │ │ │ └── number-format.schema.v1.json │ │ │ │ │ │ ├── scripts/ │ │ │ │ │ │ │ └── processSchemas.js │ │ │ │ │ │ └── subformLayoutMock.ts │ │ │ │ │ ├── types/ │ │ │ │ │ │ ├── ContainerComponent.ts │ │ │ │ │ │ ├── ExportForm.ts │ │ │ │ │ │ ├── ExternalContainerComponent.ts │ │ │ │ │ │ ├── ExternalSimpleComponent.ts │ │ │ │ │ │ ├── FormComponent.ts │ │ │ │ │ │ ├── FormContainer.ts │ │ │ │ │ │ ├── FormItem.ts │ │ │ │ │ │ ├── FormItemProperty.ts │ │ │ │ │ │ ├── FormLayoutPage.ts │ │ │ │ │ │ ├── SimpleComponentType.ts │ │ │ │ │ │ └── global.ts │ │ │ │ │ └── utils/ │ │ │ │ │ ├── component.test.ts │ │ │ │ │ ├── component.ts │ │ │ │ │ ├── dataModelUtils.test.ts │ │ │ │ │ ├── dataModelUtils.ts │ │ │ │ │ ├── designViewUtils/ │ │ │ │ │ │ ├── designViewUtils.test.ts │ │ │ │ │ │ ├── designViewUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── exportUtils.test.ts │ │ │ │ │ ├── exportUtils.ts │ │ │ │ │ ├── expressionsUtils.ts │ │ │ │ │ ├── formItemUtils.ts │ │ │ │ │ ├── formLayoutUtils.test.tsx │ │ │ │ │ ├── formLayoutUtils.ts │ │ │ │ │ ├── formLayoutsUtils.test.ts │ │ │ │ │ ├── formLayoutsUtils.ts │ │ │ │ │ ├── generateId.test.tsx │ │ │ │ │ ├── generateId.ts │ │ │ │ │ ├── getLayoutSetIcon.test.tsx │ │ │ │ │ ├── getLayoutSetIcon.tsx │ │ │ │ │ ├── jsonUtils.test.ts │ │ │ │ │ ├── jsonUtils.ts │ │ │ │ │ ├── language.test.ts │ │ │ │ │ ├── language.ts │ │ │ │ │ ├── localStorage.test.ts │ │ │ │ │ ├── localStorageUtils.ts │ │ │ │ │ ├── pageGroupUtils.test.ts │ │ │ │ │ ├── pageGroupUtils.ts │ │ │ │ │ ├── routeUtils.ts │ │ │ │ │ ├── stringUtils/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── stringUtils.test.ts │ │ │ │ │ │ └── stringUtils.ts │ │ │ │ │ ├── widgetUtils.test.ts │ │ │ │ │ └── widgetUtils.ts │ │ │ │ └── tsconfig.json │ │ │ ├── ux-editor-v3/ │ │ │ │ ├── README.md │ │ │ │ ├── jest.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── App.test.tsx │ │ │ │ │ ├── App.tsx │ │ │ │ │ ├── AppContext.ts │ │ │ │ │ ├── SubApp.test.tsx │ │ │ │ │ ├── SubApp.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── Elements/ │ │ │ │ │ │ │ ├── ConfPageToolbar.tsx │ │ │ │ │ │ │ ├── DefaultToolbar.module.css │ │ │ │ │ │ │ ├── DefaultToolbar.tsx │ │ │ │ │ │ │ ├── Elements.module.css │ │ │ │ │ │ │ ├── Elements.tsx │ │ │ │ │ │ │ ├── LayoutSetsContainer.module.css │ │ │ │ │ │ │ ├── LayoutSetsContainer.test.tsx │ │ │ │ │ │ │ ├── LayoutSetsContainer.tsx │ │ │ │ │ │ │ ├── PageElement.module.css │ │ │ │ │ │ │ ├── ToolbarItem.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ErrorPage/ │ │ │ │ │ │ │ ├── ErrorPage.module.css │ │ │ │ │ │ │ ├── ErrorPage.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── FormField.tsx │ │ │ │ │ │ ├── Preview/ │ │ │ │ │ │ │ ├── Preview.module.css │ │ │ │ │ │ │ ├── Preview.test.tsx │ │ │ │ │ │ │ ├── Preview.tsx │ │ │ │ │ │ │ ├── ViewToggler/ │ │ │ │ │ │ │ │ ├── ViewToggler.module.css │ │ │ │ │ │ │ │ ├── ViewToggler.test.tsx │ │ │ │ │ │ │ │ └── ViewToggler.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Properties/ │ │ │ │ │ │ │ ├── Calculations.module.css │ │ │ │ │ │ │ ├── Calculations.test.tsx │ │ │ │ │ │ │ ├── Calculations.tsx │ │ │ │ │ │ │ ├── ConditionalRendering.module.css │ │ │ │ │ │ │ ├── ConditionalRendering.test.tsx │ │ │ │ │ │ │ ├── ConditionalRendering.tsx │ │ │ │ │ │ │ ├── Content.test.tsx │ │ │ │ │ │ │ ├── Content.tsx │ │ │ │ │ │ │ ├── Dynamics.test.tsx │ │ │ │ │ │ │ ├── Dynamics.tsx │ │ │ │ │ │ │ ├── OldDynamicsInfo.module.css │ │ │ │ │ │ │ ├── OldDynamicsInfo.test.tsx │ │ │ │ │ │ │ ├── OldDynamicsInfo.tsx │ │ │ │ │ │ │ ├── Properties.module.css │ │ │ │ │ │ │ ├── Properties.test.tsx │ │ │ │ │ │ │ ├── Properties.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── TextResource.module.css │ │ │ │ │ │ ├── TextResource.test.tsx │ │ │ │ │ │ ├── TextResource.tsx │ │ │ │ │ │ ├── TextResourceEdit.module.css │ │ │ │ │ │ ├── TextResourceEdit.test.tsx │ │ │ │ │ │ ├── TextResourceEdit.tsx │ │ │ │ │ │ ├── TextResourceOption.test.tsx │ │ │ │ │ │ ├── UnknownComponentAlert/ │ │ │ │ │ │ │ ├── UnknownComponentAlert.test.tsx │ │ │ │ │ │ │ ├── UnknownComponentAlert.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ ├── ConditionalRenderingComponent.module.css │ │ │ │ │ │ │ ├── ConditionalRenderingComponent.tsx │ │ │ │ │ │ │ ├── EditFormComponent.module.css │ │ │ │ │ │ │ ├── EditFormComponent.test.tsx │ │ │ │ │ │ │ ├── EditFormComponent.tsx │ │ │ │ │ │ │ ├── EditFormContainer.module.css │ │ │ │ │ │ │ ├── EditFormContainer.test.tsx │ │ │ │ │ │ │ ├── EditFormContainer.tsx │ │ │ │ │ │ │ ├── Expressions/ │ │ │ │ │ │ │ │ ├── ExpressionContent/ │ │ │ │ │ │ │ │ │ ├── ComplexExpression/ │ │ │ │ │ │ │ │ │ │ ├── ComplexExpression.module.css │ │ │ │ │ │ │ │ │ │ ├── ComplexExpression.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ComplexExpression.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── ExpressionContent.module.css │ │ │ │ │ │ │ │ │ ├── ExpressionContent.test.tsx │ │ │ │ │ │ │ │ │ ├── ExpressionContent.tsx │ │ │ │ │ │ │ │ │ ├── ExpressionEditMode/ │ │ │ │ │ │ │ │ │ │ ├── ExpressionEditMode.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ExpressionEditMode.tsx │ │ │ │ │ │ │ │ │ │ ├── SimpleExpression/ │ │ │ │ │ │ │ │ │ │ │ ├── DataSourceValue.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── DataSourceValue.tsx │ │ │ │ │ │ │ │ │ │ │ ├── SimpleExpression.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── SimpleExpression.tsx │ │ │ │ │ │ │ │ │ │ │ ├── SubExpressionContent.module.css │ │ │ │ │ │ │ │ │ │ │ ├── SubExpressionContent.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── SubExpressionContent.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── ExpressionPreview/ │ │ │ │ │ │ │ │ │ │ ├── ExpressionPreview.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ExpressionPreview.tsx │ │ │ │ │ │ │ │ │ │ ├── SimpleExpressionPreview.test.tsx │ │ │ │ │ │ │ │ │ │ ├── SimpleExpressionPreview.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── Expressions.module.css │ │ │ │ │ │ │ │ ├── Expressions.test.tsx │ │ │ │ │ │ │ │ ├── Expressions.tsx │ │ │ │ │ │ │ │ ├── NewExpressionButton.test.tsx │ │ │ │ │ │ │ │ ├── NewExpressionButton.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── FormComponentConfig.test.tsx │ │ │ │ │ │ │ ├── FormComponentConfig.tsx │ │ │ │ │ │ │ ├── RuleComponent.module.css │ │ │ │ │ │ │ ├── RuleComponent.tsx │ │ │ │ │ │ │ ├── SelectDataModelComponent.test.tsx │ │ │ │ │ │ │ ├── SelectDataModelComponent.tsx │ │ │ │ │ │ │ ├── componentConfig.tsx │ │ │ │ │ │ │ ├── componentSpecificContent/ │ │ │ │ │ │ │ │ ├── Address/ │ │ │ │ │ │ │ │ │ ├── AddressComponent.module.css │ │ │ │ │ │ │ │ │ ├── AddressComponent.test.tsx │ │ │ │ │ │ │ │ │ ├── AddressComponent.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── Button/ │ │ │ │ │ │ │ │ │ ├── ButtonComponent.module.css │ │ │ │ │ │ │ │ │ ├── ButtonComponent.test.tsx │ │ │ │ │ │ │ │ │ ├── ButtonComponent.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── ComponentSpecificContent.tsx │ │ │ │ │ │ │ │ ├── FileUpload/ │ │ │ │ │ │ │ │ │ ├── FileUploadComponent.module.css │ │ │ │ │ │ │ │ │ ├── FileUploadComponent.test.tsx │ │ │ │ │ │ │ │ │ ├── FileUploadComponent.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── Image/ │ │ │ │ │ │ │ │ │ ├── ImageComponent.module.css │ │ │ │ │ │ │ │ │ ├── ImageComponent.test.tsx │ │ │ │ │ │ │ │ │ ├── ImageComponent.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── Map/ │ │ │ │ │ │ │ │ │ ├── MapComponent.module.css │ │ │ │ │ │ │ │ │ ├── MapComponent.test.tsx │ │ │ │ │ │ │ │ │ ├── MapComponent.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── Panel/ │ │ │ │ │ │ │ │ │ ├── PanelComponent.test.tsx │ │ │ │ │ │ │ │ │ ├── PanelComponent.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── editModal/ │ │ │ │ │ │ │ │ ├── EditAutocomplete/ │ │ │ │ │ │ │ │ │ ├── EditAutocomplete.test.tsx │ │ │ │ │ │ │ │ │ ├── EditAutocomplete.tsx │ │ │ │ │ │ │ │ │ ├── autocompleteOptions.ts │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── updateAutocomplete.test.ts │ │ │ │ │ │ │ │ │ └── updateAutocomplete.ts │ │ │ │ │ │ │ │ ├── EditBooleanValue.tsx │ │ │ │ │ │ │ │ ├── EditCodeList.test.tsx │ │ │ │ │ │ │ │ ├── EditCodeList.tsx │ │ │ │ │ │ │ │ ├── EditComponentId.tsx │ │ │ │ │ │ │ │ ├── EditDataModelBindings.module.css │ │ │ │ │ │ │ │ ├── EditDataModelBindings.test.tsx │ │ │ │ │ │ │ │ ├── EditDataModelBindings.tsx │ │ │ │ │ │ │ │ ├── EditGrid/ │ │ │ │ │ │ │ │ │ ├── EditGrid.module.css │ │ │ │ │ │ │ │ │ ├── EditGrid.test.tsx │ │ │ │ │ │ │ │ │ ├── EditGrid.tsx │ │ │ │ │ │ │ │ │ ├── EditGridForGivenViewSize.module.css │ │ │ │ │ │ │ │ │ ├── EditGridForGivenViewSize.test.tsx │ │ │ │ │ │ │ │ │ ├── EditGridForGivenViewSize.tsx │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ │ │ ├── GridSizes.ts │ │ │ │ │ │ │ │ │ │ └── ViewSize.ts │ │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ ├── EditHeaderSize.test.tsx │ │ │ │ │ │ │ │ ├── EditHeaderSize.tsx │ │ │ │ │ │ │ │ ├── EditNumberValue.test.tsx │ │ │ │ │ │ │ │ ├── EditNumberValue.tsx │ │ │ │ │ │ │ │ ├── EditOptions.module.css │ │ │ │ │ │ │ │ ├── EditOptions.test.tsx │ │ │ │ │ │ │ │ ├── EditOptions.tsx │ │ │ │ │ │ │ │ ├── EditPreselectedIndex.tsx │ │ │ │ │ │ │ │ ├── EditReadOnly.tsx │ │ │ │ │ │ │ │ ├── EditRequired.tsx │ │ │ │ │ │ │ │ ├── EditStringValue.test.tsx │ │ │ │ │ │ │ │ ├── EditStringValue.tsx │ │ │ │ │ │ │ │ ├── EditTextResourceBinding.test.tsx │ │ │ │ │ │ │ │ ├── EditTextResourceBinding.tsx │ │ │ │ │ │ │ │ ├── EditTextResourceBindings.module.css │ │ │ │ │ │ │ │ ├── EditTextResourceBindings.test.tsx │ │ │ │ │ │ │ │ ├── EditTextResourceBindings.tsx │ │ │ │ │ │ │ │ └── InputActionWrapper/ │ │ │ │ │ │ │ │ ├── InputActionWrapper.module.css │ │ │ │ │ │ │ │ ├── InputActionWrapper.test.tsx │ │ │ │ │ │ │ │ ├── InputActionWrapper.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── group/ │ │ │ │ │ │ │ ├── EditGroupDataModelBindings.test.tsx │ │ │ │ │ │ │ └── EditGroupDataModelBindings.tsx │ │ │ │ │ │ └── toolbar/ │ │ │ │ │ │ ├── ConditionalRenderingModal.module.css │ │ │ │ │ │ ├── ConditionalRenderingModal.tsx │ │ │ │ │ │ ├── InformationPanelComponent.module.css │ │ │ │ │ │ ├── InformationPanelComponent.tsx │ │ │ │ │ │ ├── RuleButton.tsx │ │ │ │ │ │ ├── RuleModal.test.tsx │ │ │ │ │ │ ├── RuleModal.tsx │ │ │ │ │ │ ├── ToolbarItemComponent.module.css │ │ │ │ │ │ └── ToolbarItemComponent.tsx │ │ │ │ │ ├── containers/ │ │ │ │ │ │ ├── DesignView/ │ │ │ │ │ │ │ ├── DesignView.module.css │ │ │ │ │ │ │ ├── DesignView.test.tsx │ │ │ │ │ │ │ ├── DesignView.tsx │ │ │ │ │ │ │ ├── FormLayout.test.tsx │ │ │ │ │ │ │ ├── FormLayout.tsx │ │ │ │ │ │ │ ├── FormTree/ │ │ │ │ │ │ │ │ ├── FormItem/ │ │ │ │ │ │ │ │ │ ├── FormItem.tsx │ │ │ │ │ │ │ │ │ ├── FormItemTitle/ │ │ │ │ │ │ │ │ │ │ ├── FormItemTitle.module.css │ │ │ │ │ │ │ │ │ │ ├── FormItemTitle.test.tsx │ │ │ │ │ │ │ │ │ │ ├── FormItemTitle.tsx │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ ├── useDeleteItem.test.ts │ │ │ │ │ │ │ │ │ │ └── useDeleteItem.ts │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── useItemTitle.test.ts │ │ │ │ │ │ │ │ │ └── useItemTitle.ts │ │ │ │ │ │ │ │ ├── FormTree.test.tsx │ │ │ │ │ │ │ │ ├── FormTree.tsx │ │ │ │ │ │ │ │ ├── UnknownReferencedItem/ │ │ │ │ │ │ │ │ │ ├── UnknownReferencedItem.module.css │ │ │ │ │ │ │ │ │ ├── UnknownReferencedItem.test.tsx │ │ │ │ │ │ │ │ │ ├── UnknownReferencedItem.tsx │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ └── useDeleteUnknownComponentReference.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── renderItemList.tsx │ │ │ │ │ │ │ ├── PageAccordion/ │ │ │ │ │ │ │ │ ├── NavigationMenu/ │ │ │ │ │ │ │ │ │ ├── InputPopover/ │ │ │ │ │ │ │ │ │ │ ├── InputPopover.module.css │ │ │ │ │ │ │ │ │ │ ├── InputPopover.test.tsx │ │ │ │ │ │ │ │ │ │ ├── InputPopover.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── NavigationMenu.test.tsx │ │ │ │ │ │ │ │ │ ├── NavigationMenu.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── PageAccordion.module.css │ │ │ │ │ │ │ │ ├── PageAccordion.test.tsx │ │ │ │ │ │ │ │ ├── PageAccordion.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── useDeleteLayout.ts │ │ │ │ │ │ │ ├── ReceiptContent/ │ │ │ │ │ │ │ │ ├── ReceiptContent.module.css │ │ │ │ │ │ │ │ ├── ReceiptContent.test.tsx │ │ │ │ │ │ │ │ ├── ReceiptContent.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── FormDesigner.module.css │ │ │ │ │ │ ├── FormDesigner.test.tsx │ │ │ │ │ │ ├── FormDesigner.tsx │ │ │ │ │ │ ├── FormItemContext.test.tsx │ │ │ │ │ │ └── FormItemContext.tsx │ │ │ │ │ ├── converters/ │ │ │ │ │ │ ├── containerComponentConverters/ │ │ │ │ │ │ │ ├── externalContainerComponentToInternal.ts │ │ │ │ │ │ │ ├── externalGroupComponentToInternal.test.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── internalContainerComponentToExternal.ts │ │ │ │ │ │ │ └── internalGroupComponentToExternal.test.ts │ │ │ │ │ │ ├── formLayoutConverters/ │ │ │ │ │ │ │ ├── externalLayoutToInternal.test.ts │ │ │ │ │ │ │ ├── externalLayoutToInternal.ts │ │ │ │ │ │ │ ├── formLayoutConverters.test.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── internalLayoutToExternal.test.ts │ │ │ │ │ │ │ ├── internalLayoutToExternal.ts │ │ │ │ │ │ │ ├── pageIndexUtils.test.ts │ │ │ │ │ │ │ └── pageIndexUtils.ts │ │ │ │ │ │ └── simpleComponentConverters/ │ │ │ │ │ │ ├── externalSimpleComponentToInternal.test.ts │ │ │ │ │ │ ├── externalSimpleComponentToInternal.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── internalSimpleComponentToExternal.test.ts │ │ │ │ │ │ └── internalSimpleComponentToExternal.ts │ │ │ │ │ ├── data/ │ │ │ │ │ │ ├── containerComponentTypes.ts │ │ │ │ │ │ ├── formItemConfig.test.ts │ │ │ │ │ │ └── formItemConfig.ts │ │ │ │ │ ├── features/ │ │ │ │ │ │ ├── appData/ │ │ │ │ │ │ │ ├── appDataReducers.ts │ │ │ │ │ │ │ └── textResources/ │ │ │ │ │ │ │ └── textResourcesSlice.ts │ │ │ │ │ │ └── formDesigner/ │ │ │ │ │ │ ├── formDesignerReducer.ts │ │ │ │ │ │ ├── formDesignerTypes.ts │ │ │ │ │ │ └── formLayout/ │ │ │ │ │ │ ├── formLayoutActions.ts │ │ │ │ │ │ └── formLayoutSlice.ts │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── mutations/ │ │ │ │ │ │ │ ├── useAddAppAttachmentMetadataMutation.test.ts │ │ │ │ │ │ │ ├── useAddAppAttachmentMetadataMutation.ts │ │ │ │ │ │ │ ├── useAddItemToLayoutMutation.test.ts │ │ │ │ │ │ │ ├── useAddItemToLayoutMutation.ts │ │ │ │ │ │ │ ├── useAddLayoutMutation.test.ts │ │ │ │ │ │ │ ├── useAddLayoutMutation.ts │ │ │ │ │ │ │ ├── useAddWidgetMutation.test.ts │ │ │ │ │ │ │ ├── useAddWidgetMutation.ts │ │ │ │ │ │ │ ├── useDeleteAppAttachmentMetadataMutation.test.ts │ │ │ │ │ │ │ ├── useDeleteAppAttachmentMetadataMutation.ts │ │ │ │ │ │ │ ├── useDeleteFormComponentMutation.test.ts │ │ │ │ │ │ │ ├── useDeleteFormComponentMutation.ts │ │ │ │ │ │ │ ├── useDeleteFormContainerMutation.test.ts │ │ │ │ │ │ │ ├── useDeleteFormContainerMutation.ts │ │ │ │ │ │ │ ├── useDeleteLayoutMutation.test.ts │ │ │ │ │ │ │ ├── useDeleteLayoutMutation.ts │ │ │ │ │ │ │ ├── useFormLayoutMutation.test.tsx │ │ │ │ │ │ │ ├── useFormLayoutMutation.ts │ │ │ │ │ │ │ ├── useFormLayoutSettingsMutation.test.ts │ │ │ │ │ │ │ ├── useFormLayoutSettingsMutation.ts │ │ │ │ │ │ │ ├── useRuleConfigMutation.test.ts │ │ │ │ │ │ │ ├── useRuleConfigMutation.ts │ │ │ │ │ │ │ ├── useUpdateAppAttachmentMetadataMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateAppAttachmentMetadataMutation.ts │ │ │ │ │ │ │ ├── useUpdateFormComponentMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateFormComponentMutation.ts │ │ │ │ │ │ │ ├── useUpdateFormContainerMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateFormContainerMutation.ts │ │ │ │ │ │ │ ├── useUpdateLayoutNameMutation.test.ts │ │ │ │ │ │ │ ├── useUpdateLayoutNameMutation.ts │ │ │ │ │ │ │ ├── useUpdateLayoutOrderMutation.test.ts │ │ │ │ │ │ │ └── useUpdateLayoutOrderMutation.ts │ │ │ │ │ │ ├── queries/ │ │ │ │ │ │ │ ├── useComponentSchemaQuery.ts │ │ │ │ │ │ │ ├── useDataModelMetadataQuery.ts │ │ │ │ │ │ │ ├── useFormLayoutSettingsQuery.ts │ │ │ │ │ │ │ ├── useFormLayoutsQuery.ts │ │ │ │ │ │ │ ├── useFrontEndSettingsQuery.test.ts │ │ │ │ │ │ │ ├── useFrontEndSettingsQuery.ts │ │ │ │ │ │ │ ├── useLayoutSchemaQuery.ts │ │ │ │ │ │ │ ├── useOptionListIdsQuery.ts │ │ │ │ │ │ │ ├── useRuleConfigQuery.ts │ │ │ │ │ │ │ ├── useRuleModelQuery.test.ts │ │ │ │ │ │ │ ├── useRuleModelQuery.ts │ │ │ │ │ │ │ ├── useWidgetsQuery.test.ts │ │ │ │ │ │ │ └── useWidgetsQuery.ts │ │ │ │ │ │ ├── useAppContext.ts │ │ │ │ │ │ ├── useComponentErrorMessage.test.ts │ │ │ │ │ │ ├── useComponentErrorMessage.ts │ │ │ │ │ │ ├── useComponentTypeName.test.ts │ │ │ │ │ │ ├── useComponentTypeName.ts │ │ │ │ │ │ ├── useFormLayoutsSelector.test.ts │ │ │ │ │ │ ├── useFormLayoutsSelector.ts │ │ │ │ │ │ ├── useText.test.ts │ │ │ │ │ │ ├── useText.ts │ │ │ │ │ │ ├── useTextResourcesSelector.ts │ │ │ │ │ │ ├── useValidateComponent.test.ts │ │ │ │ │ │ └── useValidateComponent.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── reducers.ts │ │ │ │ │ ├── selectors/ │ │ │ │ │ │ ├── formLayoutSelectors.test.ts │ │ │ │ │ │ ├── formLayoutSelectors.ts │ │ │ │ │ │ ├── textResourceSelectors.test.ts │ │ │ │ │ │ └── textResourceSelectors.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ ├── styles/ │ │ │ │ │ │ └── index.css │ │ │ │ │ ├── testing/ │ │ │ │ │ │ ├── appContextMock.ts │ │ │ │ │ │ ├── componentMocks.ts │ │ │ │ │ │ ├── componentSchemaMocks.ts │ │ │ │ │ │ ├── expressionMocks.ts │ │ │ │ │ │ ├── formItemContextMocks.ts │ │ │ │ │ │ ├── layoutMock.ts │ │ │ │ │ │ ├── layoutSetsMock.ts │ │ │ │ │ │ ├── layoutWithMultiPageGroupMocks.ts │ │ │ │ │ │ ├── mocks.tsx │ │ │ │ │ │ ├── ruleConfigMock.ts │ │ │ │ │ │ ├── ruleHandlerMock.ts │ │ │ │ │ │ ├── schemas/ │ │ │ │ │ │ │ └── json/ │ │ │ │ │ │ │ ├── component/ │ │ │ │ │ │ │ │ ├── Accordion.schema.v1.json │ │ │ │ │ │ │ │ ├── ActionButton.schema.v1.json │ │ │ │ │ │ │ │ ├── AddressComponent.schema.v1.json │ │ │ │ │ │ │ │ ├── Alert.schema.v1.json │ │ │ │ │ │ │ │ ├── AttachmentList.schema.v1.json │ │ │ │ │ │ │ │ ├── Button.schema.v1.json │ │ │ │ │ │ │ │ ├── ButtonGroup.schema.v1.json │ │ │ │ │ │ │ │ ├── Checkboxes.schema.v1.json │ │ │ │ │ │ │ │ ├── Custom.schema.v1.json │ │ │ │ │ │ │ │ ├── Datepicker.schema.v1.json │ │ │ │ │ │ │ │ ├── Dropdown.schema.v1.json │ │ │ │ │ │ │ │ ├── FileUpload.schema.v1.json │ │ │ │ │ │ │ │ ├── FileUploadWithTag.schema.v1.json │ │ │ │ │ │ │ │ ├── Grid.schema.v1.json │ │ │ │ │ │ │ │ ├── Group.schema.v1.json │ │ │ │ │ │ │ │ ├── Header.schema.v1.json │ │ │ │ │ │ │ │ ├── IFrame.schema.v1.json │ │ │ │ │ │ │ │ ├── Image.schema.v1.json │ │ │ │ │ │ │ │ ├── Input.schema.v1.json │ │ │ │ │ │ │ │ ├── InstanceInformation.schema.v1.json │ │ │ │ │ │ │ │ ├── InstantiationButton.schema.v1.json │ │ │ │ │ │ │ │ ├── Likert.schema.v1.json │ │ │ │ │ │ │ │ ├── Link.schema.v1.json │ │ │ │ │ │ │ │ ├── List.schema.v1.json │ │ │ │ │ │ │ │ ├── Map.schema.v1.json │ │ │ │ │ │ │ │ ├── MultipleSelect.schema.v1.json │ │ │ │ │ │ │ │ ├── NavigationBar.schema.v1.json │ │ │ │ │ │ │ │ ├── NavigationButtons.schema.v1.json │ │ │ │ │ │ │ │ ├── Panel.schema.v1.json │ │ │ │ │ │ │ │ ├── Paragraph.schema.v1.json │ │ │ │ │ │ │ │ ├── PrintButton.schema.v1.json │ │ │ │ │ │ │ │ ├── RadioButtons.schema.v1.json │ │ │ │ │ │ │ │ ├── Summary.schema.v1.json │ │ │ │ │ │ │ │ ├── TextArea.schema.v1.json │ │ │ │ │ │ │ │ ├── common-defs.schema.v1.json │ │ │ │ │ │ │ │ └── component-list.json │ │ │ │ │ │ │ └── layout/ │ │ │ │ │ │ │ ├── expression.schema.v1.json │ │ │ │ │ │ │ ├── footer.schema.v1.json │ │ │ │ │ │ │ ├── layout-sets.schema.v1.json │ │ │ │ │ │ │ ├── layout.schema.v1.json │ │ │ │ │ │ │ ├── layoutSettings.schema.v1.json │ │ │ │ │ │ │ └── number-format.schema.v1.json │ │ │ │ │ │ ├── scripts/ │ │ │ │ │ │ │ └── processSchemas.js │ │ │ │ │ │ └── stateMocks.ts │ │ │ │ │ ├── types/ │ │ │ │ │ │ ├── ContainerComponent.ts │ │ │ │ │ │ ├── Expressions.ts │ │ │ │ │ │ ├── ExternalContainerComponent.ts │ │ │ │ │ │ ├── ExternalSimpleComponent.ts │ │ │ │ │ │ ├── FormComponent.ts │ │ │ │ │ │ ├── FormContainer.ts │ │ │ │ │ │ ├── FormItem.ts │ │ │ │ │ │ ├── FormLayoutPage.ts │ │ │ │ │ │ ├── SimpleComponentType.ts │ │ │ │ │ │ └── global.ts │ │ │ │ │ └── utils/ │ │ │ │ │ ├── component.test.ts │ │ │ │ │ ├── component.ts │ │ │ │ │ ├── dataModel.ts │ │ │ │ │ ├── designViewUtils/ │ │ │ │ │ │ ├── designViewUtils.test.ts │ │ │ │ │ │ ├── designViewUtils.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── expressionsUtils.test.ts │ │ │ │ │ ├── expressionsUtils.ts │ │ │ │ │ ├── formItemUtils.ts │ │ │ │ │ ├── formLayoutUtils.test.tsx │ │ │ │ │ ├── formLayoutUtils.ts │ │ │ │ │ ├── formLayoutsUtils.test.ts │ │ │ │ │ ├── formLayoutsUtils.ts │ │ │ │ │ ├── generateId.test.tsx │ │ │ │ │ ├── generateId.ts │ │ │ │ │ ├── jsonUtils.test.ts │ │ │ │ │ ├── jsonUtils.ts │ │ │ │ │ ├── language.test.ts │ │ │ │ │ ├── language.ts │ │ │ │ │ ├── localStorageUtils/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── localStorageUtils.ts │ │ │ │ │ ├── ruleConfigUtils.test.ts │ │ │ │ │ ├── ruleConfigUtils.ts │ │ │ │ │ ├── stringUtils/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── stringUtils.test.ts │ │ │ │ │ │ └── stringUtils.ts │ │ │ │ │ ├── widgetUtils.test.ts │ │ │ │ │ └── widgetUtils.ts │ │ │ │ └── tsconfig.json │ │ │ └── ux-editor-v4/ │ │ │ ├── README.md │ │ │ ├── jest.config.js │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── App.test.tsx │ │ │ │ ├── App.tsx │ │ │ │ ├── AppContext.test.tsx │ │ │ │ ├── AppContext.tsx │ │ │ │ ├── SubApp.test.tsx │ │ │ │ ├── SubApp.tsx │ │ │ │ ├── classes/ │ │ │ │ │ ├── FormLayoutSettings.test.ts │ │ │ │ │ ├── FormLayoutSettings.ts │ │ │ │ │ ├── SavableFormLayoutSettings.test.ts │ │ │ │ │ ├── SavableFormLayoutSettings.ts │ │ │ │ │ ├── SubformUtils.test.ts │ │ │ │ │ └── SubformUtils.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── Elements/ │ │ │ │ │ │ ├── ConfPageToolbar.module.css │ │ │ │ │ │ ├── ConfPageToolbar.test.tsx │ │ │ │ │ │ ├── ConfPageToolbar.tsx │ │ │ │ │ │ ├── DefaultToolbar.module.css │ │ │ │ │ │ ├── DefaultToolbar.tsx │ │ │ │ │ │ ├── Elements.module.css │ │ │ │ │ │ ├── Elements.test.tsx │ │ │ │ │ │ ├── Elements.tsx │ │ │ │ │ │ ├── ElementsUtils.test.ts │ │ │ │ │ │ ├── ElementsUtils.ts │ │ │ │ │ │ ├── ExportForm.tsx │ │ │ │ │ │ ├── PageElement.module.css │ │ │ │ │ │ ├── ToolbarItem.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types/ │ │ │ │ │ │ └── ConfigPageType.ts │ │ │ │ │ ├── FormField.tsx │ │ │ │ │ ├── Pages/ │ │ │ │ │ │ └── PageGroupMoveDialog.tsx │ │ │ │ │ ├── Preview/ │ │ │ │ │ │ ├── Preview.module.css │ │ │ │ │ │ ├── Preview.test.tsx │ │ │ │ │ │ ├── Preview.tsx │ │ │ │ │ │ ├── PreviewActions/ │ │ │ │ │ │ │ ├── PreviewActions.module.css │ │ │ │ │ │ │ ├── PreviewActions.test.tsx │ │ │ │ │ │ │ └── PreviewActions.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Properties/ │ │ │ │ │ │ ├── CommonElements/ │ │ │ │ │ │ │ ├── ConfigPanelHeader/ │ │ │ │ │ │ │ │ ├── ConfigPanelHeader.module.css │ │ │ │ │ │ │ │ ├── ConfigPanelHeader.test.tsx │ │ │ │ │ │ │ │ └── ConfigPanelHeader.tsx │ │ │ │ │ │ │ └── MainSettingsHeader/ │ │ │ │ │ │ │ ├── MainSettingsHeader.module.css │ │ │ │ │ │ │ └── MainSettingsHeader.tsx │ │ │ │ │ │ ├── ComponentConfigPanel/ │ │ │ │ │ │ │ ├── ComponentConfigPanel.module.css │ │ │ │ │ │ │ ├── ComponentConfigPanel.test.tsx │ │ │ │ │ │ │ └── ComponentConfigPanel.tsx │ │ │ │ │ │ ├── DataModelBindings.module.css │ │ │ │ │ │ ├── DataModelBindings.test.tsx │ │ │ │ │ │ ├── DataModelBindings.tsx │ │ │ │ │ │ ├── EditSubformTableColumns/ │ │ │ │ │ │ │ ├── ColumnElement/ │ │ │ │ │ │ │ │ ├── ColumnElement.module.css │ │ │ │ │ │ │ │ ├── ColumnElement.test.tsx │ │ │ │ │ │ │ │ ├── ColumnElement.tsx │ │ │ │ │ │ │ │ ├── EditColumnElement/ │ │ │ │ │ │ │ │ │ ├── DataModelBindingsCombobox.tsx │ │ │ │ │ │ │ │ │ ├── EditColumnElement.module.css │ │ │ │ │ │ │ │ │ ├── EditColumnElement.test.tsx │ │ │ │ │ │ │ │ │ ├── EditColumnElement.tsx │ │ │ │ │ │ │ │ │ ├── EditColumnElementContent.module.css │ │ │ │ │ │ │ │ │ ├── EditColumnElementContent.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── EditSubformTableColumns.module.css │ │ │ │ │ │ │ ├── EditSubformTableColumns.test.tsx │ │ │ │ │ │ │ ├── EditSubformTableColumns.tsx │ │ │ │ │ │ │ ├── SubformMissingContentWarning/ │ │ │ │ │ │ │ │ ├── SubformMissingContentWarning.module.css │ │ │ │ │ │ │ │ ├── SubformMissingContentWarning.test.tsx │ │ │ │ │ │ │ │ └── SubformMissingContentWarning.tsx │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ ├── useSubformLayoutValidation.test.tsx │ │ │ │ │ │ │ │ └── useSubformLayoutValidation.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ └── TableColumn.ts │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ ├── editSubformTableColumnsUtils.test.ts │ │ │ │ │ │ │ ├── editSubformTableColumnsUtils.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── GroupConfigPanel/ │ │ │ │ │ │ │ ├── GroupConfigPanel.module.css │ │ │ │ │ │ │ ├── GroupConfigPanel.test.tsx │ │ │ │ │ │ │ └── GroupConfigPanel.tsx │ │ │ │ │ │ ├── ItemType.ts │ │ │ │ │ │ ├── PageConfigPanel/ │ │ │ │ │ │ │ ├── EditPageId.module.css │ │ │ │ │ │ │ ├── EditPageId.test.tsx │ │ │ │ │ │ │ ├── EditPageId.tsx │ │ │ │ │ │ │ ├── HiddenExpressionOnLayout.module.css │ │ │ │ │ │ │ ├── HiddenExpressionOnLayout.test.tsx │ │ │ │ │ │ │ ├── HiddenExpressionOnLayout.tsx │ │ │ │ │ │ │ ├── PageConfigPanel.module.css │ │ │ │ │ │ │ ├── PageConfigPanel.test.tsx │ │ │ │ │ │ │ ├── PageConfigPanel.tsx │ │ │ │ │ │ │ ├── PageConfigWarning.module.css │ │ │ │ │ │ │ ├── PageConfigWarning.tsx │ │ │ │ │ │ │ ├── PageConfigWarningModal/ │ │ │ │ │ │ │ │ ├── PageConfigWarningModal.module.css │ │ │ │ │ │ │ │ ├── PageConfigWarningModal.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── PdfConfig/ │ │ │ │ │ │ │ │ ├── ConvertPageToPdfWhenExistingModal/ │ │ │ │ │ │ │ │ │ ├── ConvertChoicesModal.test.tsx │ │ │ │ │ │ │ │ │ ├── ConvertChoicesModal.tsx │ │ │ │ │ │ │ │ │ ├── OverrideCurrentPdfByConversionChoices.module.css │ │ │ │ │ │ │ │ │ └── OverrideCurrentPdfByConversionChoices.tsx │ │ │ │ │ │ │ │ ├── PdfConfig.test.tsx │ │ │ │ │ │ │ │ ├── PdfConfig.tsx │ │ │ │ │ │ │ │ ├── PdfConfigCard/ │ │ │ │ │ │ │ │ │ ├── PdfConfigCard.module.css │ │ │ │ │ │ │ │ │ ├── PdfConfigCard.test.tsx │ │ │ │ │ │ │ │ │ ├── PdfConfigCard.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Properties.module.css │ │ │ │ │ │ ├── Properties.test.tsx │ │ │ │ │ │ ├── Properties.tsx │ │ │ │ │ │ ├── PropertiesHeader/ │ │ │ │ │ │ │ ├── ComponentMainConfig.module.css │ │ │ │ │ │ │ ├── ComponentMainConfig.test.tsx │ │ │ │ │ │ │ ├── ComponentMainConfig.tsx │ │ │ │ │ │ │ ├── DataModelMainConfig.test.tsx │ │ │ │ │ │ │ ├── DataModelMainConfig.tsx │ │ │ │ │ │ │ ├── EditComponentIdRow/ │ │ │ │ │ │ │ │ ├── EditComponentIdRow.module.css │ │ │ │ │ │ │ │ ├── EditComponentIdRow.test.tsx │ │ │ │ │ │ │ │ ├── EditComponentIdRow.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── EditLayoutSetForSubform/ │ │ │ │ │ │ │ │ ├── DefinedLayoutSet/ │ │ │ │ │ │ │ │ │ └── DefinedLayoutSet.tsx │ │ │ │ │ │ │ │ ├── EditLayoutSet/ │ │ │ │ │ │ │ │ │ ├── CreateNewSubformSection/ │ │ │ │ │ │ │ │ │ │ ├── CreateNewSubformButtons.module.css │ │ │ │ │ │ │ │ │ │ ├── CreateNewSubformButtons.tsx │ │ │ │ │ │ │ │ │ │ ├── CreateNewSubformSection.module.css │ │ │ │ │ │ │ │ │ │ ├── CreateNewSubformSection.test.tsx │ │ │ │ │ │ │ │ │ │ ├── CreateNewSubformSection.tsx │ │ │ │ │ │ │ │ │ │ ├── SubformDataModel.module.css │ │ │ │ │ │ │ │ │ │ ├── SubformDataModel.test.tsx │ │ │ │ │ │ │ │ │ │ ├── SubformDataModel.tsx │ │ │ │ │ │ │ │ │ │ ├── SubformInstructions.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── EditLayoutSet.test.tsx │ │ │ │ │ │ │ │ │ ├── EditLayoutSet.tsx │ │ │ │ │ │ │ │ │ ├── SelectSubformSection/ │ │ │ │ │ │ │ │ │ │ ├── SelectSubformSection.module.css │ │ │ │ │ │ │ │ │ │ ├── SelectSubformSection.test.tsx │ │ │ │ │ │ │ │ │ │ └── SelectSubformSection.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── EditLayoutSetForSubform.module.css │ │ │ │ │ │ │ │ ├── EditLayoutSetForSubform.test.tsx │ │ │ │ │ │ │ │ ├── EditLayoutSetForSubform.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── PropertiesHeader.module.css │ │ │ │ │ │ │ ├── PropertiesHeader.test.tsx │ │ │ │ │ │ │ ├── PropertiesHeader.tsx │ │ │ │ │ │ │ ├── SpecificMainConfig/ │ │ │ │ │ │ │ │ ├── ActionButtonMainConfig.tsx │ │ │ │ │ │ │ │ ├── AlertMainConfig.tsx │ │ │ │ │ │ │ │ ├── CustomButtonMainConfig.tsx │ │ │ │ │ │ │ │ ├── FileUploadMainConfig.tsx │ │ │ │ │ │ │ │ ├── ImageMainConfig.module.css │ │ │ │ │ │ │ │ ├── ImageMainConfig.test.tsx │ │ │ │ │ │ │ │ ├── ImageMainConfig.tsx │ │ │ │ │ │ │ │ ├── LinkMainConfig.tsx │ │ │ │ │ │ │ │ ├── OptionsMainConfig.test.tsx │ │ │ │ │ │ │ │ ├── OptionsMainConfig.tsx │ │ │ │ │ │ │ │ ├── PanelMainConfig.tsx │ │ │ │ │ │ │ │ ├── SubformMainConfig.tsx │ │ │ │ │ │ │ │ ├── SummaryMainConfig.test.tsx │ │ │ │ │ │ │ │ ├── SummaryMainConfig.tsx │ │ │ │ │ │ │ │ └── TitleMainConfig.tsx │ │ │ │ │ │ │ ├── TextResourceMainConfig.test.tsx │ │ │ │ │ │ │ ├── TextResourceMainConfig.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Text.test.tsx │ │ │ │ │ │ ├── Text.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Settings/ │ │ │ │ │ │ ├── SettingsNavigation/ │ │ │ │ │ │ │ ├── SettingsNavigation.module.css │ │ │ │ │ │ │ ├── SettingsNavigation.test.tsx │ │ │ │ │ │ │ ├── SettingsNavigation.tsx │ │ │ │ │ │ │ └── ValidateNavigation/ │ │ │ │ │ │ │ ├── TargetVariants/ │ │ │ │ │ │ │ │ ├── ValidateAllTasksConfig.tsx │ │ │ │ │ │ │ │ ├── ValidateSelectedPagesConfig.tsx │ │ │ │ │ │ │ │ └── ValidateSelectedTasksConfig.tsx │ │ │ │ │ │ │ ├── ValidateCardContent/ │ │ │ │ │ │ │ │ ├── ValidateCardContent.test.tsx │ │ │ │ │ │ │ │ ├── ValidateCardContent.tsx │ │ │ │ │ │ │ │ ├── ValidateRuleConfig.test.tsx │ │ │ │ │ │ │ │ ├── ValidateRuleConfig.tsx │ │ │ │ │ │ │ │ ├── ValidateTargetSelectors.test.tsx │ │ │ │ │ │ │ │ └── ValidateTargetSelectors.tsx │ │ │ │ │ │ │ ├── ValidateNavigation.module.css │ │ │ │ │ │ │ ├── ValidateNavigation.tsx │ │ │ │ │ │ │ ├── ValidateNavigationConfig.module.css │ │ │ │ │ │ │ ├── ValidateNavigationConfig.test.tsx │ │ │ │ │ │ │ ├── ValidateNavigationConfig.tsx │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ ├── ValidateNavigationTestUtils.ts │ │ │ │ │ │ │ ├── ValidateNavigationTypes.ts │ │ │ │ │ │ │ ├── ValidateNavigationUtils.test.ts │ │ │ │ │ │ │ ├── ValidateNavigationUtils.ts │ │ │ │ │ │ │ ├── useConvertToInternalConfig.test.tsx │ │ │ │ │ │ │ └── useConvertToInternalConfig.tsx │ │ │ │ │ │ ├── SettingsTabs.module.css │ │ │ │ │ │ ├── SettingsTabs.test.tsx │ │ │ │ │ │ ├── SettingsTabs.tsx │ │ │ │ │ │ ├── SettingsUtils.test.tsx │ │ │ │ │ │ └── SettingsUtils.tsx │ │ │ │ │ ├── TaskNavigation/ │ │ │ │ │ │ ├── AddNewTask/ │ │ │ │ │ │ │ ├── AddNewTask.test.tsx │ │ │ │ │ │ │ ├── AddNewTask.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── AddSubformCard/ │ │ │ │ │ │ │ ├── AddSubformCard.test.tsx │ │ │ │ │ │ │ ├── AddSubformCard.tsx │ │ │ │ │ │ │ ├── AddSubformCardUtils.test.tsx │ │ │ │ │ │ │ ├── AddSubformCardUtils.tsx │ │ │ │ │ │ │ ├── CreateSubformMode.module.css │ │ │ │ │ │ │ ├── CreateSubformMode.test.tsx │ │ │ │ │ │ │ ├── CreateSubformMode.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── LayoutPageOverviewFeedback.test.tsx │ │ │ │ │ │ ├── LayoutPageOverviewFeedback.tsx │ │ │ │ │ │ ├── TaskCard.module.css │ │ │ │ │ │ ├── TaskCard.test.tsx │ │ │ │ │ │ ├── TaskCard.tsx │ │ │ │ │ │ ├── TaskCardBar.module.css │ │ │ │ │ │ ├── TaskCardBar.test.tsx │ │ │ │ │ │ ├── TaskCardBar.tsx │ │ │ │ │ │ ├── TaskCardEditing.module.css │ │ │ │ │ │ ├── TaskCardEditing.test.tsx │ │ │ │ │ │ └── TaskCardEditing.tsx │ │ │ │ │ ├── TasksTable/ │ │ │ │ │ │ ├── EditNameAction.module.css │ │ │ │ │ │ ├── EditNameAction.test.tsx │ │ │ │ │ │ ├── EditNameAction.tsx │ │ │ │ │ │ ├── TaskAction.module.css │ │ │ │ │ │ ├── TaskAction.test.tsx │ │ │ │ │ │ ├── TaskAction.tsx │ │ │ │ │ │ ├── TasksTable.module.css │ │ │ │ │ │ ├── TasksTable.test.tsx │ │ │ │ │ │ ├── TasksTable.tsx │ │ │ │ │ │ ├── TasksTableBody.module.css │ │ │ │ │ │ ├── TasksTableBody.test.tsx │ │ │ │ │ │ └── TasksTableBody.tsx │ │ │ │ │ ├── TextResource/ │ │ │ │ │ │ ├── TextResource.test.tsx │ │ │ │ │ │ ├── TextResource.tsx │ │ │ │ │ │ ├── TextResourceAction/ │ │ │ │ │ │ │ ├── TextResourceAction.test.tsx │ │ │ │ │ │ │ ├── TextResourceAction.tsx │ │ │ │ │ │ │ ├── TextResourceActionUtils.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── hooks/ │ │ │ │ │ │ ├── useTextResourceValue.test.tsx │ │ │ │ │ │ └── useTextResourceValue.ts │ │ │ │ │ ├── UnknownComponentAlert/ │ │ │ │ │ │ ├── UnknownComponentAlert.test.tsx │ │ │ │ │ │ ├── UnknownComponentAlert.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── WithHoverAddButton/ │ │ │ │ │ │ ├── WithHoverAddButton.module.css │ │ │ │ │ │ ├── WithHoverAddButton.test.tsx │ │ │ │ │ │ ├── WithHoverAddButton.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── ConfigProperties/ │ │ │ │ │ │ │ ├── ConfigArrayProperties.test.tsx │ │ │ │ │ │ │ ├── ConfigArrayProperties.tsx │ │ │ │ │ │ │ ├── ConfigBooleanProperties.module.css │ │ │ │ │ │ │ ├── ConfigBooleanProperties.test.tsx │ │ │ │ │ │ │ ├── ConfigBooleanProperties.tsx │ │ │ │ │ │ │ ├── ConfigCustomFileEnding.test.tsx │ │ │ │ │ │ │ ├── ConfigCustomFileEnding.tsx │ │ │ │ │ │ │ ├── ConfigGridProperties.test.tsx │ │ │ │ │ │ │ ├── ConfigGridProperties.tsx │ │ │ │ │ │ │ ├── ConfigNumberProperties.test.tsx │ │ │ │ │ │ │ ├── ConfigNumberProperties.tsx │ │ │ │ │ │ │ ├── ConfigObjectProperty/ │ │ │ │ │ │ │ │ ├── ConfigObjectProperty.test.tsx │ │ │ │ │ │ │ │ ├── ConfigObjectProperty.tsx │ │ │ │ │ │ │ │ └── ConfigObjectPropertyCard.tsx │ │ │ │ │ │ │ ├── ConfigPropertiesUtils.test.ts │ │ │ │ │ │ │ ├── ConfigPropertiesUtils.ts │ │ │ │ │ │ │ ├── ConfigStringProperties.test.tsx │ │ │ │ │ │ │ ├── ConfigStringProperties.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── testConfigUtils.ts │ │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ │ ├── useConfigProperty.test.tsx │ │ │ │ │ │ │ ├── useConfigProperty.tsx │ │ │ │ │ │ │ ├── usePropertyTypes.ts │ │ │ │ │ │ │ ├── useTranslateKeyValue.test.tsx │ │ │ │ │ │ │ └── useTranslateKeyValue.tsx │ │ │ │ │ │ ├── EditFormComponent.module.css │ │ │ │ │ │ ├── EditFormComponent.test.tsx │ │ │ │ │ │ ├── EditFormComponent.tsx │ │ │ │ │ │ ├── EditName.module.css │ │ │ │ │ │ ├── EditName.test.tsx │ │ │ │ │ │ ├── EditName.tsx │ │ │ │ │ │ ├── ExpressionContent/ │ │ │ │ │ │ │ ├── Expression/ │ │ │ │ │ │ │ │ ├── Expression.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── ExpressionContent.module.css │ │ │ │ │ │ │ ├── ExpressionContent.test.tsx │ │ │ │ │ │ │ ├── ExpressionContent.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Expressions/ │ │ │ │ │ │ │ ├── ExpressionHeading.module.css │ │ │ │ │ │ │ ├── ExpressionHeading.tsx │ │ │ │ │ │ │ ├── Expressions.module.css │ │ │ │ │ │ │ ├── Expressions.test.tsx │ │ │ │ │ │ │ ├── Expressions.tsx │ │ │ │ │ │ │ ├── NewExpressionButton/ │ │ │ │ │ │ │ │ ├── NewExpressionButton.test.tsx │ │ │ │ │ │ │ │ ├── NewExpressionButton.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ ├── FormComponentConfig.module.css │ │ │ │ │ │ ├── FormComponentConfig.test.tsx │ │ │ │ │ │ ├── FormComponentConfig.tsx │ │ │ │ │ │ ├── SelectPropertyEditor/ │ │ │ │ │ │ │ ├── SelectPropertyEditor.module.css │ │ │ │ │ │ │ ├── SelectPropertyEditor.test.tsx │ │ │ │ │ │ │ ├── SelectPropertyEditor.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── componentConfig.tsx │ │ │ │ │ │ ├── componentSpecificContent/ │ │ │ │ │ │ │ ├── AttachmentList/ │ │ │ │ │ │ │ │ ├── AttachmentListComponent.test.tsx │ │ │ │ │ │ │ │ ├── AttachmentListComponent.tsx │ │ │ │ │ │ │ │ ├── AttachmentListContent.module.css │ │ │ │ │ │ │ │ ├── AttachmentListContent.tsx │ │ │ │ │ │ │ │ ├── AttachmentListInternalFormat.tsx │ │ │ │ │ │ │ │ ├── attachmentListUtils.test.ts │ │ │ │ │ │ │ │ ├── attachmentListUtils.ts │ │ │ │ │ │ │ │ ├── convertFunctions/ │ │ │ │ │ │ │ │ │ ├── convertToExternalFormat.test.ts │ │ │ │ │ │ │ │ │ ├── convertToExternalFormat.ts │ │ │ │ │ │ │ │ │ ├── convertToInternalFormat.test.ts │ │ │ │ │ │ │ │ │ └── convertToInternalFormat.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── types.ts │ │ │ │ │ │ │ ├── ComponentSpecificContent.module.css │ │ │ │ │ │ │ ├── ComponentSpecificContent.tsx │ │ │ │ │ │ │ ├── Image/ │ │ │ │ │ │ │ │ ├── ImageComponent.module.css │ │ │ │ │ │ │ │ ├── ImageComponent.test.tsx │ │ │ │ │ │ │ │ ├── ImageComponent.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── ImageUpload/ │ │ │ │ │ │ │ │ ├── ImageUploadCard.tsx/ │ │ │ │ │ │ │ │ │ ├── ImageUploadCard.module.css │ │ │ │ │ │ │ │ │ ├── ImageUploadCard.test.tsx │ │ │ │ │ │ │ │ │ ├── ImageUploadCard.tsx │ │ │ │ │ │ │ │ │ ├── ImageUploadShape.tsx │ │ │ │ │ │ │ │ │ ├── ImageUploadSize.test.tsx │ │ │ │ │ │ │ │ │ └── ImageUploadSize.tsx │ │ │ │ │ │ │ │ ├── ImageUploadComponent.test.tsx │ │ │ │ │ │ │ │ ├── ImageUploadComponent.tsx │ │ │ │ │ │ │ │ ├── ImageUploadTypes.ts │ │ │ │ │ │ │ │ ├── ImageUploadUtils.test.ts │ │ │ │ │ │ │ │ ├── ImageUploadUtils.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── useDisplayCropValues.test.tsx │ │ │ │ │ │ │ │ └── useDisplayCropValues.tsx │ │ │ │ │ │ │ ├── Map/ │ │ │ │ │ │ │ │ ├── MapComponent.module.css │ │ │ │ │ │ │ │ ├── MapComponent.test.tsx │ │ │ │ │ │ │ │ ├── MapComponent.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── Summary2/ │ │ │ │ │ │ │ │ ├── Override/ │ │ │ │ │ │ │ │ │ ├── OverrideFields/ │ │ │ │ │ │ │ │ │ │ ├── CompactViewSwitch.tsx │ │ │ │ │ │ │ │ │ │ ├── EmptyTextField.module.css │ │ │ │ │ │ │ │ │ │ ├── EmptyTextField.test.tsx │ │ │ │ │ │ │ │ │ │ ├── EmptyTextField.tsx │ │ │ │ │ │ │ │ │ │ ├── OverrideShowComponentSwitch.tsx │ │ │ │ │ │ │ │ │ │ ├── Summary2OverrideDisplaySelect.tsx │ │ │ │ │ │ │ │ │ │ └── Summary2OverrideDisplayType.tsx │ │ │ │ │ │ │ │ │ ├── Summary2Override.module.css │ │ │ │ │ │ │ │ │ ├── Summary2Override.test.tsx │ │ │ │ │ │ │ │ │ ├── Summary2Override.tsx │ │ │ │ │ │ │ │ │ ├── Summary2OverrideEntry.module.css │ │ │ │ │ │ │ │ │ ├── Summary2OverrideEntry.tsx │ │ │ │ │ │ │ │ │ ├── hook/ │ │ │ │ │ │ │ │ │ │ └── useCustomConfigType.ts │ │ │ │ │ │ │ │ │ ├── utils.test.tsx │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ ├── Summary2Component.test.tsx │ │ │ │ │ │ │ │ ├── Summary2Component.tsx │ │ │ │ │ │ │ │ ├── Summary2ComponentReferenceSelector.module.css │ │ │ │ │ │ │ │ ├── Summary2ComponentReferenceSelector.tsx │ │ │ │ │ │ │ │ ├── Summary2Target/ │ │ │ │ │ │ │ │ │ ├── Summary2Target.module.css │ │ │ │ │ │ │ │ │ ├── Summary2Target.tsx │ │ │ │ │ │ │ │ │ ├── targetUtils.ts │ │ │ │ │ │ │ │ │ └── useTargetTypes.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── TextComponent/ │ │ │ │ │ │ │ │ ├── TextComponent.test.tsx │ │ │ │ │ │ │ │ ├── TextComponent.tsx │ │ │ │ │ │ │ │ ├── TextComponentUtils.test.ts │ │ │ │ │ │ │ │ ├── TextComponentUtils.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── editModal/ │ │ │ │ │ │ ├── EditBooleanValue.test.tsx │ │ │ │ │ │ ├── EditBooleanValue.tsx │ │ │ │ │ │ ├── EditDataModelBinding/ │ │ │ │ │ │ │ ├── DefinedBinding/ │ │ │ │ │ │ │ │ ├── DefinedBinding.module.css │ │ │ │ │ │ │ │ ├── DefinedBinding.test.tsx │ │ │ │ │ │ │ │ ├── DefinedBinding.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── EditBinding/ │ │ │ │ │ │ │ │ ├── EditBinding.test.tsx │ │ │ │ │ │ │ │ ├── EditBinding.tsx │ │ │ │ │ │ │ │ ├── SelectDataFieldBinding.module.css │ │ │ │ │ │ │ │ ├── SelectDataFieldBinding.tsx │ │ │ │ │ │ │ │ ├── SelectDataModelBinding.module.css │ │ │ │ │ │ │ │ ├── SelectDataModelBinding.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── EditDataModelBinding.module.css │ │ │ │ │ │ │ ├── EditDataModelBinding.test.tsx │ │ │ │ │ │ │ ├── EditDataModelBinding.tsx │ │ │ │ │ │ │ └── UndefinedBinding/ │ │ │ │ │ │ │ ├── UndefinedBinding.test.tsx │ │ │ │ │ │ │ ├── UndefinedBinding.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── EditGrid/ │ │ │ │ │ │ │ ├── EditGrid.module.css │ │ │ │ │ │ │ ├── EditGrid.test.tsx │ │ │ │ │ │ │ ├── EditGrid.tsx │ │ │ │ │ │ │ ├── EditGridForGivenViewSize.module.css │ │ │ │ │ │ │ ├── EditGridForGivenViewSize.test.tsx │ │ │ │ │ │ │ ├── EditGridForGivenViewSize.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ ├── GridSizes.ts │ │ │ │ │ │ │ │ └── ViewSize.ts │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ ├── EditImage/ │ │ │ │ │ │ │ ├── ConflictingImageSourceAlert/ │ │ │ │ │ │ │ │ ├── ConflictingImageSourceAlert.module.css │ │ │ │ │ │ │ │ ├── ConflictingImageSourceAlert.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── EditImage.module.css │ │ │ │ │ │ │ ├── EditImage.test.tsx │ │ │ │ │ │ │ ├── EditImage.tsx │ │ │ │ │ │ │ ├── EditImageUtils.test.ts │ │ │ │ │ │ │ ├── EditImageUtils.ts │ │ │ │ │ │ │ ├── ExternalImage/ │ │ │ │ │ │ │ │ ├── ExternalImage.module.css │ │ │ │ │ │ │ │ ├── ExternalImage.test.tsx │ │ │ │ │ │ │ │ ├── ExternalImage.tsx │ │ │ │ │ │ │ │ ├── ExternalImageValidationStatus.module.css │ │ │ │ │ │ │ │ ├── ExternalImageValidationStatus.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── LocalImage/ │ │ │ │ │ │ │ │ ├── ImportImage/ │ │ │ │ │ │ │ │ │ ├── AddImageFromLibrary/ │ │ │ │ │ │ │ │ │ │ ├── AddImageFromLibraryModal.module.css │ │ │ │ │ │ │ │ │ │ ├── AddImageFromLibraryModal.test.tsx │ │ │ │ │ │ │ │ │ │ ├── AddImageFromLibraryModal.tsx │ │ │ │ │ │ │ │ │ │ └── ChooseFromLibrary/ │ │ │ │ │ │ │ │ │ │ ├── ChooseFromLibrary.module.css │ │ │ │ │ │ │ │ │ │ ├── ChooseFromLibrary.tsx │ │ │ │ │ │ │ │ │ │ └── ImageLibraryPreview.tsx │ │ │ │ │ │ │ │ │ ├── ImportImage.module.css │ │ │ │ │ │ │ │ │ ├── ImportImage.test.tsx │ │ │ │ │ │ │ │ │ ├── ImportImage.tsx │ │ │ │ │ │ │ │ │ ├── UploadImage/ │ │ │ │ │ │ │ │ │ │ ├── FileUploaderWithValidation/ │ │ │ │ │ │ │ │ │ │ │ ├── FileUploaderWithValidation.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── FileUploaderWithValidation.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── UploadImage.module.css │ │ │ │ │ │ │ │ │ │ └── UploadImage.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── LocalImage.test.tsx │ │ │ │ │ │ │ │ ├── LocalImage.tsx │ │ │ │ │ │ │ │ ├── PreviewImageSummary/ │ │ │ │ │ │ │ │ │ ├── DeleteOptionsModal/ │ │ │ │ │ │ │ │ │ │ ├── DeleteOptions.tsx │ │ │ │ │ │ │ │ │ │ ├── DeleteOptionsModal.module.css │ │ │ │ │ │ │ │ │ │ └── DeleteOptionsModal.tsx │ │ │ │ │ │ │ │ │ ├── PreviewFileInfo.module.css │ │ │ │ │ │ │ │ │ ├── PreviewFileInfo.tsx │ │ │ │ │ │ │ │ │ ├── PreviewImageSummary.module.css │ │ │ │ │ │ │ │ │ ├── PreviewImageSummary.test.tsx │ │ │ │ │ │ │ │ │ ├── PreviewImageSummary.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── constants.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── EditNumberValue.test.tsx │ │ │ │ │ │ ├── EditNumberValue.tsx │ │ │ │ │ │ ├── EditOptions/ │ │ │ │ │ │ │ ├── EditOptions.module.css │ │ │ │ │ │ │ ├── EditOptions.test.tsx │ │ │ │ │ │ │ ├── EditOptions.tsx │ │ │ │ │ │ │ ├── OptionTabs/ │ │ │ │ │ │ │ │ ├── EditTab/ │ │ │ │ │ │ │ │ │ ├── EditTab.module.css │ │ │ │ │ │ │ │ │ ├── EditTab.test.tsx │ │ │ │ │ │ │ │ │ ├── EditTab.tsx │ │ │ │ │ │ │ │ │ ├── ManualOptionsDialog/ │ │ │ │ │ │ │ │ │ │ ├── ManualOptionsDialog.module.css │ │ │ │ │ │ │ │ │ │ ├── ManualOptionsDialog.test.tsx │ │ │ │ │ │ │ │ │ │ ├── ManualOptionsDialog.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── OptionListEditor/ │ │ │ │ │ │ │ │ │ │ ├── LibraryOptionsEditor/ │ │ │ │ │ │ │ │ │ │ │ ├── LibraryOptionsEditor.module.css │ │ │ │ │ │ │ │ │ │ │ ├── LibraryOptionsEditor.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── LibraryOptionsEditor.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── ManualOptionsPanel/ │ │ │ │ │ │ │ │ │ │ │ ├── ManualOptionsPanel.test.tsx │ │ │ │ │ │ │ │ │ │ │ ├── ManualOptionsPanel.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── OptionListButtons/ │ │ │ │ │ │ │ │ │ │ │ ├── OptionListButtons.module.css │ │ │ │ │ │ │ │ │ │ │ ├── OptionListButtons.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── OptionListEditor.module.css │ │ │ │ │ │ │ │ │ │ ├── OptionListEditor.test.tsx │ │ │ │ │ │ │ │ │ │ ├── OptionListEditor.tsx │ │ │ │ │ │ │ │ │ │ ├── OptionListLabels/ │ │ │ │ │ │ │ │ │ │ │ ├── OptionListLabels.module.css │ │ │ │ │ │ │ │ │ │ │ ├── OptionListLabels.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── PublishedCodeListEditor/ │ │ │ │ │ │ │ │ │ │ │ ├── PublishedCodeListEditor.module.css │ │ │ │ │ │ │ │ │ │ │ ├── PublishedCodeListEditor.tsx │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ │ ├── useConcatOptionListLabels.test.ts │ │ │ │ │ │ │ │ │ │ │ └── useConcatOptionListLabels.ts │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── OptionListFromAppLibrarySelector/ │ │ │ │ │ │ │ │ │ │ ├── OptionListFromAppLibrarySelector.module.css │ │ │ │ │ │ │ │ │ │ ├── OptionListFromAppLibrarySelector.test.tsx │ │ │ │ │ │ │ │ │ │ ├── OptionListFromAppLibrarySelector.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── OptionListUploader/ │ │ │ │ │ │ │ │ │ │ ├── OptionListUploader.test.tsx │ │ │ │ │ │ │ │ │ │ ├── OptionListUploader.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── PublishedOptionListSelector/ │ │ │ │ │ │ │ │ │ │ ├── PublishedOptionListSelector.module.css │ │ │ │ │ │ │ │ │ │ ├── PublishedOptionListSelector.test.tsx │ │ │ │ │ │ │ │ │ │ ├── PublishedOptionListSelector.tsx │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ │ │ ├── useHandleUpdateTextResource.test.ts │ │ │ │ │ │ │ │ │ │ ├── useHandleUpdateTextResource.ts │ │ │ │ │ │ │ │ │ │ ├── useTextResourcesForLanguage.test.ts │ │ │ │ │ │ │ │ │ │ └── useTextResourcesForLanguage.ts │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── utils.test.ts │ │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ │ ├── OptionTabs.module.css │ │ │ │ │ │ │ │ ├── OptionTabs.test.tsx │ │ │ │ │ │ │ │ ├── OptionTabs.tsx │ │ │ │ │ │ │ │ ├── ReferenceTab/ │ │ │ │ │ │ │ │ │ ├── ReferenceTab.module.css │ │ │ │ │ │ │ │ │ ├── ReferenceTab.test.tsx │ │ │ │ │ │ │ │ │ ├── ReferenceTab.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ │ │ ├── OptionsTabKey.ts │ │ │ │ │ │ │ │ │ └── OptionsType.ts │ │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ └── useOptionListEditorTexts.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── types/ │ │ │ │ │ │ │ │ │ ├── CodeListIdContextData.ts │ │ │ │ │ │ │ │ │ └── PublishedCodeListReferenceValues.ts │ │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ │ ├── optionsUtils.test.ts │ │ │ │ │ │ │ │ ├── optionsUtils.ts │ │ │ │ │ │ │ │ ├── published-code-list-reference-utils.test.ts │ │ │ │ │ │ │ │ ├── published-code-list-reference-utils.ts │ │ │ │ │ │ │ │ ├── retrieveOptionsType.test.ts │ │ │ │ │ │ │ │ └── retrieveOptionsType.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── EditStringValue.test.tsx │ │ │ │ │ │ ├── EditStringValue.tsx │ │ │ │ │ │ ├── EditTextResourceBindings/ │ │ │ │ │ │ │ ├── EditTextResourceBinding/ │ │ │ │ │ │ │ │ ├── EditTextResourceBinding.test.tsx │ │ │ │ │ │ │ │ └── EditTextResourceBinding.tsx │ │ │ │ │ │ │ ├── EditTextResourceBindings.module.css │ │ │ │ │ │ │ ├── EditTextResourceBindings.test.tsx │ │ │ │ │ │ │ └── EditTextResourceBindings.tsx │ │ │ │ │ │ └── RedirectToLayoutSet/ │ │ │ │ │ │ ├── RedirectToLayoutSet.module.css │ │ │ │ │ │ ├── RedirectToLayoutSet.test.tsx │ │ │ │ │ │ ├── RedirectToLayoutSet.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── toolbar/ │ │ │ │ │ ├── InformationPanelComponent.module.css │ │ │ │ │ ├── InformationPanelComponent.tsx │ │ │ │ │ ├── ToolbarItemComponent.module.css │ │ │ │ │ └── ToolbarItemComponent.tsx │ │ │ │ ├── containers/ │ │ │ │ │ ├── BreadcrumbsTaskNavigation/ │ │ │ │ │ │ ├── BreadcrumbsTaskNavigation.module.css │ │ │ │ │ │ ├── BreadcrumbsTaskNavigation.test.tsx │ │ │ │ │ │ ├── BreadcrumbsTaskNavigation.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── DesignView/ │ │ │ │ │ │ ├── AddItem/ │ │ │ │ │ │ │ ├── AddItem.module.css │ │ │ │ │ │ │ ├── AddItem.test.tsx │ │ │ │ │ │ │ ├── AddItem.tsx │ │ │ │ │ │ │ ├── AddItemContent.module.css │ │ │ │ │ │ │ ├── AddItemContent.test.tsx │ │ │ │ │ │ │ ├── AddItemContent.tsx │ │ │ │ │ │ │ ├── AddItemModal.module.css │ │ │ │ │ │ │ ├── AddItemModal.test.tsx │ │ │ │ │ │ │ ├── AddItemModal.tsx │ │ │ │ │ │ │ ├── ComponentButton.module.css │ │ │ │ │ │ │ ├── ComponentButton.tsx │ │ │ │ │ │ │ ├── DefaultItems.module.css │ │ │ │ │ │ │ ├── DefaultItems.test.tsx │ │ │ │ │ │ │ ├── DefaultItems.tsx │ │ │ │ │ │ │ ├── FeedbackForm.test.tsx │ │ │ │ │ │ │ ├── FeedbackForm.tsx │ │ │ │ │ │ │ ├── ItemCategory/ │ │ │ │ │ │ │ │ ├── ItemCategory.module.css │ │ │ │ │ │ │ │ ├── ItemCategory.test.tsx │ │ │ │ │ │ │ │ ├── ItemCategory.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── ItemInfo/ │ │ │ │ │ │ │ │ ├── ItemInfo.module.css │ │ │ │ │ │ │ │ ├── ItemInfo.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── ToggleAddComponentPoc.module.css │ │ │ │ │ │ │ ├── ToggleAddComponentPoc.test.tsx │ │ │ │ │ │ │ ├── ToggleAddComponentPoc.tsx │ │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ │ ├── useAddComponentHandlerSilent/ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── useAddComponentHandlerSilent.test.ts │ │ │ │ │ │ │ │ │ └── useAddComponentHandlerSilent.ts │ │ │ │ │ │ │ │ ├── useAddComponentHandlerWithCallback/ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── useAddComponentHandlerWithCallback.test.tsx │ │ │ │ │ │ │ │ │ └── useAddComponentHandlerWithCallback.ts │ │ │ │ │ │ │ │ └── useBaseAddComponentHandler/ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── useBaseAddComponentHandler.test.tsx │ │ │ │ │ │ │ │ └── useBaseAddComponentHandler.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ │ └── useSearchComponent/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ │ ├── useSearchComponent.test.ts │ │ │ │ │ │ │ └── useSearchComponent.ts │ │ │ │ │ │ ├── DesignView.module.css │ │ │ │ │ │ ├── DesignView.test.tsx │ │ │ │ │ │ ├── DesignView.tsx │ │ │ │ │ │ ├── FormLayout.test.tsx │ │ │ │ │ │ ├── FormLayout.tsx │ │ │ │ │ │ ├── FormLayoutWarning.module.css │ │ │ │ │ │ ├── FormLayoutWarning.tsx │ │ │ │ │ │ ├── FormTree/ │ │ │ │ │ │ │ ├── FormItem/ │ │ │ │ │ │ │ │ ├── FormItem.tsx │ │ │ │ │ │ │ │ ├── FormItemTitle/ │ │ │ │ │ │ │ │ │ ├── FormItemTitle.module.css │ │ │ │ │ │ │ │ │ ├── FormItemTitle.test.tsx │ │ │ │ │ │ │ │ │ ├── FormItemTitle.tsx │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── useDeleteItem.test.ts │ │ │ │ │ │ │ │ │ └── useDeleteItem.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── FormTree.test.tsx │ │ │ │ │ │ │ ├── FormTree.tsx │ │ │ │ │ │ │ ├── UnknownReferencedItem/ │ │ │ │ │ │ │ │ ├── UnknownReferencedItem.module.css │ │ │ │ │ │ │ │ ├── UnknownReferencedItem.test.tsx │ │ │ │ │ │ │ │ ├── UnknownReferencedItem.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── useDeleteUnknownComponentReference.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── renderItemList.tsx │ │ │ │ │ │ ├── PageAccordion/ │ │ │ │ │ │ │ ├── NavigationMenu/ │ │ │ │ │ │ │ │ ├── NavigationMenu.module.css │ │ │ │ │ │ │ │ ├── NavigationMenu.test.tsx │ │ │ │ │ │ │ │ ├── NavigationMenu.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── PageAccordion.module.css │ │ │ │ │ │ │ ├── PageAccordion.test.tsx │ │ │ │ │ │ │ ├── PageAccordion.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── PageGroupAccordion.module.css │ │ │ │ │ │ ├── PageGroupAccordion.test.tsx │ │ │ │ │ │ ├── PageGroupAccordion.tsx │ │ │ │ │ │ ├── PdfLayout/ │ │ │ │ │ │ │ └── PdfLayoutAccordion.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── DesignViewNavigation/ │ │ │ │ │ │ ├── DesignViewNavigation.module.css │ │ │ │ │ │ ├── DesignViewNavigation.test.tsx │ │ │ │ │ │ ├── DesignViewNavigation.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── FormDesignNavigation/ │ │ │ │ │ │ ├── FormDesignerNavigation.module.css │ │ │ │ │ │ ├── FormDesignerNavigation.test.tsx │ │ │ │ │ │ ├── FormDesignerNavigation.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── FormDesigner.module.css │ │ │ │ │ ├── FormDesigner.test.tsx │ │ │ │ │ ├── FormDesigner.tsx │ │ │ │ │ ├── FormDesignerToolbar.module.css │ │ │ │ │ ├── FormDesignerToolbar.test.tsx │ │ │ │ │ ├── FormDesignerToolbar.tsx │ │ │ │ │ ├── FormItemContext.test.tsx │ │ │ │ │ └── FormItemContext.tsx │ │ │ │ ├── converters/ │ │ │ │ │ ├── containerComponentConverters/ │ │ │ │ │ │ ├── externalContainerComponentToInternal.ts │ │ │ │ │ │ ├── externalGroupComponentToInternal.test.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── internalContainerComponentToExternal.ts │ │ │ │ │ │ └── internalGroupComponentToExternal.test.ts │ │ │ │ │ ├── formLayoutConverters/ │ │ │ │ │ │ ├── externalLayoutToInternal.test.ts │ │ │ │ │ │ ├── externalLayoutToInternal.ts │ │ │ │ │ │ ├── formLayoutConverters.test.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── internalLayoutToExternal.test.ts │ │ │ │ │ │ ├── internalLayoutToExternal.ts │ │ │ │ │ │ ├── pageIndexUtils.test.ts │ │ │ │ │ │ └── pageIndexUtils.ts │ │ │ │ │ └── simpleComponentConverters/ │ │ │ │ │ ├── externalSimpleComponentToInternal.test.ts │ │ │ │ │ ├── externalSimpleComponentToInternal.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── internalSimpleComponentToExternal.test.ts │ │ │ │ │ └── internalSimpleComponentToExternal.ts │ │ │ │ ├── data/ │ │ │ │ │ ├── FilterUtils.test.ts │ │ │ │ │ ├── FilterUtils.ts │ │ │ │ │ ├── containerComponentTypes.ts │ │ │ │ │ ├── formItemConfig.test.ts │ │ │ │ │ └── formItemConfig.ts │ │ │ │ ├── hooks/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mutations/ │ │ │ │ │ │ ├── useAddAppAttachmentMetadataMutation.test.ts │ │ │ │ │ │ ├── useAddAppAttachmentMetadataMutation.ts │ │ │ │ │ │ ├── useAddGroupMutation.test.tsx │ │ │ │ │ │ ├── useAddGroupMutation.ts │ │ │ │ │ │ ├── useAddItemToLayoutMutation.test.ts │ │ │ │ │ │ ├── useAddItemToLayoutMutation.ts │ │ │ │ │ │ ├── useAddLayoutMutation.test.ts │ │ │ │ │ │ ├── useAddLayoutMutation.ts │ │ │ │ │ │ ├── useAddPageMutation.ts │ │ │ │ │ │ ├── useAddPageToGroup.test.ts │ │ │ │ │ │ ├── useAddPageToGroup.ts │ │ │ │ │ │ ├── useAddWidgetMutation.test.ts │ │ │ │ │ │ ├── useAddWidgetMutation.ts │ │ │ │ │ │ ├── useChangePageGroupOrder.ts │ │ │ │ │ │ ├── useChangePageOrderMutation.ts │ │ │ │ │ │ ├── useConvertToPageGroups.ts │ │ │ │ │ │ ├── useConvertToPageOrder.ts │ │ │ │ │ │ ├── useDeleteAppAttachmentMetadataMutation.test.ts │ │ │ │ │ │ ├── useDeleteAppAttachmentMetadataMutation.ts │ │ │ │ │ │ ├── useDeleteFormComponentMutation.test.ts │ │ │ │ │ │ ├── useDeleteFormComponentMutation.ts │ │ │ │ │ │ ├── useDeleteFormContainerMutation.test.ts │ │ │ │ │ │ ├── useDeleteFormContainerMutation.ts │ │ │ │ │ │ ├── useDeleteLayoutMutation.test.ts │ │ │ │ │ │ ├── useDeleteLayoutMutation.ts │ │ │ │ │ │ ├── useDeletePageGroupMutation.test.tsx │ │ │ │ │ │ ├── useDeletePageGroupMutation.ts │ │ │ │ │ │ ├── useDeletePageMutation.ts │ │ │ │ │ │ ├── useDeleteValidationOnNavigationLayoutSets.test.ts │ │ │ │ │ │ ├── useDeleteValidationOnNavigationLayoutSets.ts │ │ │ │ │ │ ├── useFormLayoutMutation.test.tsx │ │ │ │ │ │ ├── useFormLayoutMutation.ts │ │ │ │ │ │ ├── useFormLayoutSettingsMutation.test.ts │ │ │ │ │ │ ├── useFormLayoutSettingsMutation.ts │ │ │ │ │ │ ├── useModifyPageMutation.ts │ │ │ │ │ │ ├── useRuleConfigMutation.test.ts │ │ │ │ │ │ ├── useRuleConfigMutation.ts │ │ │ │ │ │ ├── useSaveValidationOnNavigationLayoutSets.test.ts │ │ │ │ │ │ ├── useSaveValidationOnNavigationLayoutSets.ts │ │ │ │ │ │ ├── useTaskNavigationGroupMutation.test.ts │ │ │ │ │ │ ├── useTaskNavigationGroupMutation.ts │ │ │ │ │ │ ├── useUpdateAppAttachmentMetadataMutation.test.ts │ │ │ │ │ │ ├── useUpdateAppAttachmentMetadataMutation.ts │ │ │ │ │ │ ├── useUpdateFormComponentMutation.test.ts │ │ │ │ │ │ ├── useUpdateFormComponentMutation.ts │ │ │ │ │ │ ├── useUpdateFormContainerMutation.test.ts │ │ │ │ │ │ ├── useUpdateFormContainerMutation.ts │ │ │ │ │ │ ├── useUpdateGroupsMutation.test.ts │ │ │ │ │ │ ├── useUpdateGroupsMutation.ts │ │ │ │ │ │ ├── useUpdateLayoutNameMutation.test.ts │ │ │ │ │ │ ├── useUpdateLayoutNameMutation.ts │ │ │ │ │ │ ├── useUpdateValidationOnNavigationLayoutSettingsMutation.test.ts │ │ │ │ │ │ ├── useUpdateValidationOnNavigationLayoutSettingsMutation.ts │ │ │ │ │ │ ├── useUpsertTextResourceMutation.test.ts │ │ │ │ │ │ ├── useUpsertTextResourceMutation.ts │ │ │ │ │ │ ├── useValidationOnNavigationPageSettingsMutation.test.ts │ │ │ │ │ │ └── useValidationOnNavigationPageSettingsMutation.ts │ │ │ │ │ ├── queries/ │ │ │ │ │ │ ├── useComponentSchemaQuery.ts │ │ │ │ │ │ ├── useDataModelMetadataQuery.ts │ │ │ │ │ │ ├── useFormLayoutSettingsQuery.ts │ │ │ │ │ │ ├── useFormLayoutsQuery.ts │ │ │ │ │ │ ├── useFrontEndSettingsQuery.test.ts │ │ │ │ │ │ ├── useFrontEndSettingsQuery.ts │ │ │ │ │ │ ├── useLayoutSchemaQuery.ts │ │ │ │ │ │ ├── useOptionListIdsQuery.ts │ │ │ │ │ │ ├── usePageValidationOnNavigationLayoutSettingsQuery.test.ts │ │ │ │ │ │ ├── usePageValidationOnNavigationLayoutSettingsQuery.ts │ │ │ │ │ │ ├── usePagesQuery.ts │ │ │ │ │ │ ├── useProcessTaskTypeQuery.ts │ │ │ │ │ │ ├── useRuleConfigQuery.ts │ │ │ │ │ │ ├── useValidationOnNavigationGroupedSettingsQuery.test.ts │ │ │ │ │ │ ├── useValidationOnNavigationGroupedSettingsQuery.ts │ │ │ │ │ │ ├── useValidationOnNavigationLayoutSetsQuery.test.ts │ │ │ │ │ │ ├── useValidationOnNavigationLayoutSetsQuery.ts │ │ │ │ │ │ ├── useWidgetsQuery.test.ts │ │ │ │ │ │ └── useWidgetsQuery.ts │ │ │ │ │ ├── useAppContext.test.tsx │ │ │ │ │ ├── useAppContext.ts │ │ │ │ │ ├── useChecksum.ts/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── useChecksum.test.ts │ │ │ │ │ │ └── useChecksum.ts │ │ │ │ │ ├── useComponentPropertyDescription.test.ts │ │ │ │ │ ├── useComponentPropertyDescription.ts │ │ │ │ │ ├── useComponentPropertyEnumValue.test.ts │ │ │ │ │ ├── useComponentPropertyEnumValue.ts │ │ │ │ │ ├── useComponentPropertyHelpText.test.ts │ │ │ │ │ ├── useComponentPropertyHelpText.ts │ │ │ │ │ ├── useComponentPropertyLabel.test.ts │ │ │ │ │ ├── useComponentPropertyLabel.ts │ │ │ │ │ ├── useComponentTitle.test.ts │ │ │ │ │ ├── useComponentTitle.ts │ │ │ │ │ ├── useCreateSubform.test.ts │ │ │ │ │ ├── useCreateSubform.ts │ │ │ │ │ ├── useFormLayout.test.ts │ │ │ │ │ ├── useFormLayout.ts │ │ │ │ │ ├── useFormLayouts.test.ts │ │ │ │ │ ├── useFormLayouts.ts │ │ │ │ │ ├── useGetBindableDataTypes.ts │ │ │ │ │ ├── useGetLayoutSetByName.test.ts │ │ │ │ │ ├── useGetLayoutSetByName.ts │ │ │ │ │ ├── useGetPageByName.ts │ │ │ │ │ ├── usePdf/ │ │ │ │ │ │ └── usePdf.ts │ │ │ │ │ ├── useSavableFormLayoutSettings.ts │ │ │ │ │ ├── useSelectedFormLayout.test.ts │ │ │ │ │ ├── useSelectedFormLayout.ts │ │ │ │ │ ├── useSelectedFormLayoutWithName.test.ts │ │ │ │ │ ├── useSelectedFormLayoutWithName.ts │ │ │ │ │ ├── useTaskNavigationGroupName.test.tsx │ │ │ │ │ ├── useTaskNavigationGroupName.tsx │ │ │ │ │ ├── useText.test.ts │ │ │ │ │ ├── useText.ts │ │ │ │ │ ├── useUxEditorParams.ts │ │ │ │ │ ├── useValidDataModels.test.ts │ │ │ │ │ └── useValidDataModels.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── selectors/ │ │ │ │ │ ├── formLayoutSelectors.test.ts │ │ │ │ │ └── formLayoutSelectors.ts │ │ │ │ ├── styles/ │ │ │ │ │ └── index.css │ │ │ │ ├── testing/ │ │ │ │ │ ├── appContextMock.ts │ │ │ │ │ ├── componentMocks.ts │ │ │ │ │ ├── componentSchemaMocks.ts │ │ │ │ │ ├── dataModelMock.ts │ │ │ │ │ ├── expressionMocks.ts │ │ │ │ │ ├── formItemContextMocks.ts │ │ │ │ │ ├── layoutMock.ts │ │ │ │ │ ├── layoutSetsMock.ts │ │ │ │ │ ├── layoutWithMultiPageGroupMocks.ts │ │ │ │ │ ├── mocks.tsx │ │ │ │ │ ├── ruleConfigMock.ts │ │ │ │ │ ├── schemas/ │ │ │ │ │ │ └── json/ │ │ │ │ │ │ ├── component/ │ │ │ │ │ │ │ ├── Accordion.schema.v1.json │ │ │ │ │ │ │ ├── AccordionGroup.schema.v1.json │ │ │ │ │ │ │ ├── ActionButton.schema.v1.json │ │ │ │ │ │ │ ├── Address.schema.v1.json │ │ │ │ │ │ │ ├── Alert.schema.v1.json │ │ │ │ │ │ │ ├── AttachmentList.schema.v1.json │ │ │ │ │ │ │ ├── Audio.schema.v1.json │ │ │ │ │ │ │ ├── Button.schema.v1.json │ │ │ │ │ │ │ ├── ButtonGroup.schema.v1.json │ │ │ │ │ │ │ ├── Cards.schema.v1.json │ │ │ │ │ │ │ ├── Checkboxes.schema.v1.json │ │ │ │ │ │ │ ├── Custom.schema.v1.json │ │ │ │ │ │ │ ├── CustomButton.schema.v1.json │ │ │ │ │ │ │ ├── Datepicker.schema.v1.json │ │ │ │ │ │ │ ├── Divider.schema.v1.json │ │ │ │ │ │ │ ├── Dropdown.schema.v1.json │ │ │ │ │ │ │ ├── FileUpload.schema.v1.json │ │ │ │ │ │ │ ├── FileUploadWithTag.schema.v1.json │ │ │ │ │ │ │ ├── Grid.schema.v1.json │ │ │ │ │ │ │ ├── Group.schema.v1.json │ │ │ │ │ │ │ ├── Header.schema.v1.json │ │ │ │ │ │ │ ├── IFrame.schema.v1.json │ │ │ │ │ │ │ ├── Image.schema.v1.json │ │ │ │ │ │ │ ├── ImageUpload.schema.v1.json │ │ │ │ │ │ │ ├── Input.schema.v1.json │ │ │ │ │ │ │ ├── InstanceInformation.schema.v1.json │ │ │ │ │ │ │ ├── InstantiationButton.schema.v1.json │ │ │ │ │ │ │ ├── Likert.schema.v1.json │ │ │ │ │ │ │ ├── Link.schema.v1.json │ │ │ │ │ │ │ ├── List.schema.v1.json │ │ │ │ │ │ │ ├── Map.schema.v1.json │ │ │ │ │ │ │ ├── MultipleSelect.schema.v1.json │ │ │ │ │ │ │ ├── NavigationBar.schema.v1.json │ │ │ │ │ │ │ ├── NavigationButtons.schema.v1.json │ │ │ │ │ │ │ ├── Number.schema.v1.json │ │ │ │ │ │ │ ├── OrganisationLookup.schema.v1.json │ │ │ │ │ │ │ ├── Panel.schema.v1.json │ │ │ │ │ │ │ ├── Paragraph.schema.v1.json │ │ │ │ │ │ │ ├── Payment.schema.v1.json │ │ │ │ │ │ │ ├── PaymentDetails.schema.v1.json │ │ │ │ │ │ │ ├── PersonLookup.schema.v1.json │ │ │ │ │ │ │ ├── PrintButton.schema.v1.json │ │ │ │ │ │ │ ├── RadioButtons.schema.v1.json │ │ │ │ │ │ │ ├── RepeatingGroup.schema.v1.json │ │ │ │ │ │ │ ├── Subform.schema.v1.json │ │ │ │ │ │ │ ├── Summary.schema.v1.json │ │ │ │ │ │ │ ├── Summary2.schema.v1.json │ │ │ │ │ │ │ ├── Tabs.schema.v1.json │ │ │ │ │ │ │ ├── Text.schema.v1.json │ │ │ │ │ │ │ ├── TextArea.schema.v1.json │ │ │ │ │ │ │ ├── Video.schema.v1.json │ │ │ │ │ │ │ ├── common-defs.schema.v1.json │ │ │ │ │ │ │ └── component-list.json │ │ │ │ │ │ └── layout/ │ │ │ │ │ │ ├── expression.schema.v1.json │ │ │ │ │ │ ├── footer.schema.v1.json │ │ │ │ │ │ ├── layout-sets.schema.v1.json │ │ │ │ │ │ ├── layout.schema.v1.json │ │ │ │ │ │ ├── layoutSettings.schema.v1.json │ │ │ │ │ │ └── number-format.schema.v1.json │ │ │ │ │ ├── scripts/ │ │ │ │ │ │ └── processSchemas.js │ │ │ │ │ └── subformLayoutMock.ts │ │ │ │ ├── types/ │ │ │ │ │ ├── ContainerComponent.ts │ │ │ │ │ ├── ExportForm.ts │ │ │ │ │ ├── ExternalContainerComponent.ts │ │ │ │ │ ├── ExternalSimpleComponent.ts │ │ │ │ │ ├── FormComponent.ts │ │ │ │ │ ├── FormContainer.ts │ │ │ │ │ ├── FormItem.ts │ │ │ │ │ ├── FormItemProperty.ts │ │ │ │ │ ├── FormLayoutPage.ts │ │ │ │ │ ├── SimpleComponentType.ts │ │ │ │ │ └── global.ts │ │ │ │ └── utils/ │ │ │ │ ├── component.test.ts │ │ │ │ ├── component.ts │ │ │ │ ├── dataModelUtils.test.ts │ │ │ │ ├── dataModelUtils.ts │ │ │ │ ├── designViewUtils/ │ │ │ │ │ ├── designViewUtils.test.ts │ │ │ │ │ ├── designViewUtils.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── exportUtils.test.ts │ │ │ │ ├── exportUtils.ts │ │ │ │ ├── expressionsUtils.ts │ │ │ │ ├── formItemUtils.ts │ │ │ │ ├── formLayoutUtils.test.tsx │ │ │ │ ├── formLayoutUtils.ts │ │ │ │ ├── formLayoutsUtils.test.ts │ │ │ │ ├── formLayoutsUtils.ts │ │ │ │ ├── generateId.test.tsx │ │ │ │ ├── generateId.ts │ │ │ │ ├── getLayoutSetIcon.test.tsx │ │ │ │ ├── getLayoutSetIcon.tsx │ │ │ │ ├── jsonUtils.test.ts │ │ │ │ ├── jsonUtils.ts │ │ │ │ ├── language.test.ts │ │ │ │ ├── language.ts │ │ │ │ ├── localStorage.test.ts │ │ │ │ ├── localStorageUtils.ts │ │ │ │ ├── pageGroupUtils.test.ts │ │ │ │ ├── pageGroupUtils.ts │ │ │ │ ├── routeUtils.ts │ │ │ │ ├── stringUtils/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── stringUtils.test.ts │ │ │ │ │ └── stringUtils.ts │ │ │ │ ├── widgetUtils.test.ts │ │ │ │ └── widgetUtils.ts │ │ │ └── tsconfig.json │ │ ├── ports.json │ │ ├── resourceadm/ │ │ │ ├── README.md │ │ │ ├── app/ │ │ │ │ ├── App.css │ │ │ │ ├── App.module.css │ │ │ │ └── App.tsx │ │ │ ├── components/ │ │ │ │ ├── AccessListDetails/ │ │ │ │ │ ├── AccessListDetail.module.css │ │ │ │ │ ├── AccessListDetail.test.tsx │ │ │ │ │ ├── AccessListDetail.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── AccessListEnvLinks/ │ │ │ │ │ ├── AccessListEnvLinks.module.css │ │ │ │ │ ├── AccessListEnvLinks.test.tsx │ │ │ │ │ ├── AccessListEnvLinks.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── AccessListErrorMessage/ │ │ │ │ │ ├── AccessListErrorMessage.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── AccessListMembers/ │ │ │ │ │ ├── AccessListMembers.module.css │ │ │ │ │ ├── AccessListMembers.test.tsx │ │ │ │ │ ├── AccessListMembers.tsx │ │ │ │ │ ├── AccessListMembersPaging.tsx │ │ │ │ │ ├── AccessListMembersTable.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── AccessListPreconditionFailedToast/ │ │ │ │ │ ├── AccessListPreconditionFailedToast.test.tsx │ │ │ │ │ ├── AccessListPreconditionFailedToast.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ConsentPreview/ │ │ │ │ │ ├── ConsentPreview.module.css │ │ │ │ │ ├── ConsentPreview.test.tsx │ │ │ │ │ ├── ConsentPreview.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ErrorMessage/ │ │ │ │ │ ├── ErrorMessage.tsx │ │ │ │ │ ├── errorMessage.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── FieldsetWrapper/ │ │ │ │ │ ├── FieldsetWrapper.module.css │ │ │ │ │ ├── FieldsetWrapper.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ImportAltinn3ResourceModal/ │ │ │ │ │ ├── ImportAltinn3ResourceModal.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ImportResourceModal/ │ │ │ │ │ ├── ImportResourceModal.module.css │ │ │ │ │ ├── ImportResourceModal.test.tsx │ │ │ │ │ ├── ImportResourceModal.tsx │ │ │ │ │ ├── ServiceContent/ │ │ │ │ │ │ ├── ServiceContent.module.css │ │ │ │ │ │ ├── ServiceContent.test.tsx │ │ │ │ │ │ ├── ServiceContent.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── LinkButton/ │ │ │ │ │ ├── LinkButton.test.tsx │ │ │ │ │ ├── LinkButton.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── MergeConflict/ │ │ │ │ │ ├── MergeConflict.module.css │ │ │ │ │ ├── MergeConflict.test.tsx │ │ │ │ │ ├── MergeConflict.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── MigrationPanel/ │ │ │ │ │ ├── MigrationPanel.module.css │ │ │ │ │ ├── MigrationPanel.test.tsx │ │ │ │ │ ├── MigrationPanel.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── NavigationModal/ │ │ │ │ │ ├── NavigationModal.test.tsx │ │ │ │ │ ├── NavigationModal.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── NewAccessListModal/ │ │ │ │ │ ├── NewAccessListModal.test.tsx │ │ │ │ │ ├── NewAccessListModal.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── NewResourceModal/ │ │ │ │ │ ├── NewResourceModal.test.tsx │ │ │ │ │ ├── NewResourceModal.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ResourceAccessLists/ │ │ │ │ │ ├── ResourceAccessLists.module.css │ │ │ │ │ ├── ResourceAccessLists.test.tsx │ │ │ │ │ ├── ResourceAccessLists.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ResourceAdmDialogContent/ │ │ │ │ │ ├── ResourceAdmDialogContent.module.css │ │ │ │ │ └── ResourceAdmDialogContent.tsx │ │ │ │ ├── ResourceAdmHeader/ │ │ │ │ │ ├── ResourceAdmHeader.module.css │ │ │ │ │ ├── ResourceAdmHeader.test.tsx │ │ │ │ │ ├── ResourceAdmHeader.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ResourceContactPointFields/ │ │ │ │ │ ├── ResourceContactPointFields.test.tsx │ │ │ │ │ ├── ResourceContactPointFields.tsx │ │ │ │ │ ├── ResourceContactPointFieldset.module.css │ │ │ │ │ ├── ResourceContactPointFieldset.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ResourceDeployEnvCard/ │ │ │ │ │ ├── ResourceDeployEnvCard.module.css │ │ │ │ │ ├── ResourceDeployEnvCard.test.tsx │ │ │ │ │ ├── ResourceDeployEnvCard.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ResourceDeployStatus/ │ │ │ │ │ ├── ResourceDeployStatus.module.css │ │ │ │ │ ├── ResourceDeployStatus.test.tsx │ │ │ │ │ ├── ResourceDeployStatus.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ResourceNameAndId/ │ │ │ │ │ ├── ResourceNameAndId.module.css │ │ │ │ │ ├── ResourceNameAndId.test.tsx │ │ │ │ │ ├── ResourceNameAndId.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ResourcePageInputs/ │ │ │ │ │ ├── InputFieldErrorMessage.tsx │ │ │ │ │ ├── ResourceCheckboxGroup.tsx │ │ │ │ │ ├── ResourceFieldHeader.tsx │ │ │ │ │ ├── ResourceLanguageTextField.tsx │ │ │ │ │ ├── ResourcePageInputs.module.css │ │ │ │ │ ├── ResourceRadioGroup.tsx │ │ │ │ │ ├── ResourceSwitchInput.tsx │ │ │ │ │ ├── ResourceTextField.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ResourceReferenceFields/ │ │ │ │ │ ├── ResourceReferenceFields.test.tsx │ │ │ │ │ ├── ResourceReferenceFields.tsx │ │ │ │ │ ├── ResourceReferenceFieldset.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ResourceSearchBox/ │ │ │ │ │ ├── ResourceSearchBox.module.css │ │ │ │ │ ├── ResourceSearchBox.test.tsx │ │ │ │ │ ├── ResourceSearchBox.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── ResourceTable/ │ │ │ │ ├── ResourceTable.module.css │ │ │ │ ├── ResourceTable.test.tsx │ │ │ │ ├── ResourceTable.tsx │ │ │ │ └── index.ts │ │ │ ├── hooks/ │ │ │ │ ├── mutations/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useAddAccessListMemberMutation.ts │ │ │ │ │ ├── useAddResourceAccessListMutation.ts │ │ │ │ │ ├── useCreateAccessListMutation.ts │ │ │ │ │ ├── useCreateResourceMutation.ts │ │ │ │ │ ├── useDeleteAccessListMutation.ts │ │ │ │ │ ├── useEditAccessListMutation.ts │ │ │ │ │ ├── useEditResourceMutation.ts │ │ │ │ │ ├── useEditResourcePolicyMutation.ts │ │ │ │ │ ├── useImportResourceFromAltinn2Mutation.ts │ │ │ │ │ ├── useImportResourceFromAltinn3Mutation.ts │ │ │ │ │ ├── useMigrateDelegationsMutation.ts │ │ │ │ │ ├── usePublishResourceMutation.ts │ │ │ │ │ ├── useRemoveAccessListMemberMutation.ts │ │ │ │ │ ├── useRemoveResourceAccessListMutation.ts │ │ │ │ │ └── useResetRepositoryMutation.ts │ │ │ │ ├── queries/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useGetAccessListMembersQuery.ts │ │ │ │ │ ├── useGetAccessListQuery.ts │ │ │ │ │ ├── useGetAccessListsQuery.ts │ │ │ │ │ ├── useGetAllAccessListsQuery.ts │ │ │ │ │ ├── useGetAltinn2DelegationCount.ts │ │ │ │ │ ├── useGetAltinn2LinkServicesQuery.ts │ │ │ │ │ ├── useGetConsentTemplates.ts │ │ │ │ │ ├── useGetResourceAccessListsQuery.ts │ │ │ │ │ ├── useGetResourceListQuery.ts │ │ │ │ │ ├── useOrganizationsQuery.ts │ │ │ │ │ ├── usePartiesRegistryQuery.ts │ │ │ │ │ ├── useResourcePolicyPublishStatusQuery.ts │ │ │ │ │ ├── useResourcePolicyQuery.ts │ │ │ │ │ ├── useSinlgeResourceQuery.ts │ │ │ │ │ ├── useSubPartiesRegistryQuery.ts │ │ │ │ │ ├── useValidatePolicyQuery.ts │ │ │ │ │ └── useValidateResourceQuery.ts │ │ │ │ └── useUrlParams/ │ │ │ │ ├── index.ts │ │ │ │ └── useUrlParams.ts │ │ │ ├── index.html │ │ │ ├── index.tsx │ │ │ ├── jest.config.js │ │ │ ├── language/ │ │ │ │ └── src/ │ │ │ │ ├── en.json │ │ │ │ └── nb.json │ │ │ ├── package.json │ │ │ ├── pages/ │ │ │ │ ├── AboutResourcePage/ │ │ │ │ │ ├── AboutResourcePage.module.css │ │ │ │ │ ├── AboutResourcePage.test.tsx │ │ │ │ │ ├── AboutResourcePage.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── AccessListPage/ │ │ │ │ │ ├── AccessListPage.test.tsx │ │ │ │ │ ├── AccessListPage.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── DeployResourcePage/ │ │ │ │ │ ├── DeployResourcePage.module.css │ │ │ │ │ ├── DeployResourcePage.test.tsx │ │ │ │ │ ├── DeployResourcePage.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ErrorPage/ │ │ │ │ │ ├── ErrorPage.module.css │ │ │ │ │ ├── ErrorPage.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ListAdminPage/ │ │ │ │ │ ├── ListAdminPage.module.css │ │ │ │ │ ├── ListAdminPage.test.tsx │ │ │ │ │ ├── ListAdminPage.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── MigrationPage/ │ │ │ │ │ ├── MigrationPage.module.css │ │ │ │ │ ├── MigrationPage.test.tsx │ │ │ │ │ ├── MigrationPage.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── PageLayout/ │ │ │ │ │ ├── PageLayout.test.tsx │ │ │ │ │ ├── PageLayout.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── PolicyEditorPage/ │ │ │ │ │ ├── PolicyEditorPage.module.css │ │ │ │ │ ├── PolicyEditorPage.test.tsx │ │ │ │ │ ├── PolicyEditorPage.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── RedirectPage/ │ │ │ │ │ ├── RedirectPage.module.css │ │ │ │ │ ├── RedirectPage.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ResourceDashboardPage/ │ │ │ │ │ ├── ResourceDashboardPage.module.css │ │ │ │ │ ├── ResourceDashboardPage.test.tsx │ │ │ │ │ ├── ResourceDashboardPage.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── ResourcePage/ │ │ │ │ ├── ResourcePage.module.css │ │ │ │ ├── ResourcePage.test.tsx │ │ │ │ ├── ResourcePage.tsx │ │ │ │ └── index.ts │ │ │ ├── testing/ │ │ │ │ ├── playwright/ │ │ │ │ │ ├── enum/ │ │ │ │ │ │ └── TestNames.ts │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ ├── DesignerApi.ts │ │ │ │ │ │ ├── GiteaApi.ts │ │ │ │ │ │ ├── ResourceEnvironment.ts │ │ │ │ │ │ ├── routes.ts │ │ │ │ │ │ └── textMock.ts │ │ │ │ │ ├── package.json │ │ │ │ │ ├── pages/ │ │ │ │ │ │ ├── LoginPage.ts │ │ │ │ │ │ ├── ResourceDashboardPage.ts │ │ │ │ │ │ └── ResourcePage.ts │ │ │ │ │ ├── playwright.config.ts │ │ │ │ │ ├── scripts/ │ │ │ │ │ │ └── setup.ts │ │ │ │ │ ├── tests/ │ │ │ │ │ │ ├── auth.setup.ts │ │ │ │ │ │ ├── create-resource/ │ │ │ │ │ │ │ └── create-resource.spec.ts │ │ │ │ │ │ └── validate-resource/ │ │ │ │ │ │ └── validate-resource.spec.ts │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── types/ │ │ │ │ │ └── StorageState.ts │ │ │ │ └── utils/ │ │ │ │ └── testUtils.ts │ │ │ ├── tsconfig.json │ │ │ ├── types/ │ │ │ │ ├── DeployError.d.ts │ │ │ │ ├── EnvironmentType.d.ts │ │ │ │ ├── NavigationBarPage.d.ts │ │ │ │ └── Translation.d.ts │ │ │ ├── utils/ │ │ │ │ ├── jsonPatchUtils/ │ │ │ │ │ └── jsonPatchUtils.ts │ │ │ │ ├── mapperUtils/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mapperUtils.test.ts │ │ │ │ │ └── mapperUtils.ts │ │ │ │ ├── resourceListUtils/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── resourceListUtils.test.ts │ │ │ │ │ └── resourceListUtils.ts │ │ │ │ ├── resourceUtils/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── resourceUtils.test.tsx │ │ │ │ │ └── resourceUtils.ts │ │ │ │ ├── stringUtils/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── stringUtils.test.ts │ │ │ │ │ └── stringUtils.ts │ │ │ │ ├── urlUtils/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── urlConstants.ts │ │ │ │ │ └── urlUtils.ts │ │ │ │ └── userUtils/ │ │ │ │ ├── index.ts │ │ │ │ ├── userUtils.test.ts │ │ │ │ └── userUtils.ts │ │ │ └── vite.config.ts │ │ ├── scripts/ │ │ │ ├── README.md │ │ │ ├── componentSchemas/ │ │ │ │ ├── api.ts │ │ │ │ ├── fileUtils.ts │ │ │ │ ├── languageUtils.ts │ │ │ │ ├── run.ts │ │ │ │ ├── schemaUtils.test.ts │ │ │ │ ├── schemaUtils.ts │ │ │ │ ├── types.ts │ │ │ │ └── version.ts │ │ │ ├── configurationStats/ │ │ │ │ ├── Application.ts │ │ │ │ ├── ConfigFile.ts │ │ │ │ ├── ConfigurableItem.ts │ │ │ │ ├── Layout.ts │ │ │ │ ├── LayoutSettings.ts │ │ │ │ ├── run.ts │ │ │ │ └── unsupported.ts │ │ │ ├── package.json │ │ │ └── tsconfig.json │ │ ├── settings/ │ │ │ ├── README.md │ │ │ ├── components/ │ │ │ │ ├── AddButton/ │ │ │ │ │ ├── AddButton.module.css │ │ │ │ │ └── AddButton.tsx │ │ │ │ ├── ApiKeys/ │ │ │ │ │ ├── AddApiKey.tsx │ │ │ │ │ ├── ApiKeyDialog.module.css │ │ │ │ │ ├── ApiKeyDialog.test.tsx │ │ │ │ │ ├── ApiKeyDialog.tsx │ │ │ │ │ ├── ApiKeysList.module.css │ │ │ │ │ ├── ApiKeysList.test.tsx │ │ │ │ │ └── ApiKeysList.tsx │ │ │ │ ├── EnvironmentsCell/ │ │ │ │ │ ├── EnvironmentsCell.module.css │ │ │ │ │ └── EnvironmentsCell.tsx │ │ │ │ ├── IndexRedirect/ │ │ │ │ │ ├── IndexRedirect.test.tsx │ │ │ │ │ └── IndexRedirect.tsx │ │ │ │ ├── NoOrgSelected/ │ │ │ │ │ ├── NoOrgSelected.test.tsx │ │ │ │ │ └── NoOrgSelected.tsx │ │ │ │ ├── NotFound/ │ │ │ │ │ └── NotFound.tsx │ │ │ │ └── OwnerIndexRedirect/ │ │ │ │ ├── OwnerIndexRedirect.test.tsx │ │ │ │ └── OwnerIndexRedirect.tsx │ │ │ ├── features/ │ │ │ │ ├── orgs/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── Menu/ │ │ │ │ │ │ ├── Menu.test.tsx │ │ │ │ │ │ └── Menu.tsx │ │ │ │ │ ├── constants/ │ │ │ │ │ │ └── contactPointConstants.ts │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── useAddContactPointMutation.test.tsx │ │ │ │ │ │ ├── useAddContactPointMutation.ts │ │ │ │ │ │ ├── useDeleteContactPointMutation.test.tsx │ │ │ │ │ │ ├── useDeleteContactPointMutation.ts │ │ │ │ │ │ ├── useGetContactPointsQuery.test.tsx │ │ │ │ │ │ ├── useGetContactPointsQuery.ts │ │ │ │ │ │ ├── useToggleContactPointActiveMutation.test.tsx │ │ │ │ │ │ ├── useToggleContactPointActiveMutation.ts │ │ │ │ │ │ ├── useUpdateContactPointMutation.test.tsx │ │ │ │ │ │ └── useUpdateContactPointMutation.ts │ │ │ │ │ ├── layout/ │ │ │ │ │ │ ├── PageLayout.module.css │ │ │ │ │ │ ├── PageLayout.test.tsx │ │ │ │ │ │ └── PageLayout.tsx │ │ │ │ │ ├── pages/ │ │ │ │ │ │ ├── BotAccounts/ │ │ │ │ │ │ │ ├── BotAccounts.module.css │ │ │ │ │ │ │ ├── BotAccounts.test.tsx │ │ │ │ │ │ │ ├── BotAccounts.tsx │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ ├── BotAccountApiKeys/ │ │ │ │ │ │ │ │ │ ├── BotAccountApiKeys.module.css │ │ │ │ │ │ │ │ │ ├── BotAccountApiKeys.test.tsx │ │ │ │ │ │ │ │ │ └── BotAccountApiKeys.tsx │ │ │ │ │ │ │ │ ├── BotAccountDialog/ │ │ │ │ │ │ │ │ │ ├── BotAccountDialog.module.css │ │ │ │ │ │ │ │ │ ├── BotAccountDialog.test.tsx │ │ │ │ │ │ │ │ │ └── BotAccountDialog.tsx │ │ │ │ │ │ │ │ └── BotAccountsList/ │ │ │ │ │ │ │ │ ├── BotAccountsList.module.css │ │ │ │ │ │ │ │ ├── BotAccountsList.test.tsx │ │ │ │ │ │ │ │ └── BotAccountsList.tsx │ │ │ │ │ │ │ └── hooks/ │ │ │ │ │ │ │ ├── useCreateBotAccountApiKeyMutation.test.ts │ │ │ │ │ │ │ ├── useCreateBotAccountApiKeyMutation.ts │ │ │ │ │ │ │ ├── useCreateBotAccountMutation.test.ts │ │ │ │ │ │ │ ├── useCreateBotAccountMutation.ts │ │ │ │ │ │ │ ├── useDeactivateBotAccountMutation.ts │ │ │ │ │ │ │ ├── useGetBotAccountApiKeysQuery.test.ts │ │ │ │ │ │ │ ├── useGetBotAccountApiKeysQuery.ts │ │ │ │ │ │ │ ├── useGetBotAccountsQuery.ts │ │ │ │ │ │ │ ├── useRevokeBotAccountApiKeyMutation.test.ts │ │ │ │ │ │ │ ├── useRevokeBotAccountApiKeyMutation.ts │ │ │ │ │ │ │ ├── useUpdateBotAccountMutation.test.ts │ │ │ │ │ │ │ └── useUpdateBotAccountMutation.ts │ │ │ │ │ │ └── ContactPoints/ │ │ │ │ │ │ ├── ContactPoints.module.css │ │ │ │ │ │ ├── ContactPoints.test.tsx │ │ │ │ │ │ ├── ContactPoints.tsx │ │ │ │ │ │ └── components/ │ │ │ │ │ │ ├── ActionsCell/ │ │ │ │ │ │ │ ├── ActionsCell.module.css │ │ │ │ │ │ │ ├── ActionsCell.test.tsx │ │ │ │ │ │ │ └── ActionsCell.tsx │ │ │ │ │ │ ├── PersonsList/ │ │ │ │ │ │ │ ├── PersonDialog/ │ │ │ │ │ │ │ │ ├── PersonDialog.module.css │ │ │ │ │ │ │ │ ├── PersonDialog.test.tsx │ │ │ │ │ │ │ │ └── PersonDialog.tsx │ │ │ │ │ │ │ ├── PersonsList.test.tsx │ │ │ │ │ │ │ ├── PersonsList.tsx │ │ │ │ │ │ │ ├── personUtils.test.ts │ │ │ │ │ │ │ └── personUtils.ts │ │ │ │ │ │ └── SlackChannelsList/ │ │ │ │ │ │ ├── SlackChannelDialog/ │ │ │ │ │ │ │ ├── SlackChannelDialog.module.css │ │ │ │ │ │ │ ├── SlackChannelDialog.test.tsx │ │ │ │ │ │ │ └── SlackChannelDialog.tsx │ │ │ │ │ │ ├── SlackChannelsList.test.tsx │ │ │ │ │ │ ├── SlackChannelsList.tsx │ │ │ │ │ │ ├── slackChannelUtils.test.ts │ │ │ │ │ │ └── slackChannelUtils.ts │ │ │ │ │ └── routes/ │ │ │ │ │ └── RoutePaths.ts │ │ │ │ └── user/ │ │ │ │ ├── components/ │ │ │ │ │ └── Menu/ │ │ │ │ │ ├── Menu.test.tsx │ │ │ │ │ └── Menu.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ ├── mutations/ │ │ │ │ │ │ ├── useAddUserApiKeyMutation.test.ts │ │ │ │ │ │ ├── useAddUserApiKeyMutation.ts │ │ │ │ │ │ ├── useDeleteUserApiKeyMutation.test.ts │ │ │ │ │ │ └── useDeleteUserApiKeyMutation.ts │ │ │ │ │ └── queries/ │ │ │ │ │ └── useUserApiKeysQuery.ts │ │ │ │ ├── layout/ │ │ │ │ │ ├── PageLayout.module.css │ │ │ │ │ ├── PageLayout.test.tsx │ │ │ │ │ └── PageLayout.tsx │ │ │ │ ├── pages/ │ │ │ │ │ └── ApiKeys/ │ │ │ │ │ ├── ApiKeys.module.css │ │ │ │ │ ├── ApiKeys.test.tsx │ │ │ │ │ └── ApiKeys.tsx │ │ │ │ └── routes/ │ │ │ │ └── RoutePaths.ts │ │ │ ├── hooks/ │ │ │ │ ├── useRequiredRoutePathsParams.test.ts │ │ │ │ └── useRequiredRoutePathsParams.ts │ │ │ ├── index.html │ │ │ ├── index.tsx │ │ │ ├── jest.config.js │ │ │ ├── layouts/ │ │ │ │ ├── OrgPageLayout/ │ │ │ │ │ ├── OrgPageLayout.test.tsx │ │ │ │ │ └── OrgPageLayout.tsx │ │ │ │ ├── PageLayout/ │ │ │ │ │ ├── PageLayout.css │ │ │ │ │ ├── PageLayout.module.css │ │ │ │ │ ├── PageLayout.test.tsx │ │ │ │ │ └── PageLayout.tsx │ │ │ │ └── UserPageLayout/ │ │ │ │ ├── UserPageLayout.test.tsx │ │ │ │ └── UserPageLayout.tsx │ │ │ ├── package.json │ │ │ ├── routes/ │ │ │ │ ├── PageRouterErrorBoundary.test.tsx │ │ │ │ ├── PageRouterErrorBoundary.tsx │ │ │ │ ├── PageRoutes.tsx │ │ │ │ ├── RoutePaths.ts │ │ │ │ └── RoutePathsParams.ts │ │ │ ├── testing/ │ │ │ │ └── mocks.tsx │ │ │ ├── tsconfig.json │ │ │ └── vite.config.ts │ │ ├── sonar-project.properties │ │ ├── stats.js │ │ ├── studio-root/ │ │ │ ├── README.md │ │ │ ├── app/ │ │ │ │ ├── App.css │ │ │ │ ├── App.module.css │ │ │ │ └── App.tsx │ │ │ ├── components/ │ │ │ │ ├── ContactSection/ │ │ │ │ │ ├── ContactSection.module.css │ │ │ │ │ ├── ContactSection.test.tsx │ │ │ │ │ ├── ContactSection.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── ContactServiceDesk/ │ │ │ │ ├── ContactServiceDesk.tsx │ │ │ │ └── index.ts │ │ │ ├── index.html │ │ │ ├── index.tsx │ │ │ ├── jest.config.js │ │ │ ├── package.json │ │ │ ├── pages/ │ │ │ │ ├── Contact/ │ │ │ │ │ ├── ContactPage.module.css │ │ │ │ │ ├── ContactPage.test.tsx │ │ │ │ │ └── ContactPage.tsx │ │ │ │ ├── FlagsPage/ │ │ │ │ │ ├── FlagsPage.module.css │ │ │ │ │ ├── FlagsPage.test.tsx │ │ │ │ │ ├── FlagsPage.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Guide/ │ │ │ │ │ ├── GuidePage.test.tsx │ │ │ │ │ ├── GuidePage.tsx │ │ │ │ │ ├── LoginGuide.module.css │ │ │ │ │ ├── LoginGuide.test.tsx │ │ │ │ │ └── LoginGuide.tsx │ │ │ │ ├── PageLayout/ │ │ │ │ │ ├── PageLayout.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── hooks/ │ │ │ │ └── queries/ │ │ │ │ └── useFetchBelongsToOrgQuery.ts │ │ │ ├── tsconfig.json │ │ │ └── vite.config.ts │ │ ├── studio.alias.ts │ │ ├── testing/ │ │ │ ├── cypress/ │ │ │ │ ├── .eslintrc.json │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── config/ │ │ │ │ │ ├── dev.json │ │ │ │ │ ├── local.json │ │ │ │ │ ├── prod.json │ │ │ │ │ └── staging.json │ │ │ │ ├── cypress.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── fixtures/ │ │ │ │ │ │ ├── builds.js │ │ │ │ │ │ ├── deploys.js │ │ │ │ │ │ └── texts.json │ │ │ │ │ ├── integration/ │ │ │ │ │ │ └── usecase/ │ │ │ │ │ │ └── usecase.js │ │ │ │ │ ├── selectors/ │ │ │ │ │ │ ├── dashboard.js │ │ │ │ │ │ ├── deploy.js │ │ │ │ │ │ ├── designer.js │ │ │ │ │ │ ├── gitea.js │ │ │ │ │ │ ├── header.js │ │ │ │ │ │ ├── login.js │ │ │ │ │ │ ├── overview.js │ │ │ │ │ │ ├── preview.js │ │ │ │ │ │ └── textEditor.js │ │ │ │ │ └── support/ │ │ │ │ │ ├── custom.js │ │ │ │ │ ├── gitea-api.js │ │ │ │ │ ├── index.d.ts │ │ │ │ │ ├── index.js │ │ │ │ │ └── studio.js │ │ │ │ ├── tsconfig.json │ │ │ │ ├── use-cases-prod.yaml │ │ │ │ └── use-cases.yaml │ │ │ ├── mocks/ │ │ │ │ ├── fileMock.js │ │ │ │ ├── i18nMock.ts │ │ │ │ ├── signalr.ts │ │ │ │ └── svgMock.js │ │ │ ├── playwright/ │ │ │ │ ├── README.md │ │ │ │ ├── components/ │ │ │ │ │ ├── AppDevelopmentHeader.ts │ │ │ │ │ ├── DashboardHeader.ts │ │ │ │ │ ├── LocalChangesModal.ts │ │ │ │ │ └── PolicyEditor.ts │ │ │ │ ├── enum/ │ │ │ │ │ ├── AppNames.ts │ │ │ │ │ ├── ComponentType.ts │ │ │ │ │ ├── DataTestId.ts │ │ │ │ │ ├── Language.ts │ │ │ │ │ ├── LanguageCode.ts │ │ │ │ │ └── TestNames.ts │ │ │ │ ├── extenders/ │ │ │ │ │ └── testExtend.ts │ │ │ │ ├── helpers/ │ │ │ │ │ ├── BasePage.ts │ │ │ │ │ ├── BpmnJSQuery.ts │ │ │ │ │ ├── DesignerApi.ts │ │ │ │ │ ├── Gitea.ts │ │ │ │ │ ├── RouterRoute.ts │ │ │ │ │ └── StudioEnvironment.ts │ │ │ │ ├── package.json │ │ │ │ ├── pages/ │ │ │ │ │ ├── CreateServicePage.ts │ │ │ │ │ ├── DashboardPage.ts │ │ │ │ │ ├── DataModelPage.ts │ │ │ │ │ ├── DeployPage.ts │ │ │ │ │ ├── GiteaPage.ts │ │ │ │ │ ├── LoginPage.ts │ │ │ │ │ ├── OrgLibraryPage/ │ │ │ │ │ │ ├── CodeLists.ts │ │ │ │ │ │ ├── OrgLibraryPage.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── testCodelist.json │ │ │ │ │ ├── OverviewPage.ts │ │ │ │ │ ├── PreviewPage.ts │ │ │ │ │ ├── ProcessEditorPage/ │ │ │ │ │ │ ├── ActionsConfig.ts │ │ │ │ │ │ ├── CustomReceiptConfig.ts │ │ │ │ │ │ ├── DataModelConfig.ts │ │ │ │ │ │ ├── PolicyConfig.ts │ │ │ │ │ │ ├── ProcessEditorPage.ts │ │ │ │ │ │ ├── SigningTaskConfig.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── SettingsPage.ts │ │ │ │ │ ├── TextEditorPage.ts │ │ │ │ │ ├── UiEditorPage.ts │ │ │ │ │ └── testDataModel.xsd │ │ │ │ ├── playwright.config.ts │ │ │ │ ├── scripts/ │ │ │ │ │ └── setup.ts │ │ │ │ ├── tests/ │ │ │ │ │ ├── app-settings/ │ │ │ │ │ │ └── app-settings.spec.ts │ │ │ │ │ ├── auth.setup.ts │ │ │ │ │ ├── create-app-only/ │ │ │ │ │ │ └── create-app-only.spec.ts │ │ │ │ │ ├── dashboard/ │ │ │ │ │ │ ├── dashboard-navigation.spec.ts │ │ │ │ │ │ └── dashboard.spec.ts │ │ │ │ │ ├── data-model/ │ │ │ │ │ │ └── data-model.spec.ts │ │ │ │ │ ├── git-sync/ │ │ │ │ │ │ └── git-sync.spec.ts │ │ │ │ │ ├── invalid-login/ │ │ │ │ │ │ └── invalid-login.spec.ts │ │ │ │ │ ├── logout/ │ │ │ │ │ │ └── logout.spec.ts │ │ │ │ │ ├── main-navigation-between-sub-apps/ │ │ │ │ │ │ └── main-navigation-between-sub-apps.spec.ts │ │ │ │ │ ├── org-library/ │ │ │ │ │ │ ├── codelists.spec.ts │ │ │ │ │ │ └── org-library.spec.ts │ │ │ │ │ ├── process-editor/ │ │ │ │ │ │ ├── add-new-bpmn-task.spec.ts │ │ │ │ │ │ ├── process-editor.spec.ts │ │ │ │ │ │ └── task-actions.spec.ts │ │ │ │ │ ├── text-editor/ │ │ │ │ │ │ └── text-editor.spec.ts │ │ │ │ │ └── ui-editor/ │ │ │ │ │ ├── ui-editor-data-model-binding-and-gitea.spec.ts │ │ │ │ │ └── ui-editor.spec.ts │ │ │ │ ├── tsconfig.json │ │ │ │ └── types/ │ │ │ │ ├── BpmnTaskType.ts │ │ │ │ ├── DragAndDropComponents.ts │ │ │ │ ├── SettingsPageTab.ts │ │ │ │ └── StorageState.ts │ │ │ ├── setupTests.ts │ │ │ ├── testRoutingUtils.tsx │ │ │ ├── testUtils.ts │ │ │ └── testids.js │ │ ├── tsconfig-eslint.json │ │ ├── tsconfig-strict.json │ │ ├── tsconfig.json │ │ └── vite.config.ts │ └── testdata/ │ ├── App/ │ │ ├── App.csproj │ │ ├── config/ │ │ │ ├── applicationmetadata.json │ │ │ ├── authorization/ │ │ │ │ └── policy.xml │ │ │ └── process/ │ │ │ └── process.bpmn │ │ └── ui/ │ │ ├── changename/ │ │ │ ├── RuleConfiguration.json │ │ │ ├── RuleHandler.js │ │ │ ├── Settings.json │ │ │ └── layouts/ │ │ │ ├── form.json │ │ │ └── summary.json │ │ ├── datalist/ │ │ │ ├── RuleHandler.js │ │ │ ├── Settings.json │ │ │ └── layouts/ │ │ │ ├── formLayout.json │ │ │ └── summary.json │ │ ├── group/ │ │ │ ├── RuleConfiguration.json │ │ │ ├── RuleHandler.js │ │ │ ├── Settings.json │ │ │ └── layouts/ │ │ │ ├── hide.json │ │ │ ├── prefill.json │ │ │ ├── repeating.json │ │ │ ├── repeating2.json │ │ │ └── summary.json │ │ ├── layout-sets.json │ │ ├── layoutWithUnknownProperties.json │ │ ├── likert/ │ │ │ ├── RuleHandler.js │ │ │ ├── Settings.json │ │ │ └── layouts/ │ │ │ └── formLayout.json │ │ └── message/ │ │ ├── RuleHandler.js │ │ ├── Settings.json │ │ └── layouts/ │ │ └── formLayout.json │ ├── Model/ │ │ ├── CSharp/ │ │ │ ├── Gitea/ │ │ │ │ ├── 3422-39646.cs │ │ │ │ ├── 3430-39615.cs │ │ │ │ ├── Brønnøysundregistrene_ReelleRettighetshavere_M.cs │ │ │ │ ├── Kursdomene_APINøkkel_M_2020-05-26_5702_34556_SERES.cs │ │ │ │ ├── Kursdomene_BekrefteBruksvilkår_M_2020-05-25_5704_34554_SERES.cs │ │ │ │ ├── Kursdomene_BliTjenesteeier_M_2020-05-25_5703_34553_SERES.cs │ │ │ │ ├── aal-vedlegg.cs │ │ │ │ ├── bokskjema.cs │ │ │ │ ├── dat-aarligmelding-bemanning.cs │ │ │ │ ├── dat-bilpleie-soknad.cs │ │ │ │ ├── dat-skjema.cs │ │ │ │ ├── dev-nill-test.cs │ │ │ │ ├── dihe-redusert-foreldrebetaling-bhg.cs │ │ │ │ ├── hi-algeskjema.cs │ │ │ │ ├── krt-1188a-1.cs │ │ │ │ ├── nbib-melding.cs │ │ │ │ ├── nsm-klareringsportalen.cs │ │ │ │ ├── skd-formueinntekt-skattemelding-v2.cs │ │ │ │ ├── skjema.cs │ │ │ │ ├── srf-fufinn-behovsendring.cs │ │ │ │ ├── srf-fufinn-behovskartleggin.cs │ │ │ │ ├── srf-melding-til-statsforvalteren.cs │ │ │ │ ├── stami-atid-databehandler-2022.cs │ │ │ │ ├── stami-mu-bestilling-2021.cs │ │ │ │ ├── stami-mu-databehandler-2021.cs │ │ │ │ ├── udi-unntak-karantenehotell-velferd.cs │ │ │ │ ├── udir-invitasjon-vfkl.cs │ │ │ │ └── udir-vfkl.cs │ │ │ ├── XsAll/ │ │ │ │ ├── ferdigattest/ │ │ │ │ │ └── v4/ │ │ │ │ │ └── ferdigattest.cs │ │ │ │ ├── igangsettingstillatelse/ │ │ │ │ │ └── v4/ │ │ │ │ │ └── igangsettingstillatelse.cs │ │ │ │ ├── midlertidigbrukstillatelse/ │ │ │ │ │ └── v4/ │ │ │ │ │ └── midlertidigbrukstillatelse.cs │ │ │ │ └── planvarsel/ │ │ │ │ └── v2/ │ │ │ │ └── planvarsel.cs │ │ │ └── melding.cs │ │ ├── Issue/ │ │ │ └── gh14544/ │ │ │ ├── CSharp/ │ │ │ │ └── simple-type-array.cs │ │ │ └── XmlSchema/ │ │ │ └── simple-type-array.xsd │ │ ├── Json/ │ │ │ ├── General/ │ │ │ │ └── ReferenceArray.json │ │ │ └── Seres/ │ │ │ └── SeresBasic.json │ │ ├── JsonSchema/ │ │ │ ├── AltinnAnnotation.json │ │ │ ├── General/ │ │ │ │ ├── Any.json │ │ │ │ ├── Attributes.json │ │ │ │ ├── BuiltinTypes.json │ │ │ │ ├── ComplexContentExtension.json │ │ │ │ ├── ComplexContentExtension_negative.json │ │ │ │ ├── ComplexContentRestriction.json │ │ │ │ ├── ComplexSchema.json │ │ │ │ ├── Definitions.json │ │ │ │ ├── ElementAnnotation.json │ │ │ │ ├── InterleavedNestedSequences.json │ │ │ │ ├── NestedArrays.json │ │ │ │ ├── NestedChoice.json │ │ │ │ ├── NestedSequence.json │ │ │ │ ├── NestedSequences.json │ │ │ │ ├── NestedWithArrayChoice.json │ │ │ │ ├── NestedWithArraySequence.json │ │ │ │ ├── NestedWithOptionalChoice.json │ │ │ │ ├── NestedWithOptionalSequence.json │ │ │ │ ├── NillableAttribute.json │ │ │ │ ├── NonXsdContextSchema.json │ │ │ │ ├── SchemaExampleWithTargetNamespace.json │ │ │ │ ├── SimpleAll.json │ │ │ │ ├── SimpleChoice.json │ │ │ │ ├── SimpleContentExtension.json │ │ │ │ ├── SimpleContentExtensionPlain.json │ │ │ │ ├── SimpleContentRestriction.json │ │ │ │ ├── SimpleSequence.json │ │ │ │ ├── SimpleSequence_with_nonCompatible_XsdTypeAndType.json │ │ │ │ ├── SimpleTypeList.json │ │ │ │ ├── SimpleTypeRestrictions.json │ │ │ │ └── StringUriFormat.json │ │ │ ├── Incompatible/ │ │ │ │ ├── InvalidReferenceSchema.json │ │ │ │ ├── OneOfAndPropertiesSchema.json │ │ │ │ └── SchemaWithEmptyObjects.json │ │ │ ├── Normalizer/ │ │ │ │ ├── normalize-collection-expected.json │ │ │ │ ├── normalize-collection.json │ │ │ │ ├── normalize-content-common-keywords.json │ │ │ │ ├── normalize-content-expected.json │ │ │ │ ├── normalize-content-no-common-keywords-expected.json │ │ │ │ ├── normalize-content-no-common-keywords.json │ │ │ │ ├── normalize-content-ref-expected.json │ │ │ │ ├── normalize-content-ref.json │ │ │ │ ├── normalize-content.json │ │ │ │ ├── normalize-keyed-collection-expected.json │ │ │ │ ├── normalize-keyed-collection.json │ │ │ │ ├── normalize-root-expected.json │ │ │ │ ├── normalize-root-ref-expected.json │ │ │ │ ├── normalize-root-ref.json │ │ │ │ └── normalize-root.json │ │ │ └── Seres/ │ │ │ ├── SeresArray.json │ │ │ ├── SeresBasicSchema.json │ │ │ ├── SeresBasicSchema_allOf.json │ │ │ ├── SeresBasicSchema_anyOf.json │ │ │ ├── SeresBasicSchema_inline.json │ │ │ ├── SeresBuiltinTypes.json │ │ │ ├── SeresComplexContentExtension.json │ │ │ ├── SeresComplexType.json │ │ │ ├── SeresNillable.json │ │ │ ├── SeresSimpleContentRestriction.json │ │ │ ├── SeresSimpleTypeRestrictions.json │ │ │ ├── SeresWithAnyAttribute.json │ │ │ ├── SeresWithAttributes.json │ │ │ └── SeresWithSpecifiedAndAnyAttributes.json │ │ ├── Metadata/ │ │ │ ├── HvemErHvem.json │ │ │ ├── RA-0678_M.json │ │ │ ├── SchemaWithTargetNamespace.json │ │ │ ├── SeresBasicSchema.json │ │ │ ├── SeresBasicSchemaWithTargetNamespace.json │ │ │ ├── SimpleStringArray.json │ │ │ ├── datamodel.json │ │ │ ├── restriction-total-digits.json │ │ │ ├── schema_4582_2000_forms_5244_42360.json │ │ │ ├── schema_4741_4280_forms_5273_41269.json │ │ │ ├── schema_4830_4000_forms_5524_41951.json │ │ │ ├── schema_5064_1_forms_5793_42882.json │ │ │ ├── schema_5222_2_forms_5909_43507.json │ │ │ └── schema_5259_1_forms_9999_50000.json │ │ ├── Xml/ │ │ │ ├── General/ │ │ │ │ └── ReferenceArray.xml │ │ │ ├── Seres/ │ │ │ │ └── SeresBasic.xml │ │ │ └── XsAll/ │ │ │ └── xsall-example-nillable-sample.xml │ │ └── XmlSchema/ │ │ ├── AltinnAnnotation.xsd │ │ ├── General/ │ │ │ ├── Any.xsd │ │ │ ├── Attributes.xsd │ │ │ ├── BuiltinTypes.xsd │ │ │ ├── ComplexContentExtension.xsd │ │ │ ├── ComplexContentRestriction.xsd │ │ │ ├── ComplexSchema.xsd │ │ │ ├── Definitions.xsd │ │ │ ├── ElementAnnotation.xsd │ │ │ ├── InterleavedNestedSequences.xsd │ │ │ ├── NestedArrays.xsd │ │ │ ├── NestedChoice.xsd │ │ │ ├── NestedSequence.xsd │ │ │ ├── NestedSequences.xsd │ │ │ ├── NestedWithArrayChoice.xsd │ │ │ ├── NestedWithArraySequence.xsd │ │ │ ├── NestedWithOptionalChoice.xsd │ │ │ ├── NestedWithOptionalSequence.xsd │ │ │ ├── NillableAttribute.xsd │ │ │ ├── Occurs_1.expected.xsd │ │ │ ├── Occurs_1.xsd │ │ │ ├── ReferenceArray.xsd │ │ │ ├── SchemaExampleWithTargetNamespace.xsd │ │ │ ├── SequenceWithGroupRef.xsd │ │ │ ├── SimpleAll.xsd │ │ │ ├── SimpleChoice.xsd │ │ │ ├── SimpleContentExtension.xsd │ │ │ ├── SimpleContentExtensionPlain.xsd │ │ │ ├── SimpleContentRestriction.fromJson.xsd │ │ │ ├── SimpleContentRestriction.xsd │ │ │ ├── SimpleInvalidNonSeresSchema.xsd │ │ │ ├── SimpleSequence.xsd │ │ │ ├── SimpleTypeList.xsd │ │ │ ├── SimpleTypeRestrictions.xsd │ │ │ ├── SimpleTypeRestrictionsExtended.xsd │ │ │ └── SimpleValidNonSeresSchema.xsd │ │ ├── Gitea/ │ │ │ ├── 3422-39646.xsd │ │ │ ├── 3430-39615.xsd │ │ │ ├── Brønnøysundregistrene_ReelleRettighetshavere_M.xsd │ │ │ ├── Kursdomene_APINøkkel_M_2020-05-26_5702_34556_SERES.xsd │ │ │ ├── Kursdomene_BekrefteBruksvilkår_M_2020-05-25_5704_34554_SERES.xsd │ │ │ ├── Kursdomene_BliTjenesteeier_M_2020-05-25_5703_34553_SERES.xsd │ │ │ ├── OED.xsd │ │ │ ├── RA-0678_M.xsd │ │ │ ├── aal-vedlegg.xsd │ │ │ ├── aal.xsd │ │ │ ├── bokskjema.xsd │ │ │ ├── brg-anonym-oppstartsveilederen.xsd │ │ │ ├── brg-oppstartsveilederen.xsd │ │ │ ├── dat-aarligmelding-bemanning.xsd │ │ │ ├── dat-asbest-soknad.xsd │ │ │ ├── dat-bilpleie-soknad.xsd │ │ │ ├── dat-skjema.xsd │ │ │ ├── dev-nill-test.xsd │ │ │ ├── dihe-redusert-foreldrebetaling-bhg.xsd │ │ │ ├── dsb-melding-om-sikkerhetsraadgiver.xsd │ │ │ ├── hi-algeskjema.xsd │ │ │ ├── krt-1188a-1.xsd │ │ │ ├── krt-3221-42265.xsd │ │ │ ├── krt-3221-45167.xsd │ │ │ ├── krt-krt-1226a-1.xsd │ │ │ ├── krt-krt-1228a-1.xsd │ │ │ ├── nbib-melding.xsd │ │ │ ├── nsm-klareringsportalen.xsd │ │ │ ├── skd-formueinntekt-skattemelding-v2.xsd │ │ │ ├── skd-sirius-skattemelding-v1.xsd │ │ │ ├── skjema.xsd │ │ │ ├── srf-fufinn-behovsendring.xsd │ │ │ ├── srf-fufinn-behovskartleggin.xsd │ │ │ ├── srf-melding-til-statsforvalteren.xsd │ │ │ ├── stami-atid-databehandler-2022.xsd │ │ │ ├── stami-mu-bestilling-2021.xsd │ │ │ ├── stami-mu-databehandler-2021.xsd │ │ │ ├── svv-transportloyvegarantie.xsd │ │ │ ├── transportloyvegarantier.xsd │ │ │ ├── udi-kjaerestebesok.xsd │ │ │ ├── udi-unntak-karantenehotell-velferd.xsd │ │ │ ├── udir-invitasjon-vfkl.xsd │ │ │ ├── udir-vfkl.xsd │ │ │ └── valg-valgkort.xsd │ │ ├── Seres/ │ │ │ ├── SeresArray.xsd │ │ │ ├── SeresBasicSchema.xsd │ │ │ ├── SeresBasicSchema_inline.xsd │ │ │ ├── SeresBuiltinTypes.xsd │ │ │ ├── SeresComplexContentExtension.xsd │ │ │ ├── SeresComplexType.xsd │ │ │ ├── SeresNillable.xsd │ │ │ ├── SeresSimpleContentRestriction.fromJson.xsd │ │ │ ├── SeresSimpleContentRestriction.xsd │ │ │ ├── SeresSimpleTypeRestrictions.xsd │ │ │ ├── SeresWithAnyAttribute.xsd │ │ │ ├── SeresWithAttributes.xsd │ │ │ └── SeresWithSpecifiedAndAnyAttributes.xsd │ │ └── XsAll/ │ │ ├── ferdigattest/ │ │ │ └── v4/ │ │ │ └── ferdigattest.xsd │ │ ├── igangsettingstillatelse/ │ │ │ └── v4/ │ │ │ └── igangsettingstillatelse.xsd │ │ ├── midlertidigbrukstillatelse/ │ │ │ └── v4/ │ │ │ └── midlertidigbrukstillatelse.xsd │ │ ├── planvarsel/ │ │ │ └── v2/ │ │ │ └── planvarsel.xsd │ │ └── xsall-example.xsd │ └── Seres/ │ ├── HvemErHvem.xml │ ├── HvemErHvem.xsd │ ├── HvemErHvem_Simple.xml │ ├── HvemErHvem_Simple.xsd │ ├── Kursdomene_HvemErHvem_M_2021-04-08_5742_34627_SERES.json │ ├── Kursdomene_HvemErHvem_M_2021-04-08_5742_34627_SERES.xml │ ├── Kursdomene_HvemErHvem_M_2021-04-08_5742_34627_SERES.xsd │ ├── SchemaWithTargetNamespace.xsd │ ├── schema_1266-42897.xsd │ ├── schema_1266-43710.xsd │ ├── schema_1266-44775.xsd │ ├── schema_3106-39629.xsd │ ├── schema_3124-39627.xsd │ ├── schema_3228-39613.xsd │ ├── schema_3238-39623.xsd │ ├── schema_3373-36491.xsd │ ├── schema_3428-39614.xsd │ ├── schema_3430-39615.xsd │ ├── schema_3473_201512_forms_3123_37927.xsd │ ├── schema_3919_2_forms_4623_39043.xsd │ ├── schema_4008_180226_forms_4186_37199.xsd │ ├── schema_4108-41505.xsd │ ├── schema_4213-39628.xsd │ ├── schema_4388-39288.xsd │ ├── schema_4527_11500_forms_5273_41269.xsd │ ├── schema_4532_1_forms_5274_41065.xsd │ ├── schema_4582_2000_forms_5244_42360.xsd │ ├── schema_4660_1_forms_2500_2500.xsd │ ├── schema_4741_4280_forms_5273_41269.xsd │ ├── schema_4830_4000_forms_5524_41951.xsd │ ├── schema_4956_1_forms_5692_42617.xsd │ ├── schema_5064_1_forms_5793_42882.xsd │ ├── schema_5222_2_forms_5909_43507.xsd │ ├── schema_5259_1_forms_9999_50000.xsd │ ├── schema_6199-44481.xsd │ ├── schema_6301-45717.xsd │ └── schema_RR-0200 Mellombalanse_M_2020-05-18_6301_45717_SERES.xsd ├── Runtime/ │ ├── devenv/ │ │ ├── .golangci.yml │ │ ├── Makefile │ │ ├── README.md │ │ ├── cmd/ │ │ │ └── fixture/ │ │ │ └── main.go │ │ ├── go.mod │ │ ├── go.sum │ │ └── pkg/ │ │ ├── cache/ │ │ │ └── cache.go │ │ ├── container/ │ │ │ ├── container.go │ │ │ ├── container_test.go │ │ │ ├── detect.go │ │ │ ├── detect_test.go │ │ │ ├── dockerapi/ │ │ │ │ ├── docker_engine_api.go │ │ │ │ └── docker_engine_api_test.go │ │ │ ├── mock/ │ │ │ │ └── mock.go │ │ │ ├── podman/ │ │ │ │ ├── podman.go │ │ │ │ └── podman_test.go │ │ │ └── types/ │ │ │ ├── progress.go │ │ │ ├── types.go │ │ │ └── types_test.go │ │ ├── flux/ │ │ │ └── flux.go │ │ ├── harness/ │ │ │ ├── harness.go │ │ │ └── tasks.go │ │ ├── helm/ │ │ │ └── helm.go │ │ ├── kindclient/ │ │ │ └── kindclient.go │ │ ├── kubernetes/ │ │ │ └── kubernetes.go │ │ ├── oci/ │ │ │ └── oci.go │ │ ├── processutil/ │ │ │ ├── attrs_other.go │ │ │ ├── attrs_windows.go │ │ │ ├── command.go │ │ │ └── command_windows_test.go │ │ ├── resource/ │ │ │ ├── container.go │ │ │ ├── container_test.go │ │ │ ├── executor.go │ │ │ ├── executor_test.go │ │ │ ├── graph.go │ │ │ ├── graph_test.go │ │ │ ├── image.go │ │ │ ├── image_test.go │ │ │ ├── network.go │ │ │ ├── network_test.go │ │ │ ├── observer.go │ │ │ ├── observer_test.go │ │ │ ├── outputs.go │ │ │ ├── outputs_test.go │ │ │ ├── plan.go │ │ │ ├── plan_test.go │ │ │ ├── resource.go │ │ │ ├── snapshot.go │ │ │ ├── status.go │ │ │ └── status_test.go │ │ └── runtimes/ │ │ ├── kind/ │ │ │ ├── cluster.go │ │ │ ├── config/ │ │ │ │ ├── certs/ │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── ca.crt │ │ │ │ │ ├── ca.key │ │ │ │ │ ├── issuer.crt │ │ │ │ │ └── issuer.key │ │ │ │ └── testserver/ │ │ │ │ ├── eur1.html │ │ │ │ ├── index.html │ │ │ │ ├── jumpbox-nginx.conf │ │ │ │ └── nginx.conf │ │ │ ├── flux.go │ │ │ ├── kind.go │ │ │ ├── kind_files_test.go │ │ │ ├── kind_test.go │ │ │ ├── manifests/ │ │ │ │ ├── base.go │ │ │ │ ├── kindconfig.go │ │ │ │ └── testserver.go │ │ │ ├── registry.go │ │ │ └── registry_test.go │ │ └── runtime.go │ ├── gateway/ │ │ ├── .config/ │ │ │ └── dotnet-tools.json │ │ ├── .csharpierignore │ │ ├── .csharpierrc.yaml │ │ ├── .dockerignore │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .golangci.yml │ │ ├── AGENTS.md │ │ ├── Altinn.Studio.Gateway.slnx │ │ ├── CLAUDE.md │ │ ├── Directory.Build.props │ │ ├── Directory.Packages.props │ │ ├── Dockerfile │ │ ├── Dockerfile.dockerignore │ │ ├── Makefile │ │ ├── cmd/ │ │ │ └── tester/ │ │ │ └── main.go │ │ ├── compose.yaml │ │ ├── global.json │ │ ├── go.mod │ │ ├── go.sum │ │ ├── infra/ │ │ │ ├── kustomize/ │ │ │ │ ├── at22/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── at23/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── at24/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── base/ │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ ├── ingressroute.yaml │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ ├── networkpolicy.yaml │ │ │ │ │ ├── role.yaml │ │ │ │ │ ├── rolebinding.yaml │ │ │ │ │ ├── secrets.yaml │ │ │ │ │ ├── service.yaml │ │ │ │ │ └── serviceaccount.yaml │ │ │ │ ├── fake-oidc/ │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ ├── jwks.json │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ ├── openid-configuration.json │ │ │ │ │ └── private-key.json │ │ │ │ ├── local/ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ └── secret.yaml │ │ │ │ ├── local-syncroot/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── prod/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── tt02/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ └── yt01/ │ │ │ │ └── kustomization.yaml │ │ │ ├── local-apps-syncroot/ │ │ │ │ ├── kustomization.yaml │ │ │ │ └── local/ │ │ │ │ ├── kustomization.yaml │ │ │ │ └── test-app.yaml │ │ │ └── local-test-app/ │ │ │ ├── kustomization.yaml │ │ │ └── local/ │ │ │ ├── configmap.yaml │ │ │ └── kustomization.yaml │ │ ├── src/ │ │ │ ├── Altinn.Studio.Gateway.Api/ │ │ │ │ ├── Altinn.Studio.Gateway.Api.csproj │ │ │ │ ├── AppJsonSerializerContext.cs │ │ │ │ ├── Application/ │ │ │ │ │ ├── Alerts/ │ │ │ │ │ │ └── HandleAlerts.cs │ │ │ │ │ ├── Deploy/ │ │ │ │ │ │ ├── HandleGetAppDeployment.cs │ │ │ │ │ │ ├── HandleIsAppDeployed.cs │ │ │ │ │ │ ├── HandleListAppDeployments.cs │ │ │ │ │ │ ├── HandleTriggerReconcile.cs │ │ │ │ │ │ └── HelmReleaseMapping.cs │ │ │ │ │ └── Metrics/ │ │ │ │ │ └── HandleMetrics.cs │ │ │ │ ├── Authentication/ │ │ │ │ │ ├── GrafanaAuthenticationExtensions.cs │ │ │ │ │ ├── GrafanaAuthenticationFilter.cs │ │ │ │ │ ├── GrafanaAuthenticationHandler.cs │ │ │ │ │ ├── IssuerSchemeCache.cs │ │ │ │ │ ├── MaskinportenAuthenticationExtensions.cs │ │ │ │ │ ├── MaskinportenClient.cs │ │ │ │ │ ├── MaskinportenContracts.cs │ │ │ │ │ ├── MaskinportenJsonSerializerContext.cs │ │ │ │ │ └── MaskinportenSettings.cs │ │ │ │ ├── Clients/ │ │ │ │ │ ├── AlertsClient/ │ │ │ │ │ │ ├── Contracts/ │ │ │ │ │ │ │ └── GrafanaAlertRule.cs │ │ │ │ │ │ ├── GrafanaClient.cs │ │ │ │ │ │ └── IAlertsClient.cs │ │ │ │ │ ├── Designer/ │ │ │ │ │ │ ├── Contracts/ │ │ │ │ │ │ │ ├── Alert.cs │ │ │ │ │ │ │ └── DeployEventRequest.cs │ │ │ │ │ │ ├── DesignerClient.cs │ │ │ │ │ │ ├── DesignerClientRegistration.cs │ │ │ │ │ │ └── StudioEnvironmentConfig.cs │ │ │ │ │ ├── K8s/ │ │ │ │ │ │ ├── FluxReconcileHelper.cs │ │ │ │ │ │ ├── HelmRelease.cs │ │ │ │ │ │ ├── HelmReleaseClient.cs │ │ │ │ │ │ ├── HelmReleaseLabelSelector.cs │ │ │ │ │ │ ├── HelmReleaseNameHelper.cs │ │ │ │ │ │ ├── KubernetesServiceRegistration.cs │ │ │ │ │ │ ├── KustomizationClient.cs │ │ │ │ │ │ ├── OciRepositoryClient.cs │ │ │ │ │ │ ├── PodsClient.cs │ │ │ │ │ │ └── StudioLabels.cs │ │ │ │ │ └── MetricsClient/ │ │ │ │ │ ├── ActiveAppsResult.cs │ │ │ │ │ ├── AzureMonitorClient.cs │ │ │ │ │ ├── Contracts/ │ │ │ │ │ │ └── AzureMonitor/ │ │ │ │ │ │ ├── AppFailedRequest.cs │ │ │ │ │ │ ├── AppMetric.cs │ │ │ │ │ │ └── FailedRequest.cs │ │ │ │ │ ├── IMetricsClient.cs │ │ │ │ │ └── logsQueryTemplate.json │ │ │ │ ├── Endpoints/ │ │ │ │ │ ├── Internal/ │ │ │ │ │ │ ├── Contracts/ │ │ │ │ │ │ │ ├── EventSeverity.cs │ │ │ │ │ │ │ ├── FluxEvent.cs │ │ │ │ │ │ │ └── ObjectReference.cs │ │ │ │ │ │ ├── FluxWebhookEndpoints.cs │ │ │ │ │ │ ├── Registration.cs │ │ │ │ │ │ └── flux-webhook.http │ │ │ │ │ ├── Local/ │ │ │ │ │ │ ├── DebugEndpoints.cs │ │ │ │ │ │ └── LocalApiExtensions.cs │ │ │ │ │ └── Public/ │ │ │ │ │ ├── AlertsEndpoints.cs │ │ │ │ │ ├── DeployEndpoints.cs │ │ │ │ │ ├── HealthEndpoints.cs │ │ │ │ │ ├── MetricsEndpoints.cs │ │ │ │ │ └── Registration.cs │ │ │ │ ├── Hosting/ │ │ │ │ │ ├── GatewayExtensions.cs │ │ │ │ │ ├── OpenTelemetryExtensions.cs │ │ │ │ │ └── PortConfiguration.cs │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Settings/ │ │ │ │ │ ├── AlertsClientSettings.cs │ │ │ │ │ ├── AltinnEnvironments.cs │ │ │ │ │ ├── GatewayContext.cs │ │ │ │ │ ├── GrafanaSettings.cs │ │ │ │ │ └── MetricsClientSettings.cs │ │ │ │ ├── Telemetry/ │ │ │ │ │ └── ServiceTelemetry.cs │ │ │ │ ├── appsettings.Development.json │ │ │ │ ├── appsettings.at22.json │ │ │ │ ├── appsettings.at23.json │ │ │ │ ├── appsettings.at24.json │ │ │ │ ├── appsettings.json │ │ │ │ ├── appsettings.local.json │ │ │ │ ├── appsettings.prod.json │ │ │ │ ├── appsettings.tt02.json │ │ │ │ └── appsettings.yt01.json │ │ │ └── Altinn.Studio.Gateway.Contracts/ │ │ │ ├── Alerts/ │ │ │ │ ├── AlertPayload.cs │ │ │ │ └── AlertRule.cs │ │ │ ├── Altinn.Studio.Gateway.Contracts.csproj │ │ │ ├── Deploy/ │ │ │ │ ├── AppDeployment.cs │ │ │ │ ├── IsAppDeployedResponse.cs │ │ │ │ └── TriggerReconcileRequest.cs │ │ │ └── Metrics/ │ │ │ ├── AppActivityMetricsResponse.cs │ │ │ ├── AppErrorMetric.cs │ │ │ ├── AppHealthMetric.cs │ │ │ ├── AppMetric.cs │ │ │ ├── AzureUrl.cs │ │ │ └── ErrorMetric.cs │ │ └── tests/ │ │ └── Altinn.Studio.Gateway.Api.Tests/ │ │ ├── Altinn.Studio.Gateway.Api.Tests.csproj │ │ ├── AppActivityMetricsTests.cs │ │ ├── AuthenticationIntegrationTests.cs │ │ ├── FakeMaskinportenTokenGenerator.cs │ │ ├── FluxApi.cs │ │ ├── FluxEventIntegrationTests.cs │ │ ├── FluxReconcileHelperTests.cs │ │ ├── HelmReleaseTests.cs │ │ ├── IsAppDeployedIntegrationTests.cs │ │ ├── KubernetesNetworkPolicyTests.cs │ │ ├── Models/ │ │ │ ├── HelmRelease.cs │ │ │ └── HelmRepository.cs │ │ ├── TriggerReconcileIntegrationTests.cs │ │ └── xunit.runner.json │ ├── kubernetes-wrapper/ │ │ ├── .config/ │ │ │ └── dotnet-tools.json │ │ ├── .csharpierignore │ │ ├── .csharpierrc.yaml │ │ ├── .dockerignore │ │ ├── .editorconfig │ │ ├── Altinn.Studio.KubernetesWrapper.slnx │ │ ├── Directory.Build.props │ │ ├── Directory.Packages.props │ │ ├── Makefile │ │ ├── README.md │ │ ├── global.json │ │ ├── infra/ │ │ │ └── kustomize/ │ │ │ ├── base/ │ │ │ │ ├── deployment.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── role.yaml │ │ │ │ ├── rolebinding.yaml │ │ │ │ └── serviceaccount.yaml │ │ │ ├── runtime/ │ │ │ │ ├── env/ │ │ │ │ │ ├── at22/ │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ ├── at23/ │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ ├── at24/ │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ ├── prod/ │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ ├── tt02/ │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ └── yt01/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── overlay/ │ │ │ │ ├── deployment-name-patch.yaml │ │ │ │ ├── deployment-selector-patch.yaml │ │ │ │ ├── image-annotation-patch.yaml │ │ │ │ ├── ingressroute.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── middleware.yaml │ │ │ │ ├── otel-env-patch.yaml │ │ │ │ └── service.yaml │ │ │ └── studio/ │ │ │ ├── env/ │ │ │ │ ├── dev/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── prod/ │ │ │ │ │ └── kustomization.yaml │ │ │ │ └── staging/ │ │ │ │ └── kustomization.yaml │ │ │ ├── kustomization.yaml │ │ │ └── overlay/ │ │ │ ├── alert.yaml │ │ │ ├── ingress.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── otel-env-patch.yaml │ │ │ └── service.yaml │ │ ├── integrationtests/ │ │ │ ├── curl-test.sh │ │ │ └── kubewrapper.yaml │ │ ├── src/ │ │ │ ├── Altinn.Studio.KubernetesWrapper.csproj │ │ │ ├── Configuration/ │ │ │ │ └── GeneralSettings.cs │ │ │ ├── Controllers/ │ │ │ │ ├── DaemonSetsController.cs │ │ │ │ ├── DeploymentsController.cs │ │ │ │ └── ErrorController.cs │ │ │ ├── Dockerfile │ │ │ ├── Hosting/ │ │ │ │ └── OpenTelemetryExtensions.cs │ │ │ ├── Models/ │ │ │ │ ├── DaemonSet.cs │ │ │ │ ├── DeployedResource.cs │ │ │ │ ├── Deployment.cs │ │ │ │ └── ResourceType.cs │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Services/ │ │ │ │ ├── Implementation/ │ │ │ │ │ └── KubernetesApiWrapper.cs │ │ │ │ └── Interfaces/ │ │ │ │ └── IKubernetesAPIWrapper.cs │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ └── tests/ │ │ └── Altinn.Studio.KubernetesWrapper.Tests/ │ │ ├── Altinn.Studio.KubernetesWrapper.Tests.csproj │ │ ├── ModuleInitializer.cs │ │ ├── OpenApiSnapshotTests.OpenApiDocument_ShouldMatchSnapshot.verified.txt │ │ └── OpenApiSnapshotTests.cs │ ├── localtest/ │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ ├── launch.json │ │ │ └── tasks.json │ │ ├── Dockerfile │ │ ├── Dockerfile.dockerignore │ │ ├── LocalTest.sln │ │ ├── Makefile │ │ ├── README.md │ │ ├── global.json │ │ ├── infra/ │ │ │ ├── grafana-dashboards/ │ │ │ │ ├── app.json │ │ │ │ ├── aspnetcore-endpoint.json │ │ │ │ └── aspnetcore.json │ │ │ ├── grafana-dashboards.yaml │ │ │ ├── grafana-datasources.yaml │ │ │ ├── loki.yaml │ │ │ ├── mimir.yaml │ │ │ ├── otel-collector.yaml │ │ │ ├── tempo.yaml │ │ │ └── workflow-engine/ │ │ │ ├── pgadmin-servers.json │ │ │ └── postgres-init.sql │ │ ├── k6/ │ │ │ └── loadtest.sample.js │ │ ├── package.json │ │ ├── scripts/ │ │ │ └── OpenAppPortInHyperVFirewall.ps1 │ │ ├── src/ │ │ │ ├── Clients/ │ │ │ │ ├── CdnAltinnOrgs/ │ │ │ │ │ ├── AltinnOrgsClient.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── IOndemandClient.cs │ │ │ │ ├── IPartiesWithInstancesClient.cs │ │ │ │ ├── OnDemandClient.cs │ │ │ │ └── PartiesWithInstancesClient.cs │ │ │ ├── Configuration/ │ │ │ │ ├── Authentication/ │ │ │ │ │ └── GeneralSettings.cs │ │ │ │ ├── GeneralSettings.cs │ │ │ │ ├── LocalPlatformSettings.cs │ │ │ │ ├── Storage/ │ │ │ │ │ └── GeneralSettings.cs │ │ │ │ └── WolverineSettings.cs │ │ │ ├── Constants/ │ │ │ │ └── Authorization/ │ │ │ │ ├── AuthzConstants.cs │ │ │ │ └── XacmlRequestAttribute.cs │ │ │ ├── Controllers/ │ │ │ │ ├── AccessManagement/ │ │ │ │ │ └── AppsInstanceDelegationController.cs │ │ │ │ ├── Authentication/ │ │ │ │ │ ├── AuthenticationController.cs │ │ │ │ │ └── OpenIdController.cs │ │ │ │ ├── Authorization/ │ │ │ │ │ ├── DecisionController.cs │ │ │ │ │ ├── PartiesController.cs │ │ │ │ │ └── RolesController.cs │ │ │ │ ├── DebugUsersController.cs │ │ │ │ ├── Events/ │ │ │ │ │ ├── AppController.cs │ │ │ │ │ ├── EventsController.cs │ │ │ │ │ └── SubscriptionController.cs │ │ │ │ ├── FrontendVersionController.cs │ │ │ │ ├── HomeController.cs │ │ │ │ ├── InfraController.cs │ │ │ │ ├── Profile/ │ │ │ │ │ └── UsersController.cs │ │ │ │ ├── Register/ │ │ │ │ │ ├── OrganizationsController.cs │ │ │ │ │ ├── PartiesController.cs │ │ │ │ │ └── PersonsController.cs │ │ │ │ ├── ResourceRegistry/ │ │ │ │ │ └── ResourceController.cs │ │ │ │ ├── Storage/ │ │ │ │ │ ├── ApplicationsController.cs │ │ │ │ │ ├── DataController.cs │ │ │ │ │ ├── DataLockController.cs │ │ │ │ │ ├── InstanceEventsController.cs │ │ │ │ │ ├── InstanceLockController.cs │ │ │ │ │ ├── InstancesController.cs │ │ │ │ │ ├── ProcessController.cs │ │ │ │ │ ├── SignController.cs │ │ │ │ │ └── TextsController.cs │ │ │ │ ├── StorageExplorerController.cs │ │ │ │ ├── TenorUsersController.cs │ │ │ │ └── TestAuthenticationController.cs │ │ │ ├── Extensions/ │ │ │ │ ├── ResourceRegistry/ │ │ │ │ │ └── StringExtensions.cs │ │ │ │ └── Storage/ │ │ │ │ ├── ContentDispositionHeaderValueExtensions.cs │ │ │ │ ├── DataTypeExtensions.cs │ │ │ │ └── StringExtensions.cs │ │ │ ├── Filters/ │ │ │ │ ├── CookieDomainRewriter.cs │ │ │ │ ├── EnvProxy.cs │ │ │ │ ├── FrontendVersionOverride.cs │ │ │ │ ├── HostProxy.cs │ │ │ │ ├── ProxyMiddleware.cs │ │ │ │ └── ValidateModelStateAttribute.cs │ │ │ ├── Helpers/ │ │ │ │ ├── ContentDispositionHeaderValueExtensions.cs │ │ │ │ ├── SortedHtmlDirectoryFormatter.cs │ │ │ │ ├── Storage/ │ │ │ │ │ ├── AuthorizationHelper.cs │ │ │ │ │ ├── ClaimsPrincipalExtensions.cs │ │ │ │ │ ├── DataElementHelper.cs │ │ │ │ │ ├── DateTimeHelper.cs │ │ │ │ │ ├── DisableFormValueModelBindingAttribute.cs │ │ │ │ │ ├── InstanceHelper.cs │ │ │ │ │ ├── LanguageHelper.cs │ │ │ │ │ ├── MessageBoxInstance.cs │ │ │ │ │ ├── MultipartRequestHelper.cs │ │ │ │ │ ├── OrgDataContext.cs │ │ │ │ │ ├── ProcessHelper.cs │ │ │ │ │ ├── QueryResponse.cs │ │ │ │ │ ├── SblInstanceEvent.cs │ │ │ │ │ └── StringHelper.cs │ │ │ │ └── StringExtensions.cs │ │ │ ├── JWTValidationCert.cer │ │ │ ├── LocalTest.csproj │ │ │ ├── Models/ │ │ │ │ ├── Authentication/ │ │ │ │ │ ├── AuthenticationTypes.cs │ │ │ │ │ ├── CustomClaim.cs │ │ │ │ │ ├── DiscoveryDocument.cs │ │ │ │ │ ├── JwkDocument.cs │ │ │ │ │ └── JwksDocument.cs │ │ │ │ ├── Authorization/ │ │ │ │ │ ├── Role.cs │ │ │ │ │ ├── XacmlRequestApiModel.cs │ │ │ │ │ ├── XacmlRequestApiModelBinder.cs │ │ │ │ │ ├── XacmlRequestApiModelBinderProvider.cs │ │ │ │ │ └── XacmlResourceAttributes.cs │ │ │ │ ├── ErrorViewModel.cs │ │ │ │ ├── Events/ │ │ │ │ │ ├── CloudEvent.cs │ │ │ │ │ ├── ServiceError.cs │ │ │ │ │ ├── Subscription.cs │ │ │ │ │ └── SubscriptionRequestModel.cs │ │ │ │ ├── FrontendVersion.cs │ │ │ │ ├── InstanceLock.cs │ │ │ │ ├── LocalFrontendInfo.cs │ │ │ │ ├── LockToken.cs │ │ │ │ ├── PersonLookupIdentifiers.cs │ │ │ │ ├── ResourceRegistry/ │ │ │ │ │ ├── CompetentAuthority.cs │ │ │ │ │ ├── Keyword.cs │ │ │ │ │ ├── ReferenceSource.cs │ │ │ │ │ ├── ReferenceType.cs │ │ │ │ │ ├── ResourceReference.cs │ │ │ │ │ ├── ResourceSearch.cs │ │ │ │ │ ├── ResourceType.cs │ │ │ │ │ └── ServiceResource.cs │ │ │ │ ├── ServiceError.cs │ │ │ │ ├── StartAppModel.cs │ │ │ │ ├── Storage/ │ │ │ │ │ ├── FileScanRequest.cs │ │ │ │ │ ├── PartyType.cs │ │ │ │ │ └── RepositoryException.cs │ │ │ │ ├── TenorViewModel.cs │ │ │ │ ├── TokensModel.cs │ │ │ │ └── UserAuthenticationModel.cs │ │ │ ├── Notifications/ │ │ │ │ ├── .editorconfig │ │ │ │ ├── API/ │ │ │ │ │ ├── Controllers/ │ │ │ │ │ │ ├── EmailNotificationOrdersController.cs │ │ │ │ │ │ └── SmsNotificationOrdersController.cs │ │ │ │ │ ├── Extensions/ │ │ │ │ │ │ ├── HttpContextExtensions.cs │ │ │ │ │ │ └── ResourceLinkExtensions.cs │ │ │ │ │ ├── Mappers/ │ │ │ │ │ │ ├── NotificationOrderRequestResponseMapper.cs │ │ │ │ │ │ └── OrderMapper.cs │ │ │ │ │ ├── Models/ │ │ │ │ │ │ ├── BaseNotificationOrderExt.cs │ │ │ │ │ │ ├── EmailContentTypeExt.cs │ │ │ │ │ │ ├── EmailNotificationOrderRequestExt.cs │ │ │ │ │ │ ├── EmailNotificationSummaryExt.cs │ │ │ │ │ │ ├── EmailNotificationWithResultExt.cs │ │ │ │ │ │ ├── EmailTemplateExt.cs │ │ │ │ │ │ ├── IBaseNotificationOrderExt.cs │ │ │ │ │ │ ├── NotificationChannelExt.cs │ │ │ │ │ │ ├── NotificationOrderExt.cs │ │ │ │ │ │ ├── NotificationOrderListExt.cs │ │ │ │ │ │ ├── NotificationOrderRequestBaseExt.cs │ │ │ │ │ │ ├── NotificationOrderRequestResponseExt.cs │ │ │ │ │ │ ├── NotificationOrderWithStatusExt.cs │ │ │ │ │ │ ├── NotificationResourceLinksExt.cs │ │ │ │ │ │ ├── NotificationStatusExt.cs │ │ │ │ │ │ ├── NotificationsStatusSummaryExt.cs │ │ │ │ │ │ ├── OrderIdExt.cs │ │ │ │ │ │ ├── OrderResourceLinksExt.cs │ │ │ │ │ │ ├── RecipientExt.cs │ │ │ │ │ │ ├── RecipientLookupResultExt.cs │ │ │ │ │ │ ├── SmsNotificationOrderRequestExt.cs │ │ │ │ │ │ ├── SmsNotificationSummaryExt.cs │ │ │ │ │ │ ├── SmsNotificationWithResultExt.cs │ │ │ │ │ │ ├── SmsTemplateExt.cs │ │ │ │ │ │ └── StatusExt.cs │ │ │ │ │ └── Validators/ │ │ │ │ │ ├── EmailNotificationOrderRequestValidator.cs │ │ │ │ │ ├── SmsNotificationOrderRequestValidator.cs │ │ │ │ │ ├── ValidationConstants.cs │ │ │ │ │ └── ValidationResultExtensions.cs │ │ │ │ ├── Core/ │ │ │ │ │ ├── Configuration/ │ │ │ │ │ │ └── NotificationOrderConfig.cs │ │ │ │ │ ├── Enums/ │ │ │ │ │ │ ├── AddressType.cs │ │ │ │ │ │ ├── AltinnServiceUpdateSchema.cs │ │ │ │ │ │ ├── EmailContentType.cs │ │ │ │ │ │ ├── EmailNotificationResultType.cs │ │ │ │ │ │ ├── IResultType.cs │ │ │ │ │ │ ├── NotificationChannel.cs │ │ │ │ │ │ ├── NotificationTemplateType.cs │ │ │ │ │ │ ├── OrderProcessingStatus.cs │ │ │ │ │ │ └── SmsNotificationResultType.cs │ │ │ │ │ ├── Helpers/ │ │ │ │ │ │ └── MobileNumberHelper.cs │ │ │ │ │ ├── Integrations/ │ │ │ │ │ │ ├── IAuthorizationService.cs │ │ │ │ │ │ ├── IProfileClient.cs │ │ │ │ │ │ └── IRegisterClient.cs │ │ │ │ │ ├── JsonSerializerOptionsProvider.cs │ │ │ │ │ ├── Models/ │ │ │ │ │ │ ├── Address/ │ │ │ │ │ │ │ ├── EmailAddressPoint.cs │ │ │ │ │ │ │ ├── IAddressPoint.cs │ │ │ │ │ │ │ └── SmsAddressPoint.cs │ │ │ │ │ │ ├── AltinnServiceUpdate/ │ │ │ │ │ │ │ ├── GenericServiceUpdate.cs │ │ │ │ │ │ │ └── ResourceLimitExceeded.cs │ │ │ │ │ │ ├── ContactPoints/ │ │ │ │ │ │ │ ├── OrganizationContactPoints.cs │ │ │ │ │ │ │ └── UserContactPoints.cs │ │ │ │ │ │ ├── Creator.cs │ │ │ │ │ │ ├── Email.cs │ │ │ │ │ │ ├── NotificationTemplate/ │ │ │ │ │ │ │ ├── EmailTemplate.cs │ │ │ │ │ │ │ ├── INotificationTemplate.cs │ │ │ │ │ │ │ └── SmsTemplate.cs │ │ │ │ │ │ ├── Orders/ │ │ │ │ │ │ │ ├── IBaseNotificationOrder.cs │ │ │ │ │ │ │ ├── NotificationOrder.cs │ │ │ │ │ │ │ ├── NotificationOrderRequest.cs │ │ │ │ │ │ │ ├── NotificationOrderRequestResponse.cs │ │ │ │ │ │ │ └── NotificationOrderWithStatus.cs │ │ │ │ │ │ ├── Recipient.cs │ │ │ │ │ │ ├── Recipients/ │ │ │ │ │ │ │ ├── EmailRecipient.cs │ │ │ │ │ │ │ └── SmsRecipient.cs │ │ │ │ │ │ └── Sms.cs │ │ │ │ │ ├── Persistence/ │ │ │ │ │ │ └── IOrderRepository.cs │ │ │ │ │ ├── Services/ │ │ │ │ │ │ ├── ContactPointService.cs │ │ │ │ │ │ ├── DateTimeService.cs │ │ │ │ │ │ ├── GuidService.cs │ │ │ │ │ │ ├── Interfaces/ │ │ │ │ │ │ │ ├── IContactPointService.cs │ │ │ │ │ │ │ ├── IDateTimeService.cs │ │ │ │ │ │ │ ├── IGuidService.cs │ │ │ │ │ │ │ └── IOrderRequestService.cs │ │ │ │ │ │ └── OrderRequestService.cs │ │ │ │ │ └── Shared/ │ │ │ │ │ ├── Result.cs │ │ │ │ │ └── ServiceError.cs │ │ │ │ ├── LocalTestNotifications/ │ │ │ │ │ ├── LocalAuthorizationService.cs │ │ │ │ │ ├── LocalOrderRepository.cs │ │ │ │ │ ├── LocalProfileClient.cs │ │ │ │ │ ├── LocalRegisterClient.cs │ │ │ │ │ └── NotificationsServiceExtentions.cs │ │ │ │ └── README.md │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Services/ │ │ │ │ ├── AccessManagement/ │ │ │ │ │ └── LocalInstanceDelegationsRepository.cs │ │ │ │ ├── Authentication/ │ │ │ │ │ ├── Implementation/ │ │ │ │ │ │ ├── AuthenticationService.cs │ │ │ │ │ │ └── TestAuthenticationService.cs │ │ │ │ │ └── Interface/ │ │ │ │ │ └── IAuthentication.cs │ │ │ │ ├── Authorization/ │ │ │ │ │ ├── Constants/ │ │ │ │ │ │ └── AltinnXacmlConstants.cs │ │ │ │ │ ├── Implementation/ │ │ │ │ │ │ ├── ClaimsService.cs │ │ │ │ │ │ ├── ContextHandler.cs │ │ │ │ │ │ ├── PartiesService.cs │ │ │ │ │ │ ├── PolicyInformationRepository.cs │ │ │ │ │ │ ├── PolicyRetrievalPoint.cs │ │ │ │ │ │ └── RolesWrapper.cs │ │ │ │ │ └── Interface/ │ │ │ │ │ ├── IClaims.cs │ │ │ │ │ ├── IParties.cs │ │ │ │ │ ├── IPolicyInformationRepository.cs │ │ │ │ │ ├── IPolicyRetrievalPoint.cs │ │ │ │ │ └── IRoles.cs │ │ │ │ ├── Events/ │ │ │ │ │ ├── Implementation/ │ │ │ │ │ │ ├── EventsRepository.cs │ │ │ │ │ │ └── SubscriptionService.cs │ │ │ │ │ ├── Interface/ │ │ │ │ │ │ ├── IEventsRepository.cs │ │ │ │ │ │ └── ISubscriptionService.cs │ │ │ │ │ └── Mappers/ │ │ │ │ │ └── SubscriptionMapper.cs │ │ │ │ ├── LocalApp/ │ │ │ │ │ ├── Implementation/ │ │ │ │ │ │ └── LocalAppHttp.cs │ │ │ │ │ ├── Interface/ │ │ │ │ │ │ └── ILocalApp.cs │ │ │ │ │ └── Models/ │ │ │ │ │ └── ApplicationMetadata.cs │ │ │ │ ├── LocalFrontend/ │ │ │ │ │ ├── Implementation/ │ │ │ │ │ │ └── LocalFrontendService.cs │ │ │ │ │ └── Interface/ │ │ │ │ │ └── ILocalFrontendService.cs │ │ │ │ ├── Profile/ │ │ │ │ │ ├── Implementation/ │ │ │ │ │ │ └── UserProfilesWrapper.cs │ │ │ │ │ └── Interface/ │ │ │ │ │ └── IUserProfiles.cs │ │ │ │ ├── Register/ │ │ │ │ │ ├── Implementation/ │ │ │ │ │ │ ├── OrganizationsWrapper.cs │ │ │ │ │ │ ├── PartiesWrapper.cs │ │ │ │ │ │ ├── PersonLookupService.cs │ │ │ │ │ │ ├── PersonLookupSettings.cs │ │ │ │ │ │ ├── PersonsWrapper.cs │ │ │ │ │ │ ├── StringExtensions.cs │ │ │ │ │ │ └── TooManyFailedLookupsException.cs │ │ │ │ │ └── Interface/ │ │ │ │ │ ├── IOrganizations.cs │ │ │ │ │ ├── IParties.cs │ │ │ │ │ ├── IPersonLookup.cs │ │ │ │ │ └── IPersons.cs │ │ │ │ ├── ResourceRegistry/ │ │ │ │ │ ├── IPolicyRepository.cs │ │ │ │ │ ├── IResourceRegistry.cs │ │ │ │ │ ├── IResourceRegistryRepository.cs │ │ │ │ │ ├── PolicyRepositoryMock.cs │ │ │ │ │ ├── RegisterResourceRepositoryMock.cs │ │ │ │ │ └── ResourceRegistryService.cs │ │ │ │ ├── Storage/ │ │ │ │ │ ├── Implementation/ │ │ │ │ │ │ ├── ApplicationRepository.cs │ │ │ │ │ │ ├── ApplicationService.cs │ │ │ │ │ │ ├── AsyncLock.cs │ │ │ │ │ │ ├── AuthorizationService.cs │ │ │ │ │ │ ├── BlobRepository.cs │ │ │ │ │ │ ├── ClaimsPrincipalProvider.cs │ │ │ │ │ │ ├── DataRepository.cs │ │ │ │ │ │ ├── DataService.cs │ │ │ │ │ │ ├── InstanceAndEventsRepository.cs │ │ │ │ │ │ ├── InstanceEventRepository.cs │ │ │ │ │ │ ├── InstanceEventService.cs │ │ │ │ │ │ ├── InstanceLockRepository.cs │ │ │ │ │ │ ├── InstanceQueryParameters.cs │ │ │ │ │ │ ├── InstanceQueryResponse.cs │ │ │ │ │ │ ├── InstanceRepository.cs │ │ │ │ │ │ ├── ProcessAuthorizer.cs │ │ │ │ │ │ ├── RegisterService.cs │ │ │ │ │ │ ├── SigningService.cs │ │ │ │ │ │ ├── StorageAccessHandler.cs │ │ │ │ │ │ └── TextRepository.cs │ │ │ │ │ ├── InstanceLockResult.cs │ │ │ │ │ └── Interface/ │ │ │ │ │ ├── IApplicationRepository.cs │ │ │ │ │ ├── IApplicationService.cs │ │ │ │ │ ├── IAuthorization.cs │ │ │ │ │ ├── IBlobRepository.cs │ │ │ │ │ ├── IClaimsPrincipalProvider.cs │ │ │ │ │ ├── IDataRepository.cs │ │ │ │ │ ├── IDataService.cs │ │ │ │ │ ├── IInstanceAndEventsRepository.cs │ │ │ │ │ ├── IInstanceEventRepository.cs │ │ │ │ │ ├── IInstanceEventService.cs │ │ │ │ │ ├── IInstanceLockRepository.cs │ │ │ │ │ ├── IInstanceRepository.cs │ │ │ │ │ ├── IProcessAuthorizer.cs │ │ │ │ │ ├── IRegisterService.cs │ │ │ │ │ ├── ISigningService.cs │ │ │ │ │ └── ITextRepository.cs │ │ │ │ ├── Tenor/ │ │ │ │ │ ├── Models/ │ │ │ │ │ │ ├── BrregErFr.cs │ │ │ │ │ │ └── Freg.cs │ │ │ │ │ └── TenorDataReader.cs │ │ │ │ └── TestData/ │ │ │ │ ├── AppTestDataModel.cs │ │ │ │ ├── TestDataDiskReader.cs │ │ │ │ ├── TestDataMerger.cs │ │ │ │ ├── TestDataModel.cs │ │ │ │ └── TestDataService.cs │ │ │ ├── Startup.cs │ │ │ ├── Tunnel/ │ │ │ │ └── AppTunnelClient.cs │ │ │ ├── Views/ │ │ │ │ ├── FrontendVersion/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── Home/ │ │ │ │ │ ├── Index.cshtml │ │ │ │ │ └── Tokens.cshtml │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Error.cshtml │ │ │ │ │ ├── _Layout.cshtml │ │ │ │ │ └── _ValidationScriptsPartial.cshtml │ │ │ │ ├── StorageExplorer/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── TenorUsers/ │ │ │ │ │ └── Index.cshtml │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _ViewStart.cshtml │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ ├── jwtselfsignedcert.pfx │ │ │ └── wwwroot/ │ │ │ └── localtestresources/ │ │ │ ├── css/ │ │ │ │ └── site.css │ │ │ ├── js/ │ │ │ │ └── site.js │ │ │ └── lib/ │ │ │ ├── bootstrap/ │ │ │ │ └── LICENSE │ │ │ ├── jquery/ │ │ │ │ └── LICENSE.txt │ │ │ ├── jquery-validation/ │ │ │ │ └── LICENSE.md │ │ │ └── jquery-validation-unobtrusive/ │ │ │ ├── LICENSE.txt │ │ │ └── jquery.validate.unobtrusive.js │ │ └── testdata/ │ │ ├── Profile/ │ │ │ └── User/ │ │ │ ├── 1001.json │ │ │ ├── 1002.json │ │ │ ├── 1003.json │ │ │ ├── 1004.json │ │ │ ├── 12345.json │ │ │ ├── 1337.json │ │ │ ├── 2001.json │ │ │ └── 2002.json │ │ ├── Register/ │ │ │ ├── Org/ │ │ │ │ ├── 043871668.json │ │ │ │ ├── 405003309.json │ │ │ │ ├── 897069631.json │ │ │ │ ├── 897069650.json │ │ │ │ ├── 897069651.json │ │ │ │ ├── 897069652.json │ │ │ │ ├── 897069653.json │ │ │ │ ├── 900000001.json │ │ │ │ ├── 910423185.json │ │ │ │ ├── 910423495.json │ │ │ │ ├── 910457292.json │ │ │ │ ├── 910471120.json │ │ │ │ └── 950474084.json │ │ │ ├── Party/ │ │ │ │ ├── 500000.json │ │ │ │ ├── 500001.json │ │ │ │ ├── 500002.json │ │ │ │ ├── 500003.json │ │ │ │ ├── 500004.json │ │ │ │ ├── 500005.json │ │ │ │ ├── 500600.json │ │ │ │ ├── 500700.json │ │ │ │ ├── 500800.json │ │ │ │ ├── 500801.json │ │ │ │ ├── 500802.json │ │ │ │ ├── 501337.json │ │ │ │ ├── 510001.json │ │ │ │ ├── 510002.json │ │ │ │ ├── 510003.json │ │ │ │ ├── 510004.json │ │ │ │ ├── 512001.json │ │ │ │ ├── 512002.json │ │ │ │ └── 512345.json │ │ │ └── Person/ │ │ │ ├── 01017512345.json │ │ │ ├── 01039012345.json │ │ │ ├── 01899699001.json │ │ │ ├── 01899699552.json │ │ │ ├── 08829698278.json │ │ │ └── 17858296439.json │ │ └── authorization/ │ │ ├── claims/ │ │ │ ├── 12345.json │ │ │ └── 1337.json │ │ ├── partylist/ │ │ │ ├── 1001.json │ │ │ ├── 1002.json │ │ │ ├── 1003.json │ │ │ ├── 1004.json │ │ │ ├── 12345.json │ │ │ ├── 1337.json │ │ │ ├── 2001.json │ │ │ └── 2002.json │ │ ├── resources/ │ │ │ ├── Appid_119.json │ │ │ ├── Appid_120.json │ │ │ ├── Appid_122.json │ │ │ ├── Appid_123.json │ │ │ ├── Appid_124.json │ │ │ ├── Appid_125.json │ │ │ ├── Appid_126.json │ │ │ ├── Appid_127.json │ │ │ ├── Appid_128.json │ │ │ ├── Appid_129.json │ │ │ ├── Appid_130.json │ │ │ ├── Appid_132.json │ │ │ ├── Appid_133.json │ │ │ ├── Appid_134.json │ │ │ ├── Appid_136.json │ │ │ ├── Appid_137.json │ │ │ ├── Appid_138.json │ │ │ ├── Appid_139.json │ │ │ ├── Appid_142.json │ │ │ ├── Appid_144.json │ │ │ ├── Appid_145.json │ │ │ ├── Appid_147.json │ │ │ ├── Appid_148.json │ │ │ ├── Appid_150.json │ │ │ ├── Appid_153.json │ │ │ ├── Appid_154.json │ │ │ ├── Appid_155.json │ │ │ ├── Appid_164.json │ │ │ ├── Appid_168.json │ │ │ ├── Appid_178.json │ │ │ ├── Appid_179.json │ │ │ ├── Appid_180.json │ │ │ ├── Appid_181.json │ │ │ ├── Appid_182.json │ │ │ ├── Appid_184.json │ │ │ ├── Appid_185.json │ │ │ ├── Appid_191.json │ │ │ ├── Appid_192.json │ │ │ ├── Appid_193.json │ │ │ ├── Appid_196.json │ │ │ ├── Appid_197.json │ │ │ ├── Appid_198.json │ │ │ ├── Appid_199.json │ │ │ ├── Appid_200.json │ │ │ ├── Appid_201.json │ │ │ ├── Appid_202.json │ │ │ ├── Appid_203.json │ │ │ ├── Appid_204.json │ │ │ ├── Appid_205.json │ │ │ ├── Appid_206.json │ │ │ ├── Appid_207.json │ │ │ ├── Appid_208.json │ │ │ ├── Appid_209.json │ │ │ ├── Appid_210.json │ │ │ ├── Appid_211.json │ │ │ ├── Appid_212.json │ │ │ ├── Appid_213.json │ │ │ ├── Appid_214.json │ │ │ ├── Appid_215.json │ │ │ ├── Appid_216.json │ │ │ ├── Appid_217.json │ │ │ ├── Appid_218.json │ │ │ ├── Appid_219.json │ │ │ ├── Appid_220.json │ │ │ ├── Appid_221.json │ │ │ ├── Appid_222.json │ │ │ ├── Appid_223.json │ │ │ ├── Appid_400.json │ │ │ ├── Appid_401.json │ │ │ ├── Appid_402.json │ │ │ ├── Appid_403.json │ │ │ ├── Appid_43.json │ │ │ ├── altinn_access_management.json │ │ │ ├── nav_tiltakAvtaleOmArbeidstrening.json │ │ │ └── policies/ │ │ │ ├── altinn_keyrole_access.xml │ │ │ └── altinn_maskinporten_scope_delegation.xml │ │ ├── roles/ │ │ │ ├── User_1001/ │ │ │ │ ├── party_500000/ │ │ │ │ │ └── roles.json │ │ │ │ └── party_510001/ │ │ │ │ └── roles.json │ │ │ ├── User_1002/ │ │ │ │ ├── party_500000/ │ │ │ │ │ └── roles.json │ │ │ │ └── party_510002/ │ │ │ │ └── roles.json │ │ │ ├── User_1003/ │ │ │ │ └── party_510003/ │ │ │ │ └── roles.json │ │ │ ├── User_1004/ │ │ │ │ └── party_510004/ │ │ │ │ └── roles.json │ │ │ ├── User_12345/ │ │ │ │ └── party_512345/ │ │ │ │ └── roles.json │ │ │ ├── User_1337/ │ │ │ │ ├── party_500000/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500001/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500002/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500003/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500004/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500600/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500700/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500800/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500801/ │ │ │ │ │ └── roles.json │ │ │ │ ├── party_500802/ │ │ │ │ │ └── roles.json │ │ │ │ └── party_501337/ │ │ │ │ └── roles.json │ │ │ ├── User_2001/ │ │ │ │ ├── party_500000/ │ │ │ │ │ └── roles.json │ │ │ │ └── party_512001/ │ │ │ │ └── roles.json │ │ │ └── User_2002/ │ │ │ ├── party_500000/ │ │ │ │ └── roles.json │ │ │ └── party_512002/ │ │ │ └── roles.json │ │ └── systems/ │ │ └── 913312465_sbs/ │ │ ├── system.json │ │ └── systemusers/ │ │ └── 950474084.json │ ├── operator/ │ │ ├── .dockerignore │ │ ├── .editorconfig │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── .golangci.yml │ │ ├── .vscode/ │ │ │ ├── extensions.json │ │ │ ├── launch.json │ │ │ └── settings.json │ │ ├── AGENTS.md │ │ ├── CLAUDE.md │ │ ├── CONTRIBUTING.md │ │ ├── Dockerfile │ │ ├── Dockerfile.fakes │ │ ├── Makefile │ │ ├── PROJECT │ │ ├── README.md │ │ ├── altinn-studio-operator.sln │ │ ├── api/ │ │ │ └── v1alpha1/ │ │ │ ├── groupversion_info.go │ │ │ ├── maskinportenclient_types.go │ │ │ └── zz_generated.deepcopy.go │ │ ├── cmd/ │ │ │ ├── fakes/ │ │ │ │ └── main.go │ │ │ ├── main.go │ │ │ ├── tester/ │ │ │ │ └── main.go │ │ │ └── utils/ │ │ │ └── main.go │ │ ├── config/ │ │ │ ├── at22/ │ │ │ │ ├── kustomization.yaml │ │ │ │ └── operator-config-patch.yaml │ │ │ ├── at23/ │ │ │ │ ├── kustomization.yaml │ │ │ │ └── operator-config-patch.yaml │ │ │ ├── at24/ │ │ │ │ ├── kustomization.yaml │ │ │ │ └── operator-config-patch.yaml │ │ │ ├── crd/ │ │ │ │ ├── bases/ │ │ │ │ │ └── resources.altinn.studio_maskinportenclients.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ └── kustomizeconfig.yaml │ │ │ ├── default/ │ │ │ │ ├── kustomization.yaml │ │ │ │ └── operator-config.yaml │ │ │ ├── local-minimal/ │ │ │ │ ├── fakes.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── localtestapp.yaml │ │ │ │ └── operator-config-patch.yaml │ │ │ ├── local-syncroot-minimal/ │ │ │ │ └── kustomization.yaml │ │ │ ├── manager/ │ │ │ │ ├── kustomization.yaml │ │ │ │ └── manager.yaml │ │ │ ├── prod/ │ │ │ │ ├── kustomization.yaml │ │ │ │ └── operator-config-patch.yaml │ │ │ ├── rbac/ │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── leader_election_role.yaml │ │ │ │ ├── leader_election_role_binding.yaml │ │ │ │ ├── maskinportenclient_admin_role.yaml │ │ │ │ ├── maskinportenclient_editor_role.yaml │ │ │ │ ├── maskinportenclient_viewer_role.yaml │ │ │ │ ├── metrics_auth_role.yaml │ │ │ │ ├── metrics_auth_role_binding.yaml │ │ │ │ ├── metrics_reader_role.yaml │ │ │ │ ├── role.yaml │ │ │ │ ├── role_binding.yaml │ │ │ │ └── service_account.yaml │ │ │ ├── samples/ │ │ │ │ ├── kustomization.yaml │ │ │ │ └── resources_v1alpha1_maskinportenclient.yaml │ │ │ ├── tt02/ │ │ │ │ ├── kustomization.yaml │ │ │ │ └── operator-config-patch.yaml │ │ │ └── yt01/ │ │ │ ├── kustomization.yaml │ │ │ └── operator-config-patch.yaml │ │ ├── docker-compose.yml │ │ ├── go.mod │ │ ├── go.sum │ │ ├── hack/ │ │ │ └── boilerplate.go.txt │ │ ├── internal/ │ │ │ ├── assert/ │ │ │ │ └── assert.go │ │ │ ├── caching/ │ │ │ │ └── cached_atom.go │ │ │ ├── clock/ │ │ │ │ ├── clock.go │ │ │ │ ├── fake_clock.go │ │ │ │ ├── fake_clock_test.go │ │ │ │ └── real_clock.go │ │ │ ├── config/ │ │ │ │ ├── azure_keyvault.go │ │ │ │ ├── config.go │ │ │ │ ├── config_test.go │ │ │ │ ├── koanf.go │ │ │ │ └── util.go │ │ │ ├── controller/ │ │ │ │ ├── appcodesync/ │ │ │ │ │ ├── controller.go │ │ │ │ │ └── controller_test.go │ │ │ │ ├── azurekeyvaultsync/ │ │ │ │ │ ├── controller.go │ │ │ │ │ ├── controller_test.go │ │ │ │ │ └── keyvault_client.go │ │ │ │ ├── cnpgsync/ │ │ │ │ │ ├── controller.go │ │ │ │ │ ├── controller_test.go │ │ │ │ │ └── types.go │ │ │ │ ├── grafanapolicysync/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── controller_test.snap │ │ │ │ │ ├── controller.go │ │ │ │ │ └── controller_test.go │ │ │ │ ├── inactivityscaler/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── controller_test.snap │ │ │ │ │ ├── controller.go │ │ │ │ │ ├── controller_test.go │ │ │ │ │ └── override.go │ │ │ │ ├── maskinporten/ │ │ │ │ │ ├── controller.go │ │ │ │ │ ├── controller_test.go │ │ │ │ │ ├── controller_unit_test.go │ │ │ │ │ ├── request.go │ │ │ │ │ └── suite_test.go │ │ │ │ └── secretsync/ │ │ │ │ ├── controller.go │ │ │ │ ├── controller_test.go │ │ │ │ └── types.go │ │ │ ├── crypto/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── crypto_test.snap │ │ │ │ ├── crypto.go │ │ │ │ ├── crypto_benchmark_test.go │ │ │ │ ├── crypto_test.go │ │ │ │ ├── jwks.go │ │ │ │ └── jwt.go │ │ │ ├── fakes/ │ │ │ │ ├── db.go │ │ │ │ ├── keyvault.go │ │ │ │ └── state.go │ │ │ ├── internal.go │ │ │ ├── maskinporten/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── client_state_test.snap │ │ │ │ ├── client_request.go │ │ │ │ ├── client_response.go │ │ │ │ ├── client_state.go │ │ │ │ ├── client_state_test.go │ │ │ │ ├── http_api_client.go │ │ │ │ └── http_api_client_test.go │ │ │ ├── operatorcontext/ │ │ │ │ ├── operatorcontext.go │ │ │ │ └── operatorcontext_test.go │ │ │ ├── orgs/ │ │ │ │ ├── orgs.go │ │ │ │ └── orgs_test.go │ │ │ ├── random/ │ │ │ │ └── urlsafe.go │ │ │ ├── resourcename/ │ │ │ │ ├── resourcename.go │ │ │ │ └── resourcename_test.go │ │ │ ├── runtime/ │ │ │ │ └── runtime.go │ │ │ └── telemetry/ │ │ │ ├── telemetry.go │ │ │ └── telemetry_test.go │ │ ├── localtest.env │ │ ├── schemas/ │ │ │ └── spec.json │ │ └── test/ │ │ ├── app/ │ │ │ ├── App/ │ │ │ │ ├── App.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── Worker.cs │ │ │ │ ├── appsettings.Development.json │ │ │ │ └── appsettings.json │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ └── deployment/ │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ └── values.yaml │ │ ├── e2e/ │ │ │ ├── __snapshots__/ │ │ │ │ ├── cnpg-cluster-spec.snap │ │ │ │ ├── cnpg-database-spec.snap │ │ │ │ ├── cnpg-helmrelease-spec.snap │ │ │ │ ├── cnpg-helmrepo-spec.snap │ │ │ │ ├── cnpg-imagecatalog-spec.snap │ │ │ │ ├── cnpg-password-secret.snap │ │ │ │ ├── cnpg-postgresql-json.snap │ │ │ │ ├── cnpg-storageclass.snap │ │ │ │ ├── step0-initial-client.snap │ │ │ │ ├── step0-initial-db.snap │ │ │ │ ├── step0-initial-secret.snap │ │ │ │ ├── step1-reconciled-client.snap │ │ │ │ ├── step1-reconciled-db.snap │ │ │ │ ├── step1-reconciled-secret.snap │ │ │ │ ├── step1b-token.snap │ │ │ │ ├── step2-scope-removed-client.snap │ │ │ │ ├── step2-scope-removed-db.snap │ │ │ │ ├── step2-scope-removed-secret.snap │ │ │ │ ├── step2b-jwk-rotated-client.snap │ │ │ │ ├── step2b-jwk-rotated-db.snap │ │ │ │ ├── step2b-jwk-rotated-secret.snap │ │ │ │ ├── step2c-jwk-rotated-again-client.snap │ │ │ │ ├── step2c-jwk-rotated-again-db.snap │ │ │ │ ├── step2c-jwk-rotated-again-secret.snap │ │ │ │ ├── step3-deleted-client.snap │ │ │ │ ├── step3-deleted-db.snap │ │ │ │ └── step3-deleted-secret.snap │ │ │ ├── cnpgsync_e2e_test.go │ │ │ ├── e2e_suite_test.go │ │ │ ├── maskinporten_e2e_test.go │ │ │ └── snapshot_helpers.go │ │ └── utils/ │ │ └── utils.go │ ├── pdf3/ │ │ ├── .dockerignore │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .golangci.yml │ │ ├── AGENTS.md │ │ ├── CLAUDE.md │ │ ├── Dockerfile.proxy │ │ ├── Dockerfile.verapdf │ │ ├── Dockerfile.worker │ │ ├── Makefile │ │ ├── README.md │ │ ├── cmd/ │ │ │ ├── proxy/ │ │ │ │ └── main.go │ │ │ ├── tester/ │ │ │ │ └── main.go │ │ │ └── worker/ │ │ │ ├── localtest_url_test.go │ │ │ └── main.go │ │ ├── docker-install.xml │ │ ├── go.mod │ │ ├── go.sum │ │ ├── infra/ │ │ │ └── kustomize/ │ │ │ ├── at22/ │ │ │ │ └── kustomization.yaml │ │ │ ├── at23/ │ │ │ │ └── kustomization.yaml │ │ │ ├── at24/ │ │ │ │ └── kustomization.yaml │ │ │ ├── base/ │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── networkpolicy.yaml │ │ │ │ ├── proxy.yaml │ │ │ │ └── worker.yaml │ │ │ ├── local-minimal/ │ │ │ │ └── kustomization.yaml │ │ │ ├── local-standard/ │ │ │ │ └── kustomization.yaml │ │ │ ├── local-syncroot-minimal/ │ │ │ │ └── kustomization.yaml │ │ │ ├── local-syncroot-standard/ │ │ │ │ └── kustomization.yaml │ │ │ ├── prod/ │ │ │ │ └── kustomization.yaml │ │ │ ├── tt02/ │ │ │ │ └── kustomization.yaml │ │ │ └── yt01/ │ │ │ └── kustomization.yaml │ │ ├── internal/ │ │ │ ├── assert/ │ │ │ │ └── assert.go │ │ │ ├── browser/ │ │ │ │ └── browser.go │ │ │ ├── cdp/ │ │ │ │ ├── encoding.go │ │ │ │ └── transport.go │ │ │ ├── concurrent/ │ │ │ │ └── map.go │ │ │ ├── config/ │ │ │ │ ├── config.go │ │ │ │ └── config_test.go │ │ │ ├── generator/ │ │ │ │ ├── browser_session.go │ │ │ │ ├── browser_session_test.go │ │ │ │ ├── generator.go │ │ │ │ └── generator_test.go │ │ │ ├── http/ │ │ │ │ └── http.go │ │ │ ├── log/ │ │ │ │ └── log.go │ │ │ ├── pdfa/ │ │ │ │ ├── _snapshots/ │ │ │ │ │ └── TestConvertFixturePDFToPDFA_verapdf.xml │ │ │ │ ├── converter.go │ │ │ │ ├── converter_test.go │ │ │ │ ├── converter_verapdf_test.go │ │ │ │ ├── icc_profile.go │ │ │ │ ├── sRGB2014.icc │ │ │ │ └── sRGB2014.icc.provenance.txt │ │ │ ├── runtime/ │ │ │ │ └── runtime.go │ │ │ ├── telemetry/ │ │ │ │ ├── middleware.go │ │ │ │ ├── request_event.go │ │ │ │ └── telemetry.go │ │ │ ├── testing/ │ │ │ │ └── testing.go │ │ │ └── types/ │ │ │ ├── pdf.go │ │ │ └── pdf_test.go │ │ ├── package.json │ │ └── test/ │ │ ├── harness/ │ │ │ ├── harness.go │ │ │ ├── logs.go │ │ │ ├── pdf.go │ │ │ ├── snapshot.go │ │ │ └── verapdf.go │ │ ├── integration/ │ │ │ ├── simple/ │ │ │ │ ├── _snapshots/ │ │ │ │ │ ├── Test_CompareOldAndNew_new.txt │ │ │ │ │ ├── Test_CompareOldAndNew_old.txt │ │ │ │ │ ├── Test_CompareOldAndNew_testoutput.json │ │ │ │ │ ├── Test_ConvertGeneratedBasicPDFToPDFA_input.txt │ │ │ │ │ ├── Test_ConvertGeneratedBasicPDFToPDFA_input_verapdf.xml │ │ │ │ │ ├── Test_ConvertGeneratedBasicPDFToPDFA_output.txt │ │ │ │ │ ├── Test_ConvertGeneratedBasicPDFToPDFA_verapdf.xml │ │ │ │ │ ├── Test_ConvertGeneratedTADFormPDFToPDFA_output.txt │ │ │ │ │ ├── Test_ConvertGeneratedTADFormPDFToPDFA_verapdf.xml │ │ │ │ │ ├── Test_CookieIsolation_first_request.json │ │ │ │ │ ├── Test_CookieIsolation_second_request.json │ │ │ │ │ ├── Test_ImageSizes.txt │ │ │ │ │ ├── Test_RequestCancellationWaitForTimeout_error.txt │ │ │ │ │ ├── Test_RequestCancellation_error.txt │ │ │ │ │ ├── Test_Simple_testoutput.json │ │ │ │ │ ├── Test_TADFormWaitFor_output.txt │ │ │ │ │ ├── Test_TADForm_output.txt │ │ │ │ │ ├── Test_TracestateWithSemicolons_testoutput.json │ │ │ │ │ ├── Test_WaitForAlreadyHidden_testoutput.json │ │ │ │ │ ├── Test_WaitForAlreadyVisible_testoutput.json │ │ │ │ │ ├── Test_WaitForClassSelector_testoutput.json │ │ │ │ │ ├── Test_WaitForHiddenViaClassAddition_testoutput.json │ │ │ │ │ ├── Test_WaitForHidden_testoutput.json │ │ │ │ │ ├── Test_WaitForNoVisibilityCheck_testoutput.json │ │ │ │ │ ├── Test_WaitForTimeoutWithErrors_error.txt │ │ │ │ │ ├── Test_WaitForVisibleViaClassRemoval_testoutput.json │ │ │ │ │ ├── Test_WaitForVisible_testoutput.json │ │ │ │ │ ├── Test_WithCleanupDelay_testoutput.json │ │ │ │ │ ├── Test_WithConsoleErrors_testoutput.json │ │ │ │ │ └── Test_WithThrownErrors_testoutput.json │ │ │ │ ├── image_size_test.go │ │ │ │ ├── pdfa_test.go │ │ │ │ ├── setup_test.go │ │ │ │ ├── simple_test.go │ │ │ │ ├── validation_test.go │ │ │ │ └── waitfor_test.go │ │ │ └── smoke/ │ │ │ └── smoke_test.go │ │ └── load/ │ │ ├── test-env.js │ │ └── test-local.js │ ├── workflow-engine/ │ │ ├── .claude/ │ │ │ └── skills/ │ │ │ ├── docker/ │ │ │ │ └── SKILL.md │ │ │ ├── format/ │ │ │ │ └── SKILL.md │ │ │ ├── k6/ │ │ │ │ └── SKILL.md │ │ │ ├── migration/ │ │ │ │ └── SKILL.md │ │ │ └── test/ │ │ │ └── SKILL.md │ │ ├── .config/ │ │ │ └── dotnet-tools.json │ │ ├── .csharpierignore │ │ ├── .csharpierrc.yaml │ │ ├── .docker/ │ │ │ ├── blackbox.yml │ │ │ ├── dashboards/ │ │ │ │ ├── asp-net-core-endpoints.json │ │ │ │ ├── asp-net-core-metrics.json │ │ │ │ ├── asp-net-core.json │ │ │ │ ├── postgres.json │ │ │ │ └── workflow-engine.json │ │ │ ├── export-dashboard.sh │ │ │ ├── grafana-dashboards.yml │ │ │ ├── grafana-datasources.yml │ │ │ ├── postgres-init.sql │ │ │ ├── prometheus.yaml │ │ │ ├── servers.json │ │ │ └── wiremock/ │ │ │ └── mappings/ │ │ │ ├── catch-all.json │ │ │ ├── error.json │ │ │ ├── slow-15s.json │ │ │ ├── slow-5s.json │ │ │ ├── slow-60s.json │ │ │ ├── slow-error.json │ │ │ └── slow-random.json │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .k6/ │ │ │ ├── README.md │ │ │ ├── constant-rate.js │ │ │ ├── lib/ │ │ │ │ └── helpers.js │ │ │ ├── payloads/ │ │ │ │ └── webhook.json │ │ │ └── stress-test.js │ │ ├── AGENTS.md │ │ ├── CLAUDE.md │ │ ├── Directory.Build.props │ │ ├── Directory.Packages.props │ │ ├── Dockerfile │ │ ├── Dockerfile.dockerignore │ │ ├── Makefile │ │ ├── README.md │ │ ├── WorkflowEngine.slnx │ │ ├── docker-compose.yaml │ │ ├── docs/ │ │ │ ├── architecture.md │ │ │ ├── db-connections-notes.md │ │ │ ├── performance.md │ │ │ ├── presentation/ │ │ │ │ ├── presentation-technical.html │ │ │ │ └── presentation-technical.md │ │ │ ├── proposals/ │ │ │ │ └── recurring-workflows.md │ │ │ ├── technical-guide.md │ │ │ └── workflow-collections.md │ │ ├── global.json │ │ ├── src/ │ │ │ ├── Directory.Build.props │ │ │ ├── WorkflowEngine.Commands/ │ │ │ │ ├── Extensions/ │ │ │ │ │ ├── HttpResponseMessageExtensions.cs │ │ │ │ │ ├── OutboundHeaderExtensions.cs │ │ │ │ │ └── StringExtensions.cs │ │ │ │ ├── Webhook/ │ │ │ │ │ ├── WebhookCommand.cs │ │ │ │ │ └── WebhookCommandData.cs │ │ │ │ └── WorkflowEngine.Commands.csproj │ │ │ ├── WorkflowEngine.Core/ │ │ │ │ ├── AsyncSignal.cs │ │ │ │ ├── CancelWorkflowResult.cs │ │ │ │ ├── CancellationWatcherService.cs │ │ │ │ ├── CommandRegistry.cs │ │ │ │ ├── Constants/ │ │ │ │ │ └── Defaults.cs │ │ │ │ ├── DashboardMapper.cs │ │ │ │ ├── Endpoints/ │ │ │ │ │ ├── DashboardEndpoints.cs │ │ │ │ │ ├── EngineEndpoints.cs │ │ │ │ │ └── HealthEndpoints.cs │ │ │ │ ├── Engine.cs │ │ │ │ ├── EngineHealthCheck.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ ├── HostExtensions.cs │ │ │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ │ │ ├── WorkflowEngineAppExtensions.cs │ │ │ │ │ └── WorkflowEngineBuilderExtensions.cs │ │ │ │ ├── HeartbeatService.cs │ │ │ │ ├── InFlightTracker.cs │ │ │ │ ├── Metadata/ │ │ │ │ │ ├── InboundMetadata.cs │ │ │ │ │ ├── MetadataExtractor.cs │ │ │ │ │ └── WorkflowMetadataOperationTransformer.cs │ │ │ │ ├── MetricsCollector.cs │ │ │ │ ├── RequestConstraintValidationResult.cs │ │ │ │ ├── ResumeWorkflowResult.cs │ │ │ │ ├── StatusChangeSignal.cs │ │ │ │ ├── Utils/ │ │ │ │ │ └── ValidationUtils.cs │ │ │ │ ├── WorkflowEngine.Core.csproj │ │ │ │ ├── WorkflowExecutor.cs │ │ │ │ ├── WorkflowHandler.cs │ │ │ │ ├── WorkflowProcessor.cs │ │ │ │ ├── WorkflowUpdateBuffer.cs │ │ │ │ ├── WorkflowUpdateRequest.cs │ │ │ │ ├── WorkflowWriteBuffer.cs │ │ │ │ └── wwwroot/ │ │ │ │ ├── AGENTS.md │ │ │ │ ├── DASHBOARD_SPEC.md │ │ │ │ ├── app.js │ │ │ │ ├── index.html │ │ │ │ ├── modules/ │ │ │ │ │ ├── core/ │ │ │ │ │ │ ├── helpers.js │ │ │ │ │ │ ├── sse.js │ │ │ │ │ │ └── state.js │ │ │ │ │ ├── features/ │ │ │ │ │ │ ├── filters.js │ │ │ │ │ │ ├── header.js │ │ │ │ │ │ ├── live.js │ │ │ │ │ │ ├── modal.js │ │ │ │ │ │ ├── query.js │ │ │ │ │ │ ├── recent.js │ │ │ │ │ │ ├── scheduled.js │ │ │ │ │ │ ├── settings.js │ │ │ │ │ │ ├── state-modal.js │ │ │ │ │ │ ├── theme.js │ │ │ │ │ │ └── url.js │ │ │ │ │ └── shared/ │ │ │ │ │ ├── cards.js │ │ │ │ │ ├── chips.js │ │ │ │ │ ├── dropdown.js │ │ │ │ │ ├── pipeline.js │ │ │ │ │ ├── section.js │ │ │ │ │ └── timers.js │ │ │ │ └── style.css │ │ │ ├── WorkflowEngine.Data/ │ │ │ │ ├── AdvisoryLockScope.cs │ │ │ │ ├── BatchEnqueueResult.cs │ │ │ │ ├── BatchEnqueueResultStatus.cs │ │ │ │ ├── BatchWorkflowStatusUpdate.cs │ │ │ │ ├── BufferedEnqueueRequest.cs │ │ │ │ ├── Constants/ │ │ │ │ │ ├── JsonOptions.cs │ │ │ │ │ ├── PersistentItemStatusMap.cs │ │ │ │ │ ├── SchemaNames.cs │ │ │ │ │ └── WorkflowNamespace.cs │ │ │ │ ├── Context/ │ │ │ │ │ └── EngineDbContext.cs │ │ │ │ ├── Conventions/ │ │ │ │ │ └── SnakeCaseNamingConvention.cs │ │ │ │ ├── CursorPaginatedResult.cs │ │ │ │ ├── Entities/ │ │ │ │ │ ├── IdempotencyKeyEntity.cs │ │ │ │ │ ├── StepEntity.cs │ │ │ │ │ ├── WorkflowCollectionEntity.cs │ │ │ │ │ └── WorkflowEntity.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ │ │ └── WorkflowRequestExtensions.cs │ │ │ │ ├── Migrations/ │ │ │ │ │ ├── 20260504070837_Initial.Designer.cs │ │ │ │ │ ├── 20260504070837_Initial.cs │ │ │ │ │ └── EngineDbContextModelSnapshot.cs │ │ │ │ ├── Repository/ │ │ │ │ │ ├── EngineRepository.Logs.cs │ │ │ │ │ ├── EngineRepository.QueryExtensions.cs │ │ │ │ │ ├── EngineRepository.Reads.cs │ │ │ │ │ ├── EngineRepository.Resilience.cs │ │ │ │ │ ├── EngineRepository.Writes.cs │ │ │ │ │ ├── EngineRepository.cs │ │ │ │ │ └── IEngineRepository.cs │ │ │ │ ├── Services/ │ │ │ │ │ ├── DbConnectionResetService.cs │ │ │ │ │ ├── DbMaintenanceService.cs │ │ │ │ │ └── DbMigrationService.cs │ │ │ │ ├── Sql/ │ │ │ │ │ └── Functions/ │ │ │ │ │ └── .gitkeep │ │ │ │ ├── SqlBulkInserter.cs │ │ │ │ ├── TupleArrayExtensions.cs │ │ │ │ ├── WorkflowEngine.Data.csproj │ │ │ │ ├── WorkflowEnqueueOutcome.cs │ │ │ │ └── WorkflowStatusCounts.cs │ │ │ ├── WorkflowEngine.Models/ │ │ │ │ ├── Abstractions/ │ │ │ │ │ └── ICommand.cs │ │ │ │ ├── CancelWorkflowResponse.cs │ │ │ │ ├── Command.cs │ │ │ │ ├── CommandDefinition.cs │ │ │ │ ├── CommandExecutionContext.cs │ │ │ │ ├── CommandValidationResult.cs │ │ │ │ ├── EngineConnectionString.cs │ │ │ │ ├── EngineHealthLevel.cs │ │ │ │ ├── EngineHealthStatus.cs │ │ │ │ ├── EngineSettings.cs │ │ │ │ ├── ErrorEntry.cs │ │ │ │ ├── Exceptions/ │ │ │ │ │ ├── CommandDataTypeMismatchException.cs │ │ │ │ │ ├── CommandHandlerNotFoundException.cs │ │ │ │ │ ├── EngineConfigurationException.cs │ │ │ │ │ ├── EngineException.cs │ │ │ │ │ ├── IdempotencyConflictException.cs │ │ │ │ │ ├── InvalidWorkflowReferenceException.cs │ │ │ │ │ └── LeaseLostException.cs │ │ │ │ ├── ExecutionResult.cs │ │ │ │ ├── ExecutionStatus.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ ├── ExecutionStatusExtensions.cs │ │ │ │ │ ├── HealthStatusExtensions.cs │ │ │ │ │ ├── StepExtensions.cs │ │ │ │ │ ├── WorkflowEngineItemStatusExtensions.cs │ │ │ │ │ └── WorkflowExtensions.cs │ │ │ │ ├── JsonConverters/ │ │ │ │ │ └── WorkflowRefConverter.cs │ │ │ │ ├── PaginatedResponse.cs │ │ │ │ ├── PersistentItem.cs │ │ │ │ ├── PersistentItemStatus.cs │ │ │ │ ├── ResumeWorkflowResponse.cs │ │ │ │ ├── Step.cs │ │ │ │ ├── StepRequest.cs │ │ │ │ ├── StepStatusResponse.cs │ │ │ │ ├── Workflow.cs │ │ │ │ ├── WorkflowCancellationInfo.cs │ │ │ │ ├── WorkflowCollectionResponse.cs │ │ │ │ ├── WorkflowDependencyGraphEdgeKind.cs │ │ │ │ ├── WorkflowDependencyGraphEdgeResponse.cs │ │ │ │ ├── WorkflowDependencyGraphResponse.cs │ │ │ │ ├── WorkflowEngine.Models.csproj │ │ │ │ ├── WorkflowEnqueueRequest.cs │ │ │ │ ├── WorkflowEnqueueResponse.cs │ │ │ │ ├── WorkflowMetadataConstants.cs │ │ │ │ ├── WorkflowRef.cs │ │ │ │ ├── WorkflowRequest.cs │ │ │ │ ├── WorkflowRequestMetadata.cs │ │ │ │ └── WorkflowStatusResponse.cs │ │ │ ├── WorkflowEngine.Resilience/ │ │ │ │ ├── ConcurrencyLimiter.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ └── RetryStrategyExtensions.cs │ │ │ │ ├── JsonConverters/ │ │ │ │ │ └── FlexibleEnumConverter.cs │ │ │ │ ├── Models/ │ │ │ │ │ ├── BackoffType.cs │ │ │ │ │ ├── RetryDecision.cs │ │ │ │ │ └── RetryStrategy.cs │ │ │ │ └── WorkflowEngine.Resilience.csproj │ │ │ └── WorkflowEngine.Telemetry/ │ │ │ ├── Extensions/ │ │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ │ └── TelemetryExtensions.cs │ │ │ ├── Metrics.cs │ │ │ └── WorkflowEngine.Telemetry.csproj │ │ ├── tests/ │ │ │ ├── Directory.Build.props │ │ │ ├── WorkflowEngine.Core.Tests/ │ │ │ │ ├── CancellationTests.cs │ │ │ │ ├── CancellationWatcherServiceTests.cs │ │ │ │ ├── Endpoints/ │ │ │ │ │ └── EngineEndpointTests.cs │ │ │ │ ├── EngineHealthCheckTests.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ ├── EngineSettingsConfigurationTests.cs │ │ │ │ │ ├── HttpResponseMessageExtensionsTests.cs │ │ │ │ │ └── StringExtensionsTests.cs │ │ │ │ ├── Fixtures/ │ │ │ │ │ ├── MockHttpHandler.cs │ │ │ │ │ └── WorkflowEngineTestFixture.cs │ │ │ │ ├── HeartbeatServiceTests.cs │ │ │ │ ├── Utils/ │ │ │ │ │ └── ValidationUtilsTests.cs │ │ │ │ ├── WorkflowEngine.Core.Tests.csproj │ │ │ │ ├── WorkflowExecutorStateTests.cs │ │ │ │ ├── WorkflowExecutorTests.cs │ │ │ │ ├── WorkflowHandlerTests.cs │ │ │ │ ├── WorkflowUpdateBufferTests.cs │ │ │ │ └── WorkflowWriteBufferTests.cs │ │ │ ├── WorkflowEngine.Data.Tests/ │ │ │ │ ├── Constants/ │ │ │ │ │ └── PersistentItemStatusMapTests.cs │ │ │ │ ├── Conventions/ │ │ │ │ │ └── SnakeCaseNamingConventionTests.cs │ │ │ │ ├── Entities/ │ │ │ │ │ ├── StepEntityTests.cs │ │ │ │ │ └── WorkflowEntityTests.cs │ │ │ │ ├── Repository/ │ │ │ │ │ └── WorkflowCollectionTests.cs │ │ │ │ └── WorkflowEngine.Data.Tests.csproj │ │ │ ├── WorkflowEngine.Integration.Tests/ │ │ │ │ ├── .snapshots/ │ │ │ │ │ ├── EngineTests.ErrorHistory_SurvivesMultiRetryDbRoundTrip_WithPopulatedFields.verified.txt │ │ │ │ │ ├── EngineTests.RawJson_MultipleWebhookSteps_AllComplete.verified.txt │ │ │ │ │ ├── EngineTests.RawJson_WithNamespace_NamespaceParrotedBack.verified.txt │ │ │ │ │ ├── EngineTests.Response_Enqueue_CycleDetection_Returns400WithDetails.verified.txt │ │ │ │ │ ├── EngineTests.Response_Enqueue_MaxLabelsExceeded_Returns400WithDetails.verified.txt │ │ │ │ │ ├── EngineTests.Response_Enqueue_MaxWorkflowsExceeded_Returns400WithDetails.verified.txt │ │ │ │ │ ├── EngineTests.Response_Enqueue_MultipleWorkflows_ReturnsAcceptedShape.verified.txt │ │ │ │ │ ├── EngineTests.Response_Enqueue_SingleWebhookWorkflow_ReturnsAcceptedShape.verified.txt │ │ │ │ │ ├── EngineTests.Response_Enqueue_SizeLimitExceeded_Returns400WithDetails.verified.txt │ │ │ │ │ ├── EngineTests.Response_Enqueue_StepLabelsExceedMax_Returns400WithDetails.verified.txt │ │ │ │ │ ├── EngineTests.Response_GetWorkflowDependencyGraph_IncludesDependentsAcrossCollectionKeys.verified.txt │ │ │ │ │ ├── EngineTests.Response_GetWorkflowDependencyGraph_TraversesDependenciesAndLinksBidirectionally.verified.txt │ │ │ │ │ ├── EngineTests.Response_GetWorkflowDependencyGraph_WorkflowWithoutRelations_ReturnsRootOnlyWithNoEdges.verified.txt │ │ │ │ │ ├── EngineTests.Response_GetWorkflow_AfterRetries_ShowsRetryState.verified.txt │ │ │ │ │ ├── EngineTests.Response_GetWorkflow_CompletedWebhook_ReturnsFullDetailsShape.verified.txt │ │ │ │ │ ├── EngineTests.Response_GetWorkflow_MultipleSteps_ReturnsAllSteps.verified.txt │ │ │ │ │ ├── EngineTests.Response_GetWorkflow_WithAllRelations_ReturnsFullRelationsShape.verified.txt │ │ │ │ │ ├── EngineTests.Response_GetWorkflow_WithDependencies_ShowsDependencyStatus.verified.txt │ │ │ │ │ ├── EngineTests.Response_GetWorkflow_WithStepLabels_ReturnsLabelsInShape.verified.txt │ │ │ │ │ ├── EngineTests.Response_HealthAggregate_ReturnsExpectedShape.verified.txt │ │ │ │ │ ├── EngineTests.Response_HealthLive_ReturnsExpectedShape.verified.txt │ │ │ │ │ ├── EngineTests.Response_HealthReady_ReturnsExpectedShape.verified.txt │ │ │ │ │ ├── EngineTests.Response_ListWorkflows_AfterCompletion_ReturnsCompletedWorkflowShape.verified.txt │ │ │ │ │ ├── EngineTests.Response_ListWorkflows_WhileProcessing_ReturnsWorkflowsShape.verified.txt │ │ │ │ │ ├── EngineTests.WebhookCommand_FullHttpChatter_DocumentsExchange.http │ │ │ │ │ └── inbound/ │ │ │ │ │ ├── DagRoundtrip_AllRelations_FullExchange.exchange.http │ │ │ │ │ ├── Inbound_MultiWorkflow_DependsOn_MixedRefs.inbound.http │ │ │ │ │ ├── Inbound_MultiWorkflow_DependsOn_RefsOnly.inbound.http │ │ │ │ │ ├── Inbound_Validation_CycleDetected.exchange.http │ │ │ │ │ ├── Inbound_Validation_DuplicateRef.exchange.http │ │ │ │ │ ├── Inbound_Validation_MissingRef.exchange.http │ │ │ │ │ ├── Inbound_Validation_SelfReference.exchange.http │ │ │ │ │ ├── Inbound_Workflow_DependsOnHeadsFalse.inbound.http │ │ │ │ │ ├── Inbound_Workflow_FullyPopulated.inbound.http │ │ │ │ │ ├── Inbound_Workflow_IsHeadForceExclude.inbound.http │ │ │ │ │ ├── Inbound_Workflow_IsHeadForceInclude.inbound.http │ │ │ │ │ └── Inbound_Workflow_WithLinks.inbound.http │ │ │ │ ├── DashboardEndpointTests.cs │ │ │ │ ├── DashboardRetryTests.cs │ │ │ │ ├── EngineCancellationTests.cs │ │ │ │ ├── EngineGracefulShutdownTests.cs │ │ │ │ ├── EngineLeaseTokenTests.cs │ │ │ │ ├── EngineResumeTests.cs │ │ │ │ ├── EngineShutdownTests.cs │ │ │ │ ├── EngineTests.ErrorHistory.cs │ │ │ │ ├── EngineTests.ErrorPaths.cs │ │ │ │ ├── EngineTests.HttpChatter.cs │ │ │ │ ├── EngineTests.InboundPayloads.cs │ │ │ │ ├── EngineTests.Insert.cs │ │ │ │ ├── EngineTests.Query.cs │ │ │ │ ├── EngineTests.Responses.cs │ │ │ │ ├── EngineTests.Validation.cs │ │ │ │ ├── EngineTests.cs │ │ │ │ ├── Fixtures/ │ │ │ │ │ ├── EngineAppCollection.cs │ │ │ │ │ └── EngineShutdownCollection.cs │ │ │ │ ├── ModuleInitializer.cs │ │ │ │ ├── TelemetryTests.cs │ │ │ │ └── WorkflowEngine.Integration.Tests.csproj │ │ │ ├── WorkflowEngine.Models.Tests/ │ │ │ │ ├── ExecutionResultTests.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ ├── ExecutionStatusExtensionsTests.cs │ │ │ │ │ ├── HealthStatusExtensionsTests.cs │ │ │ │ │ ├── PersistentItemStatusExtensionsTests.cs │ │ │ │ │ ├── StepExtensionsTests.cs │ │ │ │ │ └── WorkflowExtensionsTests.cs │ │ │ │ ├── StepTests.cs │ │ │ │ ├── WorkflowEngine.Models.Tests.csproj │ │ │ │ ├── WorkflowRefTests.cs │ │ │ │ └── WorkflowTests.cs │ │ │ ├── WorkflowEngine.Repository.Tests/ │ │ │ │ ├── .snapshots/ │ │ │ │ │ ├── QueryPlanTests.AbandonStaleWorkflows_UsesIndexScans.verified.txt │ │ │ │ │ ├── QueryPlanTests.DeleteOrphanedIdempotencyKeys_UsesIndexScans.verified.txt │ │ │ │ │ ├── QueryPlanTests.FetchAndLock_UsesIndexScans.verified.txt │ │ │ │ │ ├── QueryPlanTests.GetActiveWorkflows_UsesIndexScans.verified.txt │ │ │ │ │ ├── QueryPlanTests.GetScheduledWorkflows_UsesIndexScans.verified.txt │ │ │ │ │ ├── QueryPlanTests.GetWorkflowsByStatus_UsesIndexScans.verified.txt │ │ │ │ │ ├── QueryPlanTests.ReclaimStaleWorkflows_UsesIndexScans.verified.txt │ │ │ │ │ └── QueryPlanTests.SelectExpiredWorkflowCandidates_UsesIndexScans.verified.txt │ │ │ │ ├── DbRetryTelemetryTests.cs │ │ │ │ ├── FetchAndLockTests.cs │ │ │ │ ├── Fixtures/ │ │ │ │ │ ├── FaultInjectionInterceptor.cs │ │ │ │ │ ├── PostgresCollection.cs │ │ │ │ │ ├── PostgresFixture.cs │ │ │ │ │ ├── QueryPlanHelper.cs │ │ │ │ │ ├── SqlCapturingInterceptor.cs │ │ │ │ │ └── WorkflowTestHelper.cs │ │ │ │ ├── LeaseTokenTests.cs │ │ │ │ ├── ModuleInitializer.cs │ │ │ │ ├── QueryPlanTests.cs │ │ │ │ ├── RetentionTests.cs │ │ │ │ ├── RetryErrorHandlerTests.cs │ │ │ │ ├── StaleSweepTests.cs │ │ │ │ ├── WorkflowCollectionTests.cs │ │ │ │ ├── WorkflowCrudTests.cs │ │ │ │ ├── WorkflowEngine.Repository.Tests.csproj │ │ │ │ └── WorkflowQueryTests.cs │ │ │ ├── WorkflowEngine.Resilience.Tests/ │ │ │ │ ├── ConcurrencyLimiterTests.cs │ │ │ │ ├── Extensions/ │ │ │ │ │ └── RetryStrategyExtensionsTests.cs │ │ │ │ ├── JsonConverters/ │ │ │ │ │ └── FlexibleEnumConverterTests.cs │ │ │ │ ├── RetryStrategyTests.cs │ │ │ │ └── WorkflowEngine.Resilience.Tests.csproj │ │ │ ├── WorkflowEngine.TestApp/ │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties/ │ │ │ │ │ └── launchSettings.json │ │ │ │ ├── WorkflowEngine.TestApp.csproj │ │ │ │ └── appsettings.json │ │ │ └── WorkflowEngine.TestKit/ │ │ │ ├── DiagnosticExceptionHandler.cs │ │ │ ├── EngineApiClient.cs │ │ │ ├── EngineAppFixture.cs │ │ │ ├── EngineWebApplicationFactory.cs │ │ │ ├── HttpChatterHelpers.cs │ │ │ ├── HttpExchangeRecorder.cs │ │ │ ├── MockHttpHandler.cs │ │ │ ├── TelemetryCollector.cs │ │ │ ├── TestExtensions.cs │ │ │ ├── TestHelpers.cs │ │ │ └── WorkflowEngine.TestKit.csproj │ │ └── typos.toml │ └── workflow-engine-app/ │ ├── .editorconfig │ ├── .gitignore │ ├── .k6/ │ │ ├── README.md │ │ ├── constant-rate.js │ │ ├── continuous-process-next.js │ │ ├── payloads/ │ │ │ └── process-next.json │ │ └── stress-test.js │ ├── AGENTS.md │ ├── CLAUDE.md │ ├── Directory.Build.props │ ├── Directory.Packages.props │ ├── Dockerfile │ ├── Dockerfile.dockerignore │ ├── Makefile │ ├── README.md │ ├── WorkflowEngine.App.slnx │ ├── infra/ │ │ └── kustomize/ │ │ ├── at22/ │ │ │ └── kustomization.yaml │ │ ├── at23/ │ │ │ └── kustomization.yaml │ │ ├── at24/ │ │ │ └── kustomization.yaml │ │ ├── base/ │ │ │ ├── deployment.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── networkpolicy.yaml │ │ │ ├── secrets.yaml │ │ │ ├── service.yaml │ │ │ └── serviceaccount.yaml │ │ ├── local-syncroot/ │ │ │ └── kustomization.yaml │ │ ├── prod/ │ │ │ └── kustomization.yaml │ │ ├── tt02/ │ │ │ └── kustomization.yaml │ │ └── yt01/ │ │ └── kustomization.yaml │ ├── src/ │ │ ├── Directory.Build.props │ │ └── WorkflowEngine.App/ │ │ ├── Commands/ │ │ │ └── AppCommand/ │ │ │ ├── Actor.cs │ │ │ ├── AppCallbackPayload.cs │ │ │ ├── AppCallbackResponse.cs │ │ │ ├── AppCommand.cs │ │ │ ├── AppCommandData.cs │ │ │ ├── AppCommandSettings.cs │ │ │ ├── AppWorkflowContext.cs │ │ │ └── InstanceInformation.cs │ │ ├── Constants/ │ │ │ └── Defaults.cs │ │ ├── Extensions/ │ │ │ └── AppCommandExtensions.cs │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ └── launchSettings.json │ │ ├── WorkflowEngine.App.csproj │ │ ├── appsettings.Development.json │ │ ├── appsettings.Production.json │ │ ├── appsettings.Staging.json │ │ └── appsettings.json │ ├── tests/ │ │ ├── Directory.Build.props │ │ └── WorkflowEngine.App.Tests/ │ │ ├── .snapshots/ │ │ │ ├── AppCommandIntegrationTests.AppCommand_FullHttpChatter_DocumentsExchange.http │ │ │ ├── AppCommandIntegrationTests.Response_AppCommandCallback_PayloadShape.verified.txt │ │ │ ├── AppCommandIntegrationTests.Response_Enqueue_AppCommandWithoutLockToken_Returns400WithProblemDetails.verified.txt │ │ │ ├── AppCommandIntegrationTests.Response_Enqueue_SingleAppCommandWorkflow_ReturnsAcceptedShape.verified.txt │ │ │ ├── AppCommandIntegrationTests.Response_GetWorkflow_CompletedAppCommand_ReturnsFullDetailsShape.verified.txt │ │ │ ├── AppCommandIntegrationTests.Response_GetWorkflow_MultipleAppCommandSteps_ReturnsAllSteps.verified.txt │ │ │ ├── WorkflowEnqueueTests.ComplexDag_RawJson_AllWorkflowsComplete.verified.txt │ │ │ ├── WorkflowEnqueueTests.MixedCommandTypes_AppAndWebhook_AllComplete.verified.txt │ │ │ ├── WorkflowEnqueueTests.MultipleWorkflows_NoDependencies_AllComplete.verified.txt │ │ │ └── WorkflowEnqueueTests.RawJson_ProcessNextPayload_MultipleSteps_AllComplete.verified.txt │ │ ├── Commands/ │ │ │ └── AppCommand/ │ │ │ ├── AppCommandExecutionTests.cs │ │ │ ├── AppCommandValidationTests.cs │ │ │ └── InstanceInformationTests.cs │ │ ├── Extensions/ │ │ │ └── AppCommandExtensionsTests.cs │ │ ├── Fixtures/ │ │ │ ├── AppCommandTestFixture.cs │ │ │ ├── AppTestCollection.cs │ │ │ ├── AppTestFixture.cs │ │ │ └── AppTestHelpers.cs │ │ ├── Integration/ │ │ │ ├── AppCommandIntegrationTests.HttpChatter.cs │ │ │ ├── AppCommandIntegrationTests.Responses.cs │ │ │ ├── AppCommandIntegrationTests.cs │ │ │ └── WorkflowEnqueueTests.cs │ │ ├── ModuleInitializer.cs │ │ └── WorkflowEngine.App.Tests.csproj │ └── typos.toml ├── Shared/ │ ├── AppTunnel/ │ │ ├── TunnelHttpHeaders.cs │ │ └── TunnelProtocol.cs │ └── EnvTopology/ │ ├── BoundTopologyConfig.cs │ ├── BoundTopologyConfigurationExtensions.cs │ ├── BoundTopologyIndex.cs │ ├── BoundTopologyIndexAccessor.cs │ ├── BoundTopologyMetadataKeys.cs │ └── BoundTopologyOptions.cs ├── cli/ │ ├── .config/ │ │ └── dotnet-tools.json │ ├── .csharpierignore │ ├── .csharpierrc.yaml │ ├── .editorconfig │ ├── .golangci.yml │ ├── AGENTS.md │ ├── CHANGELOG.md │ ├── CLAUDE.md │ ├── Directory.Build.props │ ├── Directory.Packages.props │ ├── Makefile │ ├── README.md │ ├── cmd/ │ │ ├── dev/ │ │ │ ├── main.go │ │ │ └── server.go │ │ └── studioctl/ │ │ ├── install.ps1 │ │ ├── install.sh │ │ └── main.go │ ├── global.json │ ├── go.mod │ ├── go.sum │ ├── internal/ │ │ ├── appcontainers/ │ │ │ ├── appcontainers.go │ │ │ └── appcontainers_test.go │ │ ├── appimage/ │ │ │ ├── dockerfile.go │ │ │ ├── repo_context.go │ │ │ ├── spec.go │ │ │ └── spec_test.go │ │ ├── appnaming/ │ │ │ └── appnaming.go │ │ ├── auth/ │ │ │ ├── credentials.go │ │ │ └── credentials_test.go │ │ ├── cmd/ │ │ │ ├── app/ │ │ │ │ ├── config.go │ │ │ │ ├── env.go │ │ │ │ ├── run.go │ │ │ │ ├── run_test.go │ │ │ │ └── service.go │ │ │ ├── app.go │ │ │ ├── app_internal_test.go │ │ │ ├── apps/ │ │ │ │ ├── logs.go │ │ │ │ └── logs_test.go │ │ │ ├── auth/ │ │ │ │ └── service.go │ │ │ ├── auth.go │ │ │ ├── doctor/ │ │ │ │ ├── disk.go │ │ │ │ ├── localtest_env.go │ │ │ │ ├── prereq.go │ │ │ │ ├── prereq_test.go │ │ │ │ ├── service.go │ │ │ │ └── system.go │ │ │ ├── doctor.go │ │ │ ├── env/ │ │ │ │ ├── localtest/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── containers.go │ │ │ │ │ │ ├── core.go │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── image_mode.go │ │ │ │ │ │ ├── manifest.go │ │ │ │ │ │ ├── monitoring.go │ │ │ │ │ │ ├── network.go │ │ │ │ │ │ ├── pdf.go │ │ │ │ │ │ ├── pgadmin.go │ │ │ │ │ │ ├── resources.go │ │ │ │ │ │ ├── topology.go │ │ │ │ │ │ ├── topology_internal_test.go │ │ │ │ │ │ └── workflow_engine.go │ │ │ │ │ ├── diagnostics.go │ │ │ │ │ ├── diagnostics_test.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── env.go │ │ │ │ │ ├── env_internal_test.go │ │ │ │ │ ├── env_reset_test.go │ │ │ │ │ ├── env_test.go │ │ │ │ │ ├── hosts.go │ │ │ │ │ ├── hostsfile.go │ │ │ │ │ ├── hostsfile_internal_test.go │ │ │ │ │ ├── log_streamer.go │ │ │ │ │ ├── manifest_internal_test.go │ │ │ │ │ ├── renderer/ │ │ │ │ │ │ ├── compact.go │ │ │ │ │ │ ├── log.go │ │ │ │ │ │ ├── model.go │ │ │ │ │ │ ├── renderer_test.go │ │ │ │ │ │ ├── screen.go │ │ │ │ │ │ ├── table.go │ │ │ │ │ │ ├── types.go │ │ │ │ │ │ └── util.go │ │ │ │ │ ├── status.go │ │ │ │ │ ├── validate.go │ │ │ │ │ └── validate_test.go │ │ │ │ ├── preconditions.go │ │ │ │ ├── registry/ │ │ │ │ │ └── registry.go │ │ │ │ └── types.go │ │ │ ├── env.go │ │ │ ├── env_internal_test.go │ │ │ ├── env_test.go │ │ │ ├── errors.go │ │ │ ├── json_output.go │ │ │ ├── logs.go │ │ │ ├── logs_internal_test.go │ │ │ ├── ps.go │ │ │ ├── root.go │ │ │ ├── root_test.go │ │ │ ├── run.go │ │ │ ├── run_internal_test.go │ │ │ ├── self/ │ │ │ │ ├── location.go │ │ │ │ ├── location_test.go │ │ │ │ ├── picker.go │ │ │ │ ├── transition.go │ │ │ │ └── transition_internal_test.go │ │ │ ├── self.go │ │ │ ├── self_internal_test.go │ │ │ ├── server/ │ │ │ │ ├── logs.go │ │ │ │ └── logs_internal_test.go │ │ │ ├── server.go │ │ │ ├── server_internal_test.go │ │ │ ├── shell/ │ │ │ │ ├── service.go │ │ │ │ ├── service_internal_test.go │ │ │ │ └── service_test.go │ │ │ ├── shell.go │ │ │ ├── stop.go │ │ │ ├── stop_internal_test.go │ │ │ ├── studioctl_server_access.go │ │ │ └── text.go │ │ ├── config/ │ │ │ ├── config.go │ │ │ ├── config.yaml │ │ │ ├── config_test.go │ │ │ ├── merge_test.go │ │ │ ├── version.go │ │ │ └── version_test.go │ │ ├── context/ │ │ │ ├── detect.go │ │ │ └── detect_test.go │ │ ├── envtopology/ │ │ │ ├── bound_topology.go │ │ │ ├── bound_topology_test.go │ │ │ ├── components.go │ │ │ ├── load.go │ │ │ ├── model.go │ │ │ ├── topology.go │ │ │ ├── topology.yaml │ │ │ ├── topology_test.go │ │ │ └── validate.go │ │ ├── httpclient/ │ │ │ └── user_agent.go │ │ ├── install/ │ │ │ ├── binary.go │ │ │ ├── bundle.go │ │ │ ├── checksum.go │ │ │ ├── dist.go │ │ │ ├── files.go │ │ │ ├── files_other.go │ │ │ ├── files_windows.go │ │ │ ├── release.go │ │ │ ├── resources.go │ │ │ ├── resources_test.go │ │ │ ├── service.go │ │ │ ├── tar.go │ │ │ ├── tar_test.go │ │ │ ├── update.go │ │ │ ├── update_internal_test.go │ │ │ └── update_test.go │ │ ├── logstream/ │ │ │ ├── logstream.go │ │ │ └── logstream_test.go │ │ ├── migrations/ │ │ │ ├── 001_remove_legacy_network_metadata.go │ │ │ ├── 001_remove_legacy_network_metadata_test.go │ │ │ ├── 002_remove_legacy_topology_files.go │ │ │ ├── 002_remove_legacy_topology_files_test.go │ │ │ ├── 003_reset_localtest_data.go │ │ │ ├── 003_reset_localtest_data_test.go │ │ │ ├── 004_remove_legacy_resource_markers.go │ │ │ ├── 004_remove_legacy_resource_markers_test.go │ │ │ ├── 005_remove_legacy_app_manager_files.go │ │ │ ├── 005_remove_legacy_app_manager_files_test.go │ │ │ ├── migrations.go │ │ │ ├── migrations_test.go │ │ │ └── registered.go │ │ ├── osutil/ │ │ │ ├── browser.go │ │ │ ├── detached_unix.go │ │ │ ├── detached_windows.go │ │ │ ├── filelock.go │ │ │ ├── filelock_test.go │ │ │ ├── filelock_unix.go │ │ │ ├── filelock_windows.go │ │ │ ├── hosts.go │ │ │ ├── ipv6.go │ │ │ ├── linebreak_other.go │ │ │ ├── linebreak_windows.go │ │ │ ├── osutil.go │ │ │ ├── osutil_test.go │ │ │ ├── perm.go │ │ │ ├── process.go │ │ │ ├── process_linux.go │ │ │ ├── process_linux_test.go │ │ │ ├── process_unix.go │ │ │ ├── process_windows.go │ │ │ ├── secure_unix.go │ │ │ ├── secure_windows.go │ │ │ ├── terminal_input_unix.go │ │ │ ├── terminal_input_windows.go │ │ │ └── wsl.go │ │ ├── studio/ │ │ │ ├── client.go │ │ │ └── client_test.go │ │ ├── studioctlserver/ │ │ │ ├── client.go │ │ │ ├── client_internal_test.go │ │ │ └── transport.go │ │ └── ui/ │ │ ├── confirm.go │ │ ├── input.go │ │ ├── input_internal_test.go │ │ ├── output.go │ │ ├── output_internal_test.go │ │ ├── output_test.go │ │ ├── spinner.go │ │ ├── spinner_test.go │ │ ├── style.go │ │ ├── style_internal_test.go │ │ ├── table.go │ │ ├── table_test.go │ │ └── term.go │ ├── studioctl-server/ │ │ ├── Discovery/ │ │ │ ├── AppDiscoveryCandidate.cs │ │ │ ├── AppEndpointUri.cs │ │ │ ├── AppMetadataProbe.cs │ │ │ ├── AppRegistry.cs │ │ │ ├── Container/ │ │ │ │ └── ContainerDiscovery.cs │ │ │ ├── DiscoveredApp.cs │ │ │ ├── IAppDiscovery.cs │ │ │ ├── LocaltestStorageProbe.cs │ │ │ ├── Process/ │ │ │ │ └── ProcessDiscovery.cs │ │ │ └── ServiceCollectionExtensions.cs │ │ ├── Makefile │ │ ├── Platform/ │ │ │ ├── EnvironmentValues.cs │ │ │ ├── FileLoggerProvider.cs │ │ │ ├── IpcListener.cs │ │ │ ├── PortListeners/ │ │ │ │ ├── IPortListenerSource.cs │ │ │ │ ├── LinuxPortListeners.cs │ │ │ │ ├── MacPortListeners.cs │ │ │ │ ├── PortListener.cs │ │ │ │ ├── PortListeners.cs │ │ │ │ └── WindowsPortListeners.cs │ │ │ ├── ProcessUtil.cs │ │ │ ├── RuntimeFiles.cs │ │ │ └── StudioctlUserAgent.cs │ │ ├── Program.cs │ │ ├── Studioctl/ │ │ │ ├── AppUpgradeService.cs │ │ │ ├── Endpoints.cs │ │ │ ├── RegisterApp.cs │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ ├── UnregisterApp.cs │ │ │ └── Upgrade/ │ │ │ ├── Backend/ │ │ │ │ └── v7Tov8/ │ │ │ │ ├── AppSettingsRewriter/ │ │ │ │ │ └── AppSettingsRewriter.cs │ │ │ │ ├── BackendUpgrade/ │ │ │ │ │ └── BackendUpgrade.cs │ │ │ │ ├── CodeRewriters/ │ │ │ │ │ ├── IDataProcessorRewriter.cs │ │ │ │ │ ├── ModelRewriter.cs │ │ │ │ │ ├── TypesRewriter.cs │ │ │ │ │ └── UsingRewriter.cs │ │ │ │ ├── DockerfileRewriters/ │ │ │ │ │ ├── DockerfileRewriter.cs │ │ │ │ │ └── Extensions/ │ │ │ │ │ └── StringDockerTagExtensions.cs │ │ │ │ ├── ProcessRewriter/ │ │ │ │ │ └── ProcessUpgrader.cs │ │ │ │ └── ProjectChecks/ │ │ │ │ └── ProjectChecks.cs │ │ │ ├── Frontend/ │ │ │ │ └── Fev3Tov4/ │ │ │ │ ├── Checks/ │ │ │ │ │ └── Checks.cs │ │ │ │ ├── CustomReceiptRewriter/ │ │ │ │ │ └── CustomReceiptUpgrader.cs │ │ │ │ ├── FooterRewriter/ │ │ │ │ │ └── FooterUpgrader.cs │ │ │ │ ├── FrontendUpgrade/ │ │ │ │ │ └── FrontendUpgrade.cs │ │ │ │ ├── IndexFileRewriter/ │ │ │ │ │ └── IndexFileRewriter.cs │ │ │ │ ├── LayoutRewriter/ │ │ │ │ │ ├── ILayoutMutator.cs │ │ │ │ │ ├── LayoutMutator.cs │ │ │ │ │ ├── LayoutUpgrader.cs │ │ │ │ │ └── Mutators/ │ │ │ │ │ ├── AddressMutator.cs │ │ │ │ │ ├── AttachmentListMutator.cs │ │ │ │ │ ├── GroupMutator.cs │ │ │ │ │ ├── LikertMutator.cs │ │ │ │ │ ├── PropertyCleanupMutator.cs │ │ │ │ │ ├── RepeatingGroupMutator.cs │ │ │ │ │ ├── TrbMutator.cs │ │ │ │ │ └── TriggerMutator.cs │ │ │ │ ├── LayoutSetRewriter/ │ │ │ │ │ └── LayoutSetUpgrader.cs │ │ │ │ ├── SchemaRefRewriter/ │ │ │ │ │ └── SchemaRefUpgrader.cs │ │ │ │ └── SettingsWriter/ │ │ │ │ └── SettingsWriter.cs │ │ │ ├── GitOperations.cs │ │ │ ├── GlobalUsings.cs │ │ │ ├── JsonWhitespaceRestoration/ │ │ │ │ ├── ChunkClassifier.cs │ │ │ │ ├── DiffParser.cs │ │ │ │ ├── DirectFileRestorer.cs │ │ │ │ ├── GitRepositoryService.cs │ │ │ │ ├── WhitespaceRestorationProcessor.cs │ │ │ │ └── WhitespaceRestorationResult.cs │ │ │ ├── ProjectFile/ │ │ │ │ └── ProjectFileRewriter.cs │ │ │ ├── UpgradeConsole.cs │ │ │ └── v8Tov9/ │ │ │ ├── IndexMigration/ │ │ │ │ ├── AssetsConfigGenerator.cs │ │ │ │ ├── BrowserAssetsConfiguration.cs │ │ │ │ ├── CategorizationModels.cs │ │ │ │ ├── ElementCategorizer.cs │ │ │ │ ├── IndexCshtmlMigrator.cs │ │ │ │ ├── IndexFileParser.cs │ │ │ │ ├── InlineContentExtractor.cs │ │ │ │ ├── KnownCustomizationMatcher.cs │ │ │ │ ├── StandardElementMatcher.cs │ │ │ │ ├── StrictScriptAnalyzer.cs │ │ │ │ └── StrictStyleAnalyzer.cs │ │ │ ├── LayoutSetsMigration/ │ │ │ │ └── LayoutSetsToTaskUiMigrator.cs │ │ │ ├── ProjectChecks/ │ │ │ │ └── ProjectChecks.cs │ │ │ ├── RuleConfiguration/ │ │ │ │ ├── ConditionalRenderingMatchers/ │ │ │ │ │ ├── BinaryComparisonMatcher.cs │ │ │ │ │ ├── CallExpressionMatcher.cs │ │ │ │ │ ├── ConditionalExpressionMatcher.cs │ │ │ │ │ ├── IExpressionMatcher.cs │ │ │ │ │ ├── IdentifierMatcher.cs │ │ │ │ │ ├── LengthCheckMatcher.cs │ │ │ │ │ ├── LiteralMatcher.cs │ │ │ │ │ ├── LogicalOperatorMatcher.cs │ │ │ │ │ ├── ObjectExistenceCheckMatcher.cs │ │ │ │ │ ├── ParenthesizedExpressionMatcher.cs │ │ │ │ │ ├── PropertyAccessMatcher.cs │ │ │ │ │ ├── TruthinessCheckMatcher.cs │ │ │ │ │ ├── TypeofMatcher.cs │ │ │ │ │ ├── UnaryPlusMatcher.cs │ │ │ │ │ └── WindowLocationMatcher.cs │ │ │ │ ├── ConditionalRenderingRules/ │ │ │ │ │ ├── ComponentHiddenExpressionInjector.cs │ │ │ │ │ ├── ConditionalRenderingConverter.cs │ │ │ │ │ ├── LayoutFileManager.cs │ │ │ │ │ └── LegacyRuleFileCleanup.cs │ │ │ │ ├── DataProcessingRules/ │ │ │ │ │ ├── CSharpCodeGenerator.cs │ │ │ │ │ ├── DataModelResolver.cs │ │ │ │ │ ├── DataModelTypeResolver.cs │ │ │ │ │ ├── DataProcessorFileWriter.cs │ │ │ │ │ ├── IndentedStringBuilder.cs │ │ │ │ │ ├── ProgramCsRewriter.cs │ │ │ │ │ ├── ProgramCsUpdater.cs │ │ │ │ │ └── StatementConverter.cs │ │ │ │ ├── ExpressionConverter.cs │ │ │ │ ├── JavaScriptExpressionParser.cs │ │ │ │ ├── Models/ │ │ │ │ │ ├── ConditionalRenderingRule.cs │ │ │ │ │ ├── ConversionResult.cs │ │ │ │ │ ├── DataProcessingRule.cs │ │ │ │ │ ├── EmptyStringToNullDictionaryConverter.cs │ │ │ │ │ ├── JavaScriptFunction.cs │ │ │ │ │ └── RuleConfiguration.cs │ │ │ │ ├── RuleConfigurationParser.cs │ │ │ │ └── RuleHandlerParser.cs │ │ │ └── V8Tov9Upgrade.cs │ │ ├── Tunnel/ │ │ │ ├── BoundTopologyConfigReconciler.cs │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ ├── TunnelOptions.cs │ │ │ ├── TunnelState.cs │ │ │ └── TunnelWorker.cs │ │ └── studioctl-server.csproj │ └── studioctl.slnx ├── common/ │ ├── .config/ │ │ └── dotnet-tools.json │ ├── .csharpierignore │ ├── .csharpierrc.yaml │ ├── .editorconfig │ ├── Altinn.Studio.Runtime.Common.csproj │ ├── global.json │ └── src/ │ ├── Assert.cs │ ├── Hosting.cs │ └── Ports.cs ├── gitea/ │ ├── Dockerfile │ ├── README.md │ └── files/ │ ├── conf/ │ │ └── app.ini │ ├── custom/ │ │ └── templates/ │ │ ├── base/ │ │ │ └── head_navbar.tmpl │ │ ├── custom/ │ │ │ ├── extra_links.tmpl │ │ │ └── extra_links_footer.tmpl │ │ ├── home.tmpl │ │ └── user/ │ │ └── auth/ │ │ └── link_account.tmpl │ └── locale/ │ ├── base/ │ │ └── locale_nb-NO.json │ └── custom/ │ ├── locale_en-US.json │ └── locale_nb-NO.json ├── gitea-proxy/ │ ├── Dockerfile │ ├── auth.js │ ├── entrypoint.sh │ ├── nginx.conf.template │ └── test/ │ ├── Makefile │ ├── docker-compose.test.yml │ ├── fixtures.env │ ├── mock-designer/ │ │ ├── Dockerfile │ │ └── server.js │ ├── public.hurl │ └── trusted.hurl ├── gitea-runner/ │ ├── Dockerfile │ └── run.sh ├── lhci-server/ │ ├── .dockerignore │ ├── .gitignore │ ├── .yarnrc.yml │ ├── Dockerfile │ ├── compose.yaml │ ├── infra/ │ │ └── kustomize/ │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ └── service.yaml │ ├── package.json │ └── server.js ├── load-balancer/ │ ├── Dockerfile │ ├── entrypoint.sh │ ├── k8s/ │ │ ├── extra-locations.conf │ │ ├── extra-servers.conf.template │ │ ├── extra-upstreams.conf │ │ ├── logging/ │ │ │ └── access-log.conf │ │ └── ssl/ │ │ └── ssl.conf │ ├── local/ │ │ ├── error-pages/ │ │ │ ├── error-pages.conf │ │ │ └── repos-error.inc │ │ └── www/ │ │ ├── 502Designer.html │ │ └── 502Repo.html │ └── nginx.conf.template ├── test/ │ ├── K6/ │ │ ├── .eslintrc.json │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .yarn/ │ │ │ └── plugins/ │ │ │ └── @yarnpkg/ │ │ │ └── plugin-interactive-tools.cjs │ │ ├── .yarnrc.yml │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── grafana-dashboard.yaml │ │ ├── grafana-datasource.yaml │ │ ├── package.json │ │ ├── performance-test-dashboard.json │ │ ├── src/ │ │ │ ├── Helpers/ │ │ │ │ └── TestdataHelper.js │ │ │ ├── api/ │ │ │ │ ├── altinn-cdn/ │ │ │ │ │ └── altinn-cdn.js │ │ │ │ ├── altinn-testtools/ │ │ │ │ │ └── token-generator.js │ │ │ │ ├── altinn-ui/ │ │ │ │ │ └── messagebox.js │ │ │ │ ├── app/ │ │ │ │ │ ├── data-tags.js │ │ │ │ │ ├── data.js │ │ │ │ │ ├── instances.js │ │ │ │ │ ├── instantiation.js │ │ │ │ │ ├── process.js │ │ │ │ │ ├── resources.js │ │ │ │ │ ├── statelessdata.js │ │ │ │ │ └── texts.js │ │ │ │ └── platform/ │ │ │ │ ├── authentication.js │ │ │ │ ├── authorization/ │ │ │ │ │ ├── authorization.js │ │ │ │ │ └── delegations.js │ │ │ │ ├── events/ │ │ │ │ │ ├── events.js │ │ │ │ │ └── subscriptions.js │ │ │ │ ├── profile.js │ │ │ │ ├── receipt.js │ │ │ │ ├── register.js │ │ │ │ └── storage/ │ │ │ │ ├── applications.js │ │ │ │ ├── data.js │ │ │ │ ├── events.js │ │ │ │ ├── instances.js │ │ │ │ ├── messageboxinstances.js │ │ │ │ ├── process.js │ │ │ │ └── texts.js │ │ │ ├── availability.js │ │ │ ├── buildrequestheaders.js │ │ │ ├── config.js │ │ │ ├── data/ │ │ │ │ ├── appmetadata.json │ │ │ │ ├── apps-test-prod.xml │ │ │ │ ├── apps-test.xml │ │ │ │ ├── eformidling-app.xml │ │ │ │ ├── events.json │ │ │ │ ├── instance.json │ │ │ │ ├── memo.xml │ │ │ │ ├── pdfInput.json │ │ │ │ ├── pdpinput.json │ │ │ │ ├── policy.xml │ │ │ │ ├── rf-0002.xml │ │ │ │ ├── sirius.xml │ │ │ │ └── two-task-app.xml │ │ │ ├── errorcounter.js │ │ │ ├── report.js │ │ │ ├── scenarios.js │ │ │ ├── setup.js │ │ │ ├── support.js │ │ │ ├── tests/ │ │ │ │ ├── altinn-ui/ │ │ │ │ │ └── messagebox.js │ │ │ │ ├── app/ │ │ │ │ │ ├── appowner/ │ │ │ │ │ │ ├── complete-instances.js │ │ │ │ │ │ └── end2end.js │ │ │ │ │ ├── data-tags.js │ │ │ │ │ ├── data.js │ │ │ │ │ ├── end2end.js │ │ │ │ │ ├── instances.js │ │ │ │ │ ├── multipartdata.js │ │ │ │ │ ├── negativetests/ │ │ │ │ │ │ ├── appowner-writewithoutaccess.js │ │ │ │ │ │ ├── lowersecuritylevellogin.js │ │ │ │ │ │ ├── withoutallowedroles.js │ │ │ │ │ │ └── withoutauthentication.js │ │ │ │ │ ├── performance/ │ │ │ │ │ │ ├── e2erf0002.js │ │ │ │ │ │ ├── memo.js │ │ │ │ │ │ ├── rf0002portal.js │ │ │ │ │ │ ├── rf0002withattachment.js │ │ │ │ │ │ ├── sirius.js │ │ │ │ │ │ └── uploadanddownload.js │ │ │ │ │ ├── portalsimulation.js │ │ │ │ │ ├── process.js │ │ │ │ │ └── statelessdata.js │ │ │ │ └── platform/ │ │ │ │ ├── appowner/ │ │ │ │ │ ├── data.js │ │ │ │ │ ├── downloadinstances.js │ │ │ │ │ ├── events.js │ │ │ │ │ ├── getinstances5482.js │ │ │ │ │ ├── instances-poll.js │ │ │ │ │ └── instances.js │ │ │ │ ├── authentication/ │ │ │ │ │ └── authentication.js │ │ │ │ ├── negativetests/ │ │ │ │ │ ├── lowersecuritylevellogin.js │ │ │ │ │ ├── register.js │ │ │ │ │ ├── sbl.js │ │ │ │ │ ├── withoutallowedroles.js │ │ │ │ │ └── withoutauthentication.js │ │ │ │ ├── profile/ │ │ │ │ │ └── profile.js │ │ │ │ ├── receipt/ │ │ │ │ │ └── receipt.js │ │ │ │ ├── register/ │ │ │ │ │ └── register.js │ │ │ │ └── storage/ │ │ │ │ └── deleteinstances.js │ │ │ └── wrapper.js │ │ ├── use-cases-prod.yaml │ │ └── use-cases.yaml │ └── apps/ │ ├── anonymous-stateless-app/ │ │ ├── .altinnstudio/ │ │ │ └── settings.json │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── App/ │ │ │ ├── App.csproj │ │ │ ├── JWTValidationCert.cer │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.Production.json │ │ │ ├── appsettings.Staging.json │ │ │ ├── appsettings.json │ │ │ ├── config/ │ │ │ │ ├── applicationmetadata.json │ │ │ │ ├── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── process/ │ │ │ │ │ └── process.bpmn │ │ │ │ └── texts/ │ │ │ │ └── resource.nb.json │ │ │ ├── logic/ │ │ │ │ ├── DataProcessing/ │ │ │ │ │ ├── DataProcessor.cs │ │ │ │ │ └── InstantiationProcessor.cs │ │ │ │ ├── Print/ │ │ │ │ │ └── PdfHandler.cs │ │ │ │ └── Validation/ │ │ │ │ ├── InstantiationValidator.cs │ │ │ │ └── ValidationHandler.cs │ │ │ ├── models/ │ │ │ │ ├── default.cs │ │ │ │ ├── default.metadata.json │ │ │ │ ├── default.schema.json │ │ │ │ └── default.xsd │ │ │ ├── options/ │ │ │ │ └── epostOptions.json │ │ │ └── ui/ │ │ │ ├── RuleHandler.js │ │ │ └── stateless/ │ │ │ ├── Settings.json │ │ │ └── layouts/ │ │ │ ├── 1.json │ │ │ └── 2.json │ │ ├── App.sln │ │ ├── Dockerfile │ │ ├── config.json │ │ └── deployment/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ └── values.yaml │ ├── component-library/ │ │ ├── .altinnstudio/ │ │ │ └── settings.json │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ ├── launch.json │ │ │ └── tasks.json │ │ ├── App/ │ │ │ ├── App.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.Production.json │ │ │ ├── appsettings.Staging.json │ │ │ ├── appsettings.json │ │ │ ├── config/ │ │ │ │ ├── applicationmetadata.json │ │ │ │ ├── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── logic/ │ │ │ │ │ └── InstantiationProcessor.cs │ │ │ │ ├── process/ │ │ │ │ │ └── process.bpmn │ │ │ │ └── texts/ │ │ │ │ ├── resource.en.json │ │ │ │ └── resource.nb.json │ │ │ ├── logic/ │ │ │ │ └── DataProcessor.cs │ │ │ ├── models/ │ │ │ │ ├── ListItem.cs │ │ │ │ ├── model.cs │ │ │ │ ├── model.schema.json │ │ │ │ ├── model.xsd │ │ │ │ ├── model2.cs │ │ │ │ ├── model2.schema.json │ │ │ │ └── model2.xsd │ │ │ ├── options/ │ │ │ │ ├── ListCases.cs │ │ │ │ ├── likertOptions.json │ │ │ │ ├── persons.json │ │ │ │ ├── personsNumber.json │ │ │ │ └── reasons.json │ │ │ ├── services/ │ │ │ │ └── ExternalApi.cs │ │ │ └── ui/ │ │ │ ├── PreviousProcessSummary/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── RenderPreviousTask.json │ │ │ │ ├── RenderSpecificComponentFromPreviousTask.json │ │ │ │ └── RenderSpecificPageFromPreviousTask.json │ │ │ ├── Task_1/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── AccordionGroupPage.json │ │ │ │ ├── AccordionPage.json │ │ │ │ ├── AddressPage.json │ │ │ │ ├── AttachmentListPage.json │ │ │ │ ├── ButtonPage.json │ │ │ │ ├── CardsPage.json │ │ │ │ ├── CheckboxesPage.json │ │ │ │ ├── DateAndFormatDate.json │ │ │ │ ├── DatePage.json │ │ │ │ ├── DatepickerPage.json │ │ │ │ ├── DividerPage.json │ │ │ │ ├── DropdownPage.json │ │ │ │ ├── FileUploadPage.json │ │ │ │ ├── GridPage.json │ │ │ │ ├── GroupPage.json │ │ │ │ ├── ImageUploadPage.json │ │ │ │ ├── InputPage.json │ │ │ │ ├── LikertPage.json │ │ │ │ ├── LinkPage.json │ │ │ │ ├── ListPage.json │ │ │ │ ├── MapPage.json │ │ │ │ ├── MultipleSelectPage.json │ │ │ │ ├── NumberPage.json │ │ │ │ ├── OrganisationLookupPage.json │ │ │ │ ├── PersonLookupPage.json │ │ │ │ ├── RadioButtonsPage.json │ │ │ │ ├── RepeatingGroupPage.json │ │ │ │ ├── SimpleTable.json │ │ │ │ ├── SummaryPage.json │ │ │ │ ├── TabsPage.json │ │ │ │ ├── TextPage.json │ │ │ │ └── TextareaPage.json │ │ │ └── footer.json │ │ ├── App.sln │ │ ├── Dockerfile │ │ └── deployment/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ └── values.yaml │ ├── expression-validation-test/ │ │ ├── .altinnstudio/ │ │ │ └── settings.json │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── App/ │ │ │ ├── App.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.Production.json │ │ │ ├── appsettings.Staging.json │ │ │ ├── appsettings.json │ │ │ ├── config/ │ │ │ │ ├── applicationmetadata.json │ │ │ │ ├── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── process/ │ │ │ │ │ └── process.bpmn │ │ │ │ └── texts/ │ │ │ │ └── resource.nb.json │ │ │ ├── logic/ │ │ │ │ └── Validation/ │ │ │ │ └── AllTagsValidator.cs │ │ │ ├── models/ │ │ │ │ ├── skjema.cs │ │ │ │ ├── skjema.schema.json │ │ │ │ ├── skjema.validation.json │ │ │ │ └── skjema.xsd │ │ │ ├── options/ │ │ │ │ ├── applicationdocs.json │ │ │ │ └── cert.json │ │ │ └── ui/ │ │ │ ├── Task_1/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── CV.json │ │ │ │ └── Skjul felter.json │ │ │ └── footer.json │ │ ├── App.sln │ │ ├── Dockerfile │ │ └── deployment/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ └── values.yaml │ ├── frontend-test/ │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── App/ │ │ │ ├── Actions/ │ │ │ │ ├── ConflictingOptionsReset.cs │ │ │ │ ├── FillAction.cs │ │ │ │ ├── GeneratePetsAction.cs │ │ │ │ ├── ShiftingOptionsAdd.cs │ │ │ │ ├── ShiftingOptionsRemoveAll.cs │ │ │ │ └── SortPetsAction.cs │ │ │ ├── App.csproj │ │ │ ├── JWTValidationCert.cer │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.Production.json │ │ │ ├── appsettings.Staging.json │ │ │ ├── appsettings.json │ │ │ ├── config/ │ │ │ │ ├── applicationmetadata.json │ │ │ │ ├── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── process/ │ │ │ │ │ └── process.bpmn │ │ │ │ └── texts/ │ │ │ │ ├── resource.en.json │ │ │ │ └── resource.nb.json │ │ │ ├── logic/ │ │ │ │ ├── ConvertedLegacyRules/ │ │ │ │ │ └── ChangenameDataProcessor.cs │ │ │ │ ├── DataProcessing/ │ │ │ │ │ ├── DataProcessor.cs │ │ │ │ │ ├── GeometryData.cs │ │ │ │ │ └── InstantiationProcessor.cs │ │ │ │ ├── Instantiation/ │ │ │ │ │ └── InstantiationValidator.cs │ │ │ │ ├── MetaData/ │ │ │ │ │ └── CustomMetaData.cs │ │ │ │ ├── Pdf/ │ │ │ │ │ └── PdfFormatter.cs │ │ │ │ └── Validation/ │ │ │ │ ├── ChangeNameValidator.cs │ │ │ │ └── GroupValidator.cs │ │ │ ├── models/ │ │ │ │ ├── ListItem.cs │ │ │ │ ├── ServiceModel-test.cs │ │ │ │ ├── ServiceModel-test.metadata.json │ │ │ │ ├── ServiceModel-test.schema.json │ │ │ │ ├── datalist.cs │ │ │ │ ├── datalist.metadata.json │ │ │ │ ├── datalist.schema.json │ │ │ │ ├── likert.cs │ │ │ │ ├── likert.metadata.json │ │ │ │ ├── likert.schema.json │ │ │ │ ├── likert.xsd │ │ │ │ ├── message.cs │ │ │ │ ├── message.metadata.json │ │ │ │ ├── message.schema.json │ │ │ │ ├── message.xsd │ │ │ │ ├── nested-group.cs │ │ │ │ ├── nested-group.metadata.json │ │ │ │ ├── nested-group.schema.json │ │ │ │ └── nested-group.validation.json │ │ │ ├── options/ │ │ │ │ ├── ListCases.cs │ │ │ │ ├── colors.json │ │ │ │ ├── foods.json │ │ │ │ ├── likertOptions.json │ │ │ │ ├── list.json │ │ │ │ ├── list2.json │ │ │ │ ├── pet-sort-order.json │ │ │ │ ├── pet-species.json │ │ │ │ ├── reasons.json │ │ │ │ └── tags.json │ │ │ ├── services/ │ │ │ │ └── options/ │ │ │ │ ├── AnimalColorsOptions.cs │ │ │ │ ├── BalloonColorsOptions.cs │ │ │ │ ├── ReferenceOptions.cs │ │ │ │ └── TestOptions.cs │ │ │ └── ui/ │ │ │ ├── Task_1/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── formLayout.json │ │ │ │ ├── neverDisplayed.json │ │ │ │ └── taskChooser.json │ │ │ ├── Task_2/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── cards.json │ │ │ │ ├── conflicting-options.json │ │ │ │ ├── filtered-options.json │ │ │ │ ├── form.json │ │ │ │ ├── grid.json │ │ │ │ ├── label-data-bindings.json │ │ │ │ ├── linked-hidden.json │ │ │ │ ├── map.json │ │ │ │ ├── neverDisplayed.json │ │ │ │ ├── numeric-fields.json │ │ │ │ ├── shifting-options.json │ │ │ │ └── summary.json │ │ │ ├── Task_3/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── hide.json │ │ │ │ ├── neverDisplayed.json │ │ │ │ ├── option-comp.json │ │ │ │ ├── prefill.json │ │ │ │ ├── repeating.json │ │ │ │ ├── repeating2.json │ │ │ │ ├── repeating3.json │ │ │ │ └── summary.json │ │ │ ├── Task_4/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ └── formLayout.json │ │ │ ├── Task_5/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── formLayout.json │ │ │ │ ├── summary.json │ │ │ │ └── summary2.json │ │ │ ├── Task_Custom_Confirm/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ └── confirm.json │ │ │ └── footer.json │ │ ├── App.sln │ │ ├── Dockerfile │ │ ├── README.md │ │ └── deployment/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ └── values.yaml │ ├── global.json │ ├── multiple-datamodels-test/ │ │ ├── .altinnstudio/ │ │ │ └── settings.json │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── App/ │ │ │ ├── App.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── actions/ │ │ │ │ └── RandomAction.cs │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.Production.json │ │ │ ├── appsettings.Staging.json │ │ │ ├── appsettings.json │ │ │ ├── config/ │ │ │ │ ├── applicationmetadata.json │ │ │ │ ├── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── process/ │ │ │ │ │ └── process.bpmn │ │ │ │ └── texts/ │ │ │ │ └── resource.nb.json │ │ │ ├── logic/ │ │ │ │ ├── CustomMetaData.cs │ │ │ │ ├── DataProcessor.cs │ │ │ │ ├── FormDataHelper.cs │ │ │ │ ├── InstantiationHandler.cs │ │ │ │ ├── InstantiationProcessor.cs │ │ │ │ └── PrefillSharedPerson.cs │ │ │ ├── models/ │ │ │ │ ├── ListItem.cs │ │ │ │ ├── modell1.cs │ │ │ │ ├── modell1.schema.json │ │ │ │ ├── modell1.validation.json │ │ │ │ ├── modell1.xsd │ │ │ │ ├── modell2.cs │ │ │ │ ├── modell2.schema.json │ │ │ │ ├── modell2.validation.json │ │ │ │ ├── modell2.xsd │ │ │ │ ├── modell3.cs │ │ │ │ ├── modell3.schema.json │ │ │ │ ├── modell3.xsd │ │ │ │ ├── sharedperson.cs │ │ │ │ ├── sharedperson.schema.json │ │ │ │ └── sharedperson.xsd │ │ │ ├── options/ │ │ │ │ ├── IndustryOptionsProvider.cs │ │ │ │ └── PersonListProvider.cs │ │ │ └── ui/ │ │ │ ├── CustomReceipt/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ └── receipt.json │ │ │ ├── Task_1/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── Side1.json │ │ │ │ ├── Side2.json │ │ │ │ ├── Side3.json │ │ │ │ ├── Side4.json │ │ │ │ ├── Side5.json │ │ │ │ └── Side6.json │ │ │ ├── Task_2/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── Side1.json │ │ │ │ └── Side2.json │ │ │ └── footer.json │ │ ├── App.sln │ │ ├── Dockerfile │ │ └── deployment/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ └── values.yaml │ ├── navigation-test-subform/ │ │ ├── .altinnstudio/ │ │ │ └── settings.json │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── App/ │ │ │ ├── App.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.Production.json │ │ │ ├── appsettings.Staging.json │ │ │ ├── appsettings.json │ │ │ ├── config/ │ │ │ │ ├── applicationmetadata.json │ │ │ │ ├── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── process/ │ │ │ │ │ └── process.bpmn │ │ │ │ └── texts/ │ │ │ │ ├── resource.en.json │ │ │ │ └── resource.nb.json │ │ │ ├── models/ │ │ │ │ ├── model.cs │ │ │ │ ├── model.schema.json │ │ │ │ ├── model.xsd │ │ │ │ ├── subform.cs │ │ │ │ ├── subform.schema.json │ │ │ │ └── subform.xsd │ │ │ ├── options/ │ │ │ │ └── brands.json │ │ │ └── ui/ │ │ │ ├── Settings.json │ │ │ ├── Task_1/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── age.json │ │ │ │ ├── birthday.json │ │ │ │ ├── cars.json │ │ │ │ ├── emails.json │ │ │ │ ├── extra.json │ │ │ │ ├── feedback.json │ │ │ │ ├── firstname.json │ │ │ │ ├── important.json │ │ │ │ ├── info1.json │ │ │ │ ├── info2.json │ │ │ │ ├── lastname.json │ │ │ │ └── summary.json │ │ │ ├── footer.json │ │ │ └── subform/ │ │ │ ├── Settings.json │ │ │ └── layouts/ │ │ │ ├── brand.json │ │ │ ├── reg.json │ │ │ └── year.json │ │ ├── App.sln │ │ ├── Dockerfile │ │ ├── config.json │ │ └── deployment/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ └── values.yaml │ ├── payment-test/ │ │ ├── .altinnstudio/ │ │ │ └── settings.json │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── App/ │ │ │ ├── App.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.Production.json │ │ │ ├── appsettings.Staging.json │ │ │ ├── appsettings.json │ │ │ ├── config/ │ │ │ │ ├── applicationmetadata.json │ │ │ │ ├── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── process/ │ │ │ │ │ └── process.bpmn │ │ │ │ └── texts/ │ │ │ │ ├── resource.nb.json │ │ │ │ └── resource.nn.json │ │ │ ├── logic/ │ │ │ │ ├── DataProcessor.cs │ │ │ │ └── OrderDetailsCalculator.cs │ │ │ ├── models/ │ │ │ │ ├── AltinnCodeList.cs │ │ │ │ ├── Country.cs │ │ │ │ ├── model.cs │ │ │ │ ├── model.prefill.json │ │ │ │ ├── model.schema.json │ │ │ │ └── model.xsd │ │ │ ├── options/ │ │ │ │ ├── delegatePerson.json │ │ │ │ ├── examples.json │ │ │ │ ├── priorityReason.json │ │ │ │ └── trademarks.json │ │ │ └── ui/ │ │ │ ├── Task_1/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── 01ContactInformation.json │ │ │ │ ├── 02OrganizationInformation.json │ │ │ │ ├── 03Agent.json │ │ │ │ ├── 04Trademark.json │ │ │ │ ├── 05GoodsAndServices.json │ │ │ │ ├── 06Priority.json │ │ │ │ └── 07Payment.json │ │ │ ├── Task_2/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── payment.json │ │ │ │ └── paymentReceipt.json │ │ │ └── footer.json │ │ ├── App.sln │ │ ├── Dockerfile │ │ └── deployment/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ └── values.yaml │ ├── service-task/ │ │ ├── .altinnstudio/ │ │ │ └── settings.json │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── App/ │ │ │ ├── .config/ │ │ │ │ └── dotnet-tools.json │ │ │ ├── App.csproj │ │ │ ├── Code/ │ │ │ │ ├── EFormidlingMetadata.cs │ │ │ │ ├── ExampleServiceTask.cs │ │ │ │ └── FailServiceTask.cs │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.Production.json │ │ │ ├── appsettings.Staging.json │ │ │ ├── appsettings.json │ │ │ ├── config/ │ │ │ │ ├── applicationmetadata.json │ │ │ │ ├── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── process/ │ │ │ │ │ └── process.bpmn │ │ │ │ └── texts/ │ │ │ │ └── resource.nb.json │ │ │ ├── models/ │ │ │ │ ├── Model2.cs │ │ │ │ ├── Model2.schema.json │ │ │ │ ├── Model2.xsd │ │ │ │ ├── SubformModel.cs │ │ │ │ ├── SubformModel.schema.json │ │ │ │ ├── SubformModel.xsd │ │ │ │ ├── model.cs │ │ │ │ ├── model.schema.json │ │ │ │ └── model.xsd │ │ │ ├── secrets.json │ │ │ └── ui/ │ │ │ ├── Settings.json │ │ │ ├── Task_Fail/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ └── Side1.json │ │ │ ├── Task_PDF_Layout/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── Side1.json │ │ │ │ └── pdfLayout.json │ │ │ ├── Task_Utfylling1/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ └── Side1.json │ │ │ ├── Task_Utfylling2/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ └── Side1.json │ │ │ ├── TestSubform/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ └── Side1.json │ │ │ └── footer.json │ │ ├── App.sln │ │ ├── Dockerfile │ │ └── deployment/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ └── values.yaml │ ├── signering-brukerstyrt/ │ │ ├── .altinnstudio/ │ │ │ └── settings.json │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── App/ │ │ │ ├── App.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.Production.json │ │ │ ├── appsettings.Staging.json │ │ │ ├── appsettings.json │ │ │ ├── config/ │ │ │ │ ├── applicationmetadata.json │ │ │ │ ├── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── process/ │ │ │ │ │ └── process.bpmn │ │ │ │ └── texts/ │ │ │ │ └── resource.nb.json │ │ │ ├── logic/ │ │ │ │ ├── AuditorSigneesProvider.cs │ │ │ │ ├── FounderSigneesProvider.cs │ │ │ │ └── HasAuditorProcessGateway.cs │ │ │ ├── models/ │ │ │ │ ├── Skjemadata.cs │ │ │ │ ├── Skjemadata.schema.json │ │ │ │ └── Skjemadata.xsd │ │ │ ├── ui/ │ │ │ │ ├── SigningTask_Auditor/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ └── Side1.json │ │ │ │ ├── SigningTask_Founders/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ ├── Side1.json │ │ │ │ │ └── pdf.json │ │ │ │ ├── Task_1/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ ├── aksjekapital.json │ │ │ │ │ ├── om-selskapet.json │ │ │ │ │ ├── signering-av-stiftelsesdok.json │ │ │ │ │ ├── stiftere-og-aksjetegning.json │ │ │ │ │ └── styre-og-revisjon.json │ │ │ │ └── footer.json │ │ │ └── wwwroot/ │ │ │ └── testData.json │ │ ├── App.sln │ │ ├── Dockerfile │ │ ├── config.json │ │ └── deployment/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ └── values.yaml │ ├── signing-test/ │ │ ├── .altinnstudio/ │ │ │ └── settings.json │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── App/ │ │ │ ├── App.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.Production.json │ │ │ ├── appsettings.Staging.json │ │ │ ├── appsettings.json │ │ │ ├── config/ │ │ │ │ ├── applicationmetadata.json │ │ │ │ ├── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── process/ │ │ │ │ │ └── process.bpmn │ │ │ │ └── texts/ │ │ │ │ └── resource.nb.json │ │ │ ├── logic/ │ │ │ │ └── DataProcessing/ │ │ │ │ └── InstantiationProcessor.cs │ │ │ ├── models/ │ │ │ │ ├── data.cs │ │ │ │ ├── data.prefill.json │ │ │ │ ├── data.schema.json │ │ │ │ └── data.xsd │ │ │ ├── options/ │ │ │ │ └── revenue-sources.json │ │ │ └── ui/ │ │ │ ├── Task_1/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ └── Form.json │ │ │ ├── Task_2/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ ├── Confirm.json │ │ │ │ └── NoAccess.json │ │ │ └── Task_3/ │ │ │ ├── Settings.json │ │ │ └── layouts/ │ │ │ ├── Confirm.json │ │ │ └── NoAccess.json │ │ ├── App.sln │ │ ├── Dockerfile │ │ ├── README.md │ │ └── deployment/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ └── values.yaml │ ├── stateless-app/ │ │ ├── .altinnstudio/ │ │ │ └── settings.json │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── App/ │ │ │ ├── App.csproj │ │ │ ├── JWTValidationCert.cer │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.Production.json │ │ │ ├── appsettings.Staging.json │ │ │ ├── appsettings.json │ │ │ ├── config/ │ │ │ │ ├── applicationmetadata.json │ │ │ │ ├── authorization/ │ │ │ │ │ └── policy.xml │ │ │ │ ├── process/ │ │ │ │ │ └── process.bpmn │ │ │ │ └── texts/ │ │ │ │ └── resource.nb.json │ │ │ ├── logic/ │ │ │ │ ├── DataProcessor.cs │ │ │ │ ├── InstantiationProcessor.cs │ │ │ │ └── ValidateQueryParamPrefill.cs │ │ │ ├── models/ │ │ │ │ ├── message.cs │ │ │ │ ├── message.prefill.json │ │ │ │ ├── message.schema.json │ │ │ │ ├── stateless.cs │ │ │ │ ├── stateless.metadata.json │ │ │ │ ├── stateless.prefill.json │ │ │ │ ├── stateless.schema.json │ │ │ │ ├── stateless.xsd │ │ │ │ ├── task2.cs │ │ │ │ ├── task2.schema.json │ │ │ │ └── task2.xsd │ │ │ ├── ui/ │ │ │ │ ├── Task_1/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ └── 1.json │ │ │ │ ├── Task_2/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ └── 1.json │ │ │ │ ├── Task_4/ │ │ │ │ │ ├── Settings.json │ │ │ │ │ └── layouts/ │ │ │ │ │ └── Side1.json │ │ │ │ └── stateless/ │ │ │ │ ├── Settings.json │ │ │ │ └── layouts/ │ │ │ │ └── 1.json │ │ │ └── wwwroot/ │ │ │ └── process-navigator.js │ │ ├── App.sln │ │ ├── Dockerfile │ │ └── deployment/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ └── values.yaml │ └── subform-test/ │ ├── .altinnstudio/ │ │ └── settings.json │ ├── .dockerignore │ ├── .gitignore │ ├── App/ │ │ ├── App.csproj │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── appsettings.Production.json │ │ ├── appsettings.Staging.json │ │ ├── appsettings.json │ │ ├── config/ │ │ │ ├── applicationmetadata.json │ │ │ ├── authorization/ │ │ │ │ └── policy.xml │ │ │ ├── process/ │ │ │ │ └── process.bpmn │ │ │ └── texts/ │ │ │ └── resource.nb.json │ │ ├── logic/ │ │ │ ├── AttachmentValidator.cs │ │ │ ├── DataWriteProcessor.cs │ │ │ └── ModelValidator.cs │ │ ├── models/ │ │ │ ├── bok.cs │ │ │ ├── bok.schema.json │ │ │ ├── bok.xsd │ │ │ ├── model.cs │ │ │ ├── model.schema.json │ │ │ ├── model.xsd │ │ │ ├── moped.cs │ │ │ ├── moped.schema.json │ │ │ └── moped.xsd │ │ ├── options/ │ │ │ └── janei.json │ │ └── ui/ │ │ ├── Task_1/ │ │ │ ├── Settings.json │ │ │ └── layouts/ │ │ │ ├── oppsummering.json │ │ │ ├── oppsummering2.json │ │ │ └── utfylling.json │ │ ├── bok-subform/ │ │ │ ├── Settings.json │ │ │ └── layouts/ │ │ │ ├── bok-oppsummering.json │ │ │ └── bok-utfylling.json │ │ ├── footer.json │ │ └── moped-subform/ │ │ ├── Settings.json │ │ └── layouts/ │ │ ├── moped-pdf.json │ │ └── moped-utfylling.json │ ├── App.sln │ ├── Dockerfile │ ├── config.json │ └── deployment/ │ ├── .helmignore │ ├── Chart.yaml │ └── values.yaml └── tools/ ├── deployer/ │ ├── .gitignore │ ├── AGENTS.md │ ├── CLAUDE.md │ ├── Makefile │ ├── README.md │ ├── app.js │ ├── browser.js │ ├── db.js │ ├── gh.js │ ├── index.html │ ├── server.js │ └── style.css ├── health/ │ ├── .gitignore │ ├── .golangci.yml │ ├── Makefile │ ├── README.md │ ├── cmd/ │ │ └── main.go │ ├── go.mod │ ├── go.sum │ └── internal/ │ ├── az/ │ │ ├── azure.go │ │ └── validate.go │ ├── kubernetes/ │ │ ├── client.go │ │ ├── contexts.go │ │ ├── deployments.go │ │ ├── flux.go │ │ ├── httproute.go │ │ ├── logs.go │ │ ├── logs_test.go │ │ ├── nodes.go │ │ ├── pods.go │ │ ├── resource.go │ │ ├── types.go │ │ └── validate.go │ ├── output/ │ │ ├── nodes.go │ │ └── table.go │ └── runtimes/ │ ├── dis/ │ │ └── dis.go │ └── runtimes.go └── releaser/ ├── .golangci.yml ├── AGENTS.md ├── CLAUDE.md ├── Makefile ├── README.md ├── go.mod ├── internal/ │ ├── backport.go │ ├── backport_internal_test.go │ ├── browser.go │ ├── builder_go.go │ ├── changelog/ │ │ ├── changelog.go │ │ └── changelog_test.go │ ├── changelog_output.go │ ├── component.go │ ├── confirm.go │ ├── constants.go │ ├── errors.go │ ├── fs.go │ ├── fs_test.go │ ├── git.go │ ├── github.go │ ├── log.go │ ├── log_test.go │ ├── perm/ │ │ └── perm.go │ ├── preflight.go │ ├── preflight_test.go │ ├── prepare.go │ ├── prompt.go │ ├── prompt_test.go │ ├── tag.go │ ├── tag_test.go │ ├── validate.go │ ├── validate_test.go │ ├── version/ │ │ ├── version.go │ │ └── version_test.go │ ├── workflow.go │ ├── workflow_run.go │ ├── workflow_test.go │ ├── workflow_version_resolver.go │ └── workflow_version_resolver_test.go ├── main.go ├── main_test.go └── test/ └── e2e/ └── workflow_test.go