diff --git a/.eslintrc.json b/.eslintrc.json index 8cf31a364f..07d9778625 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -48,7 +48,12 @@ { "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], "rules": { - "prettier/prettier": ["error"], + "prettier/prettier": [ + "error", + { + "endOfLine": "auto" + } + ], "tsdoc/syntax": "warn" } } diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000000..dc6202eb9b --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,9 @@ +# Each line is a file pattern followed by one or more owners. + +# L3 Engineering are the default owners for everything excluding team specific forms (unless it's for a product supported by L3, in which +# case they are owners for those specific forms too) + +* @ukhsa-collaboration/L3-Engineering +/runner/src/server/forms/ReportAnOutbreak @ukhsa-collaboration/L3-Engineering + +/runner/src/server/forms \ No newline at end of file diff --git a/.github/workflows/auto-forms-deployment-caller.yml b/.github/workflows/auto-forms-deployment-caller.yml new file mode 100644 index 0000000000..1815fb7bb4 --- /dev/null +++ b/.github/workflows/auto-forms-deployment-caller.yml @@ -0,0 +1,97 @@ +# This workflow automatically calls to deploy if a change is made to only the forms folder + +name: Automated Form Deployment + +# Workflow runs automatically when the form folder is updated +on: + push: + branches: + - v2 + paths: + - "runner/src/server/forms/**" + workflow_dispatch: + inputs: + success: + description: "Did the deployment succeed" + type: boolean + required: true + default: false + auto_deploy_status: + description: "Failure status message" + type: string + required: false + commit_message: + description: "Triggering commit message" + type: string + required: true + caller_run_id: + description: "Workflow Caller ID" + type: string + required: true + +jobs: + Trigger-Deployment: + if: github.event_name == 'push' + runs-on: ubuntu-latest + permissions: + actions: read + outputs: + should_deploy: ${{ steps.check_file_path.outputs.should_deploy }} + env: + FORMS_FOLDER: "runner/src/server/forms/" + steps: + - name: Checkout + uses: actions/checkout@v5 + with: + fetch-depth: 0 + + - name: Check file paths + id: check_file_path + run: | + NON_FORM_FILES=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} -- ":(exclude)${{ env.FORMS_FOLDER }}" | wc -l) + if [ "$NON_FORM_FILES" -eq 0 ]; then + echo "Only form changes found, able to deploy" + echo "should_deploy=true" >> $GITHUB_OUTPUT + else + echo "Non-form changes found, do not deploy" + echo "should_deploy=false" >> $GITHUB_OUTPUT + fi + + - name: Generate token + if: steps.check_file_path.outputs.should_deploy == 'true' + uses: actions/create-github-app-token@v3 + id: app-token + with: + client-id: ${{ secrets.DEPLOYMENT_APP_ID }} + private-key: ${{ secrets.DEPLOYMENT_APP_KEY }} + owner: ${{ secrets.DEPLOYMENT_OWNER }} + repositories: ${{ secrets.DEPLOYMENT_REPO }} + + - name: Call deployment repo + if: steps.check_file_path.outputs.should_deploy == 'true' + uses: actions/github-script@v8 + with: + github-token: ${{ steps.app-token.outputs.token }} + script: | + await github.rest.actions.createWorkflowDispatch({ + owner: '${{ secrets.DEPLOYMENT_OWNER }}', + repo: '${{ secrets.DEPLOYMENT_REPO }}', + workflow_id: 'form-only-deployment.yml', + ref: 'trunk', + inputs: { + branch: 'v2', + commit_message: '${{ github.event.head_commit.message }}', + caller_run_id: '${{ github.run_id }}' + } + }); + + Print-Status: + if: github.event_name == 'workflow_dispatch' + runs-on: ubuntu-latest + steps: + - name: Print Deployment Status + run: | + echo "Deployment Success: ${{ github.event.inputs.success }}" + echo "Deployment Status Message: ${{ github.event.inputs.auto_deploy_status }}" + echo "Triggering Commit Message: ${{ github.event.inputs.commit_message }}" + echo "Caller Run ID: ${{ github.event.inputs.caller_run_id }}" diff --git a/.github/workflows/beta--lint-unit-build-and-publish-images.yml b/.github/workflows/beta--lint-unit-build-and-publish-images.yml index 3979b7a8ee..f827e1a194 100644 --- a/.github/workflows/beta--lint-unit-build-and-publish-images.yml +++ b/.github/workflows/beta--lint-unit-build-and-publish-images.yml @@ -10,21 +10,21 @@ jobs: outputs: semVer: ${{ steps.gitversion.outputs.semVer }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v5 with: fetch-depth: 0 - branches: main + ref: main - name: Install GitVersion - uses: gittools/actions/gitversion/setup@v0.9.7 + uses: gittools/actions/gitversion/setup@v4 with: versionSpec: "5.x" - name: Determine Version id: gitversion - uses: gittools/actions/gitversion/execute@v0.9.7 + uses: gittools/actions/gitversion/execute@v4 with: - useConfigFile: true + configFilePath: "GitVersion.yml" assign-semver: runs-on: ubuntu-latest @@ -72,7 +72,7 @@ jobs: SEMVER: ${{ needs.assign-semver.outputs.SEMVER }} steps: - name: Checkout repo - uses: actions/checkout@v2 + uses: actions/checkout@v5 with: token: ${{ secrets.GITHUB_TOKEN }} - name: Tag branch with run number diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 73c3abe948..d049a47d05 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,9 +32,9 @@ jobs: tag: ${{ steps.hashFile.outputs.tag }} hash: ${{ steps.hashFile.outputs.hash }} steps: - - uses: actions/checkout@v3.6.0 + - uses: actions/checkout@v5 - name: Use Node.js - uses: actions/setup-node@v3.6.0 + uses: actions/setup-node@v5 with: node-version: "16.x" @@ -42,7 +42,7 @@ jobs: id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn config get cacheFolder)" - - uses: actions/cache@v3 + - uses: actions/cache@v5 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} @@ -52,13 +52,13 @@ jobs: fail-on-cache-miss: false - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v4 with: - config-inline: | + buildkitd-config-inline: | [registry."ghcr.io"] - name: Login to GitHub Container Registry - uses: docker/login-action@v2 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} @@ -75,7 +75,7 @@ jobs: - name: Build ${{inputs.app}} if: ${{inputs.publish != true }} - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v7 with: file: ${{inputs.app}}/Dockerfile push: false @@ -84,7 +84,7 @@ jobs: - name: Build ${{inputs.app}} and push if: ${{inputs.semver && inputs.publish == true }} - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v7 with: file: ${{inputs.app}}/Dockerfile push: true diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index d544111afd..5e9a3f395c 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -34,7 +34,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v5 with: # We must fetch at least the immediate parents so that if this is # a pull request then we can checkout the head. @@ -47,7 +47,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v1 + uses: github/codeql-action/init@v4 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -56,4 +56,4 @@ jobs: # queries: ./path/to/local/query, your-org/your-repo/queries@main - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + uses: github/codeql-action/analyze@v4 diff --git a/.github/workflows/create-ukhsa-release.yaml b/.github/workflows/create-ukhsa-release.yaml new file mode 100644 index 0000000000..ec54785ef1 --- /dev/null +++ b/.github/workflows/create-ukhsa-release.yaml @@ -0,0 +1,90 @@ +name: Create UKHSA Release + +on: + push: + branches: + - v2 + paths: + - "**/*docker-compose*.yml" + - "**/*docker-compose*.yaml" + - "**/docker-compose/**" + - "runner/**" + - "designer/**" + - "submitter/**" + - "model/**" + - "queue-model/**" + - "package.json" + - "yarn.lock" + +jobs: + create-extended-tags: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v5 + with: + fetch-depth: 0 + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Configure Git + run: | + git config user.name "GitHub Actions" + git config user.email "actions@github.com" + + - name: Find merge base with main and create extended tags + run: | + # Ensure we have all tags and branches + git fetch --tags origin + git fetch origin main:main + + # Find the merge base between v2 and main + MERGE_BASE=$(git merge-base v2 main) + echo "Merge base commit: $MERGE_BASE" + + # Get the tags that point to the merge base commit + BASE_TAGS=$(git tag --points-at $MERGE_BASE) + + if [ -z "$BASE_TAGS" ]; then + echo "No tags found at merge base. Exiting." + exit 0 + fi + + echo "Found tags at merge base: $BASE_TAGS" + + # Process each found tag + for BASE_TAG in $BASE_TAGS; do + echo "Processing base tag: $BASE_TAG" + + # Find highest existing extended tag version + HIGHEST_EXT_VERSION=0 + + # Get all extended tags for this base tag + EXISTING_EXT_TAGS=$(git tag -l "${BASE_TAG}-ext*") + + for EXT_TAG in $EXISTING_EXT_TAGS; do + # Extract version number after "ext" + VERSION_NUM=$(echo $EXT_TAG | sed -E "s|${BASE_TAG}-ext([0-9]+)|\1|") + + if [[ $VERSION_NUM =~ ^[0-9]+$ ]]; then + if [ $VERSION_NUM -gt $HIGHEST_EXT_VERSION ]; then + HIGHEST_EXT_VERSION=$VERSION_NUM + fi + fi + done + + # Calculate new version + NEW_VERSION=$((HIGHEST_EXT_VERSION + 1)) + NEW_TAG="${BASE_TAG}-ext${NEW_VERSION}" + + echo "Creating new extended tag: $NEW_TAG" + + # Get current v2 branch HEAD + V2_HEAD=$(git rev-parse v2) + + # Create annotated tag + git tag -a "$NEW_TAG" -m "Extended tag from $BASE_TAG for v2 branch (version $NEW_VERSION)" $V2_HEAD + + # Push the new tag + git push origin "$NEW_TAG" + echo "Successfully created and pushed tag $NEW_TAG" + done diff --git a/.github/workflows/dependabot.yml b/.github/workflows/dependabot.yml index a647f27be3..df230b2d23 100644 --- a/.github/workflows/dependabot.yml +++ b/.github/workflows/dependabot.yml @@ -1,11 +1,10 @@ name: Dependabot - on: workflow_call: secrets: DEPENDABOT_PAT: - description: 'PAT to commit changes' + description: "PAT to commit changes" required: false jobs: @@ -14,7 +13,7 @@ jobs: if: github.actor == 'dependabot[bot]' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 with: # Using a Personal Access Token here is required to trigger workflows on our new commit. # The default GitHub token doesn't trigger any workflows. @@ -26,12 +25,12 @@ jobs: - run: git lfs pull --include .yarn/ - name: Setup node - uses: actions/setup-node@v2.4.1 + uses: actions/setup-node@v5 with: node-version: 16.x - name: Restore cache - uses: actions/cache@v2.1.4 + uses: actions/cache@v5 with: path: .yarn/cache key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} @@ -51,7 +50,6 @@ jobs: git commit -m '[dependabot skip] Fix yarn.lock' git push - skip-update-branch: runs-on: ubuntu-latest if: github.actor != 'dependabot[bot]' diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 06ba235e05..9920bb23f6 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -15,8 +15,9 @@ jobs: runs-on: ubuntu-latest steps: - name: "Checkout Repository" - uses: actions/checkout@v3 + uses: actions/checkout@v5 + - name: "Dependency Review" - uses: actions/dependency-review-action@v2 + uses: actions/dependency-review-action@v5 with: allow-ghsas: GHSA-c429-5p7v-vgjp,GHSA-7fh5-64p2-3v2j diff --git a/.github/workflows/deploy-development.yml b/.github/workflows/deploy-development.yml index ceeb41373d..187c246041 100644 --- a/.github/workflows/deploy-development.yml +++ b/.github/workflows/deploy-development.yml @@ -20,13 +20,12 @@ on: required: true type: string - jobs: deploy: runs-on: ubuntu-latest name: Deploy development ${{ inputs.app }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v5 - name: Login to Heroku Container registry env: HEROKU_API_KEY: ${{ secrets.HEROKU_DEV_API_KEY }} diff --git a/.github/workflows/deploy-fcdo.yml b/.github/workflows/deploy-fcdo.yml index 95454270ca..4b3fcdf03c 100644 --- a/.github/workflows/deploy-fcdo.yml +++ b/.github/workflows/deploy-fcdo.yml @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest name: Deploy development ${{ inputs.app }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v5 - name: Login to Heroku Container registry env: HEROKU_API_KEY: ${{ secrets.HEROKU_DEV_API_KEY }} diff --git a/.github/workflows/lint-and-test.yml b/.github/workflows/lint-and-test.yml index 505369f727..30c5a7c239 100644 --- a/.github/workflows/lint-and-test.yml +++ b/.github/workflows/lint-and-test.yml @@ -14,9 +14,9 @@ jobs: runs-on: ubuntu-latest name: lint and test ${{inputs.workspace}} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 - name: Use Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v5 with: node-version: "16.x" @@ -24,7 +24,7 @@ jobs: id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn config get cacheFolder)" - - uses: actions/cache@v3 + - uses: actions/cache@v5 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} @@ -52,7 +52,7 @@ jobs: run: yarn ${{inputs.workspace}} test-cov - name: Upload test results artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 if: ${{ success() || failure() }} with: name: test-results-${{inputs.workspace}} @@ -60,7 +60,7 @@ jobs: retention-days: 14 - name: Upload test coverage artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 if: ${{ success() || failure() }} with: name: test-coverage-${{inputs.workspace}} diff --git a/.github/workflows/main--lint-unit-build-and-publish-images.yml b/.github/workflows/main--lint-unit-build-and-publish-images.yml index aa0251a638..d194f7719a 100644 --- a/.github/workflows/main--lint-unit-build-and-publish-images.yml +++ b/.github/workflows/main--lint-unit-build-and-publish-images.yml @@ -10,21 +10,21 @@ jobs: outputs: semVer: ${{ steps.gitversion.outputs.semVer }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v5 with: fetch-depth: 0 - branches: main + ref: main - name: Install GitVersion - uses: gittools/actions/gitversion/setup@v0.9.7 + uses: gittools/actions/gitversion/setup@v4 with: versionSpec: "5.x" - name: Determine Version id: gitversion - uses: gittools/actions/gitversion/execute@v0.9.7 + uses: gittools/actions/gitversion/execute@v4 with: - useConfigFile: true + configFilePath: "GitVersion.yml" assign-semver: runs-on: ubuntu-latest @@ -83,7 +83,7 @@ jobs: SEMVER: ${{ needs.assign-semver.outputs.SEMVER }} steps: - name: Checkout repo - uses: actions/checkout@v2 + uses: actions/checkout@v5 with: token: ${{ secrets.GITHUB_TOKEN }} - name: Tag branch with run number diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 0000000000..aee494d60f --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,76 @@ +name: Pull Request Validation + +on: + pull_request: + branches: + - "**" + +jobs: + build-docker: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v5 + with: + path: builder + + - name: Configure AWS Credentials + id: aws-creds + uses: aws-actions/configure-aws-credentials@v6 + with: + aws-region: eu-west-2 + aws-access-key-id: ${{secrets.ACCESS_KEY_ID}} + aws-secret-access-key: ${{secrets.SECRET_ACCESS_KEY}} + + - name: Login to ECR + uses: docker/login-action@v4 + with: + registry: ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{secrets.AWS_REGION}}.amazonaws.com + ecr: true + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v4 + + - name: Modify config for build + run: | + cd ./builder/runner + # Comment out specific Redis + sessionCookiePassword configuration lines + sed -i 's/^ sessionCookiePassword:/ \/\/ sessionCookiePassword:/' config/default.js + sed -i 's/^ redisHost:/ \/\/ redisHost:/' config/default.js + sed -i 's/^ redisPort:/ \/\/ redisPort:/' config/default.js + sed -i 's/^ redisPassword:/ \/\/ redisPassword:/' config/default.js + sed -i 's/^ redisTls:/ \/\/ redisTls:/' config/default.js + + - name: Build and cache + uses: docker/build-push-action@v7 + with: + push: false + load: true + tags: user/app:test + context: ./builder + file: ./builder/runner/Dockerfile + platforms: linux/amd64 + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Check + run: | + echo "Starting container..." + + # Start container and immediately check if it's running + docker run --rm -d --name quick-test -p 8080:8080 user/app:test + + # Wait a moment + sleep 5 + + # Check if still running + if docker ps | grep -q quick-test; then + echo "✅ Container started successfully" + docker logs quick-test + docker stop quick-test + else + echo "❌ Container failed to start or exited" + docker logs quick-test 2>&1 || echo "No logs available" + exit 1 + fi diff --git a/.github/workflows/smoke-test.yml b/.github/workflows/smoke-test.yml index a561b339dd..0fa27e54fb 100644 --- a/.github/workflows/smoke-test.yml +++ b/.github/workflows/smoke-test.yml @@ -17,9 +17,9 @@ jobs: tag: ${{ steps.hashFile.outputs.tag }} hash: ${{ steps.hashFile.outputs.hash }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 - name: Use Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v5 with: node-version: "16.x" @@ -27,7 +27,7 @@ jobs: id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn config get cacheFolder)" - - uses: actions/cache@v3 + - uses: actions/cache@v5 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} @@ -43,14 +43,13 @@ jobs: run: yarn e2e install - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v4 with: - install: true - config-inline: | + buildkitd-config-inline: | [registry."ghcr.io"] - name: Login to GitHub Container Registry - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} @@ -74,7 +73,7 @@ jobs: - name: run smoke tests run: yarn e2e cypress run - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 if: always() with: name: screenshots diff --git a/.github/workflows/smoke-tests-heroku.yml b/.github/workflows/smoke-tests-heroku.yml index 1a723abfc6..1e1c02842e 100644 --- a/.github/workflows/smoke-tests-heroku.yml +++ b/.github/workflows/smoke-tests-heroku.yml @@ -7,9 +7,9 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 - name: Use Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v5 with: node-version: "16.x" @@ -17,7 +17,7 @@ jobs: id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn config get cacheFolder)" - - uses: actions/cache@v3 + - uses: actions/cache@v5 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} @@ -31,10 +31,9 @@ jobs: cypress_DESIGNER_URL: https://digital-form-builder-designer.herokuapp.com cypress_RUNNER_URL: https://digital-form-builder-runner.herokuapp.com - - name: Send slack CI alert id: slack - uses: slackapi/slack-github-action@v1.18.0 + uses: slackapi/slack-github-action@v3 with: # For posting a rich message using Block Kit payload: | @@ -62,29 +61,26 @@ jobs: SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK - name: Scan image - uses: anchore/scan-action@v2 + uses: anchore/scan-action@v7 with: image: "ghcr.io/digital-form-builder-runner:latest" - acs-report-enable: true fail-build: false severity-cutoff: critical - name: Scan image - uses: anchore/scan-action@v2 + uses: anchore/scan-action@v7 with: image: "ghcr.io/digital-form-builder-designer:latest" - acs-report-enable: true fail-build: false severity-cutoff: critical - deploy: needs: test uses: ./.github/workflows/deploy-development.yml secrets: inherit strategy: matrix: - app: [ designer, runner ] + app: [designer, runner] with: app: ${{ matrix.app }} tag: ${{ needs.assign-semver.outputs.SEMVER }} diff --git a/.github/workflows/sync-tags.yaml b/.github/workflows/sync-tags.yaml new file mode 100644 index 0000000000..fbfee5e410 --- /dev/null +++ b/.github/workflows/sync-tags.yaml @@ -0,0 +1,69 @@ +name: Sync Upstream Main Tag + +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * *" # Runs daily at midnight UTC; adjust as needed + +jobs: + sync-tags: + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v5 + with: + fetch-depth: 0 # Ensure full history and all tags are fetched + + - name: Add Upstream Remote + run: | + # Add the upstream remote; change the URL if needed. + git remote add upstream https://github.com/XGovFormBuilder/digital-form-builder.git || echo "Upstream remote already exists." + + - name: Fetch Upstream Main and Tags + run: | + git fetch upstream main --tags + + - name: Sync Tags for Upstream Main Commit with Original Message using IFS read loop + run: | + #!/bin/bash + set -e + + # Fetch all refs from upstream and origin + git fetch upstream --tags + git fetch origin --tags + + # Get all tags from upstream + upstream_tags=$(git ls-remote --tags upstream | grep -v '\^{}' | awk '{print $2}' | sed 's|refs/tags/||') + + # Get all tags from origin + origin_tags=$(git ls-remote --tags origin | grep -v '\^{}' | awk '{print $2}' | sed 's|refs/tags/||') + + echo "Found upstream tags: $upstream_tags" + echo "Found origin tags: $origin_tags" + + # Loop through each upstream tag + for tag in $upstream_tags; do + # Check if tag exists on origin remote + if echo "$origin_tags" | grep -q "^$tag$"; then + echo "Tag $tag already exists on origin remote, skipping." + else + # Fetch the specific tag from upstream + git fetch upstream "refs/tags/$tag:refs/tags/$tag" + + # Check if it's an annotated tag + if git cat-file -t "refs/tags/$tag" 2>/dev/null | grep -q "^tag$"; then + # It's an annotated tag, we've already fetched it correctly + echo "Fetched annotated tag: $tag" + else + # It's a lightweight tag, get the commit it points to + commit=$(git rev-parse "$tag^{commit}") + echo "Fetched lightweight tag: $tag (points to $commit)" + fi + + # Push the tag to origin + git push origin "refs/tags/$tag" + echo "Successfully pushed tag $tag to origin" + fi + done + + echo "All upstream tags have been synced to origin." diff --git a/.nvmrc b/.nvmrc index 48082f72f0..209e3ef4b6 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -12 +20 diff --git a/.prettierrc.json b/.prettierrc.json index 0967ef424b..168d9d2a0c 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1 +1,3 @@ -{} +{ + "endOfLine": "auto" +} diff --git a/README.md b/README.md index 50fee06d20..f628e4e6b8 100644 --- a/README.md +++ b/README.md @@ -126,3 +126,11 @@ A suite of smoke tests are run against all PRs. There is a Cron Job that execute A legacy suite of smoke tests can be found in this [repository](https://github.com/XGovFormBuilder/digital-form-builder-legacy-smoke-tests). They have been removed so that the project can run on node 18. Smoke tests will be migrated to use [cypress.io](https://cypress.io) in the coming months. + +### L3 Webhook + +The webhook JSON is here: digital-form-builder/runner/src/server/forms/L3Webhook.json + +Add the URL of the client webhook that you are currently working with into the JSON (line 64) + +Run the system locally and make your way through the screens as you would with other forms. Then navigate to the console and search for "status of the request is here" to see the request status. You can also see the status in multiple info logs throughout the console. Look for logs like 'INFO (74824 on Burendo-C6XDQM96PK): request completed' and there will be a sub section of '"statusCode": 200.' diff --git a/designer/client/page-create.js b/designer/client/page-create.js index 8196166c41..ed61b4b4e8 100644 --- a/designer/client/page-create.js +++ b/designer/client/page-create.js @@ -206,6 +206,9 @@ class PageCreate extends React.Component { + diff --git a/designer/client/page-edit.js b/designer/client/page-edit.js index e7f1c542bf..8714b7edcc 100644 --- a/designer/client/page-edit.js +++ b/designer/client/page-edit.js @@ -235,6 +235,9 @@ export class PageEdit extends React.Component { + => { .fill(0) .map(() => Math.random().toString(36).charAt(2)) .join(""), - isSecure: config.isProd, + isSecure: config.httpsCookieSecureAttribute, isHttpOnly: true, isSameSite: "Lax", }, diff --git a/docker-compose.yml b/docker-compose.yml index 976f3c2a16..e7ec127784 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -40,6 +40,8 @@ services: - PREVIEW_MODE=true - LAST_COMMIT - LAST_TAG + - MAGIC_LINK_TOGGLE="false" + - ENFORCE_CSRF=true # - ENABLE_QUEUE_SERVICE=true # - QUEUE_DATABASE_URL=mysql://root:root@mysql:3306/queue # or postgres://user:root@postgres:5432/queue # - DEBUG="prisma*" @@ -95,4 +97,4 @@ services: # environment: # POSTGRES_DB: queue # POSTGRES_PASSWORD: root -# POSTGRES_USER: user \ No newline at end of file +# POSTGRES_USER: user diff --git a/docs/adr/0008-custom-button-text.md b/docs/adr/0008-custom-button-text.md new file mode 100644 index 0000000000..affd5e4e9f --- /dev/null +++ b/docs/adr/0008-custom-button-text.md @@ -0,0 +1,78 @@ +# ADR-0008: Configurable Button Text via Controller Getter Pattern + +**Status:** Accepted +**Date:** 2025-03-04 + +## Context + +Button text in the page template was controlled by a growing if/elseif chain that required the template to know about controller types. There was also no way to customise button text per page instance without changing code. + +## Decision + +Replace the template conditional with a `defaultButtonText` getter on `PageControllerBase`. Subclasses override the getter with their own default. An optional `customButtonText` field in the page definition allows per-instance overrides without any code changes. + +```njk +{{/* Before */}} +{% if isStartPage %} + {{ govukButton({ text: "Start now" }) }} +{% elseif page.isMiniSummaryPageController %} + {{ govukButton({ text: "Confirm and continue" }) }} +{% else %} + {{ govukButton({ text: "Continue" }) }} +{% endif %} + +{{/* After */}} +{{ govukButton({ text: page.buttonText }) }} +``` + +Resolution order in the base constructor: + +```js +this.buttonText = pageDef.customButtonText ?? this.defaultButtonText; +``` + +## Consequences + +- Template no longer needs to know about controller types +- New controllers override the getter only — no template changes needed +- Per-instance text is configurable via form JSON — no code changes needed +- Reduces incentive to create new controllers for minor UI variations +- Fully backwards compatible — existing pages are unaffected + +--- + +# ADR-0008: Subtitle Field on MiniSummaryPageController + +**Status:** Accepted +**Date:** 2025-03-04 + +## Context + +The mini summary page had no way to display contextual text between the page title and the summary list. The only option was to hardcode it in the template. A configurable `subtitle` field was needed. + +## Decision + +Add `subtitle?: string` to `MiniSummaryPageController` only, not to the shared `PageControllerBase`. The value is read from `pageDef` in the constructor and rendered in `heading.html` when present. + +```js +// MiniSummaryPageController constructor +this.subtitle = pageDef.options?.subtitle; +``` + +```html +{% if page.subtitle %} +

{{ page.subtitle }}

+{% endif %} +``` + +**Why not on the base class?** Most pages set subtitles via a component. Putting it on the base would conflict with that pattern and cause confusion. Keeping it scoped to `MiniSummaryPageController` reflects that this is a workaround specific to a controller that cannot use the standard component approach. + +**Why `options` rather than the top-level `pageDef` schema?** This follows the existing convention for passing page-specific variables — properties that aren't communal to all pages go through `options`. The trade-off is that `options` is not schema-validated per page type, which is an acknowledged gap across the codebase (see tech debt note below). + +## Consequences + +- Subtitle can be configured per page instance via form JSON — no code changes needed +- Scoped to `MiniSummaryPageController` only — no risk of conflicting with subtitle handling on other page types +- Fully backwards compatible — pages without a `subtitle` in their definition are unaffected + +**Tech debt:** The `options` object is untyped across the repo, meaning misconfigured properties fail silently at runtime rather than being caught at load time. A follow-up task should define typed `pageDef` interfaces per controller (e.g. a dedicated `pageControllers/types.ts` mirroring the components pattern) and validate them at startup. This is out of scope for this PR. diff --git a/docs/adr/0009-mini-summary-page-subtitle.md b/docs/adr/0009-mini-summary-page-subtitle.md new file mode 100644 index 0000000000..fdc8241d09 --- /dev/null +++ b/docs/adr/0009-mini-summary-page-subtitle.md @@ -0,0 +1,37 @@ +--- + +# ADR-0008: Subtitle Field on MiniSummaryPageController + +**Status:** Accepted +**Date:** 2025-03-04 + +## Context + +The mini summary page had no way to display contextual text between the page title and the summary list. The only option was to hardcode it in the template. A configurable `subtitle` field was needed. + +## Decision + +Add `subtitle?: string` to `MiniSummaryPageController` only, not to the shared `PageControllerBase`. The value is read from `pageDef` in the constructor and rendered in `heading.html` when present. + +```js +// MiniSummaryPageController constructor +this.subtitle = pageDef.options?.subtitle; +``` + +```html +{% if page.subtitle %} +

{{ page.subtitle }}

+{% endif %} +``` + +**Why not on the base class?** Most pages set subtitles via a component. Putting it on the base would conflict with that pattern and cause confusion. Keeping it scoped to `MiniSummaryPageController` reflects that this is a workaround specific to a controller that cannot use the standard component approach. + +**Why `options` rather than the top-level `pageDef` schema?** This follows the existing convention for passing page-specific variables — properties that aren't communal to all pages go through `options`. The trade-off is that `options` is not schema-validated per page type, which is an acknowledged gap across the codebase (see tech debt note below). + +## Consequences + +- Subtitle can be configured per page instance via form JSON — no code changes needed +- Scoped to `MiniSummaryPageController` only — no risk of conflicting with subtitle handling on other page types +- Fully backwards compatible — pages without a `subtitle` in their definition are unaffected + +**Tech debt:** The `options` object is untyped across the repo, meaning misconfigured properties fail silently at runtime rather than being caught at load time. A follow-up task should define typed `pageDef` interfaces per controller (e.g. a dedicated `pageControllers/types.ts` mirroring the components pattern) and validate them at startup. This is out of scope for this PR. diff --git a/docs/runner/msal-apim-authentication.md b/docs/runner/msal-apim-authentication.md new file mode 100644 index 0000000000..69cade063c --- /dev/null +++ b/docs/runner/msal-apim-authentication.md @@ -0,0 +1,23 @@ +# Microsoft Authentication Layer (MSAL) APIM Authentication Support + +The `MsalAuthorizer` service supports MSAL authentication to communicate securely with APIM-hosted API services. + +## Setup + +To use MSAL Authentication you will need to configure the following environment variables: + +| Variable name | Definition | Example | +| --------------- | ---------------------------------------------- | ---------------------------------- | +| `APIM_BASE_URL` | The base URL of the APIM hosted service | `https://apim.example.com` | +| `TENANT_ID` | Azure AD tenant ID for MSAL authentication | `tenant-id` | +| `CLIENT_ID` | Azure AD client ID for MSAL authentication | `client-id` | +| `CLIENT_SECRET` | Azure AD client secret for MSAL authentication | `client-secret` | +| `SCOPES` | MSAL scopes required to access the service | `["https://example.com/.default"]` | + +## Multi-tenant support + +Multi-tenancy is supported for each form IoC registration. Each form registers its own APIM hosted service dependencies with their respective `MsalAuthorizerConfig`, which includes its own MSAL credentials. Through this approach there is no shared state between forms or service instances on a form, so forms on the same deployed server can authenticate against different tenants independently. + +## Token lifecycle + +Authentication is handled by `MsalAuthorizer`, which uses the MSAL package's `acquireTokenByClientCredential`. MSAL caches tokens internally and reuses them until expiry (or at least near expiry), so there is no network call to the identity provider on every invocation. Token refresh is also handled automatically by MSAL, so no additional retry or refresh logic is needed. diff --git a/docs/runner/secure-form-submissions.md b/docs/runner/secure-form-submissions.md new file mode 100644 index 0000000000..68b32f1084 --- /dev/null +++ b/docs/runner/secure-form-submissions.md @@ -0,0 +1,81 @@ +# Secure Form Submissions + +This feature allows the user to achieve secure form submissions through the addition of security headers + +## Form Configuration + +The configuration inherits the `MsalAuthorizerConfig` +Refer to the [`MSAL Authentication documentation`](/docs/runner/msal-apim-authentication.md) for information about `tenantId`, `clientId`, `clientSecret` and `scopes` + +```json +"secureFormSubmissionConfig": { + "tenantId": "${env_form_submission_tenant_id}", + "clientId": "${env_form_submission_client_id}", + "clientSecret": "${env_form_submission_client_secret}", + "scopes": ["${env_form_submission_scope1}", "${env_form_submission_scope2}"], + "useAwsWafUserAgentWorkaround": boolean + } +``` + +> **Note: useAwsWafUserAgentWorkaround** +> AWS WAF requires User-Agent to be present as part of auth, setting this option to tru will make the functioality provide one to prevent 403 + +## How to Update env variables + +Environment variables can be added or updated by following the guide at + +## How it works + +### The following is a top-down view + +The [`FormSecurityService`](/runner/src/server/services/formSecurityService.ts) supports our different security mechanisms. + +- For the [`webhookHmacSharedKey`](/runner/src/server/services/formSecurityService.ts#L31) approach it generates Hmac and sets HMAC specific headers. + +- For the [`APIM`](/runner/src/server/services/formSecurityService.ts#L49) approach it uses server Dependency Injection to register named instances of [`SecureFormSubmissionService`](/runner/src/server/services/secureFormSubmissionService.ts#L137) which exposes a `getAuthHeader` method that returns an object in the form of `{ Authorization: "Bearer "}`. + Registration into DI is done on [`server initialization`](/runner/src/server/index.ts#L191) for forms declaring the `secureFormSubmissionConfig` + +The `StatusService` [`invokes`](/runner/src/server/services/statusService.ts#L137) `FormSecurityService.getSecurityHeaders` method which returns headers based on what approach the form use. It then passes those headers to the `WebhookService` + +The `WebhookService` accepts [`additionalHeaders?: Record`](/runner/src/server/services/webhookService.ts#L32) as part of it's postRequest method, which it then includes when it makes the request to the form configured webhook output. + +### Implementation Details: DI service registration + +Per form SecureFormSubmissionService registration + +```typescript +for (const form of enginePlugin.options.configs) { + const formId = form.id; + + if (form.configuration.secureFormSubmissionConfig) { + const instanceName = getSecureFormSubmissionServiceInstance(formId); + + const namedService = new SecureFormSubmissionService( + form.configuration.secureFormSubmissionConfig + ); + + await server.registerService( + Schmervice.withName(instanceName, namedService) + ); + } +} +``` + +### Implementation Details: DI service resolution + +Once registered, the service can be resolved from the DI using the below. +Notice we have to do a dynamic resolution - since services are dynamically registered based on what forms are served, there is no knowledge of what services exists and in turn there's no way to statically type the access. + +```typescript +const instanceName = getSecureFormSubmissionServiceInstance(formId); +if (instanceName) { + const services = request.services([]) + + const serviceInstance = services[instanceName] as SecureFormSubmissionService; + if (serviceInstance) { + const headers = await serviceInstance.getAuthHeader(); + ... + } + .... +} +``` diff --git a/e2e/cypress/support/step_definitions/common/i_reload.js b/e2e/cypress/support/step_definitions/common/i_reload.js index cc11009611..55f10d26f0 100644 --- a/e2e/cypress/support/step_definitions/common/i_reload.js +++ b/e2e/cypress/support/step_definitions/common/i_reload.js @@ -2,4 +2,4 @@ import { When } from "@badeball/cypress-cucumber-preprocessor"; When("I reload", () => { cy.reload(); -}); \ No newline at end of file +}); diff --git a/model/package.json b/model/package.json index 63596410aa..ff61a46341 100644 --- a/model/package.json +++ b/model/package.json @@ -59,7 +59,7 @@ "nunjucks": "^3.2.3", "path": "0.12.7", "ts-jest": "^29.1.1", - "typescript": "4.9.5", + "typescript": "^5.x", "wreck": "14.2.0" } } diff --git a/model/src/components/component-types.ts b/model/src/components/component-types.ts index fd4c1a7406..680226e284 100644 --- a/model/src/components/component-types.ts +++ b/model/src/components/component-types.ts @@ -64,6 +64,15 @@ export const ComponentTypes: ComponentDef[] = [ options: {}, schema: {}, }, + { + name: "ContactDetailsCollection", + type: "ContactDetailsCollection", + title: "Contact details collection", + subType: "field", + hint: "", + options: {}, + schema: {}, + }, { name: "DateTimePartsField", type: "DateTimePartsField", diff --git a/model/src/components/types.ts b/model/src/components/types.ts index dfb102a9ad..d4082f8483 100644 --- a/model/src/components/types.ts +++ b/model/src/components/types.ts @@ -6,6 +6,7 @@ export enum ComponentTypeEnum { TimeField = "TimeField", DateTimeField = "DateTimeField", DatePartsField = "DatePartsField", + ContactDetailsCollection = "ContactDetailsCollection", MonthYearField = "MonthYearField", DateTimePartsField = "DateTimePartsField", SelectField = "SelectField", @@ -24,6 +25,7 @@ export enum ComponentTypeEnum { FlashCard = "FlashCard", List = "List", ContextComponent = "ContextComponent", + ContentWithState = "ContentWithState", } export type ComponentType = @@ -35,6 +37,7 @@ export type ComponentType = | "DateTimeField" | "MonthYearField" | "DatePartsField" + | "ContactDetailsCollection" | "DateTimePartsField" | "SelectField" | "AutocompleteField" @@ -52,7 +55,8 @@ export type ComponentType = | "FlashCard" | "List" | "WebsiteField" - | "ContextComponent"; + | "ContextComponent" + | "ContentWithState"; export type ComponentSubType = "field" | "content"; @@ -112,6 +116,7 @@ interface NumberFieldBase { min?: number; max?: number; precision?: number; + integer?: boolean; }; } @@ -132,6 +137,9 @@ interface ListFieldBase { allowPrePopulationOverwrite?: boolean; disableChangingFromSummary?: boolean; customValidationMessages?: Record; + summaryTitle?: string; + divider?: boolean; + finalValue?: string; }; list: string; schema: {}; @@ -176,6 +184,9 @@ export interface TextFieldComponent extends TextFieldBase { export interface EmailAddressFieldComponent extends TextFieldBase { type: "EmailAddressField"; + options: TextFieldBase["options"] & { + customValidationMessage?: string; + }; } export interface NumberFieldComponent extends NumberFieldBase { @@ -253,6 +264,9 @@ export interface DateTimeFieldComponent extends DateFieldBase { export interface DatePartsFieldFieldComponent extends DateFieldBase { type: "DatePartsField"; } +export interface ContactDetailsCollectionComponent extends DateFieldBase { + type: "ContactDetailsCollection"; +} export interface MonthYearFieldComponent extends DateFieldBase { type: "MonthYearField"; @@ -271,6 +285,10 @@ export interface ParaComponent extends ContentFieldBase { type: "Para"; } +export interface ContentWithStateComponent extends ContentFieldBase { + type: "ContentWithState"; +} + export interface DetailsComponent extends ContentFieldBase { type: "Details"; } @@ -325,6 +343,7 @@ export type ComponentDef = | CheckboxesFieldComponent | DateFieldComponent | DatePartsFieldFieldComponent + | ContactDetailsCollectionComponent | MonthYearFieldComponent | DateTimeFieldComponent | DateTimePartsFieldComponent @@ -345,7 +364,8 @@ export type ComponentDef = | UkAddressFieldComponent | YesNoFieldComponent | WebsiteFieldComponent - | ContextComponent; + | ContextComponent + | ContentWithStateComponent; // Components that render inputs. export type InputFieldsComponentsDef = @@ -371,7 +391,8 @@ export type ContentComponentsDef = | HtmlComponent | InsetTextComponent | ListComponent - | FlashCardComponent; + | FlashCardComponent + | ContentWithStateComponent; // Components that render Lists export type ListComponentsDef = diff --git a/model/src/data-model/types.ts b/model/src/data-model/types.ts index e7dd954da3..ca2d9f4ffa 100644 --- a/model/src/data-model/types.ts +++ b/model/src/data-model/types.ts @@ -12,9 +12,15 @@ export type Link = Next; export interface Page { title: string; path: string; + unauthenticated?: boolean; + disableBackLink?: boolean; controller: string; components?: ComponentDef[]; section?: string; // the section ID + sectionForExitJourneySummaryPages?: string; + sectionForMultiSummaryPages?: string; + sectionForEndSummaryPages?: string; + sidebarContent?: any; next?: { path: string; condition?: string }[]; } @@ -31,6 +37,12 @@ export interface RepeatingFieldPage extends Page { }; }; } +export interface CheckpointSummaryPage extends Page { + controller: "CheckpointSummaryPageController"; + options: { + customText: any; + }; +} export interface Section { name: string; @@ -75,6 +87,8 @@ export enum OutputType { } export type EmailOutputConfiguration = { + apiKey: string; + notifyTemplateId: string; emailAddress: string; }; @@ -117,6 +131,9 @@ export type ConfirmationPage = { title: string; paymentSkipped: Toggleable; nextSteps: Toggleable; + referenceTitle: string; + referenceContent: string; + hidePanel?: boolean; }; components: ComponentDef[]; }; @@ -172,6 +189,25 @@ export type ExitOptions = { format?: "STATE" | "WEBHOOK"; }; +export type Analytics = { + gtmId1: string; + gtmId2: string; + matomoId: string; + matomoUrl: string; +}; + +export interface MsalAuthorizerConfig { + tenantId: string; + clientId: string; + clientSecret: string; + scopes: string[]; +} + +export interface SecureFormSubmissionConfig extends MsalAuthorizerConfig { + /* Empty for now */ + useAwsWafUserAgentWorkaround?: boolean; +} + /** * `FormDefinition` is a typescript representation of `Schema` */ @@ -181,6 +217,7 @@ export type FormDefinition = { lists: List[]; sections: Section[]; startPage?: Page["path"] | undefined; + authentication?: boolean | undefined; name?: string | undefined; feedback?: Feedback; phaseBanner?: PhaseBanner; @@ -194,6 +231,19 @@ export type FormDefinition = { paymentReferenceFormat?: string; feeOptions: FeeOptions; exitOptions: ExitOptions; + jwtKey?: string | undefined; + toggle?: boolean | string | undefined; + retryTimeoutSeconds?: number | undefined; + magicLinkConfig?: string | undefined; + allowedDomains?: string[] | undefined; + invalidDomainRedirect?: string | undefined; + analytics?: Analytics; + webhookHmacSharedKey?: string | undefined; + fileUploadHmacSharedKey?: string | undefined; + fullStartPage?: string | undefined; + serviceName?: string | undefined; confirmationSessionTimeout: number | undefined; returnTo?: boolean | undefined; + secureFormSubmissionConfig: SecureFormSubmissionConfig; + error500ContactEmail?: string | undefined; }; diff --git a/model/src/schema/schema.ts b/model/src/schema/schema.ts index 744f400594..0c1c78a728 100644 --- a/model/src/schema/schema.ts +++ b/model/src/schema/schema.ts @@ -88,7 +88,7 @@ export const componentSchema = joi hint: localisedString.optional(), options: joi.object().default({}), schema: joi - .object({ min: joi.number(), max: joi.number() }) + .object({ min: joi.number(), max: joi.number(), integer: joi.boolean() }) .unknown(true) .default({}), list: joi.string().optional(), @@ -112,13 +112,21 @@ const nextSchema = joi.object().keys({ const pageSchema = joi.object().keys({ path: joi.string().required().disallow("/status"), title: localisedString, + unauthenticated: joi.boolean().optional(), section: joi.string(), + sectionForExitJourneySummaryPages: joi.string(), + sectionForMultiSummaryPages: joi.string(), + sectionForEndSummaryPages: joi.string(), + sidebarContent: joi.object().optional(), controller: joi.string(), components: joi.array().items(componentSchema), + disableSingleComponentAsHeading: joi.boolean(), next: joi.array().items(nextSchema), repeatField: joi.string().optional(), options: joi.object().optional(), backLinkFallback: joi.string().optional(), + disableBackLink: joi.bool().optional(), + customButtonText: joi.string().optional(), }); const startNavigationLinkSchema = joi.object().keys({ @@ -148,6 +156,9 @@ const confirmationPageSchema = joi.object({ nextSteps: toggleableString.default( "You will receive an email with details with the next steps." ), + referenceTitle: joi.string(), + referenceContent: joi.string(), + hidePanel: joi.boolean().optional(), }) .default(), components: joi.array().items(componentSchema), @@ -169,6 +180,7 @@ const specialPagesSchema = joi.object().keys({ const listItemSchema = joi.object().keys({ text: localisedString, value: joi.alternatives().try(joi.number(), joi.string()), + checkpointDisplayValue: joi.alternatives().try(joi.number(), joi.string()), description: localisedString.optional(), conditional: joi .object() @@ -199,6 +211,13 @@ const feeSchema = joi.object().keys({ prefix: joi.string().optional(), }); +const analyticsSchema = joi.object().keys({ + gtmId1: joi.string().allow("").optional(), + gtmId2: joi.string().allow("").optional(), + matomoId: joi.string().allow("").optional(), + matomoUrl: joi.string().uri().allow("").optional(), +}); + const multiApiKeySchema = joi.object({ test: joi.string().optional(), smoke: joi.string().optional(), @@ -222,10 +241,13 @@ const notifySchema = joi.object().keys({ addReferencesToPersonalisation: joi.boolean().optional(), emailReplyToIdConfiguration: joi.array().items(replyToConfigurationSchema), escapeURLs: joi.boolean().default(false), + hmacKey: joi.string().optional(), }); const emailSchema = joi.object().keys({ + apiKey: [joi.string().allow("").optional(), multiApiKeySchema], emailAddress: joi.string(), + notifyTemplateId: joi.string(), }); const webhookSchema = joi.object().keys({ @@ -300,6 +322,19 @@ const exitSchema = joi.object().keys({ format: joi.string().allow("STATE", "WEBHOOK"), }); +const msalAuthorizeConfigSchema = joi.object().keys({ + tenantId: joi.string().required(), + clientId: joi.string().required(), + clientSecret: joi.string().required(), + scopes: joi.array().items(joi.string()).min(1).required(), +}); + +const secureFormSubmissionConfig = msalAuthorizeConfigSchema.concat( + joi.object().keys({ + useAwsWafUserAgentWorkaround: joi.bool().optional(), + }) +); + export const Schema = joi .object() .required() @@ -307,6 +342,7 @@ export const Schema = joi name: localisedString.optional(), feedback: feedbackSchema, startPage: joi.string().required(), + authentication: joi.boolean().optional(), pages: joi .array() .required() @@ -325,11 +361,25 @@ export const Schema = joi version: joi.number().default(CURRENT_VERSION), phaseBanner: phaseBannerSchema, specialPages: specialPagesSchema.optional(), + jwtKey: joi.string().optional(), feeOptions: feeOptionSchema, exitOptions: exitSchema.optional(), showFilenamesOnSummaryPage: joi.boolean().optional(), + toggle: joi.alternatives().try(joi.boolean(), joi.string()).optional(), + toggleRedirect: joi.string().optional(), + retryTimeoutSeconds: joi.number().optional(), + magicLinkConfig: joi.string().optional(), + allowedDomains: joi.array().items(joi.string()).optional(), + invalidDomainRedirect: joi.string().optional(), + analytics: analyticsSchema.optional(), + webhookHmacSharedKey: joi.string().optional(), + fileUploadHmacSharedKey: joi.string().optional(), + fullStartPage: joi.string().optional(), + serviceName: joi.string().optional(), confirmationSessionTimeout: joi.number().optional(), returnTo: joi.boolean().optional(), + secureFormSubmissionConfig: secureFormSubmissionConfig.optional(), + error500ContactEmail: joi.string().optional(), }); /** diff --git a/package.json b/package.json index 830bbb161c..870cb29720 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,8 @@ "runner:start": "yarn workspace @xgovformbuilder/runner start", "type-check": "yarn workspaces foreach run tsc --noEmit", "type-check:watch": "yarn workspaces foreach run type-check --watch", - "generate-architecture-diagrams": "concurrently 'npx arkit -c ./docs/designer/arkit.json' 'npx arkit -c ./docs/model/arkit.json' 'npx arkit -c ./docs/runner/arkit.json'" + "generate-architecture-diagrams": "concurrently 'npx arkit -c ./docs/designer/arkit.json' 'npx arkit -c ./docs/model/arkit.json' 'npx arkit -c ./docs/runner/arkit.json'", + "clean:forms:nonprod": "node ./utils/cleanNonProdForms.js" }, "devDependencies": { "@babel/cli": "^7.23.3", @@ -60,8 +61,8 @@ "lint-staged": "^10.4.2", "magic-string": "^0.25.7", "prettier": "2.1.2", - "typedoc": "~0.23.17", - "typescript": "4.9.5" + "typedoc": "~0.28.x", + "typescript": "^5.x" }, "dependencies": { "@babel/runtime": "^7.21.0", diff --git a/queue-model/package.json b/queue-model/package.json index ac7f3825fc..e371b8dbfb 100644 --- a/queue-model/package.json +++ b/queue-model/package.json @@ -32,10 +32,10 @@ "eslint": "^8.10.0", "eslint-plugin-import": "^2.25.4", "eslint-plugin-tsdoc": "^0.2.14", - "prisma": "5.22.0", - "typescript": "4.9.5" + "prisma": "6.12.0", + "typescript": "^5.x" }, "dependencies": { - "@prisma/client": "5.22.0" + "@prisma/client": "6.12.0" } } diff --git a/runner/FORM_DEVELOPMENT_README.md b/runner/FORM_DEVELOPMENT_README.md new file mode 100644 index 0000000000..8e73bff8f9 --- /dev/null +++ b/runner/FORM_DEVELOPMENT_README.md @@ -0,0 +1,24 @@ +# Form development on ukhsa-collaboration/digital-form-builder + +## Commit your service form + +To commit your service form, save it into the `/runner/src/server/forms` folder. + +## Setting custom help pages + +To set customised help pages for your service, such as accessibility statement, privacy policy or cookie policy, you need to create a service named folder in `/runner/src/server/views` with the relevant pages. + +ie. + +``` +YourServiceName/cookies.html +YourServiceName/accessibility.html +``` + +The `/runner/src/server/plugins/router.ts` is configured to capture the service (or form) name present in the URI path and route to customised help pages if they exist or revert back to default ones. + +The route will supply your form name into the page where you can reference it via `{{ name }}`. This is the name set within your form config .json file located in `/runner/src/server/forms`. + +## Setting authentication + +TBC diff --git a/runner/README.md b/runner/README.md index c93e46cd20..85786746e2 100644 --- a/runner/README.md +++ b/runner/README.md @@ -35,7 +35,7 @@ Install dependencies You are now ready to start. -`$ yarn run dev` +`$ yarn runner dev` Open your browser at diff --git a/runner/config/custom-environment-variables.json b/runner/config/custom-environment-variables.json index f5a1e49330..247fc1c72b 100644 --- a/runner/config/custom-environment-variables.json +++ b/runner/config/custom-environment-variables.json @@ -27,6 +27,7 @@ "sessionTimeout": "SESSION_TIMEOUT", "confirmationSessionTimeout": "CONFIRMATION_SESSION_TIMEOUT", "sessionCookiePassword": "SESSION_COOKIE_PASSWORD", + "sessionCookieSecureAttribute": "SESSION_COOKIE_SECURE_ATTRIBUTE", "fromEmailAddress": "FROM_EMAIL_ADDRESS", "serviceStartPage": "SERVICE_START_PAGE", "privacyPolicyUrl": "PRIVACY_POLICY_URL", diff --git a/runner/config/default.js b/runner/config/default.js index 691b169b82..f49c9f9943 100644 --- a/runner/config/default.js +++ b/runner/config/default.js @@ -44,7 +44,7 @@ module.exports = { * Analytics */ // Google Tag Manager - you must amend the privacy notice if you use GTM to load analytics scripts. - // gtmId1: "", + gtmId1: "GTM-MM6VPCXX", // gtmId2: "", // Matomo (aka Piwik) @@ -55,8 +55,8 @@ module.exports = { * Service */ serviceUrl: "http://localhost:3009", //This is used for redirects back to the runner. - serviceName: "Digital Form Builder - Runner", - serviceStartPage: "", + serviceName: "Webforms", + serviceStartPage: "/ReportAnOutbreak/start", privacyPolicyUrl: "", feedbackLink: "#", // Used in your phase banner. Can be a URL or more commonly mailto mailto:feedback@department.gov.uk phaseTag: "beta", // Accepts "alpha" |"beta" | "" @@ -65,14 +65,15 @@ module.exports = { * Session storage * Redis integration is optional, but recommended for production environments. */ - sessionTimeout: 20 * minute, + sessionTimeout: 40 * minute, confirmationSessionTimeout: 20 * minute, paymentSessionTimeout: 90 * minute, // GOV.UK Pay sessions are 90 minutes. It is possible a user takes longer than 20 minutes to complete a payment. - // sessionCookiePassword: "", - // redisHost: "http://localhost", - // redisPort: 6379, - // redisPassword: nanoid.random(16), // This should be set if you are deploying replicas - // redisTls: true, //run in TLS mode + httpsCookieSecureAttribute: true, // Assumed usage of HTTPS. Set to false if you are using HTTP. + sessionCookiePassword: "${SessionCookies.Password}", + redisHost: "${Redis.Host}", + redisPort: 6379, + redisPassword: "${Redis.Password}", // This should be set if you are deploying replicas - SET AS SECRET + redisTls: true, //run in TLS mode /** * SSL @@ -108,7 +109,7 @@ module.exports = { // If both the api env and node env are set to "production", the pay return url will need to be secure. // This is not the case if either are set to "test", or if the node env is set to "development" // payReturnUrl: "http://localhost:3009" - // documentUploadApiUrl: "", + documentUploadApiUrl: "${KLSUploadAPILink}", // ordnanceSurveyKey: "", // deprecated - this API is deprecated // browserRefreshUrl: "", // deprecated - idk what this does @@ -142,11 +143,12 @@ module.exports = { queueServicePollingInterval: "500", // How frequently to check the queue for a reference number queueServicePollingTimeout: "2000", // Total time to wait for a reference number - allowUserTemplates: false, + allowUserTemplates: true, /** * File size errors */ - maxClientFileSize: 5 * 1024 * 1024, // 5MB + + maxClientFileSize: Math.round(5.2 * 1024 * 1024), // 5452595 bytes maxFileSizeStringInMb: "5", // The file size to render if the file is too large in MB }; diff --git a/runner/config/development.json b/runner/config/development.json index be126c8611..86ac5f1e99 100644 --- a/runner/config/development.json +++ b/runner/config/development.json @@ -2,5 +2,6 @@ "isTest": true, "previewMode": true, "enforceCsrf": false, + "httpsCookieSecureAttribute": true, "env": "development" } diff --git a/runner/config/production.json b/runner/config/production.json index 3e552e02b8..886d3caef3 100644 --- a/runner/config/production.json +++ b/runner/config/production.json @@ -2,5 +2,6 @@ "env": "production", "logPrettyPrint": false, "enforceCsrf": true, + "httpsCookieSecureAttribute": true, "previewMode": false } diff --git a/runner/config/test.json b/runner/config/test.json index 7b02cb55d9..05b60fc7f7 100644 --- a/runner/config/test.json +++ b/runner/config/test.json @@ -6,7 +6,8 @@ ], "isTest": true, "previewMode": true, - "enforceCsrf": false, + "enforceCsrf": true, + "httpsCookieSecureAttribute": true, "initialisedSessionKey": "predictable-key", "env": "test", "documentUploadApiUrl": "http://localhost:9000" diff --git a/runner/package.json b/runner/package.json index 31e1e7d98b..01c0ebe1b8 100644 --- a/runner/package.json +++ b/runner/package.json @@ -34,6 +34,7 @@ }, "license": "SEE LICENSE IN LICENSE", "dependencies": { + "@azure/msal-node": "^5.2.1", "@babel/runtime": "^7.23.3", "@hapi/bell": "^13.0.1", "@hapi/boom": "^10.0.1", @@ -122,10 +123,10 @@ "lodash-es": "^4.17.21", "nodemon": "^3.0.2", "pino": "8.15.1", - "prisma": "5.22.0", + "prisma": "6.12.0", "sass": "^1.49.9", "sinon": "^13.0.1", - "typescript": "4.9.5" + "typescript": "^5.x" }, "installConfig": { "hoistingLimits": "dependencies", diff --git a/runner/public/static/rao-2san-covid-flu-kit.png b/runner/public/static/rao-2san-covid-flu-kit.png new file mode 100644 index 0000000000..38173ea94d Binary files /dev/null and b/runner/public/static/rao-2san-covid-flu-kit.png differ diff --git a/runner/public/static/session-heartbeat.js b/runner/public/static/session-heartbeat.js new file mode 100644 index 0000000000..2043a47f0c --- /dev/null +++ b/runner/public/static/session-heartbeat.js @@ -0,0 +1,37 @@ +(function (global) { + function SessionHeartbeat(intervalMinutes, endpoint) { + this.lastPing = 0; + this.intervalMs = (intervalMinutes || 2) * 60 * 1000; + this.endpoint = endpoint || '/session/keep-alive'; + this.initListeners(); + } + + SessionHeartbeat.prototype.initListeners = function () { + var self = this; + ['mousemove', 'keydown', 'scroll', 'click', 'touchstart'].forEach(function (e) { + document.addEventListener(e, function () { + self.handleActivity(); + }, { passive: true }); + }); + }; + + SessionHeartbeat.prototype.handleActivity = function () { + var now = Date.now(); + if (now - this.lastPing < this.intervalMs) return; + this.lastPing = now; + this.pingBackend(); + }; + + SessionHeartbeat.prototype.pingBackend = function () { + fetch(this.endpoint, { + method: 'POST', + credentials: 'include', + headers: { + 'X-CSRF-Token': + document.querySelector('meta[name="csrf-token"]')?.content || '' + } + }); + }; + + global.SessionHeartbeat = SessionHeartbeat; +})(window); diff --git a/runner/src/client/sass/application.scss b/runner/src/client/sass/application.scss index 4125c5a87f..a387d06790 100644 --- a/runner/src/client/sass/application.scss +++ b/runner/src/client/sass/application.scss @@ -102,6 +102,52 @@ } } +.govuk-details__text ul { + padding-left: inherit; + list-style-type: disc; +} + + .govuk-summary-card .govuk-summary-list__actions { display: none; } + +.govuk-radios__conditional--hidden { + display: none; +} + +.govuk-checkboxes__conditional--hidden { + display: none; +} + +.govuk-phase-banner__content__tag { + background-color: #1d70b8; /* Example blue background */ + padding: 5px 8px; + font-size: 1rem; + line-height: 1.25; + text-transform: lowercase; + letter-spacing: normal; +} + +.govuk-phase-banner__content__tag::first-letter { + text-transform: uppercase; +} + +.govuk-tag { + font-family: GDS Transport, arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-weight: 400; + font-size: 1rem; + line-height: 1.25; + display: inline-block; + max-width: 160px; + margin-top: -2px; + margin-bottom: -3px; + padding: 2px 8px 3px; + color: #0c2d4a; + background-color: #bbd4ea; + text-decoration: none; + overflow-wrap: break-word; + letter-spacing: 0; +} diff --git a/runner/src/server/forms/L3Webhook.json b/runner/src/server/forms/L3Webhook.json new file mode 100644 index 0000000000..04f256e9b2 --- /dev/null +++ b/runner/src/server/forms/L3Webhook.json @@ -0,0 +1,83 @@ +{ + "metadata": {}, + "startPage": "/start", + "pages": [ + { + "path": "/start", + "title": "Start", + "components": [], + "next": [ + { + "path": "/question" + } + ] + }, + { + "path": "/question", + "title": "Question", + "sectionForEndSummaryPages": "ServiceUsersAndStaff", + "components": [ + { + "name": "Question", + "options": { + "summaryTitle": "", + "customValidationMessages": { + "number.base": "Enter a number between 0 and 999", + "number.max": "The number must be between 0 and 999", + "number.min": "The number must be between 0 and 999" + } + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 999 + }, + "title": "Enter a number between 0 and 999", + "hint": "This is to send to the API", + "list": "ServiceUsersTypes" + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + } + ], + "lists": [], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://2aq9044u5l.execute-api.eu-west-2.amazonaws.com/prod/v1/echo", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": {}, + "feedback": {}, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

", + "title": "API returned", + "referenceTitle": "Api returned", + "referenceContent": "Go check the console for the status code" + } + } + } +} diff --git a/runner/src/server/forms/ReportAnOutbreak.json b/runner/src/server/forms/ReportAnOutbreak.json new file mode 100644 index 0000000000..8c897e0349 --- /dev/null +++ b/runner/src/server/forms/ReportAnOutbreak.json @@ -0,0 +1,5114 @@ +{ + "metadata": {}, + "authentication": true, + "toggle": "${magicLinkToggle}", + "analytics": { + "gtmId1": "GTM-MM6VPCXX" + }, + "startPage": "/start", + "pages": [ + { + "path": "/start", + "title": "Report an outbreak of acute respiratory infection in an adult social care setting", + "components": [ + { + "name": "mainContent", + "options": {}, + "type": "Para", + "content": "

From: UK Health Security Agency
Applies to England

\n

You can use this service if you provide adult social care. This includes a care home, supported living or extra care.

\n

Use this service to report:

\n
    \n
  • a single confirmed case of flu in your setting
  • \n
  • a new outbreak of acute respiratory infection (ARI) - 2 or more people in your setting with symptoms that started within 5 days of each other
  • \n
\n

ARIs include COVID-19, flu, respiratory syncytial virus (RSV), and other respiratory infections.

\n

It should take about 10 minutes to complete.

\n

Before you start

\n

If possible, test all service users with symptoms who are eligible for COVID-19 treatments using a COVID-19 rapid lateral flow test. Staff with symptoms who are eligible for COVID-19 treatments should test themselves at home.

\n

If you cannot test people, do not wait. Report as soon as possible.

\n

You'll need to know the:

\n
    \n
  • setting postcode
  • \n
  • Care Quality Commission (CQC) location ID, if you are CQC registered
  • \n
  • total number of service users and staff in your setting
  • \n
  • number of service users and staff with symptoms
  • \n
  • dates when people's symptoms started
  • \n
  • test results for anyone tested for any ARI, for example COVID-19, flu or RSV
  • \n
  • number of service users and staff vaccinated for COVID-19 and flu
  • \n
  • number of service users vaccinated for RSV
  • \n
\n

You’ll need to give your email address to access this service.

\nStart now\n

Updating about an existing outbreak

\n

Do not use this online service to give an update on an outbreak that you have already reported. If you need to give an update, contact your local UKHSA health protection team or your community infection control team.

\n

Identifying an ARI outbreak

\n

You only need to report 2 or more ARI cases if they could be linked by spread in your setting. If the infection could not have been spread in your setting, you should not report it as an outbreak. If in doubt, report as an outbreak.

\n

Why you should report

\n

Your local UKHSA health protection team, or the community infection control team, will use your information to assess your outbreak. They will help you manage the outbreak and prevent further spread.

\n

Get help

\n

If you need help using the service or have any other questions, contact your local UKHSA health protection team.

\n

If you need urgent medical advice

\n

If you need urgent medical advice, you should call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

" + } + ], + "sidebarContent": { + "title": "Related content", + "subtitle": "Detailed guidance", + "links": [ + { + "title": "Infection prevention and control in adult social care: acute respiratory infection", + "link": "https://www.gov.uk/government/publications/infection-prevention-and-control-in-adult-social-care-acute-respiratory-infection" + }, + { + "title": "Identifying and treating respiratory tract infections on the NHS website", + "link": "https://www.nhs.uk/conditions/respiratory-tract-infection/" + } + ] + }, + "controller": "MultiStartPageController", + "showContinueButton": false, + "next": [ + { + "path": "/hpt-region" + } + ] + }, + { + "path": "/hpt-region", + "title": "Where is your adult social care setting?", + "sectionForEndSummaryPages": "SettingDetails", + "unauthenticated": true, + "components": [ + { + "name": "IntroPara", + "type": "Para", + "content": "This service is only available in some regions of England." + }, + { + "name": "HPT", + "options": { + "summaryTitle": "Local UKHSA health protection team", + "exposeToContext": true, + "customValidationMessages": { + "any.required": "Select where your adult social care setting is" + } + }, + "type": "RadiosField", + "nameHasError": false, + "title": " ", + "hint": "Select your local UKHSA health protection team", + "list": "HPTs", + "values": { + "type": "listRef" + } + }, + { + "name": "HPTLink", + "options": {}, + "type": "Para", + "content": "\n Use your postcode to find your local health protection team (opens in a new tab)\n", + "schema": {} + } + ], + "next": [ + { "path": "/magic-link-redirect", "condition": "HPTRegionActive" }, + { + "path": "/service-not-available" + } + ] + }, + { + "path": "/magic-link-redirect", + "unauthenticated": true, + "controller": "MagicLinkRedirectController", + "next": [ + { + "path": "/setting" + } + ] + }, + { + "path": "/service-not-available", + "unauthenticated": true, + "title": "This service is not available in the {{ HPT }} region", + "components": [ + { + "name": "ServiceNotAvailableContent", + "type": "Para", + "content": "Phone your local UKHSA health protection team to report:
  • single cases of confirmed flu
  • 2 or more cases of an acute respiratory infection with symptoms that started within 5 days of each other and that could be linked by spread in your setting
  • " + } + ] + }, + { + "path": "/setting", + "title": "What type of adult social care do you provide?", + "sectionForExitJourneySummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "InfectionsInYourSetting", + "sectionForEndSummaryPages": "SettingDetails", + "components": [ + { + "name": "CareSettingType", + "options": { + "summaryTitle": "Setting type", + "conditionallyRevealedComponents": { + "OtherAdultSocialCare": { + "type": "TextField", + "name": "OtherAdultSocialCare", + "title": "Enter your setting type", + "options": { + "customValidationMessages": { + "string.empty": "Enter the type of adult social care you provide" + } + }, + "schema": {} + } + }, + "customValidationMessages": { + "any.required": "Select the type of adult social care you provide" + } + }, + "type": "RadiosField", + "nameHasError": false, + "title": "What type of adult social care do you provide?", + "list": "MpSRIP", + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/setting-details" + } + ] + }, + { + "path": "/2-or-more-ari", + "title": "How many cases of an acute respiratory infection are you reporting?", + "sectionForExitJourneySummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "Covid19InYourSetting", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "

    Include cases confirmed by a test and any other people with symptoms of acute respiratory infections, including chest infections

    " + }, + { + "name": "TwoOrMoreARI", + "options": { + "summaryTitle": "Number of cases", + "customValidationMessages": { + "any.required": "Select how many cases of an acute respiratory infection you are reporting" + }, + "hideTitle": true + }, + "type": "RadiosField", + "list": "OneOrMoreBoolean", + "nameHasError": false, + "title": " ", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/positive-flu", + "condition": "TwoOrMoreARI:No" + }, + { + "path": "/any-tests" + } + ] + }, + { + "path": "/do-not-need-to-report", + "title": "You do not need to report", + "controller": "CheckpointSummaryPageController", + "options": { + "customText": { + "insetText": "Based on your answers, you do not need to report this acute respiratory infection.", + "details": "

    You only need to report:

    • single cases of confirmed flu
    • 2 or more cases of an acute respiratory infection with symptoms that started within 5 days of each other

    Read guidance on infection prevention and control in adult social care settings.

    " + } + }, + "components": [] + }, + { + "path": "/single-case-of-flu", + "title": "Who has the case of flu?", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "name": "SingleCaseOfFluServiceOrStaff", + "options": { + "summaryTitle": "Who has the flu?" + }, + "type": "RadiosField", + "nameHasError": false, + "title": "Who has the case of flu?", + "list": "ServiceOrStaff", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/flu-severity", + "condition": "SingleCaseOfFluServiceOrStaff:ServiceUser" + }, + { + "path": "/contact-details" + } + ] + }, + + { + "path": "/symptom-onset-flu", + "title": "Symptom onset for the case of flu", + "sectionForEndSummaryPages": "SymptomOnset", + "controller": "DateComparisonPageController", + "options": { + "firstDateComponent": "FluSymptomOnsetDate" + }, + "components": [ + { + "name": "intro", + "type": "Para", + "content": "If you do not know the exact date, give an estimate." + }, + { + "name": "FluSymptomOnsetDate", + "errorLabel": "The date symptoms started", + "options": { + "maxDaysInFuture": "0", + "summaryTitle": "Symptoms started", + "customValidationMessages": { + "dayMonthYear": "Enter the date symptoms started", + "nonNumeric": "The date symptoms started must be a real date", + "date.max": "The date symptoms started must be in the past", + "date.base": "The date symptoms started must be a real date", + "date.min": "The date symptoms started must be in the past two months" + } + }, + "type": "DatePartsField", + "nameHasError": false, + "title": "When did symptoms start?", + "hint": "For example, 31 3 2024", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/contact-details" + } + ] + }, + { + "path": "/flu-severity", + "title": "Severity of the case of flu", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "name": "SingleCaseOfFluSeverityCalledGP", + "options": { + "summaryTitle": "Have called the GP about", + "customValidationMessages": { + "any.required": "Select yes if you have called the GP because of the severity of illness" + } + }, + "type": "RadiosField", + "list": "YesNo", + "nameHasError": false, + "title": "Have you called the GP because of the severity of illness in this case?", + "values": { + "type": "listRef" + } + }, + { + "name": "SingleCaseOfFluSeverityHospitalised", + "options": { + "summaryTitle": "Has been hospitalised", + "customValidationMessages": { + "any.required": "Select yes if the person has been hospitalised with the flu" + } + }, + "type": "RadiosField", + "list": "YesNo", + "nameHasError": false, + "title": "Has the person been hospitalised with the flu?", + "values": { + "type": "listRef" + } + }, + { + "name": "SingleCaseOfFluSeverityDeath", + "options": { + "summaryTitle": "Has died", + "customValidationMessages": { + "any.required": "Select yes if the person has died with flu" + } + }, + "type": "RadiosField", + "list": "YesNo", + "nameHasError": false, + "title": "Has the person died with flu in this case?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/symptom-onset-flu" + } + ] + }, + { + "path": "/vaccination", + "title": "Vaccination among your service users and staff", + "sectionForEndSummaryPages": "Vaccinations", + "components": [ + { + "name": "ServiceUsersCovid19Vaccination", + "options": { + "required": false, + "summaryTitle": "Service users: up to date with COVID-19 vaccinations", + "customValidationMessages": { + "number.max": "The number of service users vaccinated for COVID-19 must be between 0 and 999", + "number.min": "The number of service users vaccinated for COVID-19 must be between 0 and 999" + } + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 999 + }, + "title": "Service users: how many are up to date with the current COVID-19 vaccination schedule?", + "values": { + "type": "listRef" + } + }, + { + "name": "ServiceUsersFluVaccination", + "options": { + "required": false, + "summaryTitle": "Service users: had the current seasonal flu vaccine ", + "customValidationMessages": { + "number.max": "The number of service users vaccinated for flu must be between 0 and 999", + "number.min": "The number of service users vaccinated for flu must be between 0 and 999" + } + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 999 + }, + "title": "Service users: how many have had the flu vaccine for this current winter season?", + "values": { + "type": "listRef" + } + }, + { + "name": "ServiceUsersRSVVaccination", + "options": { + "required": false, + "summaryTitle": "Service users: had the respiratory syncytial virus (RSV) vaccine", + "customValidationMessages": { + "number.max": "The number of service users vaccinated for RSV must be between 0 and 999", + "number.min": "The number of service users vaccinated for RSV must be between 0 and 999" + } + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 999 + }, + "title": "Service users: how many have had the respiratory syncytial virus (RSV) vaccine?", + "values": { + "type": "listRef" + } + }, + { + "name": "Spacing", + "type": "Para", + "content": "
    " + }, + { + "name": "StaffCovid19Vaccination", + "options": { + "required": false, + "summaryTitle": "Staff: up to date with COVID-19 vaccinations", + "customValidationMessages": { + "number.max": "The number of staff vaccinated for COVID-19 must be between 0 and 999", + "number.min": "The number of staff vaccinated for COVID-19 must be between 0 and 999" + } + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 999 + }, + "title": "Staff: how many are up to date with the current COVID-19 vaccination schedule?", + "values": { + "type": "listRef" + } + }, + { + "name": "StaffFluVaccination", + "options": { + "required": false, + "summaryTitle": "Staff: had the current seasonal flu vaccine", + "customValidationMessages": { + "number.max": "The number of staff vaccinated for flu must be between 0 and 999", + "number.min": "The number of staff vaccinated for flu must be between 0 and 999" + } + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 999 + }, + "title": "Staff: how many have had the flu vaccine for this current winter season?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/ipc" + } + ] + }, + { + "path": "/ari-confirmed-cases-setting", + "title": "Who has an acute respiratory infection?", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "Include cases confirmed by a test and any other people with symptoms of acute respiratory infections." + }, + { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "title": " ", + "hint": "You can select more than one option", + "list": "ServiceOrStaffMultiple", + "options": { + "summaryTitle": "Who has the infection", + "required": true, + "customValidationMessages": { + "any.required": "Select if your service users or staff have an acute respiratory infection" + } + } + } + ], + "next": [ + { + "condition": "WithTests_ServiceUsers_Covid_Flu_Other", + "path": "/service-users-ari-confirmed-covid-flu-other" + }, + { + "condition": "WithTests_Staff_Covid_Flu_Other", + "path": "/staff-ari-confirmed-covid-flu-other" + }, + + { + "condition": "WithTests_ServiceUsers_Flu_Covid", + "path": "/service-users-ari-confirmed-flu-covid" + }, + { + "condition": "WithTests_Staff_Flu_Covid", + "path": "/staff-ari-confirmed-flu-covid" + }, + { + "condition": "WithTests_ServiceUsers_Flu_Other", + "path": "/service-users-ari-confirmed-flu-other" + }, + { + "condition": "WithTests_Staff_Flu_Other", + "path": "/staff-ari-confirmed-flu-other" + }, + + { + "condition": "WithTests_ServiceUsers_Covid_Other", + "path": "/service-users-ari-confirmed-covid-other" + }, + { + "condition": "WithTests_Staff_Covid_Other", + "path": "/staff-ari-confirmed-covid-other" + }, + + { + "condition": "WithTests_ServiceUsers_Flu", + "path": "/service-users-ari-confirmed-flu" + }, + { + "condition": "WithTests_Staff_Flu", + "path": "/staff-ari-confirmed-flu" + }, + + { + "condition": "WithoutTests_ServiceUsers", + "path": "/service-users-ari-unconfirmed" + }, + { + "condition": "WithoutTests_Staff", + "path": "/staff-ari-unconfirmed" + }, + + { + "condition": "WithTests_ServiceUsers_NoPositive", + "path": "/service-users-ari-no-positive" + }, + { + "condition": "WithTests_Staff_NoPositive", + "path": "/staff-ari-no-positive" + }, + { + "condition": "WithTests_ServiceUsers_OnlyCovid", + "path": "/service-users-ari-confirmed-covid" + }, + { + "condition": "WithTests_Staff_OnlyCovid", + "path": "/staff-ari-confirmed-covid" + }, + { + "condition": "WithTests_ServiceUsers_Other", + "path": "/service-users-ari-confirmed-other" + }, + { + "condition": "WithTests_Staff_Other", + "path": "/staff-ari-confirmed-other" + } + ] + }, + { + "path": "/service-users-ari-confirmed-flu", + "title": "Service users: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "type": "Para", + "content": "

    Enter number of service users with symptoms in this outbreak.
    Include those who are currently in hospital or on visits out.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "ServiceUsersSymptoms", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested service users
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many service users have symptoms", + "number.max": "The number of service users that have symptoms must be between 0 and 999", + "number.min": "The number of service users that have symptoms must be between 0 and 999" + }, + "required": true + } + }, + { + "name": "ServiceUsersTested", + "type": "NumberField", + "title": "How many service users have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many service users have been tested", + "number.max": "The number of service users that have been tested must be between 0 and 999", + "number.min": "The number of service users that have been tested must be between 0 and 999" + }, + "required": true + } + }, + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "ServiceUsersFluTestPositive", + "options": { + "summaryTitle": "Service users: positive flu test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a positive flu test result", + "number.max": "The number of service users that have a positive flu test must be between 0 and 999", + "number.min": "The number of service users that have a positive flu test must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many service users have had a positive flu test result?", + "hint": "If none or you do not know, enter 0" + }, + { + "name": "ServiceUsersFluTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative flu test result?", + "hint": "If a service user has both positive and negative flu strain results, do not include the negative result here
    If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: negative flu test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative flu test result", + "number.max": "The number of service users that have have had a negative flu test result must be between 0 and 999", + "number.min": "The number of service users that have have had a negative flu test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "ServiceUsersCovidTestNegative", + "type": "NumberField", + "title": "How many service users have been tested for COVID-19 and had a negative test result?", + "hint": "If a service user has a positive flu result and a negative COVID-19 result, do not include the negative result here
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: negative COVID-19 test results", + "required": true, + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative COVID-19 test result", + "number.max": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999" + } + } + } + ], + "next": [ + { + "condition": "Staff", + "path": "/staff-ari-confirmed-flu" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-ari-confirmed-flu", + "title": "Staff: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "

    Enter the number of staff with symptoms in this outbreak.
    Include those who are currently in hospital.
    You do not have to test your staff.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "StaffSymptoms", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested staff
    If none or you do not know, enter 0", + "options": { + "required": true, + "summaryTitle": "Staff: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many staff have symptoms", + "number.max": "The number of staff that have symptoms must be between 0 and 999", + "number.min": "The number of staff that have symptoms must be between 0 and 999" + } + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTested", + "type": "NumberField", + "title": "How many staff have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many staff have been tested", + "number.max": "The number of staff that have been tested must be between 0 and 999", + "number.min": "The number of staff that have been tested must be between 0 and 999" + }, + "required": true + } + }, + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "StaffFluTestPositive", + "options": { + "summaryTitle": "Staff: positive flu test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a positive flu test result", + "number.max": "The number of staff that have had a positive flu test result must be between 0 and 999", + "number.min": "The number of staff that have had a positive flu test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many staff have had a positive flu test result?", + "hint": "If none or you do not know, enter 0" + }, + { + "name": "StaffFluTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative flu test result?", + "hint": "If staff have both positive and negative flu strain results, do not include the negative result here
    If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: negative flu test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative flu test result", + "number.max": "The number of staff that have had a negative flu test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative flu test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "StaffCovidTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative COVID-19 test result?", + "hint": "If staff have a positive flu result and a negative COVID-19 result, do not include the negative result here
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: negative COVID-19 test", + "required": true, + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative COVID-19 test result", + "number.max": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999" + } + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/ipc", + "title": "Infection prevention and control (IPC) and outbreak management in your setting", + "sectionForEndSummaryPages": "IPC", + "components": [ + { + "name": "IPCPractices", + "options": { + "summaryTitle": "How often you monitor staff IPC practices", + "customValidationMessages": { + "any.required": "Select how often you monitor staff infection prevention and control practices" + } + }, + "type": "RadiosField", + "nameHasError": false, + "title": "How often do you monitor staff infection prevention and control practices?", + "hint": "For example, hand hygiene, use of personal protective equipment (PPE) and cleaning", + "list": "IPCPractices", + "values": { + "type": "listRef" + } + }, + { + "name": "Issues", + "options": { + "summaryTitle": "Issues you need support with", + "customValidationMessages": { + "any.required": "Select the issues you currently need support with", + "any.invalid": "Select the issues you currently need support with, or select ‘no issues’" + }, + "divider": true, + "finalValue": "No issues" + }, + "type": "CheckboxesField", + "nameHasError": false, + "title": "What issues do you currently need support with?", + "hint": "You can select more than one option", + "list": "Issues", + "values": { + "type": "listRef" + } + }, + { + "name": "AGPs", + "options": { + "summaryTitle": "Your setting undertakes aerosol generating procedures", + "customValidationMessages": { + "any.required": "Select yes if your setting undertakes aerosol generating procedures (AGPs)" + } + }, + "type": "RadiosField", + "list": "YesNo", + "nameHasError": false, + "title": "Does your setting undertake aerosol generating procedures (AGPs)?", + "hint": "For example, inserting or removing a tracheotomy or ostomy, sputum induction, respiratory tract suctioning below the oro-pharynx (mouth suctioning is not an AGP)", + "values": { + "type": "listRef" + } + }, + { + "name": "MediaInterest", + "options": { + "summaryTitle": "Media interest", + "required": false + }, + "type": "RadiosField", + "list": "YesNo", + "nameHasError": false, + "title": "Are you aware of any media interest in this outbreak?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/agps", + "condition": "AGPs:yes" + }, + { + "path": "/agency-staff" + } + ] + }, + + { + "path": "/severity-of-illness", + "title": "Severity of illness in this outbreak", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "name": "severityIntro", + "type": "Para", + "content": "Include cases confirmed by a test and any other people with symptoms of acute respiratory infections.", + "options": {} + }, + { + "name": "SeverityGPCalls", + "type": "RadiosField", + "title": "How many service users have you called the GP about because of the severity of illness in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true, + "summaryTitle": "People you have called the GP about", + "customValidationMessages": { + "any.required": "Select the number of service users you have called the GP about because of the severity of illness" + } + } + }, + { + "name": "SeverityAntibiotics", + "title": "How many service users or staff have been given antibiotics for their respiratory symptoms?", + "type": "NumberField", + "options": { + "summaryTitle": "People who have been given antibiotics", + "required": false, + "customValidationMessages": { + "number.min": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be between 0 and 999", + "number.max": "The number of service users or staff that have been given antibiotics for their respiratory symptoms must be between 0 and 999" + } + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "SeverityHospitalisations", + "type": "RadiosField", + "title": "How many service users or staff have been hospitalised because of an acute respiratory infection in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true, + "summaryTitle": "People who have been hospitalised", + "customValidationMessages": { + "any.required": "Select the number of service users or staff that have been hospitalised because of an acute respiratory infection" + } + } + }, + { + "name": "SeverityDeaths", + "type": "RadiosField", + "title": "How many service users or staff have died because of an acute respiratory infection in this outbreak?", + "list": "CaseNumbers", + "options": { + "required": true, + "summaryTitle": "People who have died", + "customValidationMessages": { + "any.required": "Select the number of service users or staff that have been died because of an acute respiratory infection" + } + } + } + ], + "next": [ + { + "path": "/symptom-onset" + } + ] + }, + { + "path": "/symptom-onset", + "title": "Symptom onset of cases in this outbreak", + "sectionForEndSummaryPages": "SymptomOnset", + "controller": "DateComparisonPageController", + "options": { + "firstDateComponent": "FirstCaseOnset", + "secondDateComponent": "MostRecentCaseOnset" + }, + "components": [ + { + "name": "introText1", + "type": "Para", + "content": "Include cases confirmed by a test and any other service users and staff with symptoms of acute respiratory infections.", + "options": {} + }, + { + "name": "introText2", + "type": "Para", + "content": "If you do not know the exact date, give an estimate.", + "options": {} + }, + { + "name": "FirstCaseOnset", + "type": "DatePartsField", + "title": "When did symptoms start in the first case in this outbreak?", + "errorLabel": "The date symptoms started in the first case of this outbreak", + "hint": "For example, 31 3 2024", + "options": { + "summaryTitle": "First case: symptoms started", + "required": true, + "maxDaysInFuture": 0, + "customValidationMessages": { + "nonNumeric": "The date symptoms started in the first case of this outbreak must be a real date", + "dayMonthYear": "Enter the date symptoms started in the first case of this outbreak", + "date.max": "The date symptoms started in the first case of this outbreak must be in the past", + "date.base": "The date symptoms started in the first case of this outbreak must be a real date", + "date.min": "The date symptoms started in the first case of this outbreak must be in the past two months" + } + } + }, + { + "name": "MostRecentCaseOnset", + "type": "DatePartsField", + "errorLabel": "The date symptoms started in the most recent case of this outbreak", + "title": "When did symptoms start in the most recent case in this outbreak?", + "hint": "For example, 31 3 2024", + "options": { + "summaryTitle": "Most recent case: symptoms started", + "required": true, + "maxDaysInFuture": 0, + "customValidationMessages": { + "dayMonthYear": "Enter the date symptoms started in the most recent case of this outbreak", + "nonNumeric": "The date symptoms started in the most recent case of this outbreak must be a real date", + "date.max": "The date symptoms started in the most recent case of this outbreak must be in the past", + "date.base": "The date symptoms started in the most recent case of this outbreak must be a real date", + "date.min": "The date symptoms started in the most recent case of this outbreak must be the same as or after the first case" + } + } + } + ], + "next": [ + { + "path": "/vaccination" + } + ] + }, + { + "path": "/agps", + "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", + "sectionForEndSummaryPages": "IPC", + "components": [ + { + "name": "FFP3Masks", + + "options": { + "summaryTitle": "Staff wear fit-tested FFP3 masks", + "customValidationMessages": { + "any.required": "Select if staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks" + } + }, + "type": "RadiosField", + "nameHasError": false, + "title": "Do staff carrying out aerosol generating procedures (AGPs) wear fit-tested FFP3 masks?", + "list": "FFP3Masks", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/agency-staff" + } + ] + }, + { + "path": "/agency-staff", + "title": "Do you use agency staff or share staff with other care settings?", + "sectionForEndSummaryPages": "Staffing", + "components": [ + { + "name": "AgencyStaff", + "options": { + "summaryTitle": "You use agency staff or share staff with other settings", + "customValidationMessages": { + "any.required": "Select yes if you use agency staff or share staff with other care settings" + } + }, + "type": "RadiosField", + "list": "YesNo", + "nameHasError": false, + "title": "Do you use agency staff or share staff with other care settings?", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/contact-details", + "condition": "AgencyStaff:No" + }, + { + "path": "/additional-staff" + } + ] + }, + { + "path": "/additional-staff", + "title": "How many additional agency staff or staff from other care settings have you used during this outbreak?", + "sectionForEndSummaryPages": "Staffing", + "components": [ + { + "name": "AdditionalStaff", + "options": { + "summaryTitle": "Agency staff or staff from other settings", + "customValidationMessages": { + "any.required": "Select the number of additional agency staff or staff from other care settings you have used during this outbreak" + } + }, + "type": "RadiosField", + "nameHasError": false, + "title": "How many additional agency staff or staff from other care settings have you used during this outbreak?", + "list": "AdditionalStaff", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/contact-details" + } + ] + }, + { + "path": "/setting-details", + "title": "Setting details", + "sectionForEndSummaryPages": "SettingDetails", + "components": [ + { + "name": "SettingName", + "options": { + "summaryTitle": "Setting name", + "customValidationMessages": { + "string.empty": "Enter your setting name", + "string.base": "Enter your setting name" + } + }, + "type": "TextField", + "nameHasError": false, + "title": "Your setting name", + + "hint": "The name of the setting where the cases are located, not the management company", + "values": { + "type": "listRef" + } + }, + { + "name": "SettingPostcode", + "options": { + "summaryTitle": "Setting postcode", + "customValidationMessages": { + "string.empty": "Enter postcode", + "string.pattern.base": "Enter a full UK postcode" + } + }, + "type": "TextField", + "nameHasError": false, + "title": "Your setting postcode", + "hint": "The postcode of the setting where the cases are located, not the management company.", + "schema": { + "regex": "^[A-z]{1,2}[0-9][A-z0-9]?[\\s]*[0-9]{1,2}[ABD-hJLNP-uW-z]{2}$" + } + }, + { + "name": "CQCRegistered", + "options": { + "summaryTitle": "Registered with the Care Quality Commission (CQC)", + "customValidationMessages": { + "any.required": "Select yes if your setting is registered with the Care Quality Commission (CQC)" + }, + "conditionallyRevealedComponents": { + "CQCLocationID": { + "type": "TextField", + "name": "CQCLocationID", + "title": "Enter your CQC location ID, for example, 1-123456789", + "sectionForEndSummaryPages": "SettingDetails", + "options": { + "summaryTitle": "CQC location ID", + "customValidationMessages": { + "string.empty": "CQC location ID cannot be blank", + "string.pattern.base": "Enter a CQC location ID in the correct format" + } + }, + "schema": { + "regex": "^(?:1-\\d{9,11}|[A-Z][A-Z0-9]{4,6})$" + } + } + } + }, + "type": "RadiosField", + "list": "CQCYesNo", + "nameHasError": false, + "title": "Is your care setting registered with the Care Quality Commission (CQC)?", + "values": { + "type": "listRef" + } + }, + { + "name": "nMOTdlmry", + "options": {}, + "type": "Para", + "content": "\n Find your CQC location ID in the care directory on the CQC website (opens in a new tab). The CQC location ID is listed on the ‘Registration details’ page for your care setting.", + "schema": {} + } + ], + "next": [ + { + "path": "/2-or-more-ari" + } + ] + }, + { + "path": "/contact-details", + "title": "Contact details", + "sectionForEndSummaryPages": "ContactDetails", + "components": [ + { + "name": "heading1", + "options": { + "required": false + }, + "type": "Para", + "content": "

    Enter a contact to receive:

    • an acknowledgment email including a copy of the answers submitted
    • advice by email
    • a follow up phone call (depending on the risk level)

    If possible, provide a work phone number and email address instead of personal contact details.

    Main contact

    ", + "schema": {} + }, + { + "name": "MainContactName", + "options": { + "summaryTitle": "Main contact", + "customValidationMessages": { + "string.empty": "Enter a main contact's full name", + "string.max": "Main contact's name must be 99 characters or less" + } + }, + "schema": { + "max": 99 + }, + "type": "TextField", + "nameHasError": false, + "title": "Full name", + "values": { + "type": "listRef" + } + }, + { + "name": "MainContactJobTitle", + "options": { + "required": false, + "summaryTitle": "Job title", + "customValidationMessages": { + "string.max": "Main contact's job title must be 99 characters or less" + } + }, + "schema": { + "max": 99 + }, + "type": "TextField", + "nameHasError": false, + "title": "Job title", + "hint": "For example, manager, senior carer", + "values": { + "type": "listRef" + } + }, + { + "name": "MainContactPhoneNumber", + "options": { + "summaryTitle": "Phone number", + "customValidationMessages": { + "string.empty": "Enter a main contact's phone number", + "string.pattern.base": "Enter a main contact's phone number, like 01632 960 001 or 07700 900 982" + } + }, + "type": "TelephoneNumberField", + "nameHasError": false, + "title": "Phone number", + "values": { + "type": "listRef" + }, + "schema": { + "regex": "^(?!\\s)(?!0+$)(?!.*(\\d)\\1{6,})(?=(?:\\D*\\d){10,12}\\D*(?:\\s?#\\d{3,4})?$)(?:\\+44|0|\\(0\\d{2,4}\\))[0-9\\s()]+(?:\\s?#\\d{3,4})?$" + } + }, + { + "name": "MainContactEmailAddress", + "options": { + "exposeToContext": true, + "summaryTitle": "Email address", + "customValidationMessages": { + "string.empty": "Enter a main contact's email address", + "string.pattern.base": "Enter a main contact's email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "nameHasError": false, + "title": "Email address", + "values": { + "type": "listRef" + } + }, + { + "name": "heading1", + "options": { + "required": false + }, + "type": "Para", + "content": "

    Additional contact

    Enter another contact to also receive the emails. We will use this phone number if the main contact is not available.

    ", + "schema": {} + }, + { + "name": "AltContactName", + "options": { + "required": false, + "summaryTitle": "Additional contact", + "customValidationMessages": { + "string.max": "Additional contact's name must be 99 characters or less" + } + }, + "schema": { + "max": 99 + }, + "type": "TextField", + "nameHasError": false, + "title": "Full name", + "values": { + "type": "listRef" + } + }, + { + "name": "AltContactJobTitle", + "options": { + "required": false, + "summaryTitle": "Additional contact’s job title", + "customValidationMessages": { + "string.max": "Additional contact's job title must be 99 characters or less" + } + }, + "schema": { + "max": 99 + }, + "type": "TextField", + "nameHasError": false, + "title": "Job title", + "hint": "For example, manager, senior carer", + "values": { + "type": "listRef" + } + }, + { + "name": "AltContactPhoneNumber", + "options": { + "required": false, + "summaryTitle": "Additional phone number", + "customValidationMessages": { + "string.pattern.base": "Enter an additional contact's phone number, like 01632 960 001 or 07700 900 982" + } + }, + "type": "TelephoneNumberField", + "nameHasError": false, + "title": "Phone number", + "values": { + "type": "listRef" + }, + "schema": { + "regex": "^(?!\\s)(?!0+$)(?!.*(\\d)\\1{6,})(?=(?:\\D*\\d){10,12}\\D*(?:\\s?#\\d{3,4})?$)(?:\\+44|0|\\(0\\d{2,4}\\))[0-9\\s()]+(?:\\s?#\\d{3,4})?$" + } + }, + { + "name": "AltContactEmailAddress", + "options": { + "required": false, + "summaryTitle": "Additional email address", + "customValidationMessages": { + "string.pattern.base": "Enter an additional contact's email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "nameHasError": false, + "title": "Email address", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/service-users" + } + ] + }, + { + "path": "/service-users", + "title": "Service users and staff", + "sectionForEndSummaryPages": "ServiceUsersAndStaff", + "components": [ + { + "name": "ServiceUsersTypes", + "options": { + "summaryTitle": "The majority of your service users", + "customValidationMessages": { + "any.required": "Select the options that best describe the majority of your service users" + } + }, + "type": "CheckboxesField", + "nameHasError": false, + "title": "Select the options that best describe the majority of your service users", + "hint": "You can select more than one option", + "list": "ServiceUsersTypes", + "values": { + "type": "listRef" + } + }, + { + "name": "ServiceUsersCurrentlyLive", + "options": { + "summaryTitle": "People that live in your setting or use your service", + "customValidationMessages": { + "number.base": "Enter the number of service users that currently live in your care setting or use your service", + "number.max": "The number of service users that currently live in your care setting or use your service must be between 0 and 999", + "number.min": "The number of service users that currently live in your care setting or use your service must be between 0 and 999" + } + }, + "type": "NumberField", + "nameHasError": false, + "schema": { + "min": 0, + "max": 999 + }, + "title": "How many service users currently live in your care setting or use your service?", + "hint": "Include those who are currently in hospital or on visits out", + "list": "ServiceUsersTypes" + }, + { + "name": "StaffNumber", + "options": { + "summaryTitle": "Staff that work in your care setting or service", + "customValidationMessages": { + "number.base": "Enter the number of staff that currently work in your care setting or service", + "number.max": "The number of staff that currently work in your care setting or service must be between 0 and 999", + "number.min": "The number of staff that currently work in your care setting or service must be between 0 and 999" + } + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many staff currently work in your care setting or service?" + }, + { + "name": "EmptyBeds", + "options": { + "required": false, + "summaryTitle": "Empty beds", + "customValidationMessages": { + "number.max": "The number of empty beds that you have in your care setting must be between 0 and 999", + "number.min": "The number of empty beds that you have in your care setting must be between 0 and 999" + } + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many empty beds do you have in your care setting?", + "hint": "If you do not know, leave this blank" + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/summary", + "controller": "CustomSummaryPageController", + "title": "Check your answers before sending your report", + "options": { + "customText": { + "insetText": "You will only see answers to questions that are relevant to your report.", + "endContent": "

    Now send your report

    Your responses will be shared with your local UKHSA health protection team, local authority, local community infection prevention control team and the NHS. They will use your information to help you manage your situation.

    By submitting this report you confirm that the details are correct to the best of your knowledge. You confirm that you have not included any personally identifiable information for service users, for example names or dates of birth.

    " + } + }, + "next": [] + }, + { + "path": "/positive-flu", + "title": "Are you reporting a confirmed case of flu?", + "sectionForExitJourneySummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "InfectionsInYourSetting", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "

    The infection must have been confirmed by a test

    " + }, + { + "name": "PositiveARI", + "options": { + "summaryTitle": "Confirmed test result", + "customValidationMessages": { + "any.required": "Select yes if you are reporting a confirmed case of flu" + }, + "hideTitle": true + }, + "type": "RadiosField", + "list": "YesNo", + "nameHasError": false, + "title": " ", + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/do-not-need-to-report", + "condition": "PositiveARI:No" + }, + { + "path": "/which-test-kit" + } + ] + }, + { + "path": "/which-test-kit", + "title": "Did you use a combined COVID-19 and flu test kit supplied by UKHSA?", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Html", + "content": "

    This is a 2SAN combo rapid test supplied for use in your setting 2SAN branded packaging for combined COVID-19 and flu test kit

    " + }, + { + "name": "TestKitsUsed", + "options": { + "summaryTitle": "Used UKHSA-supplied test kit", + "hideTitle": true, + "conditionallyRevealedComponents": { + "TestKitsUsed": { + "type": "NumberField", + "name": "TestKitsUsedNo", + "title": "Enter how many", + "options": { + "summaryTitle": "Number of test kits used", + "customValidationMessages": { + "number.base": "Enter how many test kits you used" + } + }, + "schema": {} + } + }, + "customValidationMessages": { + "any.required": "Select yes if you used a combined COVID-19 and flu test kit supplied by UKHSA" + } + }, + "type": "RadiosField", + "list": "TestKitsUsed", + "nameHasError": false, + "title": " ", + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/single-case-of-flu", + "condition": "TwoOrMoreARI:No" + }, + { + "path": "/ari-confirmed-cases-setting" + } + ] + }, + { + "path": "/any-tests", + "title": "Do you have any test results for an acute respiratory infection?", + "sectionForExitJourneySummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "InfectionsInYourSetting", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "

    Select yes if you have at least one positive or negative test result.
    This could be for a service user or a member of staff

    " + }, + { + "name": "AnyTests", + "options": { + "summaryTitle": "Any test results", + "customValidationMessages": { + "any.required": "Select if you have any test results" + }, + "hideTitle": true + }, + "type": "RadiosField", + "list": "YesNo", + "nameHasError": false, + "title": " ", + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/which-ari", + "condition": "WithTests" + }, + { + "path": "/ari-confirmed-cases-setting" + } + ] + }, + { + "path": "/which-ari", + "title": "What do you have positive test results for?", + "sectionForExitJourneySummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "InfectionsInYourSetting", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "

    You can select more than one option

    " + }, + { + "name": "WhichARI", + "options": { + "summaryTitle": "Positive test results", + "customValidationMessages": { + "any.required": "Select which infection you have positive test results for" + }, + "hideTitle": true, + "divider": true + }, + "type": "CheckboxesField", + "nameHasError": false, + "title": " ", + "list": "InfectionTypes", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/2-or-more-covid-details", + "condition": "OnlyCovid" + }, + { "path": "/which-test-kit" } + ] + }, + { + "path": "/service-users-ari-unconfirmed", + "title": "Service users: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "name": "ServiceUsersSymptoms", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include those who are currently in hospital or on visits out
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many service users have symptoms", + "number.max": "The number of service users that have symptoms must be between 0 and 999", + "number.min": "The number of service users that have symptoms must be between 0 and 999" + }, + "required": true + } + } + ], + "next": [ + { + "condition": "Staff", + "path": "/staff-ari-unconfirmed" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-ari-unconfirmed", + "title": "Staff: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "name": "StaffSymptoms", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include those who are currently in hospital
    If none or you do not know, enter 0", + "options": { + "required": true, + "summaryTitle": "Staff: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many staff have symptoms", + "number.max": "The number of staff that have symptoms must be between 0 and 999", + "number.min": "The number of staff that have symptoms must be between 0 and 999" + } + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/service-users-ari-no-positive", + "title": "Service users: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "type": "Para", + "content": "

    Enter the number of service users with symptoms in this outbreak.
    Include those who are currently in hospital or on visits out.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "ServiceUsersSymptoms", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested service users
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many service users have symptoms", + "number.max": "The number of service users that have symptoms must be between 0 and 999", + "number.min": "The number of service users that have symptoms must be between 0 and 999" + }, + "required": true + } + }, + { + "name": "ServiceUsersTested", + "type": "NumberField", + "title": "How many service users have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many service users have been tested", + "number.max": "The number of service users that have been tested must be between 0 and 999", + "number.min": "The number of service users that have been tested must be between 0 and 999" + }, + "required": true + } + }, + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "ServiceUsersFluTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative flu test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: negative flu test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative flu test result", + "number.max": "The number of service users that have have had a negative flu test result must be between 0 and 999", + "number.min": "The number of service users that have have had a negative flu test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "ServiceUsersCovidTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative COVID-19 test result?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: negative COVID-19 test results", + "required": true, + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative COVID-19 test result", + "number.max": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999" + } + } + } + ], + "next": [ + { + "condition": "Staff", + "path": "/staff-ari-no-positive" + }, + { + "path": "/severity-of-illness" + } + ] + }, + + { + "path": "/staff-ari-no-positive", + "title": "Staff: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "

    Enter the number of staff with symptoms in this outbreak.
    Include those who are currently in hospital.
    You do not have to test your staff.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "StaffSymptoms", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested staff
    If none or you do not know, enter 0", + "options": { + "required": true, + "summaryTitle": "Staff: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many staff have symptoms", + "number.max": "The number of staff that have symptoms must be between 0 and 999", + "number.min": "The number of staff that have symptoms must be between 0 and 999" + } + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTested", + "type": "NumberField", + "title": "How many staff have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many staff have been tested", + "number.max": "The number of staff that have been tested must be between 0 and 999", + "number.min": "The number of staff that have been tested must be between 0 and 999" + }, + "required": true + } + }, + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "StaffFluTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative flu test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: negative flu test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative flu test result", + "number.max": "The number of staff that have had a negative flu test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative flu test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "StaffCovidTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative COVID-19 test result?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: negative COVID-19 test", + "required": true, + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative COVID-19 test result", + "number.max": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999" + } + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + + { + "path": "/2-or-more-covid-details", + "title": "Acute respiratory infections in your setting", + "sectionForExitJourneySummaryPages": "AcuteInfections", + "sectionForMultiSummaryPages": "Covid19InYourSetting", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "

    Include cases confirmed by a test and any other people with symptoms of acute respiratory infections, including chest infections

    " + }, + { + "name": "TwoOrMoreCovid5days", + "options": { + "summaryTitle": "COVID-19: symptoms started within 5 days of each other", + "customValidationMessages": { + "any.required": "Select yes if symptoms in 2 or more cases started within 5 days of each other" + } + }, + "type": "RadiosField", + "nameHasError": false, + "title": "Did symptoms in 2 or more cases start within 5 days of each other?", + "list": "YesNoSure", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/do-not-need-to-report", + "condition": "ReportCovid:No" + }, + { + "path": "/which-test-kit" + } + ] + }, + + { + "path": "/service-users-ari-confirmed-covid", + "title": "Service users: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "type": "Para", + "content": "

    Enter number of service users with symptoms in this outbreak.
    Include those who are currently in hospital or on visits out.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "ServiceUsersSymptoms", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested service users
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many service users have symptoms", + "number.max": "The number of service users that have symptoms must be between 0 and 999", + "number.min": "The number of service users that have symptoms must be between 0 and 999" + }, + "required": true + } + }, + { + "name": "ServiceUsersTested", + "type": "NumberField", + "title": "How many service users have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many service users have been tested", + "number.max": "The number of service users that have been tested must be between 0 and 999", + "number.min": "The number of service users that have been tested must be between 0 and 999" + }, + "required": true + } + }, + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "ServiceUsersCovidTestPositive", + "options": { + "summaryTitle": "Service users: positive COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a positive COVID-19 test result", + "number.max": "The number of service users that have a positive COVID-19 test result must be between 0 and 999", + "number.min": "The number of service users that have a positive COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many service users have had a positive COVID-19 test result?", + "hint": "If none or you do not know, enter 0" + }, + { + "name": "ServiceUsersCovidTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative COVID-19 test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: negative COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative COVID-19 test result", + "number.max": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "ServiceUsersFluTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative flu test result?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: negative flu test", + "required": true, + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative flu test result", + "number.max": "The number of service users that have have had a negative flu test result must be between 0 and 999", + "number.min": "The number of service users that have have had a negative flu test result must be between 0 and 999" + } + } + } + ], + "next": [ + { + "condition": "Staff", + "path": "/staff-ari-confirmed-covid" + }, + { + "path": "/severity-of-illness" + } + ] + }, + + { + "path": "/staff-ari-confirmed-covid", + "title": "Staff: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "

    Enter the number of staff with symptoms in this outbreak.
    Include those who are currently in hospital.
    You do not have to test your staff.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "StaffSymptoms", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested staff
    If none or you do not know, enter 0", + "options": { + "required": true, + "summaryTitle": "Staff: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many staff have symptoms", + "number.max": "The number of staff that have symptoms must be between 0 and 999", + "number.min": "The number of staff that have symptoms must be between 0 and 999" + } + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTested", + "type": "NumberField", + "title": "How many staff have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many staff have been tested", + "number.max": "The number of staff that have been tested must be between 0 and 999", + "number.min": "The number of staff that have been tested must be between 0 and 999" + }, + "required": true + } + }, + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "StaffCovidTestPositive", + "options": { + "summaryTitle": "Staff: positive COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a positive COVID-19 test result", + "number.max": "The number of staff that have had a positive COVID-19 test result must be between 0 and 999", + "number.min": "The number of staff that have had a positive COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many staff have had a positive COVID-19 test result?", + "hint": "If none or you do not know, enter 0" + }, + + { + "name": "StaffCovidTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative COVID-19 test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: negative COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative COVID-19 test result", + "number.max": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "StaffFluTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative flu test result?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: negative flu test", + "required": true, + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative flu test result", + "number.max": "The number of staff that have had a negative flu test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative flu test result must be between 0 and 999" + } + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/service-users-ari-confirmed-other", + "title": "Service users: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "type": "Para", + "content": "

    Enter number of service users with symptoms in this outbreak.
    Include those who are currently in hospital or on visits out.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "ServiceUsersSymptoms", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested service users
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many service users have symptoms", + "number.max": "The number of service users that have symptoms must be between 0 and 999", + "number.min": "The number of service users that have symptoms must be between 0 and 999" + }, + "required": true + } + }, + { + "name": "ServiceUsersTested", + "type": "NumberField", + "title": "How many service users have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many service users have been tested", + "number.max": "The number of service users that have been tested must be between 0 and 999", + "number.min": "The number of service users that have been tested must be between 0 and 999" + }, + "required": true + } + }, + { + "type": "Para", + "content": "

    Other acute respiratory infections

    " + }, + { + "name": "ServiceUsersOtherTestPositive", + "options": { + "summaryTitle": "Service users: positive other ARI test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a positive test result for an acute respiratory infection that is not flu or COVID-19", + "number.max": "The number of service users that have had a positive rest result must be between 0 and 999", + "number.min": "The number of service users that have had a positive rest result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many service users have had a positive test result for another type of acute respiratory infection (not flu or COVID-19)?", + "hint": "If none or you do not know, enter 0" + }, + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "ServiceUsersFluTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative flu test result?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: negative flu test", + "required": true, + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative flu test result", + "number.max": "The number of service users that have have had a negative flu test result must be between 0 and 999", + "number.min": "The number of service users that have have had a negative flu test result must be between 0 and 999" + } + } + }, + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "ServiceUsersCovidTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative COVID-19 test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: negative COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative COVID-19 test result", + "number.max": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "Staff", + "path": "/staff-ari-confirmed-other" + }, + { + "path": "/severity-of-illness" + } + ] + }, + + { + "path": "/staff-ari-confirmed-other", + "title": "Staff: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "

    Enter the number of staff with symptoms in this outbreak.
    Include those who are currently in hospital.
    You do not have to test your staff.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "StaffSymptoms", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested staff
    If none or you do not know, enter 0", + "options": { + "required": true, + "summaryTitle": "Staff: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many staff have symptoms", + "number.max": "The number of staff that have symptoms must be between 0 and 999", + "number.min": "The number of staff that have symptoms must be between 0 and 999" + } + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTested", + "type": "NumberField", + "title": "How many staff have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many staff have been tested", + "number.max": "The number of staff that have been tested must be between 0 and 999", + "number.min": "The number of staff that have been tested must be between 0 and 999" + }, + "required": true + } + }, + { + "type": "Para", + "content": "

    Other acute respiratory infections

    " + }, + { + "name": "StaffOtherTestPositive", + "options": { + "summaryTitle": "Staff: positive other ARI test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a positive test result for an acute respiratory infection that is not flu or COVID-19", + "number.max": "The number of staff that have had a positive test result must be between 0 and 999", + "number.min": "The number of staff that have had a positive test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many staff have had a positive test result for another type of acute respiratory infection (not flu or COVID-19)?", + "hint": "If none or you do not know, enter 0" + }, + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "StaffFluTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative flu test result?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: negative flu test", + "required": true, + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative flu test result", + "number.max": "The number of staff that have had a negative flu test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative flu test result must be between 0 and 999" + } + } + }, + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "StaffCovidTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative COVID-19 test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: negative COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative COVID-19 test result", + "number.max": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/service-users-ari-confirmed-flu-covid", + "title": "Service users: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "type": "Para", + "content": "

    Enter number of service users with symptoms in this outbreak.
    Include those who are currently in hospital or on visits out.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "ServiceUsersSymptoms", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested service users
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many service users have symptoms", + "number.max": "The number of service users that have symptoms must be between 0 and 999", + "number.min": "The number of service users that have symptoms must be between 0 and 999" + }, + "required": true + } + }, + { + "name": "ServiceUsersTested", + "type": "NumberField", + "title": "How many service users have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many service users have been tested", + "number.max": "The number of service users that have been tested must be between 0 and 999", + "number.min": "The number of service users that have been tested must be between 0 and 999" + }, + "required": true + } + }, + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "ServiceUsersFluTestPositive", + "options": { + "summaryTitle": "Service users: positive flu test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a positive flu test result", + "number.max": "The number of service users that have a positive flu test must be between 0 and 999", + "number.min": "The number of service users that have a positive flu test must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many service users have had a positive flu test result?", + "hint": "If none or you do not know, enter 0" + }, + { + "name": "ServiceUsersFluTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative flu test result?", + "hint": "If a service user has both positive and negative flu strain results, do not include the negative result here
    If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: negative flu test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative flu test result", + "number.max": "The number of service users that have have had a negative flu test result must be between 0 and 999", + "number.min": "The number of service users that have have had a negative flu test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "ServiceUsersCovidTestPositive", + "options": { + "summaryTitle": "Service users: positive COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a positive COVID-19 test result", + "number.max": "The number of service users that have a positive COVID-19 test result must be between 0 and 999", + "number.min": "The number of service users that have a positive COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many service users have had a positive COVID-19 test result?", + "hint": "If none or you do not know, enter 0" + }, + { + "name": "ServiceUsersCovidTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative COVID-19 test result?", + "hint": "If a service user has a positive flu result and a negative COVID-19 result, do not include the negative result here
    If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: negative COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative COVID-19 test result", + "number.max": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "Staff", + "path": "/staff-ari-confirmed-flu-covid" + }, + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/staff-ari-confirmed-flu-covid", + "title": "Staff: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "

    Enter the number of staff with symptoms in this outbreak.
    Include those who are currently in hospital.
    You do not have to test your staff.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "StaffSymptoms", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested staff
    If none or you do not know, enter 0", + "options": { + "required": true, + "summaryTitle": "Staff: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many staff have symptoms", + "number.max": "The number of staff that have symptoms must be between 0 and 999", + "number.min": "The number of staff that have symptoms must be between 0 and 999" + } + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTested", + "type": "NumberField", + "title": "How many staff have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many staff have been tested", + "number.max": "The number of staff that have been tested must be between 0 and 999", + "number.min": "The number of staff that have been tested must be between 0 and 999" + }, + "required": true + } + }, + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "StaffFluTestPositive", + "options": { + "summaryTitle": "Staff: positive flu test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a positive flu test result", + "number.max": "The number of staff that have had a positive flu test result must be between 0 and 999", + "number.min": "The number of staff that have had a positive flu test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many staff have had a positive flu test result?", + "hint": "If none or you do not know, enter 0" + }, + { + "name": "StaffFluTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative flu test result?", + "hint": "If a staff have both a positive flu strain results, do not include the negative result here
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: negative flu test", + "required": true, + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative flu test result", + "number.max": "The number of staff that have had a negative flu test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative flu test result must be between 0 and 999" + } + } + }, + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "StaffCovidTestPositive", + "options": { + "summaryTitle": "Staff: positive COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a positive COVID-19 test result", + "number.max": "The number of staff that have had a positive COVID-19 test result must be between 0 and 999", + "number.min": "The number of staff that have had a positive COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many staff have had a positive COVID-19 test result?", + "hint": "If none or you do not know, enter 0" + }, + + { + "name": "StaffCovidTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative COVID-19 test result?", + "hint": "If staff have a positive flu result and a negative COVID-19 result, do not include the negative result here
    If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: negative COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative COVID-19 test result", + "number.max": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/service-users-ari-confirmed-flu-other", + "title": "Service users: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "type": "Para", + "content": "

    Enter number of service users with symptoms in this outbreak.
    Include those who are currently in hospital or on visits out.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "ServiceUsersSymptoms", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested service users
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many service users have symptoms", + "number.max": "The number of service users that have symptoms must be between 0 and 999", + "number.min": "The number of service users that have symptoms must be between 0 and 999" + }, + "required": true + } + }, + { + "name": "ServiceUsersTested", + "type": "NumberField", + "title": "How many service users have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many service users have been tested", + "number.max": "The number of service users that have been tested must be between 0 and 999", + "number.min": "The number of service users that have been tested must be between 0 and 999" + }, + "required": true + } + }, + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "ServiceUsersFluTestPositive", + "options": { + "summaryTitle": "Service users: positive flu test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a positive flu test result", + "number.max": "The number of service users that have a positive flu test must be between 0 and 999", + "number.min": "The number of service users that have a positive flu test must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many service users have had a positive flu test result?", + "hint": "If none or you do not know, enter 0" + }, + { + "name": "ServiceUsersFluTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative flu test result?", + "hint": "If a service user has both positive and negative flu strain results, do not include the negative result here
    If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: negative flu test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative flu test result", + "number.max": "The number of service users that have have had a negative flu test result must be between 0 and 999", + "number.min": "The number of service users that have have had a negative flu test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + }, + + { + "type": "Para", + "content": "

    Other acute respiratory infections

    " + }, + { + "name": "ServiceUsersOtherTestPositive", + "options": { + "summaryTitle": "Service users: positive other ARI test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a positive test result for an acute respiratory infection that is not flu or COVID-19", + "number.max": "The number of service users that have had a positive rest result must be between 0 and 999", + "number.min": "The number of service users that have had a positive rest result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false, + "title": "How many service users have had a positive test result for another type of acute respiratory infection (not flu or COVID-19)?", + "hint": "If none or you do not know, enter 0" + }, + + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "ServiceUsersCovidTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative COVID-19 test result?", + "hint": "If a service user has a positive flu result and a negative COVID-19 result, do not include the negative result here
    If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: negative COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative COVID-19 test result", + "number.max": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "Staff", + "path": "/staff-ari-confirmed-flu-other" + }, + { + "path": "/severity-of-illness" + } + ] + }, + + { + "path": "/staff-ari-confirmed-flu-other", + "title": "Staff: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "

    Enter the number of staff with symptoms in this outbreak.
    Include those who are currently in hospital.
    You do not have to test your staff.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "StaffSymptoms", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested staff
    If none or you do not know, enter 0", + "options": { + "required": true, + "summaryTitle": "Staff: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many staff have symptoms", + "number.max": "The number of staff that have symptoms must be between 0 and 999", + "number.min": "The number of staff that have symptoms must be between 0 and 999" + } + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTested", + "type": "NumberField", + "title": "How many staff have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many staff have been tested", + "number.max": "The number of staff that have been tested must be between 0 and 999", + "number.min": "The number of staff that have been tested must be between 0 and 999" + }, + "required": true + } + }, + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "StaffFluTestPositive", + "title": "How many staff have had a positive flu test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: positive flu test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a positive flu test result", + "number.max": "The number of staff that have had a positive flu test result must be between 0 and 999", + "number.min": "The number of staff that have had a positive flu test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false + }, + { + "name": "StaffFluTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative flu test result?", + "hint": "If a staff have both a positive flu strain results, do not include the negative result here
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: negative flu test", + "required": true, + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative flu test result", + "number.max": "The number of staff that have had a negative flu test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative flu test result must be between 0 and 999" + } + } + }, + + { + "type": "Para", + "content": "

    Other acute respiratory infections

    " + }, + { + "name": "StaffOtherTestPositive", + "title": "How many staff have had a positive test result for another type of acute respiratory infection (not flu or COVID-19)?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: positive other ARI test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a positive test result for an acute respiratory infection that is not flu or COVID-19", + "number.max": "The number of staff that have had a positive test result must be between 0 and 999", + "number.min": "The number of staff that have had a positive test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false + }, + + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "StaffCovidTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative COVID-19 test result?", + "hint": "If staff have a positive flu result and a negative COVID-19 result, do not include the negative result here
    If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: negative COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative COVID-19 test result", + "number.max": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/service-users-ari-confirmed-covid-other", + "title": "Service users: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "type": "Para", + "content": "

    Enter number of service users with symptoms in this outbreak.
    Include those who are currently in hospital or on visits out.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "ServiceUsersSymptoms", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested service users
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many service users have symptoms", + "number.max": "The number of service users that have symptoms must be between 0 and 999", + "number.min": "The number of service users that have symptoms must be between 0 and 999" + }, + "required": true + } + }, + { + "name": "ServiceUsersTested", + "type": "NumberField", + "title": "How many service users have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many service users have been tested", + "number.max": "The number of service users that have been tested must be between 0 and 999", + "number.min": "The number of service users that have been tested must be between 0 and 999" + }, + "required": true + } + }, + + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "ServiceUsersCovidTestPositive", + "title": "How many service users have had a positive COVID-19 test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: positive COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a positive COVID-19 test result", + "number.max": "The number of service users that have a positive COVID-19 test result must be between 0 and 999", + "number.min": "The number of service users that have a positive COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false + }, + { + "name": "ServiceUsersCovidTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative COVID-19 test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: negative COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative COVID-19 test result", + "number.max": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + }, + + { + "type": "Para", + "content": "

    Other acute respiratory infections

    " + }, + { + "name": "ServiceUsersOtherTestPositive", + "title": "How many service users have had a positive test result for another type of acute respiratory infection (not flu or COVID-19)?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: positive other ARI test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a positive test result for an acute respiratory infection that is not flu or COVID-19", + "number.max": "The number of service users that have had a positive rest result must be between 0 and 999", + "number.min": "The number of service users that have had a positive rest result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false + }, + + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "ServiceUsersFluTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative flu test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: negative flu test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative flu test result", + "number.max": "The number of service users that have have had a negative flu test result must be between 0 and 999", + "number.min": "The number of service users that have have had a negative flu test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + } + ], + "next": [ + { + "condition": "Staff", + "path": "/staff-ari-confirmed-covid-other" + }, + { + "path": "/severity-of-illness" + } + ] + }, + + { + "path": "/staff-ari-confirmed-covid-other", + "title": "Staff: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "

    Enter the number of staff with symptoms in this outbreak.
    Include those who are currently in hospital.
    You do not have to test your staff.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "StaffSymptoms", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested staff
    If none or you do not know, enter 0", + "options": { + "required": true, + "summaryTitle": "Staff: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many staff have symptoms", + "number.max": "The number of staff that have symptoms must be between 0 and 999", + "number.min": "The number of staff that have symptoms must be between 0 and 999" + } + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTested", + "type": "NumberField", + "title": "How many staff have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many staff have been tested", + "number.max": "The number of staff that have been tested must be between 0 and 999", + "number.min": "The number of staff that have been tested must be between 0 and 999" + }, + "required": true + } + }, + + { + "type": "Para", + "content": "

    COVID-19

    " + }, + + { + "name": "StaffCovidTestPositive", + "title": "How many staff have had a positive COVID-19 test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: positive COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a positive COVID-19 test result", + "number.max": "The number of staff that have had a positive COVID-19 test result must be between 0 and 999", + "number.min": "The number of staff that have had a positive COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false + }, + + { + "name": "StaffCovidTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative COVID-19 test result?", + "hint": "If staff have a positive flu result and a negative COVID-19 result, do not include the negative result here
    If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: negative COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative COVID-19 test result", + "number.max": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + }, + + { + "type": "Para", + "content": "

    Other acute respiratory infections

    " + }, + { + "name": "StaffOtherTestPositive", + "title": "How many staff have had a positive test result for another type of acute respiratory infection (not flu or COVID-19)?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: positive other ARI test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a positive test result for an acute respiratory infection that is not flu or COVID-19", + "number.max": "The number of staff that have had a positive test result must be between 0 and 999", + "number.min": "The number of staff that have had a positive test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false + }, + + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "StaffFluTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative flu test result?", + "hint": "If a staff have both a positive flu strain results, do not include the negative result here
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: negative flu test", + "required": true, + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative flu test result", + "number.max": "The number of staff that have had a negative flu test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative flu test result must be between 0 and 999" + } + } + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + }, + { + "path": "/service-users-ari-confirmed-covid-flu-other", + "title": "Service users: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "disableSingleComponentAsHeading": true, + "components": [ + { + "type": "Para", + "content": "

    Enter number of service users with symptoms in this outbreak.
    Include those who are currently in hospital or on visits out.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "ServiceUsersSymptoms", + "type": "NumberField", + "title": "How many service users have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested service users
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many service users have symptoms", + "number.max": "The number of service users that have symptoms must be between 0 and 999", + "number.min": "The number of service users that have symptoms must be between 0 and 999" + }, + "required": true + } + }, + { + "name": "ServiceUsersTested", + "type": "NumberField", + "title": "How many service users have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Service users: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many service users have been tested", + "number.max": "The number of service users that have been tested must be between 0 and 999", + "number.min": "The number of service users that have been tested must be between 0 and 999" + }, + "required": true + } + }, + + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "ServiceUsersFluTestPositive", + "title": "How many service users have had a positive flu test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: positive flu test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a positive flu test result", + "number.max": "The number of service users that have a positive flu test must be between 0 and 999", + "number.min": "The number of service users that have a positive flu test must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false + }, + { + "name": "ServiceUsersFluTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative flu test result?", + "hint": "If a service user has both positive and negative flu strain results, do not include the negative result here
    If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: negative flu test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative flu test result", + "number.max": "The number of service users that have have had a negative flu test result must be between 0 and 999", + "number.min": "The number of service users that have have had a negative flu test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + }, + + { + "type": "Para", + "content": "

    COVID-19

    " + }, + { + "name": "ServiceUsersCovidTestPositive", + "title": "How many service users have had a positive COVID-19 test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: positive COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a positive COVID-19 test result", + "number.max": "The number of service users that have a positive COVID-19 test result must be between 0 and 999", + "number.min": "The number of service users that have a positive COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false + }, + { + "name": "ServiceUsersCovidTestNegative", + "type": "NumberField", + "title": "How many service users have had a negative COVID-19 test result?", + "hint": "If a service user has a positive flu result and a negative COVID-19 result, do not include the negative result here
    If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: negative COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a negative COVID-19 test result", + "number.max": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of service users that have had a negative COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + }, + + { + "type": "Para", + "content": "

    Other acute respiratory infections

    " + }, + { + "name": "ServiceUsersOtherTestPositive", + "title": "How many service users have had a positive test result for another type of acute respiratory infection (not flu or COVID-19)?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Service users: positive other ARI test", + "customValidationMessages": { + "number.base": "Enter how many service users have had a positive test result for an acute respiratory infection that is not flu or COVID-19", + "number.max": "The number of service users that have had a positive rest result must be between 0 and 999", + "number.min": "The number of service users that have had a positive rest result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false + } + ], + "next": [ + { + "condition": "Staff", + "path": "/staff-ari-confirmed-covid-flu-other" + }, + { + "path": "/severity-of-illness" + } + ] + }, + + { + "path": "/staff-ari-confirmed-covid-flu-other", + "title": "Staff: number of cases", + "sectionForEndSummaryPages": "InfectionsInYourSetting", + "components": [ + { + "type": "Para", + "content": "

    Enter the number of staff with symptoms in this outbreak.
    Include those who are currently in hospital.
    You do not have to test your staff.

    " + }, + { + "type": "Para", + "content": "

    Total number

    " + }, + { + "name": "StaffSymptoms", + "type": "NumberField", + "title": "How many staff have symptoms of an acute respiratory infection, including chest infections?", + "hint": "Include all tested and untested staff
    If none or you do not know, enter 0", + "options": { + "required": true, + "summaryTitle": "Staff: total number with symptoms", + "customValidationMessages": { + "number.base": "Enter how many staff have symptoms", + "number.max": "The number of staff that have symptoms must be between 0 and 999", + "number.min": "The number of staff that have symptoms must be between 0 and 999" + } + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "name": "StaffTested", + "type": "NumberField", + "title": "How many staff have been tested for any acute respiratory infection?", + "hint": "If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: tested for ARI", + "customValidationMessages": { + "number.base": "Enter how many staff have been tested", + "number.max": "The number of staff that have been tested must be between 0 and 999", + "number.min": "The number of staff that have been tested must be between 0 and 999" + }, + "required": true + } + }, + + { + "type": "Para", + "content": "

    Flu

    " + }, + { + "name": "StaffFluTestPositive", + "title": "How many staff have had a positive flu test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: positive flu test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a positive flu test result", + "number.max": "The number of staff that have had a positive flu test result must be between 0 and 999", + "number.min": "The number of staff that have had a positive flu test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false + }, + { + "name": "StaffFluTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative flu test result?", + "hint": "If staff have both positive and negative flu strain results, do not include the negative result here
    If none or you do not know, enter 0", + "schema": { + "min": 0, + "max": 999 + }, + "options": { + "summaryTitle": "Staff: negative flu test", + "required": true, + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative flu test result", + "number.max": "The number of staff that have had a negative flu test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative flu test result must be between 0 and 999" + } + } + }, + { + "type": "Para", + "content": "

    COVID-19

    " + }, + + { + "name": "StaffCovidTestPositive", + "title": "How many staff have had a positive COVID-19 test result?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: positive COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a positive COVID-19 test result", + "number.max": "The number of staff that have had a positive COVID-19 test result must be between 0 and 999", + "number.min": "The number of staff that have had a positive COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false + }, + { + "name": "StaffCovidTestNegative", + "type": "NumberField", + "title": "How many staff have had a negative COVID-19 test result?", + "hint": "If staff have a positive flu result and a negative COVID-19 result, do not include the negative result here
    If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: negative COVID-19 test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a negative COVID-19 test result", + "number.max": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999", + "number.min": "The number of staff that have had a negative COVID-19 test result must be between 0 and 999" + }, + "required": true + }, + "schema": { + "min": 0, + "max": 999 + } + }, + { + "type": "Para", + "content": "

    Other acute respiratory infections

    " + }, + { + "name": "StaffOtherTestPositive", + "title": "How many staff have had a positive test result for another type of acute respiratory infection (not flu or COVID-19)?", + "hint": "If none or you do not know, enter 0", + "options": { + "summaryTitle": "Staff: positive other ARI test", + "customValidationMessages": { + "number.base": "Enter how many staff have had a positive test result for an acute respiratory infection that is not flu or COVID-19", + "number.max": "The number of staff that have had a positive test result must be between 0 and 999", + "number.min": "The number of staff that have had a positive test result must be between 0 and 999" + }, + "required": true + }, + "type": "NumberField", + "schema": { + "min": 0, + "max": 999 + }, + "nameHasError": false + } + ], + "next": [ + { + "path": "/severity-of-illness" + } + ] + } + ], + "lists": [ + { + "title": "cqc-yes-no", + "name": "CQCYesNo", + "type": "string", + "items": [ + { + "text": "Yes", + "value": "CQCLocationID" + }, + { + "text": "No", + "value": "false" + } + ] + }, + { + "title": "yes-no", + "name": "YesNo", + "type": "string", + "items": [ + { + "text": "Yes", + "value": "true" + }, + { + "text": "No", + "value": "false" + } + ] + }, + { + "title": "yes-no-sure", + "name": "YesNoSure", + "type": "string", + "items": [ + { + "text": "Yes", + "value": "Yes" + }, + { + "text": "No", + "value": "No" + }, + { + "text": "Not sure", + "value": "Not sure" + } + ] + }, + { + "title": "test-kits-used", + "name": "TestKitsUsed", + "type": "string", + "items": [ + { + "text": "Yes", + "value": "TestKitsUsed" + }, + { + "text": "No", + "value": "No" + }, + { + "text": "I do not know", + "value": "I do not know" + } + ] + }, + { + "title": "infection-types", + "name": "InfectionTypes", + "type": "string", + "items": [ + { + "text": "Flu", + "value": "Flu" + }, + { + "text": "COVID-19", + "value": "COVID-19" + }, + { + "text": "Any other acute respiratory infection", + "value": "Any other acute respiratory infection", + "checkpointDisplayValue": "Other acute respiratory infection (not COVID-19 or flu)", + "description": "including viruses such as respiratory syncytial virus (RSV), adenovirus, human metapneumovirus (hMPV), parainfluenza and rhinovirus" + }, + { + "text": "_placeholder_for_or_", + "value": "_placeholder_for_or_" + }, + { + "text": "None, all test results were negative", + "value": "None" + } + ] + }, + { + "title": "ari-infection-types", + "name": "ARIInfectionType", + "type": "string", + "items": [ + { + "text": "Adenovirus", + "value": "Adenovirus" + }, + { + "text": "Human Metapneumovirus (hMPV)", + "value": "Human Metapneumovirus (hMPV)" + }, + { + "text": "Parainfluenza", + "value": "Parainfluenza" + }, + { + "text": "Respiratory Syncytial Virus (RSV)", + "value": "Respiratory Syncytial Virus (RSV)" + }, + { + "text": "Rhinovirus", + "value": "Rhinovirus" + }, + { + "text": "Other acute respiratory infection", + "value": "Other acute respiratory infection" + } + ] + }, + { + "title": "social-care-provider-type", + "name": "MpSRIP", + "type": "string", + "items": [ + { + "text": "Residential care home", + "value": "Residential care home" + }, + { + "text": "Nursing care home", + "value": "Nursing care home" + }, + { + "text": "Residential and nursing care home", + "value": "Residential and nursing care home" + }, + { + "text": "Supported living", + "value": "Supported living or extra care (not high risk)" + }, + { + "text": "Extra care", + "value": "Extra care" + }, + { + "text": "Rehabilitation, reablement or respite", + "value": "Rehabilitation, reablement or respite" + }, + { + "text": "Other adult social care", + "value": "OtherAdultSocialCare" + } + ] + }, + { + "title": "one-or-more", + "name": "OneOrMore", + "type": "string", + "items": [ + { + "text": "1", + "value": "One" + }, + { + "text": "2 or more", + "value": "2 or more" + } + ] + }, + { + "title": "one-or-more-boolean", + "name": "OneOrMoreBoolean", + "type": "string", + "items": [ + { + "text": "1", + "value": "false" + }, + { + "text": "2 or more", + "value": "true" + } + ] + }, + { + "title": "service-or-staff", + "name": "ServiceOrStaff", + "type": "string", + "items": [ + { + "text": "Service user", + "value": "Service user" + }, + { + "text": "Staff", + "value": "Staff" + } + ] + }, + { + "title": "service-or-staff-multiple", + "name": "ServiceOrStaffMultiple", + "type": "string", + "items": [ + { + "text": "Service users", + "value": "Service users" + }, + { + "text": "Staff", + "value": "Staff" + } + ] + }, + { + "title": "ipc-practices", + "name": "IPCPractices", + "type": "string", + "items": [ + { + "text": "more than once a month", + "value": "more than once a month" + }, + { + "text": "every 1 to 6 months", + "value": "every 1 to 6 months" + }, + { + "text": "every 7 to 12 months", + "value": "every 7 to 12 months" + }, + { + "text": "less than every 12 months", + "value": "less than every 12 months" + }, + { + "text": "we do not monitor infection prevention and control practices", + "value": "we do not monitor infection prevention and control practices" + } + ] + }, + { + "title": "case-numbers", + "name": "CaseNumbers", + "type": "string", + "items": [ + { + "text": "0", + "value": "None" + }, + { + "text": "1", + "value": "One" + }, + { + "text": "2 to 3", + "value": "2 to 3" + }, + { + "text": "4 to 5", + "value": "4 to 5" + }, + { + "text": "More than 5", + "value": "More than 5" + }, + { + "text": "I do not know", + "value": "I do not know" + } + ] + }, + { + "title": "issues", + "name": "Issues", + "type": "string", + "items": [ + { + "text": "COVID-19: access to treatments", + "value": "COVID-19 - access to treatments" + }, + { + "text": "COVID-19: LFD test kit supply", + "value": "COVID-19 - LFD test kit supply" + }, + { + "text": "Hand hygiene", + "value": "Hand hygiene" + }, + { + "text": "Keeping symptomatic service users away from others", + "value": "Keeping symptomatic service users away from others" + }, + { + "text": "New admissions or transfer of service users", + "value": "New admissions or transfer of service users" + }, + { + "text": "Staffing", + "value": "Staffing" + }, + { + "text": "Supply of PPE", + "value": "Supply of PPE" + }, + { + "text": "Use of PPE", + "value": "Use of PPE" + }, + { + "text": "Visits", + "value": "Visits" + }, + { + "text": "Waste, cleaning or laundry", + "value": "Waste, cleaning or laundry" + }, + { + "text": "No issues", + "value": "No issues" + } + ] + }, + { + "title": "ffp3-masks", + "name": "FFP3Masks", + "type": "string", + "items": [ + { + "text": "All", + "value": "All" + }, + { + "text": "Some", + "value": "Some" + }, + { + "text": "None", + "value": "None" + }, + { + "text": "I do not know", + "value": "I do not know" + } + ] + }, + { + "title": "additional-staff", + "name": "AdditionalStaff", + "type": "string", + "items": [ + { + "text": "Fewer than 5", + "value": "Fewer than 5" + }, + { + "text": "5 or more", + "value": "5 or more" + } + ] + }, + { + "title": "service-users-types", + "name": "ServiceUsersTypes", + "type": "string", + "items": [ + { + "text": "People with learning difficulties or learning disabilities", + "value": "People with learning difficulties or learning disabilities" + }, + { + "text": "People with physical disabilities or severe medical conditions", + "value": "People with physical disabilities or severe medical conditions" + }, + { + "text": "People with mental health needs", + "value": "People with mental health needs" + }, + { + "text": "People with substance misuse issues", + "value": "People with substance misuse issues" + }, + { + "text": "People living with dementia", + "value": "People living with dementia" + }, + { + "text": "Under 65 years", + "value": "Under 65 years" + }, + { + "text": "65 years or over", + "value": "65 years or over" + } + ] + }, + { + "title": "HPTs", + "name": "HPTs", + "type": "string", + "items": [ + { + "text": "North East", + "value": "North East" + }, + { + "text": "North West", + "value": "North West" + }, + { + "text": "Yorkshire and the Humber", + "value": "Yorkshire and the Humber HPT" + }, + { + "text": "East Midlands", + "value": "East Midlands HPT" + }, + { + "text": "West Midlands", + "value": "West Midlands HPT" + }, + { + "text": "East of England", + "value": "East of England HPT" + }, + { + "text": "London", + "value": "London HPT" + }, + { + "text": "South East", + "value": "South East HPT" + }, + { + "text": "South West", + "value": "South West HPT" + } + ] + }, + { + "title": "flu-severity-specific-area", + "name": "FluSeveritySpecificArea", + "type": "string", + "items": [ + { + "text": "Cases are all within one specific area", + "value": "Cases are all within one specific area" + }, + { + "text": "Cases are across more than one area", + "value": "Cases are across more than one area" + }, + { + "text": "Not sure", + "value": "Not sure" + }, + { + "text": "Not applicable to my setting (for example, not residential)", + "value": "Not applicable to my setting (for example, not residential)" + } + ] + } + ], + "sections": [ + { + "name": "Staffing", + "title": "Staffing" + }, + { + "name": "IPC", + "title": "Infection prevention and control (IPC) and outbreak management in your setting" + }, + { + "name": "ServiceUsersAndStaff", + "title": "Service users and staff" + }, + { + "name": "Vaccinations", + "title": "Vaccinations" + }, + { + "name": "SymptomOnset", + "title": "Symptom onset" + }, + { + "name": "ContactDetails", + "title": "Contact details" + }, + { + "name": "SettingDetails", + "title": "Setting details" + }, + { + "name": "AcuteInfections", + "title": "Acute respiratory infections in your setting" + }, + { + "name": "Covid19InYourSetting", + "title": "COVID-19 in your setting" + }, + { + "name": "OtherInYourSetting", + "title": "Other infections in your setting" + }, + { + "name": "InfectionYouAreReporting", + "title": "Infection you are reporting" + }, + { + "name": "InfectionsInYourSetting", + "title": "Infections in your setting" + } + ], + "conditions": [ + { + "displayName": "HPTRegionActive", + "name": "HPTRegionActive", + "value": { + "name": "HPTRegionActive", + "conditions": [ + { + "field": { + "name": "HPT", + "type": "RadiosField", + "display": "region" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "West Midlands HPT", + "display": "West Midlands" + } + }, + { + "coordinator": "or", + "field": { + "name": "HPT", + "type": "RadiosField", + "display": "region" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "East of England HPT", + "display": "East of England" + } + }, + { + "coordinator": "or", + "field": { + "name": "HPT", + "type": "RadiosField", + "display": "region" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "South West HPT", + "display": "South West" + } + }, + { + "coordinator": "or", + "field": { + "name": "HPT", + "type": "RadiosField", + "display": "region" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Yorkshire and the Humber HPT", + "display": "Yorkshire and the Humber" + } + }, + { + "coordinator": "or", + "field": { + "name": "HPT", + "type": "RadiosField", + "display": "region" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "London HPT", + "display": "London" + } + }, + { + "coordinator": "or", + "field": { + "name": "HPT", + "type": "RadiosField", + "display": "region" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "East Midlands HPT", + "display": "East Midlands" + } + } + ] + } + }, + { + "displayName": "PositiveARI:No", + "name": "PositiveARI:No", + "value": { + "name": "PositiveARI:No", + "conditions": [ + { + "field": { + "name": "PositiveARI", + "type": "RadiosField", + "display": "Do you have any positive test results for an acute respiratory infection?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "TwoOrMoreARI:No", + "name": "TwoOrMoreARI:No", + "value": { + "name": "TwoOrMoreARI:No", + "conditions": [ + { + "field": { + "name": "TwoOrMoreARI", + "type": "RadiosField", + "display": "Are you reporting 2 or more cases of an acute respiratory infection?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "ReportCovid:No", + "name": "ReportCovid:No", + "value": { + "name": "ReportCovid:No", + "conditions": [ + { + "field": { + "name": "TwoOrMoreCovid5days", + "type": "RadiosField", + "display": "Did symptoms in 2 or more cases of COVID-19 start within 5 days of each other?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "No", + "display": "No" + } + } + ] + } + }, + { + "displayName": "SingleCaseOfFluServiceOrStaff:ServiceUser", + "name": "SingleCaseOfFluServiceOrStaff:ServiceUser", + "value": { + "name": "SingleCaseOfFluServiceOrStaff:ServiceUser", + "conditions": [ + { + "field": { + "name": "SingleCaseOfFluServiceOrStaff", + "type": "RadiosField", + "display": "Who has the case of flu?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Service user", + "display": "Service user" + } + } + ] + } + }, + { + "displayName": "AGPs:yes", + "name": "AGPs:yes", + "value": { + "name": "AGPs:yes", + "conditions": [ + { + "field": { + "name": "AGPs", + "type": "RadiosField", + "display": "Does your setting undertake aerosol generating procedures (AGPs)?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "true", + "display": "true" + } + } + ] + } + }, + { + "displayName": "AgencyStaff:No", + "name": "AgencyStaff:No", + "value": { + "name": "AgencyStaff:No", + "conditions": [ + { + "field": { + "name": "AgencyStaff", + "type": "RadiosField", + "display": "Do you use agency staff or share staff with other care settings?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "false", + "display": "false" + } + } + ] + } + }, + { + "displayName": "WithTests_ServiceUsers", + "name": "WithTests_ServiceUsers", + "value": { + "name": "WithTests_ServiceUsers", + "conditions": [ + { + "conditionName": "WithTests", + "conditionDisplayName": "WithTests" + }, + { + "coordinator": "and", + "conditionName": "ServiceUsers", + "conditionDisplayName": "ServiceUsers" + } + ] + } + }, + { + "displayName": "WithTests_Staff", + "name": "WithTests_Staff", + "value": { + "name": "WithTests_Staff", + "conditions": [ + { + "conditionName": "WithTests", + "conditionDisplayName": "WithTests" + }, + { + "coordinator": "and", + "conditionName": "Staff", + "conditionDisplayName": "Staff" + } + ] + } + }, + + { + "displayName": "WithTests_ServiceUsers_Flu", + "name": "WithTests_ServiceUsers_Flu", + "value": { + "name": "WithTests_ServiceUsers_Flu", + "conditions": [ + { + "conditionName": "WithTests_ServiceUsers", + "conditionDisplayName": "WithTests_ServiceUsers" + }, + { + "coordinator": "and", + "conditionName": "Flu", + "conditionDisplayName": "Flu" + } + ] + } + }, + { + "displayName": "WithTests_Staff_Flu", + "name": "WithTests_Staff_Flu", + "value": { + "name": "WithTests_Staff_Flu", + "conditions": [ + { + "conditionName": "WithTests_Staff", + "conditionDisplayName": "WithTests_Staff" + }, + { + "coordinator": "and", + "conditionName": "Flu", + "conditionDisplayName": "Flu" + } + ] + } + }, + { + "displayName": "WithoutTests_ServiceUsers", + "name": "WithoutTests_ServiceUsers", + "value": { + "name": "WithoutTests_ServiceUsers", + "conditions": [ + { + "conditionName": "ServiceUsers", + "conditionDisplayName": "ServiceUsers" + }, + { + "coordinator": "and", + "conditionName": "WithoutTests", + "conditionDisplayName": "WithoutTests" + } + ] + } + }, + { + "displayName": "WithoutTests_Staff", + "name": "WithoutTests_Staff", + "value": { + "name": "WithoutTests_Staff", + "conditions": [ + { + "conditionName": "Staff", + "conditionDisplayName": "Staff" + }, + { + "coordinator": "and", + "conditionName": "WithoutTests", + "conditionDisplayName": "WithoutTests" + } + ] + } + }, + { + "displayName": "WithTests_ServiceUsers_NoPositive", + "name": "WithTests_ServiceUsers_NoPositive", + "value": { + "name": "WithTests_ServiceUsers_NoPositive", + "conditions": [ + { + "conditionName": "WithTests_ServiceUsers", + "conditionDisplayName": "WithTests_ServiceUsers" + }, + { + "coordinator": "and", + "conditionName": "NoARI", + "conditionDisplayName": "NoARI" + } + ] + } + }, + { + "displayName": "WithTests_Staff_NoPositive", + "name": "WithTests_Staff_NoPositive", + "value": { + "name": "WithTests_Staff_NoPositive", + "conditions": [ + { + "conditionName": "WithTests_Staff", + "conditionDisplayName": "WithTests_Staff" + }, + { + "coordinator": "and", + "conditionName": "NoARI", + "conditionDisplayName": "NoARI" + } + ] + } + }, + { + "displayName": "WithTests_ServiceUsers_Other", + "name": "WithTests_ServiceUsers_Other", + "value": { + "name": "WithTests_ServiceUsers_Other", + "conditions": [ + { + "conditionName": "WithTests_ServiceUsers", + "conditionDisplayName": "WithTests_ServiceUsers" + }, + { + "coordinator": "and", + "conditionName": "OtherARI", + "conditionDisplayName": "OtherARI" + } + ] + } + }, + { + "displayName": "WithTests_Staff_Other", + "name": "WithTests_Staff_Other", + "value": { + "name": "WithTests_Staff_Other", + "conditions": [ + { + "conditionName": "WithTests_Staff", + "conditionDisplayName": "WithTests_Staff" + }, + { + "coordinator": "and", + "conditionName": "OtherARI", + "conditionDisplayName": "OtherARI" + } + ] + } + }, + { + "displayName": "WithTests_ServiceUsers_OnlyCovid", + "name": "WithTests_ServiceUsers_OnlyCovid", + "value": { + "name": "WithTests_ServiceUsers_OnlyCovid", + "conditions": [ + { + "conditionName": "WithTests_ServiceUsers", + "conditionDisplayName": "ServiceUsers" + }, + { + "coordinator": "and", + "conditionName": "OnlyCovid", + "conditionDisplayName": "OnlyCovid" + } + ] + } + }, + { + "displayName": "WithTests_Staff_OnlyCovid", + "name": "WithTests_Staff_OnlyCovid", + "value": { + "name": "WithTests_Staff_OnlyCovid", + "conditions": [ + { + "conditionName": "WithTests_Staff", + "conditionDisplayName": "WithTests_Staff" + }, + { + "coordinator": "and", + "conditionName": "OnlyCovid", + "conditionDisplayName": "OnlyCovid" + } + ] + } + }, + { + "name": "WithTests", + "displayName": "WithTests", + "value": "AnyTests=='true'" + }, + { + "name": "WithoutTests", + "displayName": "WithoutTests", + "value": "AnyTests=='false'" + }, + { + "displayName": "Staff", + "name": "Staff", + "value": { + "name": "Staff", + "conditions": [ + { + "field": { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Staff", + "display": "Staff" + } + } + ] + } + }, + { + "displayName": "ServiceUsers", + "name": "ServiceUsers", + "value": { + "name": "ServiceUsers", + "conditions": [ + { + "field": { + "name": "ARIServiceOrStaff", + "type": "CheckboxesField", + "display": "Who are you reporting cases or symptoms of an acute respiratory infection in?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Service users", + "display": "Service users" + } + } + ] + } + }, + { + "displayName": "Covid", + "name": "Covid", + "value": { + "name": "Covid", + "conditions": [ + { + "field": { + "name": "WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infection do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "COVID-19", + "display": "COVID-19" + } + } + ] + } + }, + { + "displayName": "OnlyCovid", + "name": "OnlyCovid", + "value": { + "name": "OnlyCovid", + "conditions": [ + { + "conditionName": "Covid", + "conditionDisplayName": "Covid" + }, + { + "coordinator": "and", + "conditionName": "NotFlu", + "conditionDisplayName": "NotFlu" + }, + { + "coordinator": "and", + "conditionName": "NotOtherARI", + "conditionDisplayName": "NotOtherARI" + } + ] + } + }, + { + "displayName": "Flu", + "name": "Flu", + "value": { + "name": "Flu", + "conditions": [ + { + "field": { + "name": "WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infection do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + } + ] + } + }, + { + "displayName": "NotFlu", + "name": "NotFlu", + "value": { + "name": "NotFlu", + "conditions": [ + { + "field": { + "name": "WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infection do you have a positive test result for?" + }, + "operator": "does not contain", + "value": { + "type": "Value", + "value": "Flu", + "display": "Flu" + } + } + ] + } + }, + { + "displayName": "NoARI", + "name": "NoARI", + "value": { + "name": "NoARI", + "conditions": [ + { + "field": { + "name": "WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infection do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "None", + "display": "None" + } + } + ] + } + }, + { + "displayName": "OtherARI", + "name": "OtherARI", + "value": { + "name": "OtherARI", + "conditions": [ + { + "field": { + "name": "WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infection do you have a positive test result for?" + }, + "operator": "contains", + "value": { + "type": "Value", + "value": "Any other acute respiratory infection", + "display": "Any other acute respiratory infection" + } + } + ] + } + }, + { + "displayName": "NotOtherARI", + "name": "NotOtherARI", + "value": { + "name": "NotOtherARI", + "conditions": [ + { + "field": { + "name": "WhichARI", + "type": "CheckboxesField", + "display": "Which acute respiratory infection do you have a positive test result for?" + }, + "operator": "does not contain", + "value": { + "type": "Value", + "value": "Any other acute respiratory infection", + "display": "Any other acute respiratory infection" + } + } + ] + } + }, + { + "displayName": "WithTests_ServiceUsers_Flu_Covid", + "name": "WithTests_ServiceUsers_Flu_Covid", + "value": { + "name": "WithTests_ServiceUsers_Flu_Covid", + "conditions": [ + { + "conditionName": "WithTests_ServiceUsers_Flu", + "conditionDisplayName": "WithTests_ServiceUsers_Flu" + }, + { + "coordinator": "and", + "conditionName": "Covid", + "conditionDisplayName": "Covid" + } + ] + } + }, + { + "displayName": "WithTests_Staff_Flu_Covid", + "name": "WithTests_Staff_Flu_Covid", + "value": { + "name": "WithTests_Staff_Flu_Covid", + "conditions": [ + { + "conditionName": "WithTests_Staff_Flu", + "conditionDisplayName": "WithTests_Staff_Flu" + }, + { + "coordinator": "and", + "conditionName": "Covid", + "conditionDisplayName": "Covid" + } + ] + } + }, + { + "displayName": "WithTests_ServiceUsers_Flu_Other", + "name": "WithTests_ServiceUsers_Flu_Other", + "value": { + "name": "WithTests_ServiceUsers_Flu_Other", + "conditions": [ + { + "conditionName": "WithTests_ServiceUsers_Flu", + "conditionDisplayName": "WithTests_ServiceUsers_Flu" + }, + { + "coordinator": "and", + "conditionName": "WithTests_ServiceUsers_Other", + "conditionDisplayName": "WithTests_ServiceUsers_Other" + } + ] + } + }, + { + "displayName": "WithTests_Staff_Flu_Other", + "name": "WithTests_Staff_Flu_Other", + "value": { + "name": "WithTests_Staff_Flu_Other", + "conditions": [ + { + "conditionName": "WithTests_Staff_Flu", + "conditionDisplayName": "WithTests_Staff_Flu" + }, + { + "coordinator": "and", + "conditionName": "WithTests_Staff_Other", + "conditionDisplayName": "WithTests_Staff_Other" + } + ] + } + }, + { + "displayName": "WithTests_ServiceUsers_Covid_Other", + "name": "WithTests_ServiceUsers_Covid_Other", + "value": { + "name": "WithTests_ServiceUsers_Covid_Other", + "conditions": [ + { + "conditionName": "WithTests_ServiceUsers_Other", + "conditionDisplayName": "WithTests_ServiceUsers_Other" + }, + { + "coordinator": "and", + "conditionName": "Covid", + "conditionDisplayName": "Covid" + } + ] + } + }, + { + "displayName": "WithTests_Staff_Covid_Other", + "name": "WithTests_Staff_Covid_Other", + "value": { + "name": "WithTests_Staff_Covid_Other", + "conditions": [ + { + "conditionName": "WithTests_Staff_Other", + "conditionDisplayName": "WithTests_Staff_Other" + }, + { + "coordinator": "and", + "conditionName": "Covid", + "conditionDisplayName": "Covid" + } + ] + } + }, + { + "displayName": "WithTests_ServiceUsers_Covid_Flu_Other", + "name": "WithTests_ServiceUsers_Covid_Flu_Other", + "value": { + "name": "WithTests_ServiceUsers_Covid_Flu_Other", + "conditions": [ + { + "conditionName": "WithTests_ServiceUsers_Flu_Covid", + "conditionDisplayName": "WithTests_ServiceUsers_Flu_Covid" + }, + { + "coordinator": "and", + "conditionName": "WithTests_ServiceUsers_Flu_Other", + "conditionDisplayName": "WithTests_ServiceUsers_Flu_Other" + } + ] + } + }, + { + "displayName": "WithTests_Staff_Covid_Flu_Other", + "name": "WithTests_Staff_Covid_Flu_Other", + "value": { + "name": "WithTests_Staff_Covid_Flu_Other", + "conditions": [ + { + "conditionName": "WithTests_Staff_Flu_Covid", + "conditionDisplayName": "WithTests_Staff_Flu_Covid" + }, + { + "coordinator": "and", + "conditionName": "WithTests_Staff_Flu_Other", + "conditionDisplayName": "WithTests_Staff_Flu_Other" + } + ] + } + } + ], + "fees": [], + "outputs": [ + { + "name": "WEBHOOOK", + "title": "CareOBRA SalesForce", + "type": "webhook", + "outputConfiguration": { + "url": "${Webhook.URL}" + } + } + ], + "version": 2, + "skipSummary": false, + "name": "Report an outbreak", + "feedback": { + "feedbackForm": true, + "url": "/feedback" + }, + "phaseBanner": { + "phase": "beta" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    If you used a UKHSA-supplied test kit

    If you used a UKHSA-supplied test kit, you must report your service users' individual test results (opens in new tab) to your local UKHSA health protection team.

    What happens next

    We will send 2 automated emails to {{ MainContactEmailAddress }}.

    An acknowledgement email will give you your reference number and a copy of the information you've provided. The email will tell you if you have a low-risk outbreak, a medium-risk outbreak, a high-priority outbreak, or a single case of flu.

    An advice email will give you information specific to your situation to help you prevent the spread of infection. It explains what to expect from your local UKHSA health protection team or the community infection control team.

    If these emails do not arrive within one hour, or you need urgent advice, telephone your local UKHSA health protection team (opens in a new tab) or community infection control team.

    If your outbreak is high priority on a weekend or bank holiday

    If your acknowledgement or advice email tells you that your outbreak is assessed as high priority on a weekend or a bank holiday, you also need to telephone your local UKHSA health protection team (opens in a new tab). Call during the daytime if possible. If you do not call the health protection team, a member of the health protection team will only call you on the next working day.

    If you need urgent medical advice

    If you need urgent medical advice, you can call NHS 111 or visit 111.nhs.uk (opens in a new tab). For life-threatening emergencies, call 999.

    Give feedback on this service

    This is a new service. Help us improve it and give your feedback (opens in new tab).

    ", + "title": "Report sent", + "referenceTitle": "Your outbreak reference number", + "referenceContent": "Use this number if you need to contact the UKHSA health protection team about your outbreak." + } + } + }, + "jwtKey": "${jwtKey}" +} diff --git a/runner/src/server/forms/close-contact-feedback.json b/runner/src/server/forms/close-contact-feedback.json new file mode 100644 index 0000000000..66e04f3e5b --- /dev/null +++ b/runner/src/server/forms/close-contact-feedback.json @@ -0,0 +1,140 @@ +{ + "metadata": {}, + "startPage": "/feedback", + "fullStartPage": "/close-contact-feedback", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Give feedback on this service", + "path": "/feedback", + "components": [ + { + "name": "czEhuv", + "options": { + "customValidationMessages": { + "any.required": "Select how you feel about this service" + } + }, + "type": "RadiosField", + "title": "Overall, how do you feel about this service?", + "list": "bJAhcr", + "schema": {} + }, + { + "name": "JDcVLN", + "options": { + "customValidationMessages": { + "string.empty": "Enter details about how we could improve this service", + "string.pattern.base": "Enter details about how we could improve this service" + } + }, + "type": "MultilineTextField", + "title": "How could we improve this service?", + "hint": "Do not include any personal or sensitive information.", + "schema": {} + }, + { + "name": "nlsnaO", + "options": {}, + "type": "Html", + "content": "

    If you want a reply (optional)

    " + }, + { + "name": "nXASKT", + "options": {}, + "type": "Html", + "content": "

    If you'd like us to get back to you, please leave your details below.

    ", + "schema": {} + }, + { + "name": "wVLIXA", + "options": { + "required": false, + "optionalText": false + }, + "type": "TextField", + "title": "Your name", + "schema": {} + }, + { + "name": "FjmgiN", + "options": { + "required": false, + "optionalText": false + }, + "type": "EmailAddressField", + "title": "Your email address", + "hint": "We'll only use this to reply to your message", + "schema": {} + }, + { + "name": "ButtonRenameScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [], + "next": [] + } + ], + "lists": [ + { + "title": "Overall, how do you feel about this service?", + "name": "bJAhcr", + "type": "string", + "items": [ + { "text": "Very satisfied", "value": "very-satisfied" }, + { "text": "Satisfied", "value": "satisfied" }, + { + "text": "Neither satisfied nor dissatisfied", + "value": "neither-satisfied-nor-dissatisfied" + }, + { "text": "Dissatisfied", "value": "dissatisfied" }, + { "text": "Very dissatisfied", "value": "very-dissatisfied" } + ] + } + ], + "sections": [], + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "FeedbackForm", + "title": "Close contact FeedbackForm", + "type": "email", + "outputConfiguration": { + "apiKey": "${closeContactFeedbackAPI}", + "emailAddress": "${closeContactFeedbackEmail}", + "notifyTemplateId": "2218d301-9005-472c-8116-cb5e533a8bf1" + } + } + ], + "version": 2, + "skipSummary": true, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "name": "Feedback", + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "phaseBanner": {}, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    Thank you for submitting feedback

    If you gave us your name and email, we will respond within 5 working days.

    Return to the homepage

    ", + "hidePanel": true + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-mers.json b/runner/src/server/forms/close-contact-form-cca-mers.json new file mode 100644 index 0000000000..2aad470a9b --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-mers.json @@ -0,0 +1,4662 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing CCA", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for MERS-CoV.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for MERS-CoV", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for MERS-CoV" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for MERS-CoV?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 14 days", + "value": "the name and contact details of other people they were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "usually live in the same address as you", + "value": "usually live in the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "usually live in the same address as them", + "value": "usually live in the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "${closeContactWebhookURL}", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts listed to ask for more information and to give them advice on what to do next.

    More information on MERS-CoV

    If anyone they know develops symptoms of MERS-CoV, ask them to order a test kit. For urgent medical advice, they can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit the NHS website.

    If they need to contact us

    If they have any concerns or questions they can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-nl1-dev.json b/runner/src/server/forms/close-contact-form-cca-nl1-dev.json new file mode 100644 index 0000000000..03192cc79a --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-nl1-dev.json @@ -0,0 +1,4654 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing CCA", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 14 days", + "value": "the name and contact details of other people they were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl1.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone they know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, they can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit the NHS website.

    If they need to contact us

    If they have any concerns or questions they can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-nl1-test.json b/runner/src/server/forms/close-contact-form-cca-nl1-test.json new file mode 100644 index 0000000000..dadc1393ef --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-nl1-test.json @@ -0,0 +1,3646 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing CCA", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 14 days", + "value": "the name and contact details of other people they were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl1.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone they know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, they can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit the NHS website.

    If they need to contact us

    If they have any concerns or questions they can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-nl4.json b/runner/src/server/forms/close-contact-form-cca-nl4.json new file mode 100644 index 0000000000..f739ae45f5 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-nl4.json @@ -0,0 +1,3646 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing CCA", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 14 days", + "value": "the name and contact details of other people they were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl4.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone they know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, they can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit the NHS website.

    If they need to contact us

    If they have any concerns or questions they can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-nl5.json b/runner/src/server/forms/close-contact-form-cca-nl5.json new file mode 100644 index 0000000000..fcf591f0d1 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-nl5.json @@ -0,0 +1,4674 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing CCA", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "doYouLiveWithOtherPeopleExplanation", + "options": {}, + "type": "Para", + "content": "As you've tested positive for bird (avian) flu, it's important for us to know who you live with, so we can help them receive the right guidance, such as how to get tested and other health advice." + }, + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This only includes people who:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with and may have passed bird (avian) flu on to. This is so we can provide the right guidance to them or someone on their behalf, such as how to get tested and other health advice." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "doYouLiveWithOtherPeopleExplanation", + "options": {}, + "type": "Para", + "content": "As the person you are completing the form for has tested positive for bird (avian) flu, it's important for us to know who they live with, so we can help them receive the right guidance, such as how to get tested and other health advice." + }, + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This only includes people who:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with and may have passed bird (avian) flu on to. This is so we can provide the right guidance to them or someone on their behalf, such as how to get tested and other health advice." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 14 days", + "value": "the name and contact details of other people they were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "usually live in the same address as you", + "value": "usually live in the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "usually live in the same address as them", + "value": "usually live in the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl5.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone they know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, they can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit the NHS website.

    If they need to contact us

    If they have any concerns or questions they can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-nl7.json b/runner/src/server/forms/close-contact-form-cca-nl7.json new file mode 100644 index 0000000000..84a75a73c8 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-nl7.json @@ -0,0 +1,4654 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing CCA", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 14 days", + "value": "the name and contact details of other people they were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl7.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts listed to ask for more information and to give them advice on what to do next.

    More information on bird (avian) flu

    If anyone they know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, they can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit the NHS website.

    If they need to contact us

    If they have any concerns or questions they can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-nl8.json b/runner/src/server/forms/close-contact-form-cca-nl8.json new file mode 100644 index 0000000000..d7f3b9f0c6 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-nl8.json @@ -0,0 +1,4677 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing CCA", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for {{(srsContexts.diseaseInfo[d].name if srsContexts.diseaseInfo[d]) | default('bird (avian) flu', true) }}.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "d", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "exposeToContext": true, + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "RadiosField", + "title": "Disease", + "list": "disease_code_list" + }, + { + "name": "r", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for {{(srsContexts.diseaseInfo[d].name if srsContexts.diseaseInfo[d]) | default('bird (avian) flu', true) }}", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for {{ (srsContexts.diseaseInfo[d].name if srsContexts.diseaseInfo[d]) | default('bird (avian) flu', true) }}", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "doYouLiveWithOtherPeopleExplanation", + "options": {}, + "type": "Para", + "content": "As you've tested positive for {{ (srsContexts.diseaseInfo[d].name if srsContexts.diseaseInfo[d]) | default('bird (avian) flu', true) }}, it's important for us to know who you live with, so we can help them receive the right guidance, such as how to get tested and other health advice." + }, + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This only includes people who:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with and may have passed {{ (srsContexts.diseaseInfo[d].name if srsContexts.diseaseInfo[d]) | default('bird (avian) flu', true) }} on to. This is so we can provide the right guidance to them or someone on their behalf, such as how to get tested and other health advice." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 14 days", + "value": "the name and contact details of other people they were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "Disease Code", + "name": "disease_code_list", + "type": "string", + "items": [ + { "text": "001F00", "value": "001F00" }, + { "text": "001F01", "value": "001F01" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "${SRSNL8OutputUrl}", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone they know develops symptoms of {{ (srsContexts.diseaseInfo[d].name if srsContexts.diseaseInfo[d]) | default('bird (avian) flu', true) }}, ask them to order a test kit. For urgent medical advice, they can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit the NHS website.

    If they need to contact us

    If they have any concerns or questions they can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + }, + "secureFormSubmissionConfig": { + "tenantId": "${SRSNL8CoreAipmTenantId}", + "clientId": "${SRSNL8CoreAipmClientId}", + "clientSecret": "${SRSNL8CoreAipmClientSecret}", + "scopes": ["${SRSNL8CoreAipmScope1}"], + "useAwsWafUserAgentWorkaround": true + } +} diff --git a/runner/src/server/forms/close-contact-form-cca-uat.json b/runner/src/server/forms/close-contact-form-cca-uat.json new file mode 100644 index 0000000000..60079ee8df --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca-uat.json @@ -0,0 +1,4654 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing CCA", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 14 days", + "value": "the name and contact details of other people they were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl3.uat.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts listed to ask for more information and to give them advice on what to do next.

    More information on bird (avian) flu

    If anyone they know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, they can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit the NHS website.

    If they need to contact us

    If they have any concerns or questions they can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-cca.json b/runner/src/server/forms/close-contact-form-cca.json new file mode 100644 index 0000000000..6cba6e7485 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-cca.json @@ -0,0 +1,4654 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing CCA", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Record close contact details for a member of the public", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "This service is for agents to contact members of the public in order to record their close contact details after they have tested positive for bird (avian) flu.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service for both inbound and outbound calls.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You will ask this person about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help completing this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Have you received a positive test result for bird (avian) flu?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you have received a positive test result for bird (avian) flu" + } + }, + "type": "RadiosField", + "title": "Have you received a positive test result for bird (avian) flu?", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Provide at least one contact detail

    " + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person they are completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they over 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one person. They will be asked if they want to add another person after they've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "They can add more than one close contact. They will be asked if they want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    Are they 16 and able to speak for themselves?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If not, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people they live with", + "value": "the name and contact details of people they live with" + }, + { + "text": "the name and contact details of other people they were in close contact with in the last 14 days", + "value": "the name and contact details of other people they were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Yes", "value": "you" }, + { + "text": "They are completing it on behalf of someone who has", + "value": "they" + } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Yes, contact them directly", "value": "Yes" }, + { + "text": "No, contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "${closeContactWebhookURL}", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts listed to ask for more information and to give them advice on what to do next.

    More information on bird (avian) flu

    If anyone they know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, they can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit the NHS website.

    If they need to contact us

    If they have any concerns or questions they can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json new file mode 100644 index 0000000000..39d69e9492 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-dev.json @@ -0,0 +1,4655 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "CaseID" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl1.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl1-test.json b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json new file mode 100644 index 0000000000..fb1171b3e2 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt-nl1-test.json @@ -0,0 +1,3647 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "CaseID" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl1.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on avian flu<

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl4.json b/runner/src/server/forms/close-contact-form-hpt-nl4.json new file mode 100644 index 0000000000..784e8275df --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt-nl4.json @@ -0,0 +1,3647 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "CaseID" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl4.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on avian flu<

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl5.json b/runner/src/server/forms/close-contact-form-hpt-nl5.json new file mode 100644 index 0000000000..c535584f0d --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt-nl5.json @@ -0,0 +1,4675 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "CaseID" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "doYouLiveWithOtherPeopleExplanation", + "options": {}, + "type": "Para", + "content": "As you've tested positive for bird (avian) flu, it's important for us to know who you live with, so we can help them receive the right guidance, such as how to get tested and other health advice." + }, + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This only includes people who:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with and may have passed bird (avian) flu on to. This is so we can provide the right guidance to them or someone on their behalf, such as how to get tested and other health advice." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "doYouLiveWithOtherPeopleExplanation", + "options": {}, + "type": "Para", + "content": "As the person you are completing the form for has tested positive for bird (avian) flu, it's important for us to know who they live with, so we can help them receive the right guidance, such as how to get tested and other health advice." + }, + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This only includes people who:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with and may have passed bird (avian) flu on to. This is so we can provide the right guidance to them or someone on their behalf, such as how to get tested and other health advice." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "usually live in the same address as you", + "value": "usually live in the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "usually live in the same address as them", + "value": "usually live in the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl5.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl7.json b/runner/src/server/forms/close-contact-form-hpt-nl7.json new file mode 100644 index 0000000000..fdcb1e890b --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt-nl7.json @@ -0,0 +1,4655 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "CaseID" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl7.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-hpt-nl8.json b/runner/src/server/forms/close-contact-form-hpt-nl8.json new file mode 100644 index 0000000000..c018d89158 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt-nl8.json @@ -0,0 +1,4669 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "CaseID" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "doYouLiveWithOtherPeopleExplanation", + "options": {}, + "type": "Para", + "content": "As you've tested positive for bird (avian) flu, it's important for us to know who you live with, so we can help them receive the right guidance, such as how to get tested and other health advice." + }, + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This only includes people who:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with and may have passed bird (avian) flu on to. This is so we can provide the right guidance to them or someone on their behalf, such as how to get tested and other health advice." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "usually live in the same address as you", + "value": "usually live in the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "usually live in the same address as them", + "value": "usually live in the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl8.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-hpt-uat.json b/runner/src/server/forms/close-contact-form-hpt-uat.json new file mode 100644 index 0000000000..e936c750d7 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt-uat.json @@ -0,0 +1,4655 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "CaseID" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl3.uat.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on bird (avian) flu

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-hpt.json b/runner/src/server/forms/close-contact-form-hpt.json new file mode 100644 index 0000000000..ba654d18de --- /dev/null +++ b/runner/src/server/forms/close-contact-form-hpt.json @@ -0,0 +1,4655 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + } + ], + "next": [{ "path": "/case-id" }], + "controller": "./pages/start.js" + }, + { + "title": "Enter the case ID of the person who needs contact tracing", + "path": "/case-id", + "components": [ + { + "name": "case_id", + "options": {}, + "type": "TextField", + "title": "Case ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "section": "CaseID" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "${closeContactWebhookURL}", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-mers.json b/runner/src/server/forms/close-contact-form-mers.json new file mode 100644 index 0000000000..2726385047 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-mers.json @@ -0,0 +1,4662 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of MERS-CoV, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "usually live in the same address as you", + "value": "usually live in the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "usually live in the same address as them", + "value": "usually live in the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "${closeContactWebhookURL}", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on MERS-CoV

    If anyone you know develops symptoms of MERS-CoV, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-nl1-dev.json b/runner/src/server/forms/close-contact-form-nl1-dev.json new file mode 100644 index 0000000000..46d2af779a --- /dev/null +++ b/runner/src/server/forms/close-contact-form-nl1-dev.json @@ -0,0 +1,4654 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl1.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-nl1-test.json b/runner/src/server/forms/close-contact-form-nl1-test.json new file mode 100644 index 0000000000..de96b7d2fc --- /dev/null +++ b/runner/src/server/forms/close-contact-form-nl1-test.json @@ -0,0 +1,3598 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl1.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-nl4.json b/runner/src/server/forms/close-contact-form-nl4.json new file mode 100644 index 0000000000..5adaa7b025 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-nl4.json @@ -0,0 +1,3598 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "contact_details_collection", + "options": { + "customValidationMessages": { + "any.required": "Provide a mobile number, email or both" + } + }, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl4.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-nl5.json b/runner/src/server/forms/close-contact-form-nl5.json new file mode 100644 index 0000000000..dac17df6cd --- /dev/null +++ b/runner/src/server/forms/close-contact-form-nl5.json @@ -0,0 +1,4674 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "doYouLiveWithOtherPeopleExplanation", + "options": {}, + "type": "Para", + "content": "As you've tested positive for bird (avian) flu, it's important for us to know who you live with, so we can help them receive the right guidance, such as how to get tested and other health advice." + }, + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This only includes people who:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with and may have passed bird (avian) flu on to. This is so we can provide the right guidance to them or someone on their behalf, such as how to get tested and other health advice." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "doYouLiveWithOtherPeopleExplanation", + "options": {}, + "type": "Para", + "content": "As the person you are completing the form for has tested positive for bird (avian) flu, it's important for us to know who they live with, so we can help them receive the right guidance, such as how to get tested and other health advice." + }, + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This only includes people who:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with and may have passed bird (avian) flu on to. This is so we can provide the right guidance to them or someone on their behalf, such as how to get tested and other health advice." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "usually live in the same address as you", + "value": "usually live in the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "usually live in the same address as them", + "value": "usually live in the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl5.test.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-nl7.json b/runner/src/server/forms/close-contact-form-nl7.json new file mode 100644 index 0000000000..f9616bc931 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-nl7.json @@ -0,0 +1,4654 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl7.dev.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form-nl8.json b/runner/src/server/forms/close-contact-form-nl8.json new file mode 100644 index 0000000000..aa4260e8f0 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-nl8.json @@ -0,0 +1,4639 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of {{ (srsContexts.diseaseInfo[d].name if srsContexts.diseaseInfo[d]) | default('bird (avian) flu', true) }}, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "d", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "exposeToContext": true, + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "RadiosField", + "title": "Disease", + "list": "disease_code_list" + }, + { + "name": "r", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "ContactDetailsCollection", + "title": "Contact Details" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "doYouLiveWithOtherPeopleExplanation", + "options": {}, + "type": "Para", + "content": "As you've tested positive for {{(srsContexts.diseaseInfo[d].name if srsContexts.diseaseInfo[d]) | default('bird (avian) flu', true) }}, it's important for us to know who you live with, so we can help them receive the right guidance, such as how to get tested and other health advice." + }, + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This only includes people who:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with and may have passed {{ (srsContexts.diseaseInfo[d].name if srsContexts.diseaseInfo[d]) | default('bird (avian) flu', true) }} on to. This is so we can provide the right guidance to them or someone on their behalf, such as how to get tested and other health advice." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "doYouLiveWithOtherPeopleExplanation", + "options": {}, + "type": "Para", + "content": "As the person you are completing the form for has tested positive for {{ (srsContexts.diseaseInfo[d].name if srsContexts.diseaseInfo[d]) | default('bird (avian) flu', true) }}, it's important for us to know who they live with, so we can help them receive the right guidance, such as how to get tested and other health advice." + }, + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This only includes people who:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people they live with and may have passed {{ (srsContexts.diseaseInfo[d].name if srsContexts.diseaseInfo[d]) | default('bird (avian) flu', true) }} on to. This is so we can provide the right guidance to them or someone on their behalf, such as how to get tested and other health advice." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "Disease Code", + "name": "disease_code_list", + "type": "string", + "items": [ + { "text": "001F00", "value": "001F00" }, + { "text": "001F01", "value": "001F01" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "usually live in the same address as you", + "value": "usually live in the same address as you" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "usually live in the same address as them", + "value": "usually live in the same address as them" + }, + { + "text": "people who have stayed overnight in the last 7 days", + "value": "people who have stayed overnight in the last 7 days" + }, + { + "text": "you can provide contact details for, or receive communications on behalf of", + "value": "you can provide contact details for, or receive communications on behalf of" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "${SRSNL8OutputUrl}", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on avian flu

    If anyone you know develops symptoms of {{ (srsContexts.diseaseInfo[d].name if srsContexts.diseaseInfo[d]) | default('bird (avian) flu', true) }}, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + }, + "secureFormSubmissionConfig": { + "tenantId": "${SRSNL8CoreAipmTenantId}", + "clientId": "${SRSNL8CoreAipmClientId}", + "clientSecret": "${SRSNL8CoreAipmClientSecret}", + "scopes": ["${SRSNL8CoreAipmScope1}"], + "useAwsWafUserAgentWorkaround": true + } +} diff --git a/runner/src/server/forms/close-contact-form-uat.json b/runner/src/server/forms/close-contact-form-uat.json new file mode 100644 index 0000000000..643661a720 --- /dev/null +++ b/runner/src/server/forms/close-contact-form-uat.json @@ -0,0 +1,4654 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "https://api.nl3.uat.srs.test-and-trace.nhs.uk/v1/forms", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on bird (avian) flu

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/close-contact-form.json b/runner/src/server/forms/close-contact-form.json new file mode 100644 index 0000000000..4996f8d997 --- /dev/null +++ b/runner/src/server/forms/close-contact-form.json @@ -0,0 +1,4654 @@ +{ + "metadata": {}, + "startPage": "/start", + "fullStartPage": "start", + "name": "Contact tracing", + "confirmationSessionTimeout": 2000, + "pages": [ + { + "title": "Tell us about people you've been in close contact with", + "path": "/start", + "components": [ + { + "name": "para1", + "options": {}, + "type": "Para", + "content": "To help us reduce the spread of bird (avian) flu, it's important for us to know who you live with and who you've been in close contact with.", + "schema": {} + }, + { + "name": "para2", + "options": {}, + "type": "Para", + "content": "This is so we can provide the right advice and guidance to those that need it.", + "schema": {} + }, + { + "name": "para3", + "options": {}, + "type": "Para", + "content": "You can use this service on behalf of someone else.", + "schema": {} + }, + { + "name": "ifAKep", + "options": {}, + "type": "Html", + "content": "

    Before you start

    ", + "schema": {} + }, + { + "name": "tKEFcw", + "options": {}, + "type": "Para", + "content": "You'll be asked about:", + "schema": {} + }, + { + "name": "NYuNvb", + "options": {}, + "type": "List", + "title": "Close contacts", + "list": "yRnBmv", + "schema": {} + }, + { + "name": "QlWuFo", + "options": {}, + "type": "Para", + "content": "This form should take about 10 minutes to complete.", + "schema": {} + }, + { + "name": "TqEyQM", + "options": {}, + "type": "Para", + "content": "Any information you provide will be handled in strict confidence and will only be kept and used in line with data protection laws.", + "schema": {} + }, + { + "name": "gfOVOL", + "options": {}, + "type": "Html", + "content": "

    If you need help completing this form

    ", + "schema": {} + }, + { + "name": "jmslVl", + "options": {}, + "type": "Para", + "content": "If you need help to complete this form, contact 111.", + "schema": {} + }, + { + "name": "disease_name", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Disease", + "schema": {} + }, + { + "name": "reference_id", + "options": { + "allowPrePopulation": true, + "allowPrePopulationOverwrite": true, + "classes": "govuk-!-display-none", + "hideTitle": true, + "disableChangingFromSummary": true, + "required": false + }, + "type": "TextField", + "title": "Reference ID", + "schema": {} + } + ], + "next": [{ "path": "/completing-form-for" }], + "controller": "./pages/start.js" + }, + { + "title": "Who are you completing this form for?", + "path": "/completing-form-for", + "components": [ + { + "name": "for", + "options": { + "hideTitle": true, + "exposeToContext": true, + "disableChangingFromSummary": true + }, + "type": "RadiosField", + "title": "Who this form is for", + "list": "ApjoNd" + } + ], + "next": [ + { "path": "/your-personal-details", "condition": "atPVdy" }, + { "path": "/other-persons-details", "condition": "Dpirys" } + ], + "section": "PersonalInformation" + }, + { + "path": "/your-personal-details", + "title": "Your personal details", + "components": [ + { + "name": "VnYxYj", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Your first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Your last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "VnYxYi", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide a mobile number, email or both" + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "path": "/other-persons-details", + "title": "Details of the person I am completing this form on behalf of", + "components": [ + { + "name": "CIzhtp", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Their first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Their last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "VnYxYja", + "options": {}, + "type": "Html", + "content": "

    Date of birth

    " + }, + { + "name": "date_of_birth", + "options": { "hideTitle": true }, + "type": "DatePartsField", + "title": "Your date of birth", + "hint": "For example, 27 3 2005" + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "type": "RadiosField", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/check-your-details" }], + "section": "PersonalInformation" + }, + { + "title": "Check these details are correct before continuing", + "path": "/check-your-details", + "components": [], + "next": [ + { "path": "/do-you-live-with-other-people", "condition": "atPVdy" }, + { "path": "/do-they-live-with-other-people", "condition": "Dpirys" } + ], + "controller": "MiniSummaryPageController" + }, + { + "path": "/do-you-live-with-other-people", + "title": "Do you live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivE", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you live with other people" + } + }, + "type": "YesNoField", + "title": "Do you live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people you live with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleYouLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleYouLiveWith" } + ], + "section": "PeopleYouLiveWith" + }, + { + "path": "/do-they-live-with-other-people", + "title": "Do they live with other people?", + "components": [ + { + "name": "AdEVNK", + "options": {}, + "type": "Para", + "content": "This includes:" + }, + { + "name": "kjpRbq", + "options": {}, + "type": "List", + "title": "This includes:", + "list": "BfWivF", + "values": { "type": "listRef" } + }, + { + "name": "live_with_others", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if they live with other people" + } + }, + "type": "YesNoField", + "title": "Do they live with other people?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people the person you're completing this form for lives with who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { + "path": "/person-live-with-1", + "condition": "IfPeopleTheyLiveWith" + }, + { "path": "/close-contact", "condition": "IfNoPeopleTheyLiveWith" } + ], + "section": "PeopleTheyLiveWith" + }, + { + "path": "/person-live-with-1", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-1" }], + "section": "PersonYouLiveWith1" + }, + { + "path": "/person-live-with-added-1", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-2", + "condition": "AddAnotherPersonYouLiveWithYes1" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo1" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-2", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-2" }], + "section": "PersonYouLiveWith2" + }, + { + "path": "/person-live-with-added-2", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-3", + "condition": "AddAnotherPersonYouLiveWithYes2" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo2" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-3", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-3" }], + "section": "PersonYouLiveWith3" + }, + { + "path": "/person-live-with-added-3", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-4", + "condition": "AddAnotherPersonYouLiveWithYes3" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo3" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-4", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-4" }], + "section": "PersonYouLiveWith4" + }, + { + "path": "/person-live-with-added-4", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-5", + "condition": "AddAnotherPersonYouLiveWithYes4" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo4" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-5", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-5" }], + "section": "PersonYouLiveWith5" + }, + { + "path": "/person-live-with-added-5", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-6", + "condition": "AddAnotherPersonYouLiveWithYes5" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo5" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-6", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-6" }], + "section": "PersonYouLiveWith6" + }, + { + "path": "/person-live-with-added-6", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-7", + "condition": "AddAnotherPersonYouLiveWithYes6" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo6" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-7", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-7" }], + "section": "PersonYouLiveWith7" + }, + { + "path": "/person-live-with-added-7", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-8", + "condition": "AddAnotherPersonYouLiveWithYes7" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo7" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-8", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-8" }], + "section": "PersonYouLiveWith8" + }, + { + "path": "/person-live-with-added-8", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-9", + "condition": "AddAnotherPersonYouLiveWithYes8" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo8" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-9", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/person-live-with-added-9" }], + "section": "PersonYouLiveWith9" + }, + { + "path": "/person-live-with-added-9", + "title": "Person", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Do {{ PersonalInformation.for }} live with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherPersonYouLiveWith9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other people to add", + "schema": {} + } + ], + "next": [ + { + "path": "/person-live-with-10", + "condition": "AddAnotherPersonYouLiveWithYes9" + }, + { + "path": "/close-contact", + "condition": "AddAnotherPersonYouLiveWithNo9" + } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/person-live-with-10", + "title": "Details of a person {{ PersonalInformation.for }} live with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one person. You will be asked if you want to add another person after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "First (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact" }], + "section": "PersonYouLiveWith10" + }, + { + "path": "/close-contact", + "title": "Have {{ PersonalInformation.for }} been in close contact with other people in the last 14 days?", + "components": [ + { + "name": "EiNVay", + "options": {}, + "type": "Para", + "content": "This does not include people {{ PersonalInformation.for }} live with. A close contact is someone {{ PersonalInformation.for }} have been near to and could have passed the virus on to. This includes anyone {{ PersonalInformation.for }} have:" + }, + { + "name": "TCnLHZ", + "options": {}, + "type": "List", + "title": "Close contact list", + "list": "yDwqlv" + }, + { + "name": "been_in_contact", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select 'yes' if you need to provide one or more close contacts" + } + }, + "type": "YesNoField", + "title": "Are there other close contacts from the last 14 days?", + "schema": {} + }, + { + "name": "SUlWLU", + "options": {}, + "type": "Details", + "title": "Why are we asking for this information?", + "content": "We ask this to identify people who may be at risk. We may contact them to offer advice and guidance on how to keep themselves and others safe." + } + ], + "next": [ + { "path": "/close-contact-1", "condition": "IfCloseContacts" }, + { "path": "/summary", "condition": "IfNoCloseContacts" } + ], + "section": "OtherContacts" + }, + { + "path": "/close-contact-1", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-1" }], + "section": "CloseContact1" + }, + { + "path": "/close-contact-added-1", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact1", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-2", + "condition": "AddAnotherCloseContactYes1" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo1" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-2", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-2" }], + "section": "CloseContact2" + }, + { + "path": "/close-contact-added-2", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact2", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-3", + "condition": "AddAnotherCloseContactYes2" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo2" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-3", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-3" }], + "section": "CloseContact3" + }, + { + "path": "/close-contact-added-3", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact3", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-4", + "condition": "AddAnotherCloseContactYes3" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo3" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-4", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-4" }], + "section": "CloseContact4" + }, + { + "path": "/close-contact-added-4", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact4", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-5", + "condition": "AddAnotherCloseContactYes4" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo4" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-5", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-5" }], + "section": "CloseContact5" + }, + { + "path": "/close-contact-added-5", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact5", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-6", + "condition": "AddAnotherCloseContactYes5" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo5" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-6", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-6" }], + "section": "CloseContact6" + }, + { + "path": "/close-contact-added-6", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact6", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-7", + "condition": "AddAnotherCloseContactYes6" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo6" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-7", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-7" }], + "section": "CloseContact7" + }, + { + "path": "/close-contact-added-7", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact7", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-8", + "condition": "AddAnotherCloseContactYes7" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo7" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-8", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-8" }], + "section": "CloseContact8" + }, + { + "path": "/close-contact-added-8", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact8", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-9", + "condition": "AddAnotherCloseContactYes8" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo8" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-9", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/close-contact-added-9" }], + "section": "CloseContact9" + }, + { + "path": "/close-contact-added-9", + "title": "Close contact", + "components": [ + { + "name": "AnotherPersonSubheading", + "options": {}, + "type": "Html", + "content": "

    Have {{ PersonalInformation.for }} been in close contact with anyone else?

    ", + "schema": {} + }, + { + "name": "AnotherCloseContact9", + "options": { "hideTitle": true, "disableChangingFromSummary": true }, + "type": "YesNoField", + "title": "'Yes' if there are other close contacts to add", + "schema": {} + } + ], + "next": [ + { + "path": "/close-contact-10", + "condition": "AddAnotherCloseContactYes9" + }, + { "path": "/summary", "condition": "AddAnotherCloseContactNo9" } + ], + "controller": "RepeatingSectionSummaryPageController" + }, + { + "path": "/close-contact-10", + "title": "Details of the person {{ PersonalInformation.for }}'ve been in close contact with", + "components": [ + { + "name": "iulooA", + "options": {}, + "type": "Para", + "content": "You can add more than one close contact. You will be asked if you want to add another after you've added this one." + }, + { + "name": "CIzhtn", + "options": {}, + "type": "Html", + "content": "

    Full name

    " + }, + { + "name": "first_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid first (given) name" + } + }, + "type": "TextField", + "title": "Close contact first (given) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "last_name", + "options": { + "customValidationMessages": { + "string.pattern.base": "Enter a valid last (family) name" + } + }, + "type": "TextField", + "title": "Close contact last (family) name", + "schema": { + "regex": "(?=.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*[A-Za-zÀ-ÖØ-öø-ÿ]{1}.*)^[\\sA-Za-zÀ-ÖØ-öø-ÿ'\\-,.]*$" + } + }, + { + "name": "mWvTOY", + "options": {}, + "type": "Html", + "content": "

    How should we contact this person to provide them with advice and guidance?

    " + }, + { + "name": "iulooD", + "options": {}, + "type": "Para", + "content": "If the person is under 16 or unable to speak to us themselves, provide the contact details of a parent, carer or guardian." + }, + { + "name": "contact_directly", + "options": { + "hideTitle": true, + "customValidationMessages": { + "any.required": "Select how we should contact this person" + } + }, + "type": "RadiosField", + "title": "How should we contact this person?", + "list": "TQfrjB", + "schema": {} + }, + { + "name": "CIzhto", + "options": {}, + "type": "Html", + "content": "

    Contact details

    " + }, + { + "name": "dieFHl", + "options": {}, + "type": "Html", + "content": "Provide at least one contact detail below." + }, + { + "name": "mobile_number", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.pattern.base": "Enter a mobile number in the correct format" + } + }, + "type": "TelephoneNumberField", + "title": "Mobile number", + "hint": "For example, 07700 900999", + "schema": { + "regex": "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$" + } + }, + { + "name": "landline_number", + "options": { "required": false, "optionalText": false }, + "type": "TelephoneNumberField", + "title": "Landline number", + "hint": "For example, 020 7123 4567", + "schema": { + "regex": "^0([1-6][\\s\\d]{8,12})$" + } + }, + { + "name": "email_address", + "options": { + "required": false, + "optionalText": false, + "customValidationMessages": { + "string.empty": "Enter a valid email address", + "string.pattern.base": "Enter a valid email address" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "hint": "For example, sarah.philips@example.com" + }, + { + "name": "ValidationScript", + "options": {}, + "type": "Html", + "content": "" + } + ], + "next": [{ "path": "/summary" }], + "section": "CloseContact10" + }, + { + "path": "/summary", + "title": "Check all details before submitting the form", + "components": [], + "next": [], + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "Start list", + "name": "yRnBmv", + "type": "string", + "items": [ + { + "text": "the name and contact details of people you live with", + "value": "the name and contact details of people you live with" + }, + { + "text": "the name and contact details of other people you were in close contact with in the last 14 days", + "value": "the name and contact details of other people you were in close contact with in the last 14 days" + } + ] + }, + { + "title": "Who are you completing this form for?", + "name": "ApjoNd", + "type": "string", + "items": [ + { "text": "Myself", "value": "you" }, + { "text": "On behalf of someone else", "value": "they" } + ] + }, + { + "title": "How should we contact this person?", + "name": "TQfrjB", + "type": "string", + "items": [ + { "text": "Contact them directly", "value": "Yes" }, + { + "text": "Contact their parent, carer or legal guardian", + "value": "No" + } + ] + }, + { + "title": "Do you live with other people?", + "name": "BfWivE", + "type": "string", + "items": [ + { + "text": "people who live at the same address as you", + "value": "people who live at the same address as you" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Do they live with other people?", + "name": "BfWivF", + "type": "string", + "items": [ + { + "text": "people who live at the same address as them", + "value": "people who live at the same address as them" + }, + { + "text": "people who have stayed overnight in the last 14 days", + "value": "people who have stayed overnight in the last 14 days" + } + ] + }, + { + "title": "Close contact list", + "name": "yDwqlv", + "type": "string", + "items": [ + { + "text": "been within 1 metre of, face-to-face, for any length of time", + "value": "been within 1 metre of, face-to-face, for any length of time" + }, + { + "text": "spent more than 15 minutes with in the same indoor space", + "value": "spent more than 15 minutes with in the same indoor space" + }, + { + "text": "had direct contact with, such as caring for them", + "value": "had direct contact with, such as caring for them" + }, + { + "text": "travelled with in the same vehicle", + "value": "travelled with in the same vehicle" + } + ] + } + ], + "sections": [ + { + "name": "PersonalInformation", + "title": "Personal information", + "hideTitle": true + }, + { + "name": "PeopleYouLiveWith", + "title": "People you live with", + "hideTitle": true + }, + { + "name": "PeopleTheyLiveWith", + "title": "People they live with", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith1", + "title": "Person 1", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith2", + "title": "Person 2", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith3", + "title": "Person 3", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith4", + "title": "Person 4", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith5", + "title": "Person 5", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith6", + "title": "Person 6", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith7", + "title": "Person 7", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith8", + "title": "Person 8", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith9", + "title": "Person 9", + "hideTitle": true + }, + { + "name": "PersonYouLiveWith10", + "title": "Person 10", + "hideTitle": true + }, + { + "name": "OtherContacts", + "title": "Other close contacts in the last 14 days", + "hideTitle": true + }, + { "name": "CloseContact1", "title": "Close contact 1", "hideTitle": true }, + { "name": "CloseContact2", "title": "Close contact 2", "hideTitle": true }, + { "name": "CloseContact3", "title": "Close contact 3", "hideTitle": true }, + { "name": "CloseContact4", "title": "Close contact 4", "hideTitle": true }, + { "name": "CloseContact5", "title": "Close contact 5", "hideTitle": true }, + { "name": "CloseContact6", "title": "Close contact 6", "hideTitle": true }, + { "name": "CloseContact7", "title": "Close contact 7", "hideTitle": true }, + { "name": "CloseContact8", "title": "Close contact 8", "hideTitle": true }, + { "name": "CloseContact9", "title": "Close contact 9", "hideTitle": true }, + { "name": "CloseContact10", "title": "Close contact 10", "hideTitle": true } + ], + "conditions": [ + { + "displayName": "If myself", + "name": "atPVdy", + "value": { + "name": "If myself", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { "type": "Value", "value": "you", "display": "Myself" } + } + ] + } + }, + { + "displayName": "If someone else", + "name": "Dpirys", + "value": { + "name": "If someone else", + "conditions": [ + { + "field": { + "name": "PersonalInformation.for", + "type": "RadiosField", + "display": "Who this form is for" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "they", + "display": "Someone else" + } + } + ] + } + }, + { + "displayName": "If people you live with", + "name": "IfPeopleYouLiveWith", + "value": { + "name": "If people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people you live with", + "name": "IfNoPeopleYouLiveWith", + "value": { + "name": "If no people you live with", + "conditions": [ + { + "field": { + "name": "PeopleYouLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do you live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If people they live with", + "name": "IfPeopleTheyLiveWith", + "value": { + "name": "If people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no people they live with", + "name": "IfNoPeopleTheyLiveWith", + "value": { + "name": "If no people they live with", + "conditions": [ + { + "field": { + "name": "PeopleTheyLiveWith.live_with_others", + "type": "YesNoField", + "display": "Do they live with other people?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If close contacts", + "name": "IfCloseContacts", + "value": { + "name": "If close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no close contacts", + "name": "IfNoCloseContacts", + "value": { + "name": "If no close contacts", + "conditions": [ + { + "field": { + "name": "OtherContacts.been_in_contact", + "type": "YesNoField", + "display": "Have you been in close contact with other people in the last 14 days?" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherPersonYouLiveWithYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherPersonYouLiveWithNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherPersonYouLiveWith9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes1", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo1", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact1", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes2", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo2", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact2", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes3", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo3", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact3", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes4", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo4", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact4", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes5", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo5", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact5", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes6", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo6", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact6", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes7", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo7", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact7", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes8", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo8", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact8", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + }, + { + "displayName": "If more people needed", + "name": "AddAnotherCloseContactYes9", + "value": { + "name": "If more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "true", "display": "true" } + } + ] + } + }, + { + "displayName": "If no more people needed", + "name": "AddAnotherCloseContactNo9", + "value": { + "name": "If no more people needed", + "conditions": [ + { + "field": { + "name": "AnotherCloseContact9", + "type": "YesNoField", + "display": "'Yes' if there is another person" + }, + "operator": "is", + "value": { "type": "Value", "value": "false", "display": "false" } + } + ] + } + } + ], + "declaration": "

    By submitting this form you're confirming that, to the best of your knowledge, the answers you have provided are correct.

    ", + "fees": [], + "outputs": [ + { + "name": "BsGFLT", + "title": "Execute API", + "type": "webhook", + "outputConfiguration": { + "url": "${closeContactWebhookURL}", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": false, + "url": "/close-contact-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    What happens next

    We may contact the close contacts you listed to ask for more information and to give them advice on what to do next.

    More information on bird (avian) flu

    If anyone you know develops symptoms of bird (avian) flu, ask them to order a test kit. For urgent medical advice, you can call NHS 111 or visit 111.nhs.uk. For life-threatening emergencies, call 999.

    For more advice and information on the virus visit www.nhs.uk/conditions/bird-flu.

    If you need to contact us

    If you have any concerns or questions about this form, you can contact us at surgeresponse@ukhsa.gov.uk.

    ", + "title": "Form submitted", + "referenceTitle": "Your reference number" + } + } + } +} diff --git a/runner/src/server/forms/confirmation-timeout.json b/runner/src/server/forms/confirmation-timeout.json index de88b6aece..e45b592306 100644 --- a/runner/src/server/forms/confirmation-timeout.json +++ b/runner/src/server/forms/confirmation-timeout.json @@ -26,7 +26,7 @@ } ], "lists": [ - { + { "title": "Yes", "name": "YesNo", "type": "string", diff --git a/runner/src/server/forms/feedback.json b/runner/src/server/forms/feedback.json new file mode 100644 index 0000000000..646429c4d1 --- /dev/null +++ b/runner/src/server/forms/feedback.json @@ -0,0 +1,141 @@ +{ + "metadata": {}, + "startPage": "/start", + "name": "Feedback", + "skipSummary": true, + "pages": [ + { + "path": "/start", + "title": "Give feedback on Report an outbreak", + "components": [ + { + "name": "Feedback", + "options": { + "customValidationMessages": { + "any.required": "Select how you would describe Report an outbreak" + } + }, + "type": "CheckboxesField", + "title": "How would you describe Report an outbreak?", + "hint": "Select all that apply", + "list": "FeedbackOptions" + }, + { + "name": "OtherFeedbackTextBox", + "options": { + "customValidationMessages": { + "string.empty": "Enter your feedback about any difficulties or highlights you experienced, and how we could improve the service", + "string.max": "Your feedback about any difficulties or highlights you experienced, and how we could improve the service, must be 2000 characters or less" + } + }, + "type": "MultilineTextField", + "schema": { + "maxlength": 2000 + }, + "title": "Tell us about any difficulties or highlights you experienced, and how we could improve the service.", + "hint": "Do not include any personal information here, for example patient or disease details." + }, + { + "name": "FeedbackPara", + "options": {}, + "type": "Para", + "content": "
    We would like to discuss your experience or test new features with you.

    Provide your email address if we can contact you for research. We will store your email address as explained in our UKHSA privacy notice (opens in a new tab)

    " + }, + { + "name": "FeedbackEmailAddress", + "options": { + "required": false, + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "title": "Email address for a researcher to contact you", + "type": "EmailAddressField" + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/summary", + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "feedback-options", + "name": "FeedbackOptions", + "type": "string", + "items": [ + { + "text": "Useful resource", + "value": "Useful resource" + }, + { + "text": "Easy to understand", + "value": "Easy to understand" + }, + { + "text": "Easy to complete", + "value": "Easy to complete" + }, + { + "text": "Quick to complete", + "value": "Quick to complete" + }, + { + "text": "Some questions were unclear", + "value": "Some questions were unclear" + }, + { + "text": "Not detailed enough", + "value": "Not detailed enough" + }, + { + "text": "Too detailed", + "value": "Too detailed" + }, + { + "text": "Too time consuming", + "value": "Too time consuming" + }, + { + "text": "Other (specify below)", + "value": "Other (specify below)" + } + ] + } + ], + "outputs": [ + { + "name": "FeedbackForm", + "title": "CareOBRA FeedbackForm", + "type": "email", + "outputConfiguration": { + "apiKey": "${notifyApiKey}", + "emailAddress": "${feedbackEmail}", + "notifyTemplateId": "83d1c036-dfeb-4d5b-b4e3-e8125810c663" + } + } + ], + "sections": [], + "conditions": [], + "phaseBanner": { + "phase": "beta" + }, + "feedback": { + "feedbackForm": true, + "url": "/feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    Thank you for completing this survey

    You can now close this page.

    ", + "hidePanel": true + } + } + } +} diff --git a/runner/src/server/forms/kls-enquiries.json b/runner/src/server/forms/kls-enquiries.json new file mode 100644 index 0000000000..14ab5deb14 --- /dev/null +++ b/runner/src/server/forms/kls-enquiries.json @@ -0,0 +1,2718 @@ +{ + "metadata": {}, + "returnTo": true, + "startPage": "/start", + "confirmationSessionTimeout": 2000, + "fullStartPage": "https://gov.uk/guidance/ukhsa-knowledge-and-library-services", + "authentication": true, + "toggle": true, + "serviceName": "UKHSA Knowledge and Library Services (KLS)", + "analytics": { + "gtmId1": "GTM-WLKKLMQB" + }, + "webhookHmacSharedKey": "${KLSkey}", + "fileUploadHmacSharedKey": "${KLSFileUploadKey}", + "magicLinkConfig": "kls-magic-link", + "name": "UKHSA Knowledge and Library Services (KLS)", + "pages": [ + { + "title": "Contact the Knowledge and Library Services team", + "path": "/start", + "unauthenticated": true, + "components": [ + { + "name": "mainContent", + "options": {}, + "type": "Para", + "content": "

    You can use this form to submit an enquiry to Knowledge and Library Services (KLS).

    Staff employed by the following organisations are eligible to access KLS:

    • UK Health Security Agency
    • Office for Health Improvement and Disparities
    • NHS England Public Health teams
    • Local Authority Public Health teams

    If you do not belong to one of these organisations select 'Other' for information about how to contact KLS.

    Before you start

    You will need to verify your email address to access this enquiry form.

    You will be asked a series of questions based on the type of enquiry you are submitting.

    !WarningYou must submit each page of the form within 40 minutes, or it will time out.

    Literature search

    To request a literature search, you will need to provide:

    • a focused question
    • relevant population or setting, exposure, and outcomes
    • publication date range for your results (for example, last 5 years)
    • geographic scope for your results (for example, UK only)
    • your requested completion date
    • information about you including your name, job title, and email address

    Systematic review

    To request support with a systematic review, you will need to provide the same information as for a literature search. Additionally, you can add a protocol if you have written one.

    Evidence briefing

    To request an evidence briefing, you will need to provide the same information as for a literature search. Additionally, you need to specify inclusion and exclusion criteria.

    Current awareness alerts

    To sign up for current awareness alerts, you will need to:

    • use tick boxes to select the alerts you want to subscribe to
    • provide information about you including your name, job title, and email address

    Other enquiries

    Use the general enquiry option for anything else, including article requests.

    " + } + ], + "next": [ + { + "path": "/which-organisation-do-you-work-for" + } + ], + "controller": "./pages/start.js" + }, + { + "path": "/which-organisation-do-you-work-for", + "unauthenticated": true, + "title": "Which organisation do you work for?", + "components": [ + { + "name": "ZpmVWP", + "options": { + "customValidationMessages": { + "any.required": "Select the organisation you work for", + "any.only": "Select the organisation you work for", + "string.empty": "Select the organisation you work for" + } + }, + "type": "RadiosField", + "title": "Organisation", + "hint": "Staff employed by the following organisations are eligible to access KLS: UK Health Security Agency, Office for Health Improvement and Disparities, NHS England Public Health teams, Local Authority Public Health teams. If you do not belong to one of these organisations select ‘Other’ for information about how to contact KLS.", + "list": "uIwkHV", + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/please-contact-us-via-email", + "condition": "BOkxIN" + }, + { + "path": "/magic-link-redirect", + "condition": "dhBTmP" + } + ] + }, + { + "path": "/please-contact-us-via-email", + "unauthenticated": true, + "title": "Please contact us via email", + "components": [ + { + "name": "ryhwUr", + "options": {}, + "type": "Html", + "content": "

    You are not eligible to use this service, however you can still contact the KLS team via the following email libraries@kls.ukhsa.gov.uk

    " + } + ], + "next": [] + }, + { + "path": "/magic-link-redirect", + "unauthenticated": true, + "controller": "MagicLinkRedirectController", + "next": [ + { + "path": "/which-organisation-do-you-work-for-validated" + } + ] + }, + { + "path": "/about-you", + "title": "About you", + "components": [ + { + "name": "xnYXNM", + "options": {}, + "type": "Para", + "content": "Please complete as many fields as you can so that the KLS team will be able to contact you about your enquiry.", + "schema": {} + }, + { + "name": "WWpyux", + "options": { + "autocomplete": "name" + }, + "type": "TextField", + "title": "Full name", + "schema": {} + }, + { + "name": "RpctHr", + "options": { + "required": true, + "autocomplete": "organization-title", + "customValidationMessages": { + "any.required": "Enter job title", + "any.only": "Enter job title", + "string.empty": "Enter job title" + } + }, + "type": "TextField", + "title": "Job title", + "schema": {} + }, + { + "name": "afZPpL", + "options": { + "customValidationMessages": { + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "schema": {} + }, + { + "name": "ZjyQtC", + "options": { + "required": false, + "autocomplete": "section-copy email", + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "If you would like someone else to be included in emails about this enquiry, enter their email address below ", + "schema": {} + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/type-of-enquiry", + "section": "typeOfEnquiry", + "title": "Type of enquiry", + "disableBackLink": true, + "components": [ + { + "name": "iAFhFY", + "options": {}, + "type": "Details", + "title": "Click here to learn about the types of enquiry that the KLS team support", + "content": "
    Literature search
    A detailed, comprehensive and systematic search of the literature from a variety of quality sources. Literature searches take between 1 and 2 weeks to complete.
    Systematic review
    The provision of complex literature searches to help in the production of a systematic review, with associated guidance on the stages of conducting a review. The time taken to deliver the search and advice will be dependent on the type of review.
    Evidence briefing
    Outlines the main messages taken from evidence that has been identified and selected using systematic methods and strict inclusion criteria. It usually takes at least 3 weeks to produce an Evidence Briefing and they are subject to certain eligibility criteria.
    Current awareness alerts
    Support to access a range of current awareness products to be kept regularly up to date with the latest research in your field of work.
    General enquiry
    Select this option for support with any other queries.
    ", + "schema": {} + }, + { + "name": "tUKBgj", + "options": { + "customValidationMessages": { + "any.required": "Select the option that best matches your enquiry", + "any.only": "Select the option that best matches your enquiry", + "string.empty": "Select the option that best matches your enquiry" + }, + "disableChangingFromSummary": false, + "exposeToContext": false + }, + "type": "RadiosField", + "title": "Which option best matches your enquiry?", + "list": "eKfmVf", + "values": { + "type": "listRef" + }, + "schema": {} + } + ], + "next": [ + { + "path": "/type-of-enquiry-summary" + } + ] + }, + { + "path": "/type-of-enquiry-summary", + "section": "typeOfEnquiry", + "controller": "MiniSummaryPageController", + "title": "Confirm your enquiry type", + "options": { + "subtitle": "You will not be able to change your answer later once confirmed." + }, + "next": [ + { + "path": "/current-awareness", + "condition": "OchNDo" + }, + { + "path": "/how-can-we-help", + "condition": "mZdZMC" + }, + { + "path": "/evidence-briefing-information", + "condition": "eiTtgM" + }, + { + "path": "/about-your-enquiry", + "condition": "XvwdpX" + } + ] + }, + { + "path": "/additional-information", + "title": "Additional information", + "components": [ + { + "name": "YIrnKT", + "options": { + "required": false + }, + "type": "MultilineTextField", + "title": "If there is any more information that you think will help the team in dealing with your enquiry, please enter it below", + "schema": {} + }, + { + "name": "KefoiX", + "options": {}, + "type": "TextField", + "hint": "We will use this title as the subject line if we need to contact you by email", + "title": "Enquiry title", + "schema": {} + }, + { + "name": "bYWcrH", + "options": { + "multiple": true, + "required": false, + "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel,.msg" + }, + "type": "FileUploadField", + "title": "If you need to upload a file to help us deal with your enquiry, do so here.", + "hint": "You can upload up to 10 files but the combined size must not exceed 4.95 megabytes. To remove uploaded files, click 'Choose Files' again, select nothing and close the window." + } + ], + "next": [ + { + "path": "/about-you" + }, + { + "path": "/about-you-GXSFdb", + "condition": "EgJCgx" + }, + { + "path": "/about-you-dHykmu", + "condition": "IbKdRK" + } + ] + }, + { + "path": "/current-awareness", + "title": "About your current awareness alerts query", + "disableBackLink": true, + "components": [ + { + "name": "CovnkG", + "options": {}, + "type": "InsetText", + "content": "Sign up to comprehensive alerts that bring together the latest research from peer-reviewed publications about important public health priorities. Select the topics you want to sign up for below." + }, + { + "name": "Nuedpc", + "options": { + "customValidationMessages": { + "any.required": "Select the alerts you want to subscribe to", + "any.only": "Select the alerts you want to subscribe to", + "string.empty": "Select the alerts you want to subscribe to" + } + }, + "type": "CheckboxesField", + "title": "Which alerts do you want to subscribe to?", + "list": "gTPicc" + }, + { + "name": "QiohsW", + "options": { + "required": false + }, + "type": "MultilineTextField", + "title": "If you selected 'Other', describe the topic on which you wish to be alerted", + "hint": "Any new alert request will be considered on a case-by-case basis. A member of the KLS team will be in touch to discuss the best option to meet your requirements." + } + ], + "next": [ + { + "path": "/about-you" + }, + { + "path": "/about-you-GXSFdb", + "condition": "EgJCgx" + }, + { + "path": "/about-you-dHykmu", + "condition": "IbKdRK" + } + ] + }, + { + "path": "/current-awareness-LAPH", + "title": "About your current awareness alerts query", + "disableBackLink": true, + "components": [ + { + "name": "voCgKn", + "options": {}, + "type": "InsetText", + "content": "Sign up to email alerts that bring together the latest research from peer-reviewed publications." + }, + { + "name": "ecNdpc", + "options": { + "customValidationMessages": { + "any.required": "Select the alerts you want to subscribe to", + "any.only": "Select the alerts you want to subscribe to", + "string.empty": "Select the alerts you want to subscribe to" + } + }, + "type": "CheckboxesField", + "title": "Which alerts do you want to subscribe to?", + "list": "hbylXH" + } + ], + "next": [ + { + "path": "/about-you" + }, + { + "path": "/about-you-GXSFdb", + "condition": "EgJCgx" + }, + { + "path": "/about-you-dHykmu", + "condition": "IbKdRK" + } + ] + }, + { + "path": "/about-your-enquiry", + "title": "About your enquiry", + "disableBackLink": true, + "components": [ + { + "name": "yYKOmJ", + "options": {}, + "type": "Para", + "content": "Please share as much information as possible to help the KLS team deal with your enquiry", + "schema": {} + }, + { + "name": "LuoKqU", + "options": { + "customValidationMessages": { + "any.required": "Provide your focused question", + "any.only": "Provide your focused question", + "string.empty": "Provide your focused question" + } + }, + "type": "MultilineTextField", + "title": "What is your focused question?", + "hint": "A focused question enables the KLS team to provide you with a manageable number of relevant results. To focus your question, think about the population/problem, exposure, setting and outcomes. We can help you to refine your question.", + "schema": {} + }, + { + "name": "bhBuDQ", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter relevant concepts", + "any.only": "Enter relevant concepts", + "string.empty": "Enter relevant concepts" + } + }, + "type": "MultilineTextField", + "title": "Explain relevant concepts, including any keywords", + "schema": {}, + "hint": "Consider the questions: Who? What? Where? Why? When? How?" + }, + { + "name": "uBPfQS", + "options": { + "required": false + }, + "type": "MultilineTextField", + "title": "Give an example of a paper that should be included in the output", + "schema": {}, + "hint": "Enter a relevant publication or key author you would expect to be included" + }, + { + "name": "VbhnXH", + "options": {}, + "type": "RadiosField", + "title": "Publication date range", + "list": "OGYVAD", + "hint": "Indicate the time period from which evidence should be sourced", + "values": { + "type": "listRef" + }, + "schema": {} + }, + { + "name": "MArgxL", + "options": { + "required": false + }, + "type": "TextField", + "title": "If you selected ‘Other’, indicate the specific desired publication date range", + "schema": {} + }, + { + "name": "etcpxo", + "options": { + "customValidationMessages": { + "any.required": "Select the geographic scope of the research" + } + }, + "type": "RadiosField", + "title": "Do you want UK only or international research?", + "hint": "Indicate the geographic scope for which the evidence should be sourced", + "list": "zDtSLo", + "schema": {} + }, + { + "name": "thfczP", + "options": { + "required": false + }, + "type": "TextField", + "title": "If you selected ‘Other’, provide further details of the desired geographical scope", + "schema": {} + }, + { + "name": "RCdnGJ", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select whether we can share the results with other public health professionals", + "any.only": "Select whether we can share the results with other public health professionals", + "string.empty": "Select whether we can share the results with other public health professionals" + } + }, + "type": "RadiosField", + "title": "Can we share the search results with other public health professionals?", + "hint": "Sometimes we get similar search requests from different public health professionals. If you agree, we can share the results of our search with other professionals. This avoids duplication of our work.", + "list": "IQAoJu" + }, + { + "name": "oNDRUt", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select whether we can share your contact details with other public health professionals", + "any.only": "Select whether we can share your contact details with other public health professionals", + "string.empty": "Select whether we can share your contact details with other public health professionals" + } + }, + "type": "RadiosField", + "title": "Can we share your contact details with other public health professionals interested in your work?", + "hint": "We only share your email address if you agree, and only when it could help other public health professionals working on similar topics. We will only share your email address with people who are eligible to use KLS services.", + "list": "IQAoJu" + } + ], + "next": [ + { + "path": "/systematic-review-questions", + "condition": "dCqSKz" + }, + { + "path": "/literature-search-questions", + "condition": "fNTYcH" + }, + { + "path": "/evidence-briefing-questions", + "condition": "eiTtgM" + } + ] + }, + { + "path": "/literature-search-questions", + "title": "Literature search questions", + "components": [ + { + "name": "BPoIas", + "options": {}, + "type": "Details", + "title": "What is a literature search?", + "content": "

    A literature search is a detailed, comprehensive and systematic search of the literature (published and unpublished) from a variety of quality sources about specific topics or conditions.

    \n\n

    The search yields a set of results on the topic in question – usually a list of journal articles and reports, each containing a summary (known as an abstract). Reading the results enables you to get an overview of what is known about the topic. This is often referred to as the ‘evidence base’ and is an integral part of the methodology for any UKHSA project.

    ", + "schema": {} + }, + { + "name": "PrVeBZ", + "options": {}, + "type": "RadiosField", + "title": "Literature search type", + "list": "aGVTgz", + "schema": {} + }, + { + "name": "WNVZzn", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select the primary use for the results", + "any.only": "Select the primary use for the results", + "string.empty": "Select the primary use for the results" + } + }, + "type": "SelectField", + "title": "What will you primarily use the results of this search for?", + "list": "PxpncX", + "schema": {}, + "hint": "If more than one option applies, please select the most relevant", + "values": { + "type": "listRef" + } + }, + { + "name": "nPBXNt", + "options": { + "required": false + }, + "type": "MultilineTextField", + "title": "If you selected ‘Other’, provide further details on the primary use of the search results", + "schema": {} + }, + { + "name": "qwQlWP", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select your preferred results formats", + "any.only": "Select your preferred results formats", + "string.empty": "Select your preferred results formats" + } + }, + "type": "CheckboxesField", + "title": "How would you like to receive your results?", + "list": "LgzPJy", + "schema": {} + }, + { + "name": "hQXIgL", + "options": { + "bold": true, + "required": true, + "maxDaysInPast": "0", + "customValidationMessages": { + "nonNumeric": "The date must be in the format of DD/MM/YYYY", + "date.min": "Desired completion date must be in the future" + } + }, + "type": "DatePartsField", + "title": "Desired completion date", + "hint": "The completion time will be at least 1-2 working weeks depending on your chosen search type. Please provide a future date.", + "schema": {} + } + ], + "next": [ + { + "path": "/additional-information" + } + ] + }, + { + "path": "/systematic-review-questions", + "title": "Systematic review questions", + "components": [ + { + "name": "tXsvXF", + "options": {}, + "type": "Details", + "title": "Types of systematic review", + "content": "

    The main types of evidence synthesis products are systematic reviews, rapid reviews, mapping reviews, scoping reviews and umbrella reviews. They all follow explicit, systematic methods to collate and synthesise findings of studies that address a clear question.

    \n \n

    Systematic reviews are the gold standard in evidence synthesis. However, they are time-consuming and resource-intensive. Rapid systematic methodologies use modified systematic review methods to accelerate the review process, and can be applied to all the types of reviews listed here.

    \n \n

    Systematic review
    \nSystematic reviews should have a clearly defined question and eligibility criteria. Study data is summarised using narrative text and tables; or sometimes as a meta-analysis, a statistical technique that provides an overall summary measure of effect.

    \n \n

    Scoping review
    \nScoping reviews are concerned with the ‘state of the evidence’. They are appropriate when exploring a topic to inform future research or policy development by clarifying key concepts or methods, using a broad review question. They usually have in-depth data extraction. Synthesis can include qualitative analysis, narrative synthesis, maps or a table.

    \n \n

    Mapping review
    \nMapping reviews are used to map out and categorise the literature. They are appropriate when information is required on where the evidence is, usually through a visual summary known as an evidence gap map, to inform research priorities. Study data is coded for use in the evidence gap map. Data extraction tends to be more limited than for a scoping review.

    \n \n

    Umbrella review
    \nAn umbrella review or “review of reviews” identifies multiple systematic reviews on related research questions and analyses their results across agreed outcomes. Umbrella reviews normally address a broad scope. Meta-analysis may be performed in order to provide an overall summary measure of effect.

    ", + "schema": {} + }, + { + "name": "lIUPMw", + "options": { + "customValidationMessages": { + "any.required": "Select the type of review you are doing", + "any.only": "Select the type of review you are doing", + "string.empty": "Select the type of review you are doing" + } + }, + "type": "SelectField", + "title": "What type of review are you doing?", + "list": "cZlqVP", + "hint": "", + "values": { + "type": "listRef" + }, + "schema": {} + }, + { + "name": "IdTRkf", + "options": { + "required": false + }, + "type": "MultilineTextField", + "title": "If you selected ‘Other’, provide further details on the type of review you are doing", + "schema": {} + }, + { + "name": "byRMpb", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select the reason for conducting this review", + "any.only": "Select the reason for conducting this review", + "string.empty": "Select the reason for conducting this review" + } + }, + "type": "SelectField", + "title": "What is the reason for conducting this review?", + "list": "tOKEMX", + "values": { + "type": "listRef" + }, + "schema": {} + }, + { + "name": "mBSuvI", + "options": { + "required": false + }, + "type": "MultilineTextField", + "title": "If you selected ‘Other’, explain the reason for conducting this review", + "schema": {} + }, + { + "name": "diftRU", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select where you intend to publish your review", + "any.only": "Select where you intend to publish your review", + "string.empty": "Select where you intend to publish your review" + } + }, + "type": "SelectField", + "title": "Where do you intend to publish your review?", + "list": "Zappeq", + "values": { + "type": "listRef" + }, + "schema": {} + }, + { + "name": "NeCvDK", + "options": { + "required": false + }, + "type": "MultilineTextField", + "title": "If you selected ‘Other’, provide further details on where you intend to publish your review", + "schema": {} + }, + { + "name": "dmgVPY", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select whether you have written a protocol", + "any.only": "Select whether you have written a protocol", + "string.empty": "Select whether you have written a protocol" + } + }, + "type": "RadiosField", + "title": "Have you written a protocol?", + "list": "IQAoJu", + "hint": "A protocol describes the planned methods for your review. It should be written before your review begins and followed when you conduct the review. Guidance on writing a protocol is available in PRISMA for systematic review protocols or contact us for help." + }, + { + "name": "hQXIgL", + "options": { + "required": true, + "maxDaysInPast": "0", + "customValidationMessages": { + "nonNumeric": "The date must be in the format of DD/MM/YYYY", + "date.min": "Desired completion date must be in the future" + } + }, + "type": "DatePartsField", + "title": "Desired completion date", + "hint": "Timeframe for completion will vary based on the review's complexity, and will be discussed on a case-by-case basis. Please provide a future date.", + "schema": {} + } + ], + "next": [ + { + "path": "/additional-information" + } + ] + }, + { + "path": "/evidence-briefing-questions", + "title": "Evidence briefing questions", + "components": [ + { + "name": "XxwIGa", + "options": {}, + "type": "InsetText", + "content": "In order for the KLS team to undertake the evidence briefing you must have a focused question which is feasible for KLS to answer in the form of a briefing within the standard timeframe of 3 weeks. Your request must also meet one of the criteria below in order to be eligible.", + "schema": {} + }, + { + "name": "ZKqQHi", + "options": { + "customValidationMessages": { + "any.required": "Select evidence briefing eligibility", + "any.only": "Select evidence briefing eligibility", + "string.empty": "Select evidence briefing eligibility" + } + }, + "type": "RadiosField", + "title": "Evidence briefing eligibility", + "list": "VPAkeH", + "schema": {} + }, + { + "name": "rcGqoK", + "options": { + "required": false + }, + "type": "TextField", + "title": "If you selected ‘Other’, explain why this evidence briefing request is essential for your work", + "schema": {} + }, + { + "name": "TNXqpA", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter your inclusion criteria for population", + "any.only": "Enter your inclusion criteria for population", + "string.empty": "Enter your inclusion criteria for population" + } + }, + "type": "MultilineTextField", + "title": "What are your inclusion criteria for population?", + "schema": {} + }, + { + "name": "KXXNzf", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter your inclusion criteria for intervention or exposure", + "any.only": "Enter your inclusion criteria for intervention or exposure", + "string.empty": "Enter your inclusion criteria for intervention or exposure" + } + }, + "type": "MultilineTextField", + "title": "What are your inclusion criteria for intervention or exposure?", + "schema": {} + }, + { + "name": "GjCFLx", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter your inclusion criteria for setting/location", + "any.only": "Enter your inclusion criteria for setting/location", + "string.empty": "Enter your inclusion criteria for setting/location" + } + }, + "type": "MultilineTextField", + "title": "What are your inclusion criteria for setting/location?", + "schema": {} + }, + { + "name": "MgKlsM", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter your inclusion criteria for outcomes", + "any.only": "Enter your inclusion criteria for outcomes", + "string.empty": "Enter your inclusion criteria for outcomes" + } + }, + "type": "MultilineTextField", + "title": "What are your inclusion criteria for outcomes?", + "schema": {} + }, + { + "name": "iYKvoN", + "options": { + "required": false + }, + "type": "MultilineTextField", + "title": "Should anything be excluded?", + "schema": {} + }, + { + "name": "hQXIgL", + "options": { + "required": true, + "maxDaysInPast": "0", + "customValidationMessages": { + "nonNumeric": "The date must be in the format of DD/MM/YYYY", + "date.min": "Desired completion date must be in the future" + } + }, + "type": "DatePartsField", + "title": "Desired completion date", + "hint": "Standard time to produce an Evidence Briefing is at least 3 working weeks. Please provide a future date.", + "schema": {} + } + ], + "next": [ + { + "path": "/additional-information" + } + ] + }, + { + "path": "/how-can-we-help", + "title": "How can we help?", + "disableBackLink": true, + "components": [ + { + "name": "CKlngs", + "options": { + "customValidationMessages": { + "any.required": "Provide information on how the KLS team can help you", + "any.only": "Provide information on how the KLS team can help you", + "string.empty": "Provide information on how the KLS team can help you" + } + }, + "type": "MultilineTextField", + "title": "Please share as much information as possible to help the KLS team deal with your enquiry", + "schema": {} + }, + { + "name": "OYYaPc", + "options": {}, + "type": "TextField", + "hint": "We will use this title as the subject line if we need to contact you by email", + "title": "Enquiry title", + "schema": {} + }, + { + "name": "FIvjTg", + "type": "FileUploadField", + "title": "If you need to upload a file to help us deal with your enquiry, do so here.", + "hint": "You can upload up to 10 files but the combined size must not exceed 4.95 megabytes. To remove uploaded files, click 'Choose Files' again, select nothing and close the window.", + "schema": {}, + "options": { + "multiple": true, + "required": false, + "accept": "image/png,image/jpeg,image/gif,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,text/csv,application/xml,text/xml,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/rtf,text/rtf,application/msword,application/x-research-info-systems,text/plain,application/vnd.ms-outlook,application/vnd.openxmlformats-officedocument.presentationml.presentation,.ris,application/vnd.ms-excel,.msg" + } + } + ], + "next": [ + { + "path": "/about-you" + }, + { + "path": "/about-you-GXSFdb", + "condition": "EgJCgx" + }, + { + "path": "/about-you-dHykmu", + "condition": "IbKdRK" + } + ] + }, + { + "path": "/which-organisation-do-you-work-for-validated", + "title": "Which organisation do you work for?", + "section": "whichOrganisationValidated", + "disableBackLink": true, + "components": [ + { + "name": "wyvXTj", + "options": { + "customValidationMessages": { + "any.required": "Select the organisation you work for", + "any.only": "Select the organisation you work for", + "string.empty": "Select the organisation you work for" + }, + "disableChangingFromSummary": false + }, + "type": "RadiosField", + "title": "Which organisation do you work for?", + "hint": "", + "list": "ULmwPo", + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/which-organisation-do-you-work-for-summary" + } + ] + }, + { + "path": "/which-organisation-do-you-work-for-summary", + "section": "whichOrganisationValidated", + "controller": "MiniSummaryPageController", + "title": "Confirm your organisation", + "options": { + "subtitle": "You will not be able to change your answer later once confirmed." + }, + "next": [ + { + "path": "/type-of-enquiry" + }, + { + "path": "/how-can-we-help", + "condition": "CRsuUh" + }, + { + "path": "/type-of-enquiry-LAPH", + "condition": "IbKdRK" + } + ] + }, + { + "path": "/type-of-enquiry-LAPH", + "section": "typeOfEnquiryLAPH", + "title": "Type of enquiry", + "disableBackLink": true, + "components": [ + { + "name": "RlHHWZ", + "options": {}, + "type": "Details", + "title": "Click here to learn about the types of enquiry that the KLS team support", + "content": "
    Literature search
    A detailed, comprehensive and systematic search of the literature from a variety of quality sources. Literature searches take between 1 and 2 weeks to complete.
    Current awareness alerts
    Support to access a range of current awareness products to be kept regularly up to date with the latest research in your field of work.
    General enquiry
    Select this option for support with any other queries.
    ", + "schema": {} + }, + { + "name": "VeQCVM", + "options": { + "disableChangingFromSummary": false, + "customValidationMessages": { + "any.required": "Select the option that best matches your enquiry", + "any.only": "Select the option that best matches your enquiry", + "string.empty": "Select the option that best matches your enquiry" + } + }, + "type": "RadiosField", + "list": "AUYYCW", + "title": "Which option best matches your enquiry?", + "values": { + "type": "listRef" + }, + "schema": {} + } + ], + "next": [ + { + "path": "/type-of-enquiry-LAPH-summary" + } + ] + }, + { + "path": "/type-of-enquiry-LAPH-summary", + "section": "typeOfEnquiryLAPH", + "controller": "MiniSummaryPageController", + "title": "Confirm your enquiry type", + "options": { + "subtitle": "You will not be able to change your answer later once confirmed." + }, + "next": [ + { + "path": "/how-can-we-help", + "condition": "lsHzLP" + }, + { + "path": "/current-awareness-LAPH", + "condition": "MQeZyE" + }, + { + "path": "/about-your-enquiry-RPOaaR" + } + ] + }, + { + "path": "/about-your-enquiry-RPOaaR", + "title": "About your enquiry", + "disableBackLink": true, + "components": [ + { + "name": "fXvmRh", + "options": {}, + "type": "Para", + "content": "Please share as much information as possible to help the KLS team deal with your enquiry", + "schema": {} + }, + { + "name": "qvJHYP", + "options": { + "customValidationMessages": { + "any.required": "Provide your focused question", + "any.only": "Provide your focused question", + "string.empty": "Provide your focused question" + } + }, + "type": "MultilineTextField", + "title": "What is your focused question?", + "hint": "A focused question enables the KLS team to provide you with a manageable number of relevant results. To focus your question, think about the population/problem, exposure, setting and outcomes. We can help you to refine your question.", + "schema": {} + }, + { + "name": "WYbcGt", + "options": {}, + "type": "MultilineTextField", + "title": "Explain relevant concepts, including any keywords", + "hint": "Consider the questions: Who? What? Where? Why? When? How?", + "schema": {} + }, + { + "name": "Ercwfj", + "options": { + "required": false + }, + "type": "MultilineTextField", + "title": "Give an example of a paper that should be included in the output", + "hint": "Enter a relevant publication or key author you would expect to be included", + "schema": {} + }, + { + "name": "scPrBh", + "options": {}, + "type": "RadiosField", + "hint": "Indicate the time period from which evidence should be sourced", + "title": "Publication date range", + "list": "OGYVAD", + "schema": {} + }, + { + "name": "zVphJY", + "options": { + "required": false + }, + "type": "TextField", + "title": "If you selected ‘Other’, indicate the specific desired publication date range", + "schema": {} + }, + { + "name": "UjGoiE", + "options": { + "customValidationMessages": { + "any.required": "Select the geographic scope of the research" + } + }, + "type": "RadiosField", + "hint": "Indicate the geographic scope for which the evidence should be sourced", + "title": "Do you want UK only or international research?", + "list": "zDtSLo", + "schema": {} + }, + { + "name": "thfczP", + "options": { + "required": false + }, + "type": "TextField", + "title": "If you selected ‘Other’, provide further details of the desired geographical scope", + "schema": {} + }, + { + "name": "GxImes", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select whether we can share the results with other public health professionals", + "any.only": "Select whether we can share the results with other public health professionals", + "string.empty": "Select whether we can share the results with other public health professionals" + } + }, + "type": "RadiosField", + "title": "Can we share the search results with other public health professionals?", + "hint": "Sometimes we get similar search requests from different public health professionals. If you agree, we can share the results of our search with other professionals. This avoids duplication of our work.", + "list": "IQAoJu" + }, + { + "name": "DdsEuf", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select whether we can share your contact details with other public health professionals", + "any.only": "Select whether we can share your contact details with other public health professionals", + "string.empty": "Select whether we can share your contact details with other public health professionals" + } + }, + "type": "RadiosField", + "title": "Can we share your contact details with other public health professionals interested in your work?", + "hint": "We only share your email address if you agree, and only when it could help other public health professionals working on similar topics. We will only share your email address with people who are eligible to use KLS services.", + "list": "IQAoJu" + } + ], + "next": [ + { + "path": "/literature-search-questions" + } + ] + }, + { + "path": "/evidence-briefing-information", + "title": "Evidence briefing information", + "disableBackLink": true, + "components": [ + { + "name": "jojhvk", + "options": {}, + "type": "Para", + "content": "Before proceeding with your request, please review the following criteria and expectations to ensure your request is suitable for an evidence briefing.", + "schema": {} + }, + { + "name": "ADkeed", + "options": {}, + "type": "Para", + "content": "To be eligible for an evidence briefing, the purpose of your request must fall into at least one of the following categories:", + "schema": {} + }, + { + "name": "sLYgMF", + "options": {}, + "type": "List", + "title": "EB purpose", + "list": "GNXXmY", + "schema": {} + }, + { + "name": "BrQyCZ", + "options": {}, + "type": "Para", + "content": "In addition, your request should have a clear, focused question that is feasible to address within the standard 3-week timeframe.", + "schema": {} + }, + { + "name": "lhetvO", + "options": {}, + "type": "Para", + "content": "Please note that if your request is too broad, outside the eligibility criteria, or time-sensitive, it may be more appropriate to conduct a literature search instead. ", + "schema": {} + } + ], + "next": [ + { + "path": "/about-your-enquiry" + } + ] + }, + { + "path": "/about-you-GXSFdb", + "title": "About you", + "components": [ + { + "name": "nwLDox", + "options": {}, + "type": "Para", + "content": "Please complete as many fields as you can so that the KLS team will be able to contact you about your enquiry." + }, + { + "name": "dagbPo", + "options": { + "required": true, + "autocomplete": "name" + }, + "type": "TextField", + "title": "Full name" + }, + { + "name": "uksayz", + "options": { + "required": true, + "autocomplete": "organization-title" + }, + "type": "TextField", + "title": "Job title" + }, + { + "name": "nmlFzr", + "options": { + "customValidationMessages": { + "any.required": "Select the UKHSA group to which you belong", + "any.only": "Select the UKHSA group to which you belong", + "string.empty": "Select the UKHSA group to which you belong" + } + }, + "type": "SelectField", + "title": "UKHSA Group", + "list": "sYQQmN", + "values": { + "type": "listRef" + } + }, + { + "name": "oUmeSI", + "options": { + "customValidationMessages": { + "any.required": "Select the UKHSA directorate to which you belong", + "any.only": "Select the UKHSA directorate to which you belong", + "string.empty": "Select the UKHSA directorate to which you belong" + } + }, + "type": "SelectField", + "title": "UKHSA Directorate", + "list": "pTYDbB", + "schema": { + "required": true + } + }, + { + "name": "EkwRix", + "options": { + "customValidationMessages": { + "any.required": "Select location", + "any.only": "Select location", + "string.empty": "Select location" + } + }, + "type": "SelectField", + "title": "Location", + "list": "wrhJNi", + "values": { + "type": "listRef" + } + }, + { + "name": "SPKrpE", + "options": { + "customValidationMessages": { + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "Email address" + }, + { + "name": "rqzRcc", + "options": { + "required": false, + "autocomplete": "section-copy email", + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "If you would like someone else to be included in emails about this enquiry, enter their email address below " + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/about-you-dHykmu", + "title": "About you", + "components": [ + { + "name": "nBYObd", + "options": { + "autocomplete": "name" + }, + "type": "TextField", + "title": "Full name" + }, + { + "name": "CNbJUr", + "options": { + "autocomplete": "organization-title" + }, + "type": "TextField", + "title": "Job title" + }, + { + "name": "PIjqqt", + "options": { + "customValidationMessages": { + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "Email address" + }, + { + "name": "YeDsms", + "options": { + "required": false, + "autocomplete": "section-copy email", + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "If you would like someone else to be included in emails about this enquiry, enter their email address below " + }, + { + "name": "oCVslj", + "options": { + "customValidationMessages": { + "any.required": "Select location", + "any.only": "Select location", + "string.empty": "Select location" + } + }, + "type": "SelectField", + "title": "Location", + "list": "iTBoCy", + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/summary", + "controller": "CustomSummaryPageController", + "title": "Check the details before submitting", + "components": [], + "customButtonText": "Confirm and submit", + "options": { + "hiddenFields": ["ZpmVWP"], + "disabledChangeFields": ["tUKBgj", "VeQCVM", "wyvXTj"] + }, + "next": [] + } + ], + "lists": [ + { + "title": "Organisation", + "name": "uIwkHV", + "type": "string", + "items": [ + { + "text": "UK Health Security Agency", + "value": "UKHSA" + }, + { + "text": "Office for Health Improvement and Disparities", + "value": "Office for Health Improvement and Disparities (OHID)" + }, + { + "text": "NHS England Public Health", + "value": "NHS England Public Health" + }, + { + "text": "Local Authority Public Health", + "value": "Local Authority Public Health" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Preferred contact method", + "name": "slVZMW", + "type": "string", + "items": [ + { + "text": "email", + "value": "email" + }, + { + "text": "telephone", + "value": "telephone" + } + ] + }, + { + "title": "UKHSA Group", + "name": "sYQQmN", + "type": "string", + "items": [ + { + "description": "", + "text": "Chief Scientific Officer (CSO)", + "value": "Chief Scientific Officer (CSO)" + }, + { + "description": "", + "text": "Chief Medical Advisor (CMA)", + "value": "Chief Medical Advisor (CMA)" + }, + { + "description": "", + "text": "Chief Data Officer (CDO)", + "value": "Chief Data Officer (CDO)" + }, + { + "description": "", + "text": "Chief Operating Officer (COO)", + "value": "Chief Operating Officer (COO)" + } + ] + }, + { + "title": "UKHSA Directorate", + "name": "pTYDbB", + "type": "string", + "items": [ + { + "description": "", + "text": "CSO: Public Health Microbiology", + "value": "CSO: Public Health Microbiology" + }, + { + "description": "", + "text": "CSO: Radiation, Chemicals, Climate and Environmental Hazards", + "value": "CSO: Radiation, Chemicals, Climate and Environmental Hazards" + }, + { + "value": "CSO: Scientific Facilities and Performance", + "description": "", + "text": "CSO: Scientific Facilities and Performance" + }, + { + "value": "CSO: Science Strategy and Evidence", + "description": "", + "text": "CSO: Science Strategy and Evidence" + }, + { + "value": "CMA: Emergency Preparedness, Resilience and Response (EPRR) and Response Operations", + "description": "", + "text": "CMA: Emergency Preparedness, Resilience and Response (EPRR) and Response Operations" + }, + { + "description": "", + "text": "CMA: Epidemic and Emerging Infections", + "value": "CMA: Epidemic and Emerging Infections" + }, + { + "value": "CMA: Global Health Protection", + "description": "", + "text": "CMA: Global Health Protection" + }, + { + "description": "", + "value": "CMA: Health Equity and Clinical Governance", + "text": "CMA: Health Equity and Clinical Governance" + }, + { + "value": "CMA: Health Protection in Regions", + "description": "", + "text": "CMA: Health Protection in Regions" + }, + { + "value": "CMA: Public Health Programmes", + "description": "", + "text": "CMA: Public Health Programmes" + }, + { + "value": "CDO: Analysis and Intelligence Assessment", + "description": "", + "text": "CDO: Analysis and Intelligence Assessment" + }, + { + "value": "CDO: Data Protection, Security and Technology Services", + "description": "", + "text": "CDO: Data Protection, Security and Technology Services" + }, + { + "value": "CDO: Digital and Data", + "description": "", + "text": "CDO: Digital and Data" + }, + { + "value": "CDO: Digital and Technology Transition", + "description": "", + "text": "CDO: Digital and Technology Transition" + }, + { + "value": "COO: Commercial, Vaccines and Countermeasures Delivery", + "description": "", + "text": "COO: Commercial, Vaccines and Countermeasures Delivery" + }, + { + "value": "COO: Communications", + "description": "", + "text": "COO: Communications" + }, + { + "value": "COO: Finance, Performance, Risk and Assurance", + "description": "", + "text": "COO: Finance, Performance, Risk and Assurance" + }, + { + "value": "COO: People and Workplace", + "description": "", + "text": "COO: People and Workplace" + }, + { + "value": "COO: Public Inquiry", + "description": "", + "text": "COO: Public Inquiry" + }, + { + "value": "COO: Strategy and Policy", + "description": "", + "text": "COO: Strategy and Policy" + }, + { + "value": "COO: Transformation", + "text": "COO: Transformation" + } + ] + }, + { + "title": "Location", + "name": "wrhJNi", + "type": "string", + "items": [ + { + "description": "", + "text": "Chilton", + "value": "Chilton" + }, + { + "description": "", + "text": "Colindale", + "value": "Colindale" + }, + { + "description": "", + "text": "Porton", + "value": "Porton" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Enquiry type", + "name": "eKfmVf", + "type": "string", + "items": [ + { + "text": "Literature search", + "value": "Literature Searches" + }, + { + "text": "Systematic review", + "value": "Systematic Reviews" + }, + { + "text": "Evidence briefing", + "value": "Evidence Briefings" + }, + { + "text": "Current awareness alerts", + "value": "Current Awareness" + }, + { + "text": "General enquiry", + "value": "General", + "description": "Select this for all other enquiries" + } + ] + }, + { + "title": "Preferred results format", + "name": "LgzPJy", + "type": "string", + "items": [ + { + "description": "", + "text": "EndNote (reference management software)", + "value": "EndNote (reference management software)" + }, + { + "description": "", + "text": "Word", + "value": "Word" + }, + { + "description": "", + "text": "Excel", + "value": "Excel" + }, + { + "description": "", + "text": "RIS (file format to import into reference management software)", + "value": "RIS (file format to import into reference management software)" + }, + { + "description": "", + "text": "Regular email alert", + "value": "Regular email alert" + } + ] + }, + { + "title": "Priority or strategic objective", + "name": "RMetHZ", + "type": "string", + "items": [ + { + "description": "", + "text": "Achieve more equitable outcomes", + "value": "Achieve more equitable outcomes" + }, + { + "description": "", + "text": "Covid-19 response", + "value": "Covid-19 response" + }, + { + "description": "", + "text": "Drive international efforts to strengthen global surveillance and systems", + "value": "Drive international efforts to strengthen global surveillance and systems" + }, + { + "description": "", + "text": "Drive the development of countermeasures", + "value": "Drive the development of countermeasures" + }, + { + "description": "", + "text": "Eliminate Hepatitis C as a public health threat", + "value": "Eliminate Hepatitis C as a public health threat" + }, + { + "description": "", + "text": "Enhance the resilience and scalability of national and local public health systems", + "value": "Enhance the resilience and scalability of national and local public health systems" + }, + { + "description": "", + "text": "Ensure robust response capacity and capability to respond to Chemical, Biological, Radiological and Nuclear (CBRN) incidents", + "value": "Ensure robust response capacity and capability to respond to Chemical, Biological, Radiological and Nuclear (CBRN) incidents" + }, + { + "description": "", + "text": "Reduce the health harm from air pollution", + "value": "Reduce the health harm from air pollution" + }, + { + "description": "", + "text": "Reduce the impact of Antimicrobial Resistance (AMR)", + "value": "Reduce the impact of Antimicrobial Resistance (AMR)" + }, + { + "description": "", + "text": "Reduce vaccine preventable diseases", + "value": "Reduce vaccine preventable diseases" + }, + { + "description": "", + "text": "Strengthen preparedness across UKHSA for all hazards to health", + "value": "Strengthen preparedness across UKHSA for all hazards to health" + }, + { + "description": "", + "text": "Strengthen surveillance of health hazards", + "value": "Strengthen surveillance of health hazards" + }, + { + "description": "", + "text": "Support communities and services to adapt to and respond to climate and environmental change health", + "value": "Support communities and services to adapt to and respond to climate and environmental change health" + }, + { + "description": "If you select this item, please enter details below.", + "text": "OHID priority or objective", + "value": "OHID priority or objective - enter details" + }, + { + "text": "NHSE Public Health priority or objective", + "value": "NHSE Public Health priority or objective", + "description": "If you select this item, please enter details below" + } + ] + }, + { + "title": "Lit search type", + "name": "aGVTgz", + "type": "string", + "items": [ + { + "description": "It usually takes the KLS team at least 1 working week to complete this work.", + "text": "A list of relevant literature search results in either chronological or author order.", + "value": "Search option 1: a list of the relevant results of a literature search, in chronological or author order. Usually takes at least 1 working week." + }, + { + "description": "It usually takes the KLS team at least 2 working weeks to complete this request.", + "text": "A list of the relevant literature search results, organised or annotated by theme or study type.", + "value": "Search option 2: a list of relevant results of a literature search, organised or annotated, by theme or study type. Usually takes at least 2 working weeks." + } + ] + }, + { + "title": "Literature search results purpose", + "name": "PxpncX", + "type": "string", + "items": [ + { + "description": "", + "text": "Collaborative project", + "value": "Collaborative project" + }, + { + "description": "", + "text": "Evidence summary", + "value": "Evidence summary" + }, + { + "description": "", + "text": "Guidelines", + "value": "Guidelines" + }, + { + "description": "", + "text": "Incident support", + "value": "Incident support" + }, + { + "description": "", + "text": "Keeping up to date", + "value": "Keeping up to date" + }, + { + "text": "Other", + "value": "Other" + }, + { + "description": "", + "text": "Policy and strategy development", + "value": "Policy and strategy development" + }, + { + "description": "", + "text": "Report writing", + "value": "Report writing" + }, + { + "description": "", + "text": "Research and development", + "value": "Research and development" + }, + { + "description": "", + "text": "Service development", + "value": "Service development" + } + ] + }, + { + "title": "Type of systematic review", + "name": "cZlqVP", + "type": "string", + "items": [ + { + "description": "", + "text": "Systematic review", + "value": "Systematic review" + }, + { + "description": "", + "text": "Rapid review", + "value": "Rapid review" + }, + { + "description": "", + "text": "Scoping review", + "value": "Scoping review" + }, + { + "description": "", + "text": "Mapping review", + "value": "Mapping review" + }, + { + "text": "Umbrella review", + "value": "Umbrella review" + }, + { + "description": "", + "text": "Unsure/to be confirmed", + "value": "Unsure/to be confirmed" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Yes, No, Unsure", + "name": "wYJotW", + "type": "string", + "items": [ + { + "text": "Yes", + "value": "Yes" + }, + { + "text": "No", + "value": "No" + }, + { + "text": "Unsure", + "value": "Unsure" + } + ] + }, + { + "title": "Publication location", + "name": "Zappeq", + "type": "string", + "items": [ + { + "text": "Peer reviewed journal", + "value": "Peer reviewed journal" + }, + { + "description": "", + "text": "GOV.UK", + "value": "GOV.UK" + }, + { + "description": "", + "text": "Internal only", + "value": "Internal only" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Language", + "name": "rZyXKL", + "type": "string", + "items": [ + { + "text": "English language only", + "value": "English language only" + }, + { + "text": "English and other", + "value": "English and other" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Type of information requested", + "name": "bROvBS", + "type": "string", + "items": [ + { + "description": "", + "text": "Direction/Guidance", + "value": "Direction/Guidance" + }, + { + "description": "", + "text": "Secondary Evidence", + "value": "Secondary Evidence" + }, + { + "description": "", + "text": "Primary Research", + "value": "Primary Research" + }, + { + "description": "", + "text": "Ongoing Trials and Research", + "value": "Ongoing Trials and Research" + }, + { + "description": "", + "text": "Implementation Support", + "value": "Implementation Support" + }, + { + "text": "Information for the Public", + "value": "Information for the Public" + } + ] + }, + { + "title": "Affiliation", + "name": "ULmwPo", + "type": "string", + "items": [ + { + "text": "UK Health Security Agency", + "value": "UKHSA" + }, + { + "text": "Office for Health Improvement and Disparities", + "value": "Office for Health Improvement and Disparities (OHID)" + }, + { + "text": "NHS England Public Health", + "value": "NHS England Public Health" + }, + { + "text": "Local Authority Public Health", + "value": "Local Authority Public Health" + } + ] + }, + { + "title": "Reason for conducting review", + "name": "tOKEMX", + "type": "string", + "items": [ + { + "text": "Evidence gap", + "description": "", + "value": "Evidence gap" + }, + { + "description": "", + "text": "Updating previous evidence", + "value": "Updating previous evidence" + }, + { + "description": "", + "text": "Personal interest", + "value": "Personal interest" + }, + { + "description": "", + "text": "UKHSA priority topic", + "value": "UKHSA priority topic" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Publication date range", + "name": "OGYVAD", + "type": "string", + "items": [ + { + "text": "last 3 years", + "value": "3 years" + }, + { + "text": "last 5 years", + "value": "5 years" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Evidence briefing criteria", + "name": "VPAkeH", + "type": "string", + "items": [ + { + "description": "", + "text": "Strategy, policy or guideline development", + "value": "Strategy, policy or guideline development" + }, + { + "description": "", + "text": "Immediate action to improve or implement services", + "value": "Immediate action to improve or implement services" + }, + { + "description": "", + "text": "To contribute to an organisational priority or strategic objective", + "value": "To contribute to an organisational priority or strategic objective" + }, + { + "description": "", + "text": "Incident response", + "value": "Incident response" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Enquiry type LAPH", + "name": "AUYYCW", + "type": "string", + "items": [ + { + "text": "Literature search", + "value": "Literature Searches" + }, + { + "text": "Current awareness alerts", + "value": "Current Awareness" + }, + { + "text": "General enquiry", + "value": "General", + "description": "Select this for all other enquiries" + } + ] + }, + { + "title": "EB purpose list", + "name": "GNXXmY", + "type": "string", + "items": [ + { + "text": "Strategy, policy, or guideline development", + "value": "Strategy, policy, or guideline development" + }, + { + "text": "Immediate action to improve or implement services", + "value": "Immediate action to improve or implement services" + }, + { + "text": "Contribution to an organisational priority or strategic objective", + "value": "Contribution to an organisational priority or strategic objective" + }, + { + "text": "An incident response", + "value": "An incident response" + } + ] + }, + { + "title": "Location: LAPH", + "name": "iTBoCy", + "type": "string", + "items": [ + { + "description": "", + "text": "North East", + "value": "North East" + }, + { + "description": "", + "text": "North West", + "value": "North West" + }, + { + "text": "Yorkshire & Humber", + "value": "Yorkshire & Humber" + }, + { + "text": "East Midlands", + "value": "East Midlands" + }, + { + "text": "West Midlands", + "value": "West Midlands" + }, + { + "description": "", + "text": "East of England", + "value": "East of England" + }, + { + "description": "", + "text": "London", + "value": "London" + }, + { + "description": "", + "text": "South East", + "value": "South East" + }, + { + "description": "", + "text": "South West", + "value": "South West" + } + ] + }, + { + "title": "Yes", + "name": "IQAoJu", + "type": "string", + "items": [ + { + "text": "Yes", + "value": "Yes" + }, + { + "text": "No", + "value": "No" + } + ] + }, + { + "title": "Geographic scope", + "name": "zDtSLo", + "type": "string", + "items": [ + { + "text": "UK only", + "value": "UK only" + }, + { + "text": "International", + "value": "International" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Current awareness alerts options", + "name": "gTPicc", + "type": "string", + "items": [ + { + "text": "Adverse Weather and Health", + "value": "Adverse Weather and Health" + }, + { + "text": "Antimicrobial Resistance", + "value": "Antimicrobial Resistance" + }, + { + "text": "Global Public Health Security", + "value": "Global Public Health Security" + }, + { + "text": "Healthy Ageing", + "value": "Healthy Ageing" + }, + { + "text": "Infection", + "value": "Infection" + }, + { + "text": "Long-COVID", + "value": "Long-COVID" + }, + { + "text": "Mental Health", + "value": "Mental Health" + }, + { + "text": "Musculoskeletal Health", + "value": "Musculoskeletal Health" + }, + { + "text": "Nutrition, Diet & Obesity", + "value": "Nutrition, Diet & Obesity" + }, + { + "text": "Vector Borne Disease", + "value": "Vector Borne Disease" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Current awareness LAPH alerts options", + "name": "hbylXH", + "type": "string", + "items": [ + { + "text": "Adverse Weather and Health", + "value": "Adverse Weather and Health" + }, + { + "text": "Antimicrobial Resistance", + "value": "Antimicrobial Resistance" + }, + { + "text": "Global Public Health Security", + "value": "Global Public Health Security" + }, + { + "text": "Healthy Ageing", + "value": "Healthy Ageing" + }, + { + "text": "Infection", + "value": "Infection" + }, + { + "text": "Long-COVID", + "value": "Long-COVID" + }, + { + "text": "Mental Health", + "value": "Mental Health" + }, + { + "text": "Musculoskeletal Health", + "value": "Musculoskeletal Health" + }, + { + "text": "Nutrition, Diet & Obesity", + "value": "Nutrition, Diet & Obesity" + }, + { + "text": "Vector Borne Disease", + "value": "Vector Borne Disease" + } + ] + } + ], + "sections": [ + { + "name": "whichOrganisationValidated", + "title": "whichOrganisationValidated", + "hideTitle": true + }, + { + "name": "typeOfEnquiry", + "title": "Type of enquiry", + "hideTitle": true + }, + { + "name": "typeOfEnquiryLAPH", + "title": "Type of enquiry", + "hideTitle": true + } + ], + "conditions": [ + { + "displayName": "Other", + "name": "BOkxIN", + "value": { + "name": "Other", + "conditions": [ + { + "field": { + "name": "ZpmVWP", + "type": "RadiosField", + "display": "Organisation" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Other", + "display": "Other" + } + } + ] + } + }, + { + "displayName": "Not other", + "name": "dhBTmP", + "value": { + "name": "Not other", + "conditions": [ + { + "field": { + "name": "ZpmVWP", + "type": "RadiosField", + "display": "Organisation" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "Other", + "display": "Other" + } + } + ] + } + }, + { + "displayName": "General route", + "name": "mZdZMC", + "value": { + "name": "General route", + "conditions": [ + { + "field": { + "name": "typeOfEnquiry.tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "General", + "display": "General" + } + } + ] + } + }, + { + "displayName": "Current awareness route", + "name": "OchNDo", + "value": { + "name": "Current awareness route", + "conditions": [ + { + "field": { + "name": "typeOfEnquiry.tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Current Awareness", + "display": "Current awareness alerts" + } + } + ] + } + }, + { + "displayName": "Literature search", + "name": "fNTYcH", + "value": { + "name": "Literature search", + "conditions": [ + { + "field": { + "name": "typeOfEnquiry.tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Literature Searches", + "display": "Literature search" + } + } + ] + } + }, + { + "displayName": "Evidence briefing", + "name": "eiTtgM", + "value": { + "name": "Evidence briefing", + "conditions": [ + { + "field": { + "name": "typeOfEnquiry.tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Evidence Briefings", + "display": "Evidence briefing" + } + } + ] + } + }, + { + "displayName": "Systematic review", + "name": "dCqSKz", + "value": { + "name": "Systematic review", + "conditions": [ + { + "field": { + "name": "typeOfEnquiry.tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Systematic Reviews", + "display": "Systematic review" + } + } + ] + } + }, + { + "displayName": "Not general or current awareness", + "name": "DsFDDA", + "value": { + "name": "Not general or current awareness", + "conditions": [ + { + "field": { + "name": "typeOfEnquiry.tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "General", + "display": "General" + } + }, + { + "coordinator": "or", + "field": { + "name": "typeOfEnquiry.tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your query?" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "Current Awareness", + "display": "Current awareness alerts" + } + } + ] + } + }, + { + "displayName": "LAPH user", + "name": "IbKdRK", + "value": { + "name": "LAPH user", + "conditions": [ + { + "field": { + "name": "whichOrganisationValidated.wyvXTj", + "type": "RadiosField", + "display": "Which organisation do you work for?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Local Authority Public Health", + "display": "LAPH" + } + } + ] + } + }, + { + "displayName": "Other user", + "name": "CRsuUh", + "value": { + "name": "Other user", + "conditions": [ + { + "field": { + "name": "whichOrganisationValidated.wyvXTj", + "type": "RadiosField", + "display": "Which organisation do you work for?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Other", + "display": "Other" + } + } + ] + } + }, + { + "displayName": "LAPH general enquiry", + "name": "lsHzLP", + "value": { + "name": "LAPH general enquiry", + "conditions": [ + { + "field": { + "name": "typeOfEnquiryLAPH.VeQCVM", + "type": "RadiosField", + "display": "Which option best matches your enquiry? - LAPH user" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "General", + "display": "General" + } + } + ] + } + }, + { + "displayName": "LAPH lit search", + "name": "lxGNAu", + "value": { + "name": "LAPH lit search", + "conditions": [ + { + "field": { + "name": "typeOfEnquiryLAPH.VeQCVM", + "type": "RadiosField", + "display": "Which option best matches your enquiry? - LAPH user" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Literature Searches", + "display": "Literature search" + } + } + ] + } + }, + { + "displayName": "LAPH current awareness enquiry", + "name": "MQeZyE", + "value": { + "name": "LAPH current awareness enquiry", + "conditions": [ + { + "field": { + "name": "typeOfEnquiryLAPH.VeQCVM", + "type": "RadiosField", + "display": "Which option best matches your enquiry? - LAPH user" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Current Awareness", + "display": "Current awareness alerts" + } + } + ] + } + }, + { + "displayName": "Lit search 2", + "name": "CHaqWw", + "value": { + "name": "Lit search 2", + "conditions": [ + { + "field": { + "name": "typeOfEnquiry.tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your enquiry?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Literature Searches", + "display": "Literature search" + } + }, + { + "coordinator": "or", + "field": { + "name": "typeOfEnquiryLAPH.VeQCVM", + "type": "RadiosField", + "display": "Which option best matches your enquiry? - LAPH user" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Literature Searches", + "display": "Literature search" + } + } + ] + } + }, + { + "displayName": "Not G, EB, CA", + "name": "XvwdpX", + "value": { + "name": "Not G, EB, CA", + "conditions": [ + { + "field": { + "name": "typeOfEnquiry.tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your enquiry?" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "General", + "display": "General" + } + }, + { + "coordinator": "or", + "field": { + "name": "typeOfEnquiry.tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your enquiry?" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "Evidence Briefings", + "display": "Evidence briefing" + } + }, + { + "coordinator": "or", + "field": { + "name": "typeOfEnquiry.tUKBgj", + "type": "RadiosField", + "display": "Which option best matches your enquiry?" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "Current Awareness", + "display": "Current awareness alerts" + } + } + ] + } + }, + { + "displayName": "UKHSA staff", + "name": "EgJCgx", + "value": { + "name": "UKHSA staff", + "conditions": [ + { + "field": { + "name": "whichOrganisationValidated.wyvXTj", + "type": "RadiosField", + "display": "Which organisation do you work for?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "UKHSA", + "display": "UKHSA" + } + } + ] + } + } + ], + "specialPages": { + "confirmationPage": { + "customText": { + "hidePanel": false, + "nextSteps": "You will receive an email to confirm that your enquiry has been received. You may need to check your mailbox’s junk folder to retrieve the email." + } + } + }, + "fees": [], + "outputs": [ + { + "name": "eBBQeD", + "title": "test-output", + "type": "webhook", + "outputConfiguration": { + "url": "${KLSwebhook}", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": false, + "phaseBanner": { + "phase": "beta" + }, + "feedback": { + "feedbackForm": true, + "url": "https://submit.forms.service.gov.uk/form/7932/give-feedback-on-knowledge-and-library-services-kls/30055" + }, + "showFilenamesOnSummaryPage": true, + "jwtKey": "${KLSJwtKey}", + "error500ContactEmail": "libraries@kls.ukhsa.gov.uk" +} diff --git a/runner/src/server/forms/kls-feedback.json b/runner/src/server/forms/kls-feedback.json new file mode 100644 index 0000000000..86f92d389d --- /dev/null +++ b/runner/src/server/forms/kls-feedback.json @@ -0,0 +1,140 @@ +{ + "metadata": {}, + "startPage": "/start", + "name": "XGOV SOW TEST PAGE", + "skipSummary": true, + "pages": [ + { + "path": "/start", + "title": "XGOV SOW TEST PAGE", + "components": [ + { + "name": "Feedback", + "options": { + "customValidationMessages": { + "any.required": "Select how you would describe Knowledge and Library Services" + } + }, + "type": "CheckboxesField", + "title": "How would you describe Knowledge and Library Services?", + "hint": "Select all that apply", + "list": "FeedbackOptions" + }, + { + "name": "OtherFeedbackTextBox", + "options": { + "customValidationMessages": { + "string.empty": "Enter your feedback about any difficulties or highlights you experienced, and how we could improve the service", + "string.max": "Your feedback about any difficulties or highlights you experienced, and how we could improve the service, must be 2000 characters or less" + } + }, + "type": "MultilineTextField", + "schema": { + "maxlength": 2000 + }, + "title": "Tell us about any difficulties or highlights you experienced, and how we could improve the service.", + "hint": "Do not include any personal information here (What should we add here Jahdiel/Colin/Team...)." + }, + { + "name": "FeedbackPara", + "options": {}, + "type": "Para", + "content": "
    We would like to discuss your experience or test new features with you.

    Provide your email address if we can contact you for research. We will store your email address as explained in our UKHSA privacy notice (opens in a new tab)

    " + }, + { + "name": "FeedbackEmailAddress", + "options": { + "required": false, + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "title": "Email address for a researcher to contact you", + "type": "EmailAddressField" + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/summary", + "controller": "./pages/summary.js" + } + ], + "lists": [ + { + "title": "feedback-options", + "name": "FeedbackOptions", + "type": "string", + "items": [ + { + "text": "Useful resource", + "value": "Useful resource" + }, + { + "text": "Easy to understand", + "value": "Easy to understand" + }, + { + "text": "Easy to complete", + "value": "Easy to complete" + }, + { + "text": "Quick to complete", + "value": "Quick to complete" + }, + { + "text": "Some questions were unclear", + "value": "Some questions were unclear" + }, + { + "text": "Not detailed enough", + "value": "Not detailed enough" + }, + { + "text": "Too detailed", + "value": "Too detailed" + }, + { + "text": "Too time consuming", + "value": "Too time consuming" + }, + { + "text": "Other (specify below)", + "value": "Other (specify below)" + } + ] + } + ], + "outputs": [ + { + "name": "FeedbackForm", + "title": "KLS FeedbackForm", + "type": "webhook", + "outputConfiguration": { + "url": "https://webhook.site/e87402d7-a93e-406c-bf13-ca72f3973bbc", + "allowRetry": true + } + } + ], + "sections": [], + "conditions": [], + "phaseBanner": { + "phase": "beta" + }, + "feedback": { + "feedbackForm": false, + "url": "/kls-feedback" + }, + "specialPages": { + "confirmationPage": { + "customText": { + "nextSteps": "

    Thank you for completing this survey

    You can now close this page.

    ", + "hidePanel": true + } + } + } +} diff --git a/runner/src/server/forms/kls-magic-link.json b/runner/src/server/forms/kls-magic-link.json new file mode 100644 index 0000000000..25b70c3ab8 --- /dev/null +++ b/runner/src/server/forms/kls-magic-link.json @@ -0,0 +1,254 @@ +{ + "startPage": "/start", + "returnTo": true, + "skipSummary": true, + "authentication": true, + "toggle": true, + "toggleRedirect": "/kls-enquiries/which-organisation-do-you-work-for-validated", + "retryTimeoutSeconds": 300, + "analytics": { + "gtmId1": "GTM-WLKKLMQB" + }, + "magicLinkConfig": "kls-magic-link", + "allowedDomains": [ + "ukhsa.gov.uk", + "dhsc.gov.uk", + "nhs.net", + "nhs.uk", + "gov.uk" + ], + "invalidDomainRedirect": "/kls-magic-link/your-email-is-not-on-our-approved-list", + "serviceName": "UKHSA Knowledge and Library Services (KLS)", + "name": "UKHSA Knowledge and Library Services (KLS)", + "fullStartPage": "https://gov.uk/guidance/ukhsa-knowledge-and-library-services", + "pages": [ + { + "path": "/start", + "controller": "MagicLinkStartPageController", + "unauthenticated": true + }, + { + "title": "What is your email address?", + "path": "/email", + "unauthenticated": true, + "continueButtonText": "Continue", + "showContinueButton": true, + "backLinkFallback": "/kls-enquiries/which-organisation-do-you-work-for", + "components": [ + { + "name": "EmailIntro", + "options": {}, + "type": "Para", + "content": "We need to email you a secure link to the service.

    The link expires after 20 minutes.
    ", + "schema": {} + }, + { + "type": "EmailAddressField", + "title": "Email address", + "name": "email", + "options": { + "exposeToContext": true, + "customValidationMessages": { + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + } + }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}
    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, + { + "name": "PrivacyNotice", + "options": {}, + "type": "Para", + "content": "By continuing, you agree to our privacy notice (opens in a new tab).", + "schema": {} + } + ], + "next": [ + { + "path": "/submit1" + } + ] + }, + { + "path": "/submit1", + "controller": "MagicLinkFirstSubmitPageController" + }, + { + "path": "/submit2", + "controller": "MagicLinkSecondSubmitPageController" + }, + { + "path": "/check-your-email", + "title": "Check your email", + "unauthenticated": true, + "backLinkFallback": "/start", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to access the Knowledge and Library Services form.



    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email in 5 minutes.

    ", + "schema": {} + }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}
    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, + { + "name": "SentAnotherEmailButton", + "options": {}, + "type": "Para", + "content": "Send a new email", + "schema": {} + } + ] + }, + { + "backLinkFallback": "/kls-magic-link", + "path": "/your-email-is-not-on-our-approved-list", + "title": "Your email is not on our approved list", + "unauthenticated": true, + "components": [ + { + "name": "GVrjNV", + "options": {}, + "type": "Para", + "content": "We only accept email addresses from organisations eligible to use our services (UKHSA, OHID, Local Authority Public Health teams and NHS England Public Health staff).
    You can still contact the Knowledge and Library Services team via their email:
    libraries@kls.ukhsa.gov.uk", + "schema": {} + } + ] + }, + + { + "path": "/resubmit-email", + "title": "We've sent you another email", + "unauthenticated": true, + "backLinkFallback": "/check-your-email", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent another email to {{ email }}.

    Click the link in the email to continue with your enquiry.

    ", + "schema": {} + }, + { + "name": "NotReceivedEmail", + "options": {}, + "type": "Para", + "title": "If you've not received an email", + "content": "

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link", + "schema": {} + } + ], + "next": [] + }, + { + "title": "summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + }, + { + "path": "/email-confirmed", + "title": "Thank you for verifying your email", + "disableBackLink": true, + "components": [ + { + "name": "EmailConfirmed", + "options": {}, + "type": "Para", + "content": "You will now be asked a series of questions. Please provide as much information as possible as this will help the UKHSA Knowledge and Library Services team deal with your enquiry promptly and accurately.

    Continue", + "schema": {} + } + ] + }, + { + "title": "return", + "path": "/return", + "controller": "MagicLinkController", + "components": [] + }, + { + "path": "/incorrect-email", + "title": "Incorrect email link", + "components": [ + { + "name": "IncorrectEmail", + "options": {}, + "type": "Para", + "content": "The email you used does not match the email associated with this link.

    Request a new link", + "schema": {} + } + ] + }, + { + "path": "/expired", + "unauthenticated": true, + "title": "This link has expired", + "components": [ + { + "type": "Para", + "title": "This link has expired", + "content": "

    This link has expired because it is older than 20 minutes or has already been used. Each link can only be used once.

    Request a new link", + "name": "blarGGH", + "options": {}, + "schema": {} + } + ] + } + ], + "specialPages": { + "confirmationPage": { + "customText": { + "hidePanel": true, + "nextSteps": "Back

    We've sent you another email

    We’ve sent another email to {{ email }}.

    Click the link in the email to continue to with your enquiry.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link" + } + } + }, + "lists": [], + "sections": [], + "phaseBanner": { + "phase": "beta" + }, + "metadata": {}, + "fees": [], + "outputs": [ + { + "name": "magiclink", + "title": "KLS MagicLink", + "type": "notify", + "outputConfiguration": { + "apiKey": "${KLSnotifyApiKey}", + "templateId": "${KLSNotifyTemplateId}", + "emailField": "email", + "addReferencesToPersonalisation": false, + "personalisation": ["email", "hmacSignature", "hmacExpiryTime"], + "hmacKey": "${KLSMagicLinkHmacKey}" + } + } + ], + "jwtKey": "${KLSJwtKey}", + "feedback": { + "feedbackForm": true, + "url": "https://submit.forms.service.gov.uk/form/7932/give-feedback-on-knowledge-and-library-services-kls/30055" + }, + "version": 2, + "conditions": [], + "error500ContactEmail": "libraries@kls.ukhsa.gov.uk" +} diff --git a/runner/src/server/forms/kls-training-magic-link.json b/runner/src/server/forms/kls-training-magic-link.json new file mode 100644 index 0000000000..22ffd8a4df --- /dev/null +++ b/runner/src/server/forms/kls-training-magic-link.json @@ -0,0 +1,258 @@ +{ + "metadata": {}, + "returnTo": true, + "startPage": "/start", + "skipSummary": true, + "authentication": true, + "toggle": true, + "analytics": { + "gtmId1": "GTM-WLKKLMQB" + }, + "serviceName": "UKHSA Knowledge and Library Services (KLS)", + "name": "UKHSA Knowledge and Library Services (KLS)", + "toggleRedirect": "/kls-training-request/training-request-part-1", + "magicLinkConfig": "kls-training-magic-link", + "allowedDomains": [ + "ukhsa.gov.uk", + "dhsc.gov.uk", + "nhs.net", + "nhs.uk", + "gov.uk" + ], + "invalidDomainRedirect": "/kls-training-magic-link/your-email-is-not-on-our-approved-list", + "fullStartPage": "https://gov.uk/guidance/ukhsa-knowledge-and-library-services", + "pages": [ + { + "path": "/start", + "controller": "MagicLinkStartPageController", + "unauthenticated": true + }, + { + "title": "Enter your email address", + "path": "/email", + "unauthenticated": true, + "continueButtonText": "Continue", + "showContinueButton": true, + "backLinkFallback": "/kls-training-request/training-request-part-1", + "components": [ + { + "name": "EmailIntro", + "options": {}, + "type": "Para", + "content": "We need to email you a secure link to the service.

    The link expires after 20 minutes.
    ", + "schema": {} + }, + { + "type": "EmailAddressField", + "title": "Enter your email address", + "name": "email", + "options": { + "exposeToContext": true, + "customValidationMessages": { + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "hint": "Only email addresses that end in .gov.uk, nhs.uk, or nhs.net can be accepted." + }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}
    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, + { + "name": "PrivacyNotice", + "options": {}, + "type": "Para", + "content": "By continuing, you agree to our privacy notice (opens in a new tab).", + "schema": {} + } + ], + "next": [ + { + "path": "/submit1" + } + ] + }, + { + "path": "/submit1", + "controller": "MagicLinkFirstSubmitPageController" + }, + { + "path": "/submit2", + "controller": "MagicLinkSecondSubmitPageController" + }, + { + "path": "/check-your-email", + "title": "Check your email", + "unauthenticated": true, + "backLinkFallback": "/start", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to access the Knowledge and Library Services form.



    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email in 5 minutes.

    ", + "schema": {} + }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}
    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, + { + "name": "SentAnotherEmailButton", + "options": {}, + "type": "Para", + "content": "Send a new email", + "schema": {} + } + ] + }, + { + "backLinkFallback": "/kls-training-magic-link", + "path": "/your-email-is-not-on-our-approved-list", + "title": "Your email is not on our approved list", + "unauthenticated": true, + "components": [ + { + "name": "GVrjNV", + "options": {}, + "type": "Para", + "content": "We only accept email addresses from organisations eligible to use our services (UKHSA, OHID, Local Authority Public Health teams and NHS England Public Health staff).
    You can still contact the Knowledge and Library Services team via their email:
    libraries@kls.ukhsa.gov.uk", + "schema": {} + } + ] + }, + { + "path": "/resubmit-email", + "title": "We've sent you another email", + "unauthenticated": true, + "backLinkFallback": "/check-your-email", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an access the Knowledge and Library Services.

    ", + "schema": {} + }, + { + "name": "NotReceivedEmail", + "options": {}, + "type": "Para", + "title": "If you've not received an email", + "content": "

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link", + "schema": {} + } + ], + "next": [] + }, + { + "title": "Summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + }, + { + "title": "Thank you for verifying your email", + "path": "/email-confirmed", + "disableBackLink": true, + "components": [ + { + "name": "EmailConfirmed", + "options": {}, + "type": "Para", + "content": "You will now be asked a series of questions. Please provide as much information as possible as this will help the UKHSA Knowledge and Library Services team deal with your enquiry promptly and accurately.

    Continue", + "schema": {} + } + ] + }, + { + "title": "return", + "path": "/return", + "controller": "MagicLinkController", + "components": [] + }, + { + "path": "/incorrect-email", + "title": "Incorrect email link", + "components": [ + { + "name": "IncorrectEmail", + "options": {}, + "type": "Para", + "content": "The email you used does not match the email associated with this link.

    Request a new link", + "schema": {} + } + ] + }, + { + "path": "/expired", + "unauthenticated": true, + "title": "This link has expired", + "components": [ + { + "type": "Para", + "title": "This link has expired", + "content": "

    This link has expired because it is older than 20 minutes or has already been used. Each link can only be used once.

    Request a new link", + "name": "blarGGH", + "options": {}, + "schema": {} + } + ] + } + ], + "specialPages": { + "confirmationPage": { + "customText": { + "hidePanel": true, + "nextSteps": "Back

    We've sent you another email

    We’ve sent another email to {{ email }}.

    Click the link in the email to continue to access the Knowledge and Library Services.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link" + } + } + }, + "lists": [], + "sections": [], + "phaseBanner": { + "phase": "beta" + }, + "conditions": [], + "fees": [], + "outputs": [ + { + "name": "magiclink", + "title": "KLS Training MagicLink", + "type": "notify", + "outputConfiguration": { + "apiKey": "${KLSTrainingNotifyApiKey}", + "templateId": "${KLSTrainingNotifyTemplateId}", + "emailField": "email", + "addReferencesToPersonalisation": false, + "personalisation": ["email", "hmacSignature", "hmacExpiryTime"], + "hmacKey": "${KLSTrainingMagicLinkHmacKey}" + } + } + ], + "feedback": { + "feedbackForm": true, + "url": "https://submit.forms.service.gov.uk/form/7932/give-feedback-on-knowledge-and-library-services-kls/30055" + }, + "version": 2, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "jwtKey": "${KLSTrainingJwtKey}", + "error500ContactEmail": "libraries@kls.ukhsa.gov.uk" +} diff --git a/runner/src/server/forms/kls-training-request.json b/runner/src/server/forms/kls-training-request.json new file mode 100644 index 0000000000..5c32416db1 --- /dev/null +++ b/runner/src/server/forms/kls-training-request.json @@ -0,0 +1,1091 @@ +{ + "metadata": {}, + "returnTo": true, + "startPage": "/start", + "confirmationSessionTimeout": 2000, + "fullStartPage": "https://gov.uk/guidance/ukhsa-knowledge-and-library-services", + "authentication": true, + "toggle": true, + "analytics": { + "gtmId1": "GTM-WLKKLMQB" + }, + "serviceName": "UKHSA Knowledge and Library Services (KLS)", + "name": "UKHSA Knowledge and Library Services (KLS)", + "magicLinkConfig": "kls-training-magic-link", + "webhookHmacSharedKey": "${KLSTrainingKey}", + "pages": [ + { + "title": "Request training from Knowledge and Library Services", + "path": "/start", + "components": [ + { + "name": "mainContent", + "options": {}, + "type": "Para", + "content": "

    You can use this form to submit a training request to Knowledge and Library Services (KLS).

    Staff employed by the following organisations are eligible to request training:

    • UK Health Security Agency
    • Office for Health Improvement and Disparities
    • NHS England Public Health teams
    • Local Authority Public Health teams

    If you do not belong to one of these organisations select 'Other' for information about how to contact KLS.

    Before you start

    You will need to verify your email address to access this enquiry form.

    You will be asked a series of questions about the type of training session you are interested in, including:

    • number of participants
    • online or in person
    • training topics
    • your team’s area of specialism
    • preferred dates
    • information about you including your name, job title, and email address
    !WarningYou must submit each page of the form within 40 minutes, or it will time out.
    " + } + ], + "next": [ + { + "path": "/which-organisation-do-you-work-for" + } + ], + "controller": "./pages/start.js" + }, + { + "path": "/which-organisation-do-you-work-for", + "unauthenticated": true, + "title": "Which organisation do you work for?", + "components": [ + { + "name": "ZpmVWP", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select the organisation you work for", + "any.only": "Select the organisation you work for", + "string.empty": "Select the organisation you work for" + } + }, + "type": "RadiosField", + "title": "Organisation", + "hint": "Staff employed by the following organisations are eligible to access KLS: UK Health Security Agency, Office for Health Improvement and Disparities, NHS England Public Health teams, Local Authority Public Health teams. If you do not belong to one of these organisations select ‘Other’ for information about how to contact KLS.", + "list": "uIwkHV", + "schema": {}, + "values": { + "type": "listRef" + } + } + ], + "next": [ + { + "path": "/please-contact-us-via-email", + "condition": "BOkxIN" + }, + { + "path": "/magic-link-redirect", + "condition": "dhBTmP" + } + ] + }, + { + "path": "/please-contact-us-via-email", + "unauthenticated": true, + "title": "Please contact us via email", + "components": [ + { + "name": "ryhwUr", + "options": {}, + "type": "Html", + "content": "

    You are not eligible to use this service, however you can still contact the KLS team via the following email: libraries@kls.ukhsa.gov.uk

    " + } + ], + "next": [] + }, + { + "path": "/magic-link-redirect", + "unauthenticated": true, + "controller": "MagicLinkRedirectController", + "next": [ + { + "path": "/training-request-part-1" + } + ] + }, + { + "path": "/training-request-part-1", + "section": "trainingQuestions", + "title": "Training request part 1", + "disableBackLink": true, + "components": [ + { + "name": "sqQXGM", + "options": {}, + "type": "Details", + "title": "What types of training sessions are available?", + "content": "

    1:1 Session: A personalised session tailored to your individual needs.

    \n\n\n

    Small Group Session: Training for 2–6 participants tailored to the needs of the group.

    \n\n\n

    Team Session: Selecting elements from our core programme this session can be tailored to the needs of the team and will support the team in developing essential information literacy skills. The session can be developed to help the team find reliable and relevant information efficiently, understand and evaluate sources critically and to use information effectively in research and decision making.

    ", + "schema": {} + }, + { + "name": "dQAIPE", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select a training format", + "any.only": "Select a training format", + "string.empty": "Select a training format" + } + }, + "type": "RadiosField", + "title": "What training session would you like us to provide?", + "list": "oegZub", + "values": { + "type": "listRef" + }, + "schema": {} + }, + { + "name": "WIIAQE", + "options": { + "required": true, + "customValidationMessages": { + "number.base": "Enter number of participants", + "number.min": "Number of participants must be greater than 0", + "number.empty": "Enter number of participants" + } + }, + "hint": "Enter number of participants", + "type": "NumberField", + "title": "What is the approximate number of participants?", + "schema": { + "min": 1 + } + }, + { + "name": "FaHtQr", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select your preferred delivery type", + "any.only": "Select your preferred delivery type", + "string.empty": "Select your preferred delivery typee" + } + }, + "type": "RadiosField", + "title": "What is your preferred delivery type?", + "list": "eVlDbd", + "values": { + "type": "listRef" + } + }, + { + "name": "CncFtZ", + "options": { + "required": false + }, + "type": "TextField", + "title": "If you selected \"In person\", please indicate a region or site" + } + ], + "next": [ + { + "path": "/training-request-part-2" + } + ] + }, + { + "path": "/training-request-part-2", + "section": "trainingQuestions", + "title": "Training request part 2", + "components": [ + { + "name": "BpuPgW", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select the organisation you belong to", + "any.only": "Select the organisation you belong to", + "string.empty": "Select the organisation you belong to" + } + }, + "type": "RadiosField", + "title": "Which organisation do you belong to?", + "list": "UzXxgh" + }, + { + "name": "hMxELK", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select the topics you would like to cover", + "any.only": "Select the topics you would like to cover", + "string.empty": "Select the topics you would like to cover" + } + }, + "type": "CheckboxesField", + "title": "What topics would you like to cover?", + "hint": "Select all that apply", + "list": "mwdJGV", + "schema": {} + }, + { + "name": "ftUkbz", + "options": { + "required": false + }, + "type": "TextField", + "title": "If you selected ‘Other’, provide further details on the topic you would like to cover" + }, + { + "name": "gpIAot", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Describe your team’s area of specialism and any specific topic you would like the training to focus on", + "any.only": "Describe your team’s area of specialism and any specific topic you would like the training to focus on", + "string.empty": "Describe your team’s area of specialism and any specific topic you would like the training to focus on" + } + }, + "type": "MultilineTextField", + "title": "Please let us know your team’s area of specialism and any specific topic you would like the training to focus on. Alternatively, indicate if you would prefer a more generic training session." + }, + { + "name": "ojkYsn", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter suggested dates for the session", + "any.only": "Enter suggested dates for the session", + "string.empty": "Enter suggested dates for the session" + } + }, + "type": "TextField", + "title": "Suggested dates for the session:" + } + ], + "next": [ + { + "path": "/training-topics-summary" + } + ] + }, + { + "path": "/training-topics-summary", + "controller": "MiniSummaryPageController", + "title": "Confirm the information below", + "section": "trainingQuestions", + "options": { + "subtitle": "You will not be able to change your answers later once confirmed.", + "content": "Please check your details and click the 'Submit' button.", + "customText": { + "title": "Check your answers" + } + }, + "next": [ + { + "path": "/about-you-ukhsa", + "condition": "UKHSAselected" + }, + { + "path": "/about-you-laph", + "condition": "LAPHselected" + }, + { + "path": "/about-you" + } + ] + }, + { + "path": "/about-you-ukhsa", + "disableBackLink": true, + "section": "aboutYouUKHSA", + "title": "About you", + "components": [ + { + "name": "zmJhdG", + "options": { + "required": true, + "autocomplete": "name", + "customValidationMessages": { + "any.required": "Enter full name", + "any.only": "Enter full name", + "string.empty": "Enter full name" + } + }, + "type": "TextField", + "title": "Full name" + }, + { + "name": "XpqMGU", + "options": { + "required": true, + "autocomplete": "organization-title", + "customValidationMessages": { + "any.required": "Enter job title", + "any.only": "Enter job title", + "string.empty": "Enter job title" + } + }, + "type": "TextField", + "title": "Job title" + }, + { + "name": "UlQfrt", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select the UKHSA group to which you belong", + "any.only": "Select the UKHSA group to which you belong", + "string.empty": "Select the UKHSA group to which you belong" + } + }, + "type": "SelectField", + "title": "UKHSA Group", + "list": "TjWRyC", + "values": { + "type": "listRef" + } + }, + { + "name": "DMyqPG", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select the UKHSA directorate to which you belong", + "any.only": "Select the UKHSA directorate to which you belong", + "string.empty": "Select the UKHSA directorate to which you belong" + } + }, + "type": "SelectField", + "title": "UKHSA Directorate", + "list": "likBcc", + "values": { + "type": "listRef" + } + }, + { + "name": "QUKKlr", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Select location", + "any.only": "Select location", + "string.empty": "Select location" + } + }, + "type": "SelectField", + "title": "Location", + "list": "TqrOXp" + }, + { + "name": "YkNqCD", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "Email address", + "nameHasError": false + }, + { + "name": "lZOKDY", + "options": { + "required": false, + "autocomplete": "section-copy email", + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "If you would like someone else to be included in emails about this enquiry, enter their email address below" + } + ], + "next": [ + { + "path": "/about-you-uksa-summary" + } + ] + }, + { + "path": "/about-you-uksa-summary", + "customButtonText": "Confirm and submit", + "controller": "MiniSummaryPageController", + "title": "Confirm your personal details before submitting", + "section": "aboutYouUKHSA", + "options": { + "content": "Please check your details and click the 'Submit' button.", + "customText": { + "title": "Check your answers" + } + }, + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/about-you-laph", + "disableBackLink": true, + "section": "aboutYouLAPH", + "title": "About you", + "components": [ + { + "name": "kGNuQf", + "options": { + "required": true, + "autocomplete": "name", + "customValidationMessages": { + "any.required": "Enter full name", + "any.only": "Enter full name", + "string.empty": "Enter full name" + } + }, + "type": "TextField", + "title": "Full name" + }, + { + "name": "IqdqPY", + "options": { + "required": true, + "autocomplete": "organization-title", + "customValidationMessages": { + "any.required": "Enter job title", + "any.only": "Enter job title", + "string.empty": "Enter job title" + } + }, + "type": "TextField", + "title": "Job title" + }, + { + "name": "YkNqCD", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "Email address" + }, + { + "name": "AOadZe", + "options": { + "required": false, + "autocomplete": "section-copy email", + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "If you would like someone else to be included in emails about this enquiry, enter their email address below" + }, + { + "name": "GjKMBs", + "options": { + "customValidationMessages": { + "any.required": "Select location", + "any.only": "Select location", + "string.empty": "Select location" + } + }, + "type": "SelectField", + "title": "Location", + "list": "WyDhtv" + } + ], + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/about-you-laph-summary", + "title": "Confirm your personal details before submitting", + "controller": "MiniSummaryPageController", + "customButtonText": "Confirm and submit", + "section": "aboutYouLAPH", + "options": { + "content": "Please check your details and click the 'Submit' button.", + "customText": { + "title": "Check your answers" + } + }, + "next": [ + { + "path": "/summary" + } + ] + }, + { + "path": "/about-you", + "disableBackLink": true, + "section": "aboutYou", + "title": "About you", + "components": [ + { + "name": "eRUvFD", + "options": { + "required": true, + "autocomplete": "name", + "customValidationMessages": { + "any.required": "Enter full name", + "any.only": "Enter full name", + "string.empty": "Enter full name" + } + }, + "type": "TextField", + "title": "Full name" + }, + { + "name": "fPTkAc", + "options": { + "required": true, + "autocomplete": "organization-title", + "customValidationMessages": { + "any.required": "Enter job title", + "any.only": "Enter job title", + "string.empty": "Enter job title" + } + }, + "type": "TextField", + "title": "Job title" + }, + { + "name": "UpNOKZ", + "options": { + "required": true, + "customValidationMessages": { + "any.required": "Enter email address", + "any.only": "Enter email address", + "string.empty": "Enter email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "Email address" + }, + { + "name": "cEhUTE", + "options": { + "required": false, + "autocomplete": "section-copy email", + "customValidationMessages": { + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + }, + "type": "EmailAddressField", + "title": "If you would like someone else to be included in emails about this enquiry, enter their email address below" + } + ], + "next": [ + { + "path": "/about-you-summary" + } + ] + }, + { + "path": "/about-you-summary", + "customButtonText": "Confirm and submit", + "controller": "MiniSummaryPageController", + "title": "Confirm your personal details before submitting", + "section": "aboutYou", + "options": { + "content": "Please check your details and click the 'Submit' button.", + "customText": { + "title": "Check your answers" + } + }, + "next": [ + { + "path": "/summary" + } + ] + }, + { + "title": "Enquiry summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [ + { + "name": "PdoDpO", + "options": {}, + "type": "Para", + "content": "Please check your details and click the 'Submit' button." + } + ], + "next": [] + } + ], + "lists": [ + { + "title": "Training session options", + "name": "oegZub", + "type": "string", + "items": [ + { + "text": "1:1 session", + "description": "", + "value": "1:1 session" + }, + { + "text": "Small group session ", + "description": "", + "value": "Small group session " + }, + { + "description": "", + "text": "Team session", + "value": "Team session" + } + ] + }, + { + "title": "Delivery type", + "name": "eVlDbd", + "type": "string", + "items": [ + { + "text": "Online via Teams", + "value": "Online via Teams" + }, + { + "text": "In person", + "description": "", + "value": "In person" + } + ] + }, + { + "title": "Topic list", + "name": "mwdJGV", + "type": "string", + "items": [ + { + "text": "KLS overview", + "value": "KLS overview" + }, + { + "text": "Literature searching: finding the evidence", + "value": "Literature searching: finding the evidence" + }, + { + "text": "Searching for grey literature", + "value": "Searching for grey literature" + }, + { + "text": "EndNote: an introduction", + "value": "EndNote: an introduction" + }, + { + "text": "EndNote: cite while you write", + "value": "EndNote: cite while you write" + }, + { + "text": "EndNote: collaboration and sharing", + "value": "EndNote: collaboration and sharing" + }, + { + "text": "Accessing resources", + "value": "Accessing resources" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "user group", + "name": "UzXxgh", + "type": "string", + "items": [ + { + "text": "UK Health Security Agency", + "value": "UKHSA" + }, + { + "text": "Office for Health Improvement and Disparities", + "value": "OHID" + }, + { + "text": "NHS England Public Health", + "value": "NHSE" + }, + { + "text": "Local Authority Public Health", + "value": "LAPH" + } + ] + }, + { + "title": "user groups", + "name": "tlYKzK", + "type": "string", + "items": [ + { + "text": "UKHSA", + "value": "UKHSA" + }, + { + "text": "OHID", + "value": "OHID" + }, + { + "text": "NHSE", + "value": "NHSE" + }, + { + "text": "LAPH", + "value": "LAPH" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Organisation", + "name": "uIwkHV", + "type": "string", + "items": [ + { + "text": "UK Health Security Agency", + "value": "UKHSA" + }, + { + "text": "Office for Health Improvement and Disparities", + "value": "Office for Health Improvement and Disparities (OHID)" + }, + { + "text": "NHS England Public Health", + "value": "NHS England Public Health" + }, + { + "text": "Local Authority Public Health", + "value": "Local Authority Public Health" + }, + { + "text": "Other", + "value": "Other" + } + ] + }, + { + "title": "Location: LAPH", + "name": "WyDhtv", + "type": "string", + "items": [ + { + "text": "North East", + "value": "North East" + }, + { + "text": "North West", + "value": "North West" + }, + { + "text": "Yorkshire & Humber", + "value": "Yorkshire & Humber" + }, + { + "text": "East Midlands", + "value": "East Midlands" + }, + { + "text": "West Midlands", + "value": "West Midlands" + }, + { + "text": "East of England", + "value": "East of England" + }, + { + "text": "London", + "value": "London" + }, + { + "text": "South East", + "value": "South East" + }, + { + "text": "South West", + "value": "South West" + } + ] + }, + { + "title": "UKHSA Group", + "name": "TjWRyC", + "type": "string", + "items": [ + { + "text": "Chief Scientific Officer (CSO)", + "value": "Chief Scientific Officer (CSO)" + }, + { + "text": "Chief Medical Advisor (CMA)", + "value": "Chief Medical Advisor (CMA)" + }, + { + "text": "Chief Data Officer (CDO)", + "value": "Chief Data Officer (CDO)" + }, + { + "text": "Chief Operating Officer (COO)", + "value": "Chief Operating Officer (COO)" + } + ] + }, + { + "title": "UKHSA Directorate", + "name": "likBcc", + "type": "string", + "items": [ + { + "text": "CDO: Analysis and Intelligence Assessment", + "value": "CDO: Analysis and Intelligence Assessment" + }, + { + "text": "CDO: Data Protection, Security and Technology Services", + "value": "CDO: Data Protection, Security and Technology Services" + }, + { + "text": "CDO: Digital and Data", + "value": "CDO: Digital and Data" + }, + { + "text": "CDO: Digital and Technology Transition", + "value": "CDO: Digital and Technology Transition" + }, + { + "text": "CMA: Emergency Preparedness, Resilience and Response (EPRR) and Response Operations", + "value": "CMA: Emergency Preparedness, Resilience and Response (EPRR) and Response Operations" + }, + { + "text": "CMA: Epidemic and Emerging Infections", + "value": "CMA: Epidemic and Emerging Infections" + }, + { + "text": "CMA: Global Health Protection", + "value": "CMA: Global Health Protection" + }, + { + "text": "CMA: Health Equity and Clinical Governance", + "value": "CMA: Health Equity and Clinical Governance" + }, + { + "text": "CMA: Health Protection in Regions", + "value": "CMA: Health Protection in Regions" + }, + { + "text": "CMA: Public Health Programmes", + "value": "CMA: Public Health Programmes" + }, + { + "text": "COO: Commercial, Vaccines and Countermeasures Delivery", + "value": "COO: Commercial, Vaccines and Countermeasures Delivery" + }, + { + "text": "COO: Communications", + "value": "COO: Communications" + }, + { + "text": "COO: Finance, Performance, Risk and Assurance", + "value": "COO: Finance, Performance, Risk and Assurance" + }, + { + "text": "COO: People and Workplace", + "value": "COO: People and Workplace" + }, + { + "text": "COO: Public Inquiry", + "value": "COO: Public Inquiry" + }, + { + "text": "COO: Strategy and Policy", + "value": "COO: Strategy and Policy" + }, + { + "text": "COO: Transformation", + "value": "COO: Transformation" + }, + { + "text": "CSO: Public Health Microbiology", + "value": "CSO: Public Health Microbiology" + }, + { + "text": "CSO: Radiation, Chemicals, Climate and Environmental Hazards", + "value": "CSO: Radiation, Chemicals, Climate and Environmental Hazards" + }, + { + "text": "CSO: Science Strategy and Evidence", + "value": "CSO: Science Strategy and Evidence" + }, + { + "text": "CSO: Scientific Facilities and Performance", + "value": "CSO: Scientific Facilities and Performance" + } + ] + }, + { + "title": "Location: UKHSA", + "name": "TqrOXp", + "type": "string", + "items": [ + { + "text": "Chilton", + "value": "Chilton" + }, + { + "text": "Colindale", + "value": "Colindale" + }, + { + "text": "Porton", + "value": "Porton" + }, + { + "text": "Other", + "value": "Other" + } + ] + } + ], + "sections": [ + { + "name": "trainingQuestions", + "title": "Training Details", + "hideTitle": true + }, + { + "name": "aboutYou", + "title": "About you", + "hideTitle": true + }, + { + "name": "aboutYouUKHSA", + "title": "About you", + "hideTitle": true + }, + { + "name": "aboutYouLAPH", + "title": "About you", + "hideTitle": true + } + ], + "conditions": [ + { + "displayName": "UKHSA path", + "name": "UKHSAselected", + "value": { + "name": "UKHSA path", + "conditions": [ + { + "field": { + "name": "trainingQuestions.BpuPgW", + "type": "RadiosField", + "display": "Which organisation do you belong to?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "UKHSA", + "display": "UKHSA" + } + } + ] + } + }, + { + "displayName": "LAPH path", + "name": "LAPHselected", + "value": { + "name": "LAPH path", + "conditions": [ + { + "field": { + "name": "trainingQuestions.BpuPgW", + "type": "RadiosField", + "display": "Which organisation do you belong to?" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "LAPH", + "display": "LAPH" + } + } + ] + } + }, + { + "displayName": "Other", + "name": "BOkxIN", + "value": { + "name": "Other", + "conditions": [ + { + "field": { + "name": "ZpmVWP", + "type": "RadiosField", + "display": "Organisation" + }, + "operator": "is", + "value": { + "type": "Value", + "value": "Other", + "display": "Other" + } + } + ] + } + }, + { + "displayName": "Not other", + "name": "dhBTmP", + "value": { + "name": "Not other", + "conditions": [ + { + "field": { + "name": "ZpmVWP", + "type": "RadiosField", + "display": "Organisation" + }, + "operator": "is not", + "value": { + "type": "Value", + "value": "Other", + "display": "Other" + } + } + ] + } + } + ], + "specialPages": { + "confirmationPage": { + "customText": { + "hidePanel": false, + "nextSteps": "You will receive an email to confirm that your enquiry has been received. You may need to check your mailbox’s junk folder to retrieve the email." + } + } + }, + "fees": [], + "outputs": [ + { + "name": "eBBQeD", + "title": "test-output", + "type": "webhook", + "outputConfiguration": { + "url": "${KLSTrainingWebhook}", + "allowRetry": true + } + } + ], + "version": 2, + "skipSummary": true, + "feeOptions": { + "allowSubmissionWithoutPayment": true, + "maxAttempts": 3, + "showPaymentSkippedWarningPage": false + }, + "feedback": { + "feedbackForm": true, + "url": "https://submit.forms.service.gov.uk/form/7932/give-feedback-on-knowledge-and-library-services-kls/30055" + }, + "jwtKey": "${KLSTrainingJwtKey}", + "error500ContactEmail": "libraries@kls.ukhsa.gov.uk" +} diff --git a/runner/src/server/forms/magic-link.json b/runner/src/server/forms/magic-link.json new file mode 100644 index 0000000000..3a57084013 --- /dev/null +++ b/runner/src/server/forms/magic-link.json @@ -0,0 +1,217 @@ +{ + "startPage": "/start", + "skipSummary": true, + "toggle": "${magicLinkToggle}", + "toggleRedirect": "/ReportAnOutbreak/setting", + "retryTimeoutSeconds": 300, + "pages": [ + { + "path": "/start", + "controller": "MagicLinkStartPageController", + "unauthenticated": true + }, + { + "title": "What is your email address?", + "path": "/email", + "unauthenticated": true, + "continueButtonText": "Continue", + "showContinueButton": true, + "backLinkFallback": "/ReportAnOutbreak/hpt-region", + "components": [ + { + "name": "EmailIntro", + "options": {}, + "type": "Para", + "content": "We need to email you a secure link to the service.

    The link expires after 20 minutes.

    If you're returning to a report that you started in the last 3 days, use the same email address.
    ", + "schema": {} + }, + { + "type": "EmailAddressField", + "title": "Email address", + "name": "email", + "options": { + "exposeToContext": true, + "customValidationMessages": { + "string.empty": "Enter an email address", + "string.pattern.base": "Enter an email address in the correct format, like name@example.com" + } + } + }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}
    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, + { + "name": "PrivacyNotice", + "options": {}, + "type": "Para", + "content": "By continuing, you agree to our privacy notice.", + "schema": {} + } + ], + "next": [ + { + "path": "/submit1" + } + ] + }, + { + "path": "/submit1", + "controller": "MagicLinkFirstSubmitPageController" + }, + { + "path": "/submit2", + "controller": "MagicLinkSecondSubmitPageController" + }, + { + "path": "/check-your-email", + "title": "Check your email", + "unauthenticated": true, + "backLinkFallback": "/magic-link/magic-link", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent an email to {{ email }}.

    Click the link in the email to continue to report an outbreak.



    If you've not received an email

    Check your spam or junk folder.

    If you’ve not received the email, you can resubmit the email in 5 minutes.

    ", + "schema": {} + }, + { + "name": "alert", + "type": "ContentWithState", + "options": { + "exposeToContext": true, + "stateVariable": "minutesRemaining" + }, + "content": "{% if minutesRemaining %}
    WarningYou must wait {% if minutesRemaining == 1 %}1 minute{% else %}{{ minutesRemaining }} minutes{% endif %} before resubmitting the email
    {% endif %}" + }, + { + "name": "SentAnotherEmailButton", + "options": {}, + "type": "Para", + "content": "Send a new email", + "schema": {} + } + ] + }, + { + "path": "/resubmit-email", + "title": "We've sent you another email", + "unauthenticated": true, + "backLinkFallback": "/check-your-email", + "components": [ + { + "name": "SentAnotherEmail", + "options": {}, + "type": "Para", + "content": "We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    ", + "schema": {} + }, + { + "name": "NotReceivedEmail", + "options": {}, + "type": "Para", + "title": "If you've not received an email", + "content": "

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link", + "schema": {} + } + ], + "next": [] + }, + { + "title": "summary", + "path": "/summary", + "controller": "./pages/summary.js", + "components": [] + }, + { + "path": "/email-confirmed", + "title": "Email confirmed", + "components": [ + { + "name": "EmailConfirmed", + "options": {}, + "type": "Para", + "content": "You have successfully confirmed your email address. You can continue to Report an outbreak.

    Continue", + "schema": {} + } + ] + }, + { + "title": "return", + "path": "/return", + "controller": "MagicLinkController", + "components": [] + }, + { + "path": "/incorrect-email", + "title": "Incorrect email link", + "components": [ + { + "name": "IncorrectEmail", + "options": {}, + "type": "Para", + "content": "The email you used does not match the email associated with this link.

    Request a new link", + "schema": {} + } + ] + }, + { + "path": "/expired", + "title": "This link has expired", + "components": [ + { + "type": "Para", + "title": "This link has expired", + "content": "Request a new link", + "name": "blarGGH", + "options": {}, + "schema": {} + } + ] + } + ], + "specialPages": { + "confirmationPage": { + "customText": { + "hidePanel": true, + "nextSteps": "Back

    We've sent you another email

    We’ve sent another email to {{ email }}.

    Click the link in the email to continue to report an outbreak.

    If you've not received an email

    Check your spam or junk folder.

    If you’ve still not received the email in 5 minutes, you need to request a new link.

    Request a new link" + } + } + }, + "lists": [], + "sections": [], + "name": "Report an outbreak (Magic Link)", + "phaseBanner": { + "phase": "beta" + }, + "metadata": {}, + "fees": [], + "outputs": [ + { + "name": "magiclink", + "title": "CareOBRA MagicLink", + "type": "notify", + "outputConfiguration": { + "apiKey": "${notifyApiKey}", + "templateId": "${NotifyTemplateId}", + "emailField": "email", + "addReferencesToPersonalisation": false, + "personalisation": ["email", "hmacSignature", "hmacExpiryTime"], + "hmacKey": "${HmacKey}" + } + } + ], + "jwtKey": "${jwtKey}", + "feedback": { + "feedbackForm": true, + "url": "/feedback" + }, + "version": 2, + "conditions": [] +} diff --git a/runner/src/server/index.ts b/runner/src/server/index.ts index 2229358226..b1a22371cf 100644 --- a/runner/src/server/index.ts +++ b/runner/src/server/index.ts @@ -26,6 +26,7 @@ import { AddressService, CacheService, catboxProvider, + MagicLinkCacheService, NotifyService, PayService, StatusService, @@ -33,6 +34,9 @@ import { MockUploadService, WebhookService, ExitService, + FormSecurityService, + SecureFormSubmissionService, + getSecureFormSubmissionServiceInstance, } from "./services"; import { HapiRequest, HapiResponseToolkit, RouteConfig } from "./types"; import getRequestInfo from "./utils/getRequestInfo"; @@ -40,6 +44,7 @@ import { pluginQueue } from "server/plugins/queue"; import { QueueStatusService } from "server/services/queueStatusService"; import { MySqlQueueService } from "server/services/mySqlQueueService"; import { PgBossQueueService } from "server/services/pgBossQueueService"; +import { isValidSecureFormSubmissionConfig } from "./utils/isValidSecureFormSubmissionConfig"; const serverOptions = (): ServerOptions => { const hasCertificate = config.sslKey && config.sslCert; @@ -109,11 +114,13 @@ async function createServer(routeConfig: RouteConfig) { server.registerService([ CacheService, + MagicLinkCacheService, NotifyService, PayService, WebhookService, AddressService, ExitService, + FormSecurityService, ]); if (!config.documentUploadApiUrl) { server.registerService([ @@ -171,6 +178,30 @@ async function createServer(routeConfig: RouteConfig) { return h.continue; }); + const enginePlugin = configureEnginePlugin( + formFileName, + formFilePath, + options + ); + + for (const form of enginePlugin.options.configs) { + const formId = form.id; + + if ( + isValidSecureFormSubmissionConfig( + form.configuration.secureFormSubmissionConfig + ) + ) { + const instanceName = getSecureFormSubmissionServiceInstance(formId); + const namedService = new SecureFormSubmissionService( + form.configuration.secureFormSubmissionConfig + ); + await server.registerService( + Schmervice.withName(instanceName, namedService) + ); + } + } + await server.register(pluginLocale); await server.register(pluginViews); await server.register( diff --git a/runner/src/server/plugins/applicationStatus/index.ts b/runner/src/server/plugins/applicationStatus/index.ts index 97648fa11c..f2e65007a2 100644 --- a/runner/src/server/plugins/applicationStatus/index.ts +++ b/runner/src/server/plugins/applicationStatus/index.ts @@ -71,13 +71,37 @@ const index = { form, newReference ); + viewModel.name = form.name; + viewModel.feedbackLink = form.def.feedback.url; + + const confirmationTimeout = + form.def.confirmationSessionTimeout ?? + config.confirmationSessionTimeout; + + await cacheService.setConfirmationState( + request, + { confirmation: viewModel }, + confirmationTimeout + ); - const confirmationTimeout = form.def.confirmationSessionTimeout ?? config.confirmationSessionTimeout; - - await cacheService.setConfirmationState(request, { confirmation: viewModel }, confirmationTimeout); - await cacheService.clearState(request); + h.unstate("magicLinkRetry", { + path: "/", + isSecure: true, + isHttpOnly: true, + encoding: "base64json", + strictHeader: true, + }); + + h.unstate("auth_token", { + path: "/", + isSecure: true, + isHttpOnly: true, + encoding: "none", + isSameSite: "Lax", + }); + return h.view("confirmation", viewModel); }, }, diff --git a/runner/src/server/plugins/crumb.ts b/runner/src/server/plugins/crumb.ts index b9ec45596a..80483a0c05 100644 --- a/runner/src/server/plugins/crumb.ts +++ b/runner/src/server/plugins/crumb.ts @@ -13,7 +13,7 @@ export const configureCrumbPlugin = ( enforce: routeConfig?.enforceCsrf ?? config?.enforceCsrf, cookieOptions: { path: "/", - isSecure: !config.isDev, + isSecure: config.httpsCookieSecureAttribute, isHttpOnly: true, isSameSite: "Strict", }, diff --git a/runner/src/server/plugins/engine/components/CheckboxesField.ts b/runner/src/server/plugins/engine/components/CheckboxesField.ts index 607d9f085e..8298f139a4 100644 --- a/runner/src/server/plugins/engine/components/CheckboxesField.ts +++ b/runner/src/server/plugins/engine/components/CheckboxesField.ts @@ -12,15 +12,20 @@ export class CheckboxesField extends SelectionControlField { let schema = joi.array().single().label(def.title.toLowerCase()); + schema = schema.items(joi[this.listType]().allow(...this.values)); + if (options.required === false) { - // null or empty string is valid for optional fields - schema = schema - .empty(null) - .items(joi[this.listType]().allow(...this.values, "")); + schema = schema.empty(null).allow(""); } else { - schema = schema - .items(joi[this.listType]().allow(...this.values)) - .required(); + schema = schema.required(); + } + + if (options.finalValue) { + schema = schema.custom((value, helpers) => + value.includes(options.finalValue) && value.length > 1 + ? helpers.error("any.invalid") + : value + ); } if (options.customValidationMessages) { @@ -51,9 +56,18 @@ export class CheckboxesField extends SelectionControlField { formDataItems = (formData[this.name] ?? "").split(","); } - viewModel.items = (viewModel.items ?? []).map((item) => ({ + // Get the original items array + const items = viewModel.items ?? []; + + // Uses https://github.com/alphagov/govuk-design-system/blob/main/src/components/checkboxes/with-none-option/index.njk + // to handle divider and "None" option + viewModel.items = (viewModel.items ?? items).map((item, index, arr) => ({ ...item, - checked: !!formDataItems.find((i) => `${item.value}` === i), + checked: formDataItems.includes(`${item.value}`), + ...(this.options.divider && + index === arr.length - 1 && { behaviour: "exclusive" }), + ...(this.options.divider && + index === arr.length - 2 && { divider: "or" }), })); return viewModel; diff --git a/runner/src/server/plugins/engine/components/ContactDetailsCollection.ts b/runner/src/server/plugins/engine/components/ContactDetailsCollection.ts new file mode 100644 index 0000000000..450c903910 --- /dev/null +++ b/runner/src/server/plugins/engine/components/ContactDetailsCollection.ts @@ -0,0 +1,195 @@ +import { Schema } from "joi"; +import { InputFieldsComponentsDef } from "@xgovformbuilder/model"; +import Joi from "joi"; + +import { FormComponent } from "./FormComponent"; +import { ComponentCollection } from "./ComponentCollection"; +import { + FormData, + FormPayload, + FormSubmissionErrors, + FormSubmissionState, +} from "../types"; +import { FormModel } from "../models"; +import { ListItem } from "./types"; + +/** + * Composite component rendering mobile number + email + landline inside a single fieldset, + * with a cross-field rule: at least one of the mobile or email must be provided (when the + * component is required). + * + * The "at least one" rule is enforced in Pass 1 (form schema) via a synthetic + * key on `this.name`. A hidden with the same name is rendered alongside + * the visible inputs so that key is always present in the payload — Joi only + * runs validators on keys that exist in the input being validated. + */ +export class ContactDetailsCollection extends FormComponent { + children: ComponentCollection; + + // Joi schema for the cross-field "at least one of mobile/email" rule. + // Attached to the synthetic [this.name] key in the form schema. + private contactRequiredSchema: Joi.Schema; + + constructor(def: InputFieldsComponentsDef, model: FormModel) { + super(def, model); + + this.children = new ComponentCollection( + [ + { + name: "mobile_number", + options: { + required: false, + optionalText: false, + customValidationMessages: { + "string.pattern.base": + "Enter a mobile number in the correct format", + }, + }, + type: "TelephoneNumberField", + title: "Mobile number", + hint: "For example, 07700 900999", + schema: { + regex: + "^(((\\+44\\s?\\d{4}|\\(?0\\d{4}\\)?)\\s?\\d{3}\\s?\\d{3})|((\\+44\\s?\\d{3}|\\(?0\\d{3}\\)?)\\s?\\d{3}\\s?\\d{4})|((\\+44\\s?\\d{2}|\\(?0\\d{2}\\)?)\\s?\\d{4}\\s?\\d{4}))(\\s?#(\\d{4}|\\d{3}))?$", + }, + }, + { + name: "landline_number", + options: { required: false, optionalText: false }, + type: "TelephoneNumberField", + title: "Landline number", + hint: "For example, 020 7123 4567", + schema: { + regex: "^0([1-6][\\s\\d]{8,12})$", + }, + }, + { + type: "EmailAddressField", + name: "email_address", + title: "Email address", + hint: "For example, name@example.com", + options: { + required: false, + optionalText: false, + customValidationMessages: { + "string.email": "Enter an email address in the correct format", + }, + }, + }, + // Hidden carrier field for the "at least one" cross-field rule. + // attaches the custom validator to this name, and Joi only runs + // validators on keys present in the payload. Removing this field + // silently disables the cross-field check. + { + type: "TextField", + name: this.name, + title: "Contact details", + schema: {}, + options: { + classes: "govuk-!-display-none", + hideTitle: true, + disableChangingFromSummary: true, + allowPrePopulationOverwrite: true, + required: false, + }, + }, + ] as any, + model + ); + + // State schema (Pass 2) — shape only + this.stateSchema = Joi.object({ + mobile_number: Joi.string().empty(["", null]), + email_address: Joi.string().empty(["", null]).email(), + }); + + // Cross-field rule enforcing "at least one of mobile/email" when the component is required. + // Injected as callback on the synthetic [this.name] key in getFormSchemaKeys. + this.contactRequiredSchema = Joi.any() + .custom((value, helpers) => { + const root = helpers.state.ancestors[0] as any; + const hasMobile = + root?.mobile_number && String(root.mobile_number).trim() !== ""; + const hasEmail = + root?.email_address && String(root.email_address).trim() !== ""; + if (!hasMobile && !hasEmail) { + return helpers.error("any.invalid"); + } + return value; + }) + .messages({ + "any.invalid": + (this.options as any)?.customValidationMessages?.["any.required"] ?? + "Enter a mobile number or email address so we can contact you", + }); + } + + getFormSchemaKeys() { + // Inherit child keys, then add the synthetic key for the cross-field rule. + const childrenKeys = this.children.getFormSchemaKeys(); + const isRequired = (this.options as any)?.required !== false; + + if (!isRequired) return childrenKeys; + + return { + ...childrenKeys, + [this.name]: this.contactRequiredSchema, + }; + } + + getStateSchemaKeys() { + return { [this.name]: this.stateSchema as Schema }; + } + + getFormDataFromState(state: FormSubmissionState) { + const value = state[this.name] ?? {}; + return { + mobile_number: value.mobile_number ?? "", + email_address: value.email_address ?? "", + }; + } + + getStateValueFromValidForm(payload: FormPayload) { + return { + mobile_number: payload["mobile_number"] || null, + email_address: payload["email_address"] || null, + }; + } + + getDisplayStringFromState(state: FormSubmissionState) { + const value = state[this.name]; + if (!value) return ""; + return [value.mobile_number, value.email_address] + .filter(Boolean) + .join(", "); + } + + getViewModel(formData: FormData, errors: FormSubmissionErrors) { + const viewModel = super.getViewModel(formData, errors); + + // Filter out error from hidden field + const childErrors: FormSubmissionErrors | undefined = errors + ? { + ...errors, + errorList: + errors.errorList?.filter((e) => e.name !== this.name) ?? [], + } + : errors; + + const componentViewModels = this.children + .getViewModel(formData, childErrors) + .map((vm) => vm.model); + + componentViewModels.forEach((cvm: any) => { + if (cvm.errorMessage) { + cvm.classes = `${cvm.classes ?? ""} govuk-input--error`.trim(); + } + }); + + return { + ...viewModel, + fieldset: { legend: viewModel.label }, + items: (componentViewModels as unknown) as ListItem[], + }; + } +} diff --git a/runner/src/server/plugins/engine/components/ContentWithState.ts b/runner/src/server/plugins/engine/components/ContentWithState.ts new file mode 100644 index 0000000000..c0bb8fdf82 --- /dev/null +++ b/runner/src/server/plugins/engine/components/ContentWithState.ts @@ -0,0 +1,55 @@ +import { FormData, FormSubmissionErrors, FormSubmissionState } from "../types"; +import config from "../../../config"; +import nunjucks from "nunjucks"; +import { FormComponent } from "./FormComponent"; +import _ from "lodash"; + +export class ContentWithState extends FormComponent { + getFormDataFromState(state: FormSubmissionState) { + const name = this.name; + const section = this.section; + let path = ""; + const result = {}; + const options: any = this.options || {}; + const stateVariable = options.stateVariable; + + if (section && section in state) { + path = `${section}.`; + state = { + ...state[section], + }; + } + + if (name in state) { + _.set(result, `${path}${name}`, this.getFormValueFromState(state)); + } + + // Use the configurable stateVariable from options + if (stateVariable in state) { + _.set(result, `${path}${stateVariable}`, state[stateVariable].toString()); + } + + return result; + } + + getViewModel(formData: FormData, errors: FormSubmissionErrors) { + const options: any = this.options; + + let content = this.content; + if (config.allowUserTemplates) { + content = nunjucks.renderString(content, { + ...formData, + }); + } + + const viewModel = { + ...super.getViewModel(formData, errors), + content: content, + }; + + if (options.condition) { + viewModel.condition = options.condition; + } + return viewModel; + } +} diff --git a/runner/src/server/plugins/engine/components/DatePartsField.ts b/runner/src/server/plugins/engine/components/DatePartsField.ts index 7237cae218..f516589818 100644 --- a/runner/src/server/plugins/engine/components/DatePartsField.ts +++ b/runner/src/server/plugins/engine/components/DatePartsField.ts @@ -1,4 +1,4 @@ -import { add, sub, parseISO, format } from "date-fns"; +import { parseISO, format } from "date-fns"; import { InputFieldsComponentsDef } from "@xgovformbuilder/model"; import { FormComponent } from "./FormComponent"; @@ -31,15 +31,21 @@ export class DatePartsField extends FormComponent { type: "NumberField", name: `${name}__day`, title: "Day", - schema: { min: 1, max: 31 }, + schema: { min: 1, max: 31, integer: true }, options: { required: isRequired, optionalText: optionalText, classes: "govuk-input--width-2", customValidationMessages: { - "number.min": "{{#label}} must be between 1 and 31", - "number.max": "{{#label}} must be between 1 and 31", - "number.base": `${def.title} must include a day`, + "number.min": + def.options?.customValidationMessages?.["date.base"] || + "{{#label}} must be between 1 and 31", + "number.max": + def.options?.customValidationMessages?.["date.base"] || + "{{#label}} must be between 1 and 31", + "number.base": `${ + def.errorLabel ?? def.title + } must include a day`, }, }, hint: "", @@ -48,15 +54,21 @@ export class DatePartsField extends FormComponent { type: "NumberField", name: `${name}__month`, title: "Month", - schema: { min: 1, max: 12 }, + schema: { min: 1, max: 12, integer: true }, options: { required: isRequired, optionalText: optionalText, classes: "govuk-input--width-2", customValidationMessages: { - "number.min": "{{#label}} must be between 1 and 12", - "number.max": "{{#label}} must be between 1 and 12", - "number.base": `${def.title} must include a month`, + "number.min": + def.options?.customValidationMessages?.["date.base"] || + "{{#label}} must be between 1 and 12", + "number.max": + def.options?.customValidationMessages?.["date.base"] || + "{{#label}} must be between 1 and 12", + "number.base": `${ + def.errorLabel ?? def.title + } must include a month`, }, }, hint: "", @@ -65,13 +77,19 @@ export class DatePartsField extends FormComponent { type: "NumberField", name: `${name}__year`, title: "Year", - schema: { min: 1000, max: 3000 }, + schema: { min: 1000, max: 3000, integer: true }, options: { required: isRequired, optionalText: optionalText, classes: "govuk-input--width-4", customValidationMessages: { - "number.base": `${def.title} must include a year`, + "number.min": `${ + def.options?.customValidationMessages?.["date.min"] || + "year must be 1000 or higher" + }`, + "number.base": `${ + def.errorLabel ?? def.title + } must include a year`, }, }, hint: "", @@ -95,6 +113,7 @@ export class DatePartsField extends FormComponent { schema = schema.custom( helpers.getCustomDateValidator(maxDaysInPast, maxDaysInFuture) ); + if (options.customValidationMessages) { schema = schema.messages(options.customValidationMessages); } @@ -118,6 +137,27 @@ export class DatePartsField extends FormComponent { getStateValueFromValidForm(payload: FormPayload) { const name = this.name; + const day = payload[`${name}__day`]; + const month = payload[`${name}__month`]; + const year = payload[`${name}__year`]; + + // If any of the date parts are missing, return null + if (!day || !month || !year) { + return null; + } + + // Convert to Date object (month is 0-indexed) + const date = new Date(year, month - 1, day); + + // Check if the reconstructed date matches the input + if ( + date.getFullYear() !== year || + date.getMonth() !== month - 1 || // Convert back to 1-indexed + date.getDate() !== day + ) { + console.error("Invalid date detected:", { day, month, year }); + return null; // Invalid date + } return payload[`${name}__year`] ? new Date( diff --git a/runner/src/server/plugins/engine/components/Details.ts b/runner/src/server/plugins/engine/components/Details.ts index 0206d35007..0e3c63f9fe 100644 --- a/runner/src/server/plugins/engine/components/Details.ts +++ b/runner/src/server/plugins/engine/components/Details.ts @@ -1,5 +1,7 @@ import { FormData, FormSubmissionErrors } from "../types"; import { ComponentBase } from "./ComponentBase"; +import config from "../../../config"; +import nunjucks from "nunjucks"; export class Details extends ComponentBase { getViewModel(formData: FormData, errors: FormSubmissionErrors) { @@ -11,6 +13,10 @@ export class Details extends ComponentBase { html: this.content, }; + if (config.allowUserTemplates) { + viewModel.html = nunjucks.renderString(viewModel.html, { ...formData }); + } + if ("condition" in options && options.condition) { viewModel.condition = options.condition; } diff --git a/runner/src/server/plugins/engine/components/EmailAddressField.ts b/runner/src/server/plugins/engine/components/EmailAddressField.ts index 32cc48b548..789fb491d3 100644 --- a/runner/src/server/plugins/engine/components/EmailAddressField.ts +++ b/runner/src/server/plugins/engine/components/EmailAddressField.ts @@ -3,25 +3,45 @@ import { InputFieldsComponentsDef } from "@xgovformbuilder/model"; import { FormModel } from "../models"; import { FormData, FormSubmissionErrors } from "../types"; import { FormComponent } from "./FormComponent"; -import { - getStateSchemaKeys, - getFormSchemaKeys, - addClassOptionIfNone, -} from "./helpers"; +import { addClassOptionIfNone } from "./helpers"; +import joi, { Schema } from "joi"; + +const EMAIL_REGEX = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"; export class EmailAddressField extends FormComponent { + formSchema; + stateSchema; + constructor(def: InputFieldsComponentsDef, model: FormModel) { super(def, model); this.schema["email"] = true; + addClassOptionIfNone(this.options, "govuk-input--width-20"); + + // Define Joi schema for email validation + let emailSchema = joi.string(); + + if (this.options.required === false) { + emailSchema = emailSchema.allow("").allow(null); + } + + const pattern = new RegExp(EMAIL_REGEX); + emailSchema = emailSchema.pattern(pattern); + + if (this.options.customValidationMessages) { + emailSchema = emailSchema.messages(this.options.customValidationMessages); + } + + this.formSchema = emailSchema; + this.stateSchema = emailSchema; } getFormSchemaKeys() { - return getFormSchemaKeys(this.name, "string", this); + return { [this.name]: this.formSchema as Schema }; } getStateSchemaKeys() { - return getStateSchemaKeys(this.name, "string", this); + return { [this.name]: this.stateSchema as Schema }; } getViewModel(formData: FormData, errors: FormSubmissionErrors) { @@ -35,7 +55,9 @@ export class EmailAddressField extends FormComponent { } viewModel.type = "email"; - viewModel.autocomplete = this.options.autocomplete ? this.options.autocomplete : "email"; + viewModel.autocomplete = this.options.autocomplete + ? this.options.autocomplete + : "email"; return viewModel; } diff --git a/runner/src/server/plugins/engine/components/NumberField.ts b/runner/src/server/plugins/engine/components/NumberField.ts index 0d2e4f303f..d9ecf948f1 100644 --- a/runner/src/server/plugins/engine/components/NumberField.ts +++ b/runner/src/server/plugins/engine/components/NumberField.ts @@ -14,7 +14,7 @@ export class NumberField extends FormComponent { this.schemaOptions = schema; this.options = options; - const { min, max } = schema; + const { min, max, integer } = schema; let componentSchema = joi.number(); componentSchema = componentSchema.label(def.title.toLowerCase()); @@ -27,6 +27,11 @@ export class NumberField extends FormComponent { componentSchema = componentSchema.max(max); } + // Add this block to enforce integer validation + if (integer === true) { + componentSchema = componentSchema.integer(); + } + if (options.customValidationMessage) { componentSchema = componentSchema.rule({ message: def.options.customValidationMessage, diff --git a/runner/src/server/plugins/engine/components/Para.ts b/runner/src/server/plugins/engine/components/Para.ts index 1845583a4f..329826d9e6 100644 --- a/runner/src/server/plugins/engine/components/Para.ts +++ b/runner/src/server/plugins/engine/components/Para.ts @@ -1,12 +1,19 @@ import { ComponentBase } from "./ComponentBase"; import { FormData, FormSubmissionErrors } from "../types"; +import config from "../../../config"; +import nunjucks from "nunjucks"; export class Para extends ComponentBase { getViewModel(formData: FormData, errors: FormSubmissionErrors) { const options: any = this.options; + + let content = this.content; + if (config.allowUserTemplates) { + content = nunjucks.renderString(content, { ...formData }); + } const viewModel = { ...super.getViewModel(formData, errors), - content: this.content, + content: content, }; if (options.condition) { diff --git a/runner/src/server/plugins/engine/components/SelectionControlField.ts b/runner/src/server/plugins/engine/components/SelectionControlField.ts index ad77eba1f4..ddf87de927 100644 --- a/runner/src/server/plugins/engine/components/SelectionControlField.ts +++ b/runner/src/server/plugins/engine/components/SelectionControlField.ts @@ -1,11 +1,129 @@ +import joi from "joi"; +import nunjucks from "nunjucks"; + import { ListFormComponent } from "server/plugins/engine/components/ListFormComponent"; import { FormData, FormSubmissionErrors } from "server/plugins/engine/types"; import { ListItem } from "server/plugins/engine/components/types"; +import { ComponentCollection } from "./ComponentCollection"; + +const getSchemaKeys = Symbol("getSchemaKeys"); + /** * "Selection controls" are checkboxes and radios (and switches), as per Material UI nomenclature. */ export class SelectionControlField extends ListFormComponent { + conditionallyRevealedComponents?: any; + hasConditionallyRevealedComponents: boolean = false; + + constructor(def, model) { + super(def, model); + const { options } = def; + this.options = options; + + const { items } = this; + + if (options.conditionallyRevealedComponents) { + this.conditionallyRevealedComponents = + options.conditionallyRevealedComponents; + + for (const item of items) { + let conditionallyRevealedComponent = this + .conditionallyRevealedComponents[item.value]; + + if (conditionallyRevealedComponent != undefined) { + // Pass custom validation messages to the conditionally revealed component + if (options.customValidationMessages) { + conditionallyRevealedComponent.options = + conditionallyRevealedComponent.options || {}; + conditionallyRevealedComponent.options.customValidationMessages = + conditionallyRevealedComponent.options.customValidationMessages || + {}; + + // Merge parent validation messages with child validation messages + Object.assign( + conditionallyRevealedComponent.options.customValidationMessages, + options.customValidationMessages + ); + } + + item.hasConditionallyRevealedComponents = true; + item.conditionallyRevealedComponents = new ComponentCollection( + [conditionallyRevealedComponent], + item.model + ); + } + } + } + } + + getStateFromValidForm(payload: FormPayload) { + const state = super.getStateFromValidForm(payload); + const itemsWithConditionalComponents = this.items.filter( + (item: any) => item.conditionallyRevealedComponents + ); + const selectedItemsWithConditionalComponents = itemsWithConditionalComponents?.filter( + (item) => { + if (payload[this.name] && Array.isArray(payload[this.name])) { + return payload[this.name].find( + (nestedItem) => item.value === nestedItem + ); + } else { + return item.value === payload[this.name]; + } + } + ); + // Add selected form data associated with conditionally revealed content to the state. + selectedItemsWithConditionalComponents?.forEach((item: any) => + Object.assign( + state, + item.conditionallyRevealedComponents.getStateFromValidForm(payload) + ) + ); + // Add null values to the state for unselected form data associated with conditionally revealed content. + // This will allow changes in the visibility of conditionally revealed content to be reflected in state correctly. + const unselectedItemsWithConditionalComponents = itemsWithConditionalComponents?.filter( + (item) => !selectedItemsWithConditionalComponents?.includes(item) + ); + unselectedItemsWithConditionalComponents?.forEach((item: any) => { + const stateFromValidForm = item.conditionallyRevealedComponents.getStateFromValidForm( + payload + ); + Object.values(item.conditionallyRevealedComponents.items) + .filter( + (conditionalItem: any) => stateFromValidForm[conditionalItem.name] + ) + .forEach((key: any) => { + const conditionalItemToNull = key.name; + Object.assign(stateFromValidForm, { [conditionalItemToNull]: null }); + }); + Object.assign(state, stateFromValidForm); + }); + return state; + } + + getFormDataFromState(state: FormSubmissionState) { + const formData = super.getFormDataFromState(state); + if (formData) { + const itemsWithConditionalComponents = this.items.filter( + (item: any) => item.conditionallyRevealedComponents + ); + itemsWithConditionalComponents?.forEach((item: any) => { + const itemFormDataFromState = item.conditionallyRevealedComponents.getFormDataFromState( + state + ); + if ( + itemFormDataFromState && + Object.keys(itemFormDataFromState).length > 0 + ) { + Object.assign(formData, itemFormDataFromState); + } + }); + } + + return formData; + } + getViewModel(formData: FormData, errors: FormSubmissionErrors) { const { name, items } = this; const options: any = this.options; @@ -20,7 +138,7 @@ export class SelectionControlField extends ListFormComponent { }, }; - viewModel.items = items.map((item) => { + viewModel.items = items.map((item: any) => { const itemModel: ListItem = { text: item.text, value: item.value, @@ -39,11 +157,80 @@ export class SelectionControlField extends ListFormComponent { }; } - return itemModel; + if (options.conditionallyRevealedComponents?.[item.value]) { + // The gov.uk design system Nunjucks examples for conditional reveal reference variables from macros. There does not appear to + // to be a way to do this in JavaScript. As such, render the conditional components with Nunjucks before the main view is rendered. + // The conditional html tag used by the gov.uk design system macro will reference HTML rarther than one or more additional + // gov.uk design system macros. + + let viewModel = item.conditionallyRevealedComponents.getViewModel( + formData, + errors + ); - // FIXME:- add this back when GDS fix accessibility issues involving conditional reveal fields - //return super.addConditionalComponents(item, itemModel, formData, errors); + viewModel.forEach((component) => { + if (component.model.label) { + component.model.label.classes = "govuk-label"; + } + }); + + itemModel.conditional = { + html: nunjucks.render( + "../views/partials/conditional-components.html", + { + components: viewModel, + } + ), + }; + } + + return itemModel; }); return viewModel; } + + getStateSchemaKeys() { + return this[getSchemaKeys]("state"); + } + + getFormSchemaKeys() { + return this[getSchemaKeys]("form"); + } + + [getSchemaKeys](schemaType) { + const schemaName = `${schemaType}Schema`; + const schemaKeysFunctionName = `get${schemaType + .substring(0, 1) + .toUpperCase()}${schemaType.substring(1)}SchemaKeys`; + const filteredItems = this.items.filter( + (item: any) => item.hasConditionallyRevealedComponents + ); + const conditionalName = this.name; + const schemaKeys = { [conditionalName]: this[schemaName] }; + // const schema = this[schemaName]; + // All conditional component values are submitted regardless of their visibilty. + // As such create Joi validation rules such that: + // a) When a conditional component is visible it is required. + // b) When a conditional component is not visible it is optional. + filteredItems?.forEach((item: any) => { + const conditionalSchemaKeys = item.conditionallyRevealedComponents[ + schemaKeysFunctionName + ](); + + const conditionalMessages = + item.conditionallyRevealedComponents.items[0].options + .customValidationMessages || {}; + + Object.keys(conditionalSchemaKeys).forEach((key) => { + let schema = joi.alternatives().conditional(joi.ref(conditionalName), { + is: item.value, + then: conditionalSchemaKeys[key].messages(conditionalMessages), + otherwise: joi.optional(), + }); + schemaKeys[key] = schema; + }); + }); + + return schemaKeys; + } } diff --git a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts index 309d418e80..06e788b9e1 100644 --- a/runner/src/server/plugins/engine/components/TelephoneNumberField.ts +++ b/runner/src/server/plugins/engine/components/TelephoneNumberField.ts @@ -47,7 +47,7 @@ export class TelephoneNumberField extends FormComponent { } this.schema = componentSchema; - addClassOptionIfNone(this.options, "govuk-input--width-10"); + addClassOptionIfNone(this.options, "govuk-input--width-20"); } getFormSchemaKeys() { diff --git a/runner/src/server/plugins/engine/components/TextField.ts b/runner/src/server/plugins/engine/components/TextField.ts index 2acf6d6a34..bc0e1067dc 100644 --- a/runner/src/server/plugins/engine/components/TextField.ts +++ b/runner/src/server/plugins/engine/components/TextField.ts @@ -19,7 +19,7 @@ export class TextField extends FormComponent { addClassOptionIfNone(this.options, "govuk-input--width-20"); - let componentSchema = joi.string().required(); + let componentSchema = joi.string(); if (options.required === false) { componentSchema = componentSchema.optional().allow("").allow(null); } diff --git a/runner/src/server/plugins/engine/components/index.ts b/runner/src/server/plugins/engine/components/index.ts index fab35d4651..1ce2a9e6df 100644 --- a/runner/src/server/plugins/engine/components/index.ts +++ b/runner/src/server/plugins/engine/components/index.ts @@ -11,6 +11,7 @@ export { ComponentCollection } from "./ComponentCollection"; // export { ConditionalFormComponent } from "./ConditionalFormComponent"; export { DateField } from "./DateField"; export { DatePartsField } from "./DatePartsField"; +export { ContactDetailsCollection } from "./ContactDetailsCollection"; export { DateTimeField } from "./DateTimeField"; export { DateTimePartsField } from "./DateTimePartsField"; export { Details } from "./Details"; @@ -34,3 +35,4 @@ export { WebsiteField } from "./WebsiteField"; export { YesNoField } from "./YesNoField"; export { MonthYearField } from "./MonthYearField"; export { ContextComponent } from "./ContextComponent"; +export { ContentWithState } from "./ContentWithState"; diff --git a/runner/src/server/plugins/engine/components/types.ts b/runner/src/server/plugins/engine/components/types.ts index 5597910355..504d691b0b 100644 --- a/runner/src/server/plugins/engine/components/types.ts +++ b/runner/src/server/plugins/engine/components/types.ts @@ -23,6 +23,9 @@ export type ListItem = { selected?: boolean; label?: ListItemLabel; condition?: string; + conditional?: { + html: string; + }; }; // TODO: Break this down for each component (Same as model/Component). diff --git a/runner/src/server/plugins/engine/configureEnginePlugin.ts b/runner/src/server/plugins/engine/configureEnginePlugin.ts index c9e1f1566b..056ff98080 100644 --- a/runner/src/server/plugins/engine/configureEnginePlugin.ts +++ b/runner/src/server/plugins/engine/configureEnginePlugin.ts @@ -7,31 +7,14 @@ import { } from "./services/configurationService"; import { idFromFilename } from "./helpers"; import config from "../../config"; - -type ConfigureEnginePlugin = ( - formFileName?: string, - formFilePath?: string -) => { - plugin: any; - options: { - modelOptions: { - relativeTo: string; - previewMode: any; - }; - configs: { - configuration: any; - id: string; - }[]; - previewMode: boolean; - }; -}; +import { FormDefinition } from "@xgovformbuilder/model"; const relativeTo = __dirname; type EngineOptions = { previewMode?: boolean; }; -export const configureEnginePlugin: ConfigureEnginePlugin = ( +export const configureEnginePlugin = ( formFileName, formFilePath, options?: EngineOptions @@ -41,7 +24,10 @@ export const configureEnginePlugin: ConfigureEnginePlugin = ( if (formFileName && formFilePath) { configs = [ { - configuration: require(path.join(formFilePath, formFileName)), + configuration: require(path.join( + formFilePath, + formFileName + )) as FormDefinition, id: idFromFilename(formFileName), }, ]; diff --git a/runner/src/server/plugins/engine/models/FormModel.ts b/runner/src/server/plugins/engine/models/FormModel.ts index 23d23393c5..31cb3b7908 100644 --- a/runner/src/server/plugins/engine/models/FormModel.ts +++ b/runner/src/server/plugins/engine/models/FormModel.ts @@ -22,6 +22,7 @@ import { ExecutableCondition } from "server/plugins/engine/models/types"; import { DEFAULT_FEE_OPTIONS } from "server/plugins/engine/models/FormModel.feeOptions"; import { ContextComponentCollection } from "server/plugins/engine/components/ContextComponentCollection"; import { ExitOptions } from "server/plugins/engine/models/FormModel.exitOptions"; +import config from "../../../config"; class EvaluationContext { constructor(conditions, value) { @@ -49,6 +50,7 @@ export class FormModel { sections: FormDefinition["sections"] = []; options: any; name: any; + serviceStartPage: any; values: any; returnTo: any; DefaultPageController: any = PageController; @@ -99,6 +101,7 @@ export class FormModel { this.sections = def.sections; this.options = options; this.name = def.name; + this.serviceStartPage = def.fullStartPage || config.serviceStartPage || config.serviceName || "#"; this.returnTo = def.returnTo || false; this.values = result.value; diff --git a/runner/src/server/plugins/engine/models/SummaryViewModel.ts b/runner/src/server/plugins/engine/models/SummaryViewModel.ts index 4efdadc775..f5207dc1c4 100644 --- a/runner/src/server/plugins/engine/models/SummaryViewModel.ts +++ b/runner/src/server/plugins/engine/models/SummaryViewModel.ts @@ -11,6 +11,7 @@ import { HapiRequest } from "src/server/types"; import { InitialiseSessionOptions } from "server/plugins/initialiseSession/types"; import { Outputs } from "server/plugins/engine/models/submission/Outputs"; import { summaryDetailsTransformationMap } from "./SummaryViewModel.detailsTransformationMap"; +import nunjucks from "nunjucks"; import pino from "pino"; const logger = pino().child({ name: "SummaryViewModel" }); @@ -206,7 +207,14 @@ export class SummaryViewModel { sectionPages.forEach((page) => { for (const component of page.components.formItems) { - const item = Item(request, component, sectionState, page, model); + const item = Item( + request, + component, + sectionState, + page, + state, + model + ); if (items.find((cbItem) => cbItem.name === item.name)) return; items.push(item); if (component.items) { @@ -214,9 +222,17 @@ export class SummaryViewModel { const selectedItem = component.items.filter( (i) => i.value === selectedValue )[0]; - if (selectedItem && selectedItem.childrenCollection) { - for (const cc of selectedItem.childrenCollection.formItems) { - const cItem = Item(request, cc, sectionState, page, model); + if (selectedItem && selectedItem.conditionallyRevealedComponents) { + for (const cc of selectedItem.conditionallyRevealedComponents + .formItems) { + const cItem = Item( + request, + cc, + sectionState, + page, + state, + model + ); items.push(cItem); } } @@ -346,6 +362,17 @@ function gatherRepeatPages(state) { }); } +function renderTemplate(str: string, context: object): string { + if ( + !config.allowUserTemplates || + typeof str !== "string" || + !str.includes("{{") + ) { + return str; + } + return nunjucks.renderString(str, context); +} + /** * Creates an Item object for Details */ @@ -354,6 +381,7 @@ function Item( component, sectionState, page, + state, model: FormModel, params: { num?: number; returnUrl: string } = { returnUrl: redirectUrl(request, `/${model.basePath}/summary`), @@ -368,7 +396,7 @@ function Item( (acc: {}, p: any) => ({ ...acc, ...p }), {} ); - return Item(request, component, collated, page, model, { + return Item(request, component, collated, page, state, model, { ...params, num: i + 1, }); @@ -378,7 +406,10 @@ function Item( const item = { name: component.name, path: page.path, - label: component.localisedString(component.title), + label: renderTemplate(component.localisedString(component.title), { + ...state, + ...sectionState, + }), value: component.getDisplayStringFromState(sectionState), rawValue: sectionState[component.name], url: redirectUrl(request, `/${model.basePath}${page.path}`, params), diff --git a/runner/src/server/plugins/engine/models/submission/EmailModel.ts b/runner/src/server/plugins/engine/models/submission/EmailModel.ts index 20a5b7ebbe..384a156709 100644 --- a/runner/src/server/plugins/engine/models/submission/EmailModel.ts +++ b/runner/src/server/plugins/engine/models/submission/EmailModel.ts @@ -1,9 +1,7 @@ import { FormModel } from "server/plugins/engine/models"; import { TEmailModel } from "./types"; -import config from "server/config"; import { EmailOutputConfiguration } from "@xgovformbuilder/model"; import { WebhookData } from "server/plugins/engine/models/types"; -const { notifyTemplateId, notifyAPIKey } = config; /** * returns an object used for sending email requests. Used by {@link SummaryViewModel} @@ -31,8 +29,8 @@ export function EmailModel( formName, formPayload: data.join("\r\n"), }, - apiKey: notifyAPIKey, - templateId: notifyTemplateId, + apiKey: outputConfiguration.apiKey, + templateId: outputConfiguration.notifyTemplateId, emailAddress: outputConfiguration.emailAddress, }; } diff --git a/runner/src/server/plugins/engine/models/submission/NotifyModel.ts b/runner/src/server/plugins/engine/models/submission/NotifyModel.ts index f005f432fc..30483f0824 100644 --- a/runner/src/server/plugins/engine/models/submission/NotifyModel.ts +++ b/runner/src/server/plugins/engine/models/submission/NotifyModel.ts @@ -37,9 +37,10 @@ export function NotifyModel( personalisationFieldCustomisation = {}, emailReplyToIdConfiguration, escapeURLs = false, - templateId, } = outputConfiguration; + let { templateId } = outputConfiguration; + // @ts-ignore - eslint does not report this as an error, only tsc const personalisation: NotifyModel["personalisation"] = personalisationConfiguration.reduce( (acc, curr) => { diff --git a/runner/src/server/plugins/engine/models/submission/WebhookModel.ts b/runner/src/server/plugins/engine/models/submission/WebhookModel.ts index efdd8488b7..f8d16664af 100644 --- a/runner/src/server/plugins/engine/models/submission/WebhookModel.ts +++ b/runner/src/server/plugins/engine/models/submission/WebhookModel.ts @@ -8,6 +8,7 @@ import { Field } from "server/schemas/types"; import { PageControllerBase } from "server/plugins/engine/pageControllers"; import { SelectionControlField } from "server/plugins/engine/components/SelectionControlField"; import nunjucks from "nunjucks"; + export function WebhookModel(model: FormModel, state: FormSubmissionState) { let englishName = `${config.serviceName} ${model.basePath}`; @@ -31,26 +32,43 @@ export function WebhookModel(model: FormModel, state: FormSubmissionState) { } function createToFieldsMap(state: FormSubmissionState) { - return function (component: FormComponent | SelectionControlField): Field { - // @ts-ignore - This block of code should not be hit since childrenCollection no - if (component.items?.childrenCollection?.formItems) { - const toField = createToFieldsMap(state); - - /** - * This is currently deprecated whilst GDS fix a known issue with accessibility and conditionally revealed fields - */ - // @ts-ignore - const nestedComponent = component?.items?.childrenCollection.formItems; - const nestedFields = nestedComponent?.map(toField); - - return nestedFields; + return function (component: FormComponent | SelectionControlField): Field[] { + if (component instanceof SelectionControlField) { + const selectedValue = state[component.name]; + const baseField = { + key: component.name, + title: component.title, + type: "list", + answer: fieldAnswerFromComponent(component, state), + }; + + // Check if there are conditional components for the selected value + const selectedItem = component.items.find( + (item) => + item.value === selectedValue && + item.hasConditionallyRevealedComponents + ); + + if (selectedItem?.conditionallyRevealedComponents) { + const toField = createToFieldsMap(state); + const nestedFields = selectedItem.conditionallyRevealedComponents.formItems.flatMap( + toField + ); + + return [baseField, ...nestedFields]; + } + + return [baseField]; } - return { - key: component.name, - title: component.title, - type: component.dataType, - answer: fieldAnswerFromComponent(component, state), - }; + + return [ + { + key: component.name, + title: component.title, + type: component.dataType, + answer: fieldAnswerFromComponent(component, state), + }, + ]; }; } @@ -59,8 +77,6 @@ function pagesToQuestions( state: FormSubmissionState, index = 0 ) { - // TODO - index should come from the current iteration of the section. - let sectionState = state; if (page.section) { sectionState = state[page.section.name]; @@ -82,7 +98,7 @@ function pagesToQuestions( } function fieldAnswerFromComponent( - component: FormComponent, + component: FormComponent | SelectionControlField, state: FormSubmissionState = {} ) { if (!component) { @@ -90,15 +106,33 @@ function fieldAnswerFromComponent( } const rawValue = state?.[component.name]; + // Handle SelectionControlField + if (component instanceof SelectionControlField) { + // If it's a selection control, we want to return both the selected value + // and any conditional component values + const selectedValue = rawValue; + + // Find the selected item to get its display text + const selectedItem = component.items.find( + (item) => item.value === selectedValue + ); + + return selectedItem ? selectedItem.text : selectedValue; + } + switch (component.dataType) { case "list": return rawValue; case "date": - return format(new Date(rawValue), "yyyy-MM-dd"); + return rawValue ? format(new Date(rawValue), "yyyy-MM-dd") : undefined; case "monthYear": + if (!rawValue) return undefined; const [month, year] = Object.values(rawValue); return format(new Date(`${year}-${month}-1`), "yyyy-MM"); default: - return component.getDisplayStringFromState(state); + if (typeof component.getDisplayStringFromState === "function") { + return component.getDisplayStringFromState(state); + } + return rawValue; } } diff --git a/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts new file mode 100644 index 0000000000..5dd216160c --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/CheckpointSummaryPageController.ts @@ -0,0 +1,200 @@ +import { HapiRequest, HapiResponseToolkit } from "server/types"; +import { PageController } from "server/plugins/engine/pageControllers/PageController"; + +import { FormComponent } from "server/plugins/engine/components"; +import { PageControllerBase } from "server/plugins/engine/pageControllers/PageControllerBase"; +import { FormModel } from "server/plugins/engine/models"; +import { CheckpointSummaryPage } from "@xgovformbuilder/model"; + +const DEFAULT_OPTIONS = { + customText: {}, +}; + +export class CheckpointSummaryPageController extends PageController { + returnUrlParameter: string; + options: CheckpointSummaryPage["options"]; + + constructor(model: FormModel, pageDef: CheckpointSummaryPage) { + super(model, pageDef); + + const returnPath = `/${this.model.basePath}${this.path}`; + this.returnUrlParameter = `?returnUrl=${encodeURIComponent(returnPath)}`; + this.options = pageDef?.options ?? DEFAULT_OPTIONS; + this.options.customText ??= DEFAULT_OPTIONS.customText; + } + /** + * Returns an async function. This is called in plugin.ts when there is a GET request at `/{id}/{path*}`, + */ + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + this.langFromRequest(request); + + const viewModel = await this.summaryViewModel(request); + + return h.view("checkpoint-summary", viewModel); + }; + } + + /** + * Returns an async function. This is called in plugin.ts when there is a POST request at `/{id}/{path*}`. + * If a form is incomplete, a user will be redirected to the start page. + */ + makePostRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + const { cacheService } = request.services([]); + const model = this.model; + const state = await cacheService.getState(request); + + request.yar.set("basePath", model.basePath); + + const nextPage = this.getNext(state); + return h.redirect(nextPage); + }; + } + + get postRouteOptions() { + return { + ext: { + onPreHandler: { + method: async (_request: HapiRequest, h: HapiResponseToolkit) => { + return h.continue; + }, + }, + }, + }; + } + + async summaryViewModel(request: HapiRequest) { + const { cacheService } = request.services([]); + const state = await cacheService.getState(request); + const { progress = [] } = state; + + const { relevantPages } = this.model.getRelevantPages(state); + + const rowsBySection = relevantPages.reduce((prev, page) => { + let displaySectionName; + if (this.options?.multiSummary) { + // Use sectionForMultiSummaryPages, otherwise use section name + displaySectionName = + page.sectionForMultiSummaryPages || page.section?.name; + } else { + // Use sectionForExitJourneySummaryPages for grouping if available, otherwise use section name + displaySectionName = + page.sectionForExitJourneySummaryPages || page.section?.name; + } + + // Always use section name for state access + const stateSectionName = page.section?.name; + + const section = prev[displaySectionName] ?? []; + let sectionState = stateSectionName + ? state[stateSectionName] || {} + : state; + + const toRow = this.formItemsToRowByPage({ + page, + sectionState, + fullState: state, + }); + + section.push(...page.components.formItems.map(toRow)); + + prev[displaySectionName] = section; + return prev; + }, {}); + + const summaryLists = Object.entries(rowsBySection).map( + ([section, rows]) => { + const modelSection = this.model.sections.find( + (mSection) => mSection.name === section + ); + + return { + sectionTitle: !modelSection?.hideTitle ? modelSection?.title : "", + section, + rows, + }; + } + ); + + return { + page: this, + pageTitle: this.title, + sectionTitle: this.section?.title, + backLink: progress[progress.length - 1] ?? this.backLinkFallback, + name: this.model.name, + summaryLists, + showTitle: true, + customText: this.options.customText, + }; + } + + findDisplayValue( + component: FormComponent, + value: string + ): string | undefined { + // Check if the component has items list + if (component.items && Array.isArray(component.items)) { + // Find the item where the text or value matches the input value + const matchedItem = component.items.find( + (item) => item.text === value || item.value === value + ); + + // Return value2 if it exists, otherwise return undefined + return matchedItem?.checkpointDisplayValue || matchedItem?.text; + } + + // If no items list or no match found, return undefined + return undefined; + } + + formItemsToRowByPage({ + page, + sectionState, + fullState, + }: { + page: PageControllerBase; + sectionState: { [key: string]: any }; + fullState: { [key: string]: any }; + }) { + const pagePath = `/${page.model.basePath}${page.path}`; + const returnPath = `${pagePath}${this.returnUrlParameter}`; + const model = this.model; + + return (component: FormComponent) => { + // Get initial display value + let valueText = component.getDisplayStringFromState(sectionState); + + if ( + component.type === "FileUploadField" && + model.showFilenamesOnSummaryPage + ) { + valueText = + fullState.originalFilenames?.[component.name]?.originalFilename; + } + + const alternateValue = this.findDisplayValue(component, valueText); + if (alternateValue) { + valueText = alternateValue; + } + + return { + key: { + text: component.options.summaryTitle ?? component.title, + }, + value: { + text: valueText || "Not supplied", + }, + actions: { + items: [ + { + text: "Change", + visuallyHiddenText: component.title, + href: returnPath, + }, + ], + }, + }; + }; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts new file mode 100644 index 0000000000..96eab003ed --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/CustomSummaryPageController.ts @@ -0,0 +1,513 @@ +import { SummaryViewModel } from "../models"; +import { PageController } from "./PageController"; +import { feedbackReturnInfoKey, redirectTo, redirectUrl } from "../helpers"; +import { HapiRequest, HapiResponseToolkit } from "server/types"; +import { + decodeFeedbackContextInfo, + FeedbackContextInfo, + RelativeUrl, +} from "../feedback"; +import config from "server/config"; +import { FeesModel } from "server/plugins/engine/models/submission"; +import { isMultipleApiKey } from "@xgovformbuilder/model"; +import { FormComponent } from "../components"; +import { SelectionControlField } from "../components/SelectionControlField"; +import { PageControllerBase } from "./PageControllerBase"; + +const DEFAULT_OPTIONS = { + customText: {}, +}; + +export class CustomSummaryPageController extends PageController { + returnUrlParameter: string; + options: any; + /** + * The controller which is used when Page["controller"] is defined as "./pages/summary.js" + */ + constructor(model, pageDef) { + super(model, pageDef); + const returnPath = `/${this.model.basePath}${this.path}`; + this.returnUrlParameter = `?returnUrl=${encodeURIComponent(returnPath)}`; + this.options = pageDef?.options ?? DEFAULT_OPTIONS; + this.options.customText ??= DEFAULT_OPTIONS.customText; + this.options.disabledChangeFields ??= []; + } + /** + * Returns an async function. This is called in plugin.ts when there is a GET request at `/{id}/{path*}`, + */ + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + this.langFromRequest(request); + + const { cacheService } = request.services([]); + const model = this.model; + + // @ts-ignore - ignoring so docs can be generated. Remove when properly typed + if (this.model.def.skipSummary) { + return this.makePostRouteHandler()(request, h); + } + const state = await cacheService.getState(request); + + const viewModel = await this.summaryViewModel(request); + + if (viewModel.endPage) { + return redirectTo( + request, + h, + `/${model.basePath}${viewModel.endPage.path}` + ); + } + + /** + * iterates through the errors. If there are errors, a user will be redirected to the page + * with the error with returnUrl=`/${model.basePath}/summary` in the URL query parameter. + */ + if (viewModel.errors) { + const errorToFix = viewModel.errors[0]; + const { path } = errorToFix; + const parts = path.split("."); + const section = parts[0]; + const property = parts.length > 1 ? parts[parts.length - 1] : null; + const iteration = parts.length === 3 ? Number(parts[1]) + 1 : null; + const pageWithError = model.pages.filter((page) => { + if (page.section && page.section.name === section) { + let propertyMatches = true; + let conditionMatches = true; + if (property) { + propertyMatches = + page.components.formItems.filter( + (item) => item.name === property + ).length > 0; + } + if ( + propertyMatches && + page.condition && + model.conditions[page.condition] + ) { + conditionMatches = model.conditions[page.condition].fn(state); + } + return propertyMatches && conditionMatches; + } + return false; + })[0]; + if (pageWithError) { + const params = { + returnUrl: redirectUrl(request, `/${model.basePath}/summary`), + num: iteration && pageWithError.repeatField ? iteration : null, + }; + return redirectTo( + request, + h, + `/${model.basePath}${pageWithError.path}`, + params + ); + } + } + + const declarationError = request.yar.flash("declarationError"); + if (declarationError.length) { + viewModel.declarationError = declarationError[0]; + } + return h.view("custom-summary", viewModel); + }; + } + + /** + * Returns an async function. This is called in plugin.ts when there is a POST request at `/{id}/{path*}`. + * If a form is incomplete, a user will be redirected to the start page. + */ + makePostRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + const { payService, cacheService } = request.services([]); + const model = this.model; + const state = await cacheService.getState(request); + const summaryViewModel = new SummaryViewModel( + this.title, + model, + state, + request + ); + this.setFeedbackDetails(summaryViewModel, request); + + // redirect user to start page if there are incomplete form errors + if (summaryViewModel.result.error) { + request.logger.error( + `SummaryPage Error`, + summaryViewModel.result.error + ); + /** defaults to the first page */ + // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed + let startPageRedirect = redirectTo( + request, + h, + `/${model.basePath}${model.def.pages[0].path}` + ); + const startPage = model.def.startPage; + + // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed + if (startPage.startsWith("http")) { + // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed + startPageRedirect = redirectTo(request, h, startPage); + } else if (model.def.pages.find((page) => page.path === startPage)) { + // @ts-ignore - tsc reports an error here, ignoring so docs can be generated (does not cause eslint errors otherwise). Remove when properly typed + startPageRedirect = redirectTo( + request, + h, + `/${model.basePath}${startPage}` + ); + } + + return startPageRedirect; + } + + /** + * If a form is configured with a declaration, a checkbox will be rendered with the configured declaration text. + * If the user does not agree to the declaration, the page will be rerendered with a warning. + */ + if (summaryViewModel.declaration && !summaryViewModel.skipSummary) { + const { declaration } = request.payload as { + declaration?: any; + }; + + if (!declaration) { + request.yar.flash( + "declarationError", + "You must declare to be able to submit this application" + ); + const url = request.headers.referer ?? request.path; + return redirectTo(request, h, `${url}#declaration`); + } + summaryViewModel.addDeclarationAsQuestion(); + } + + await cacheService.mergeState(request, { + outputs: summaryViewModel.outputs, + userCompletedSummary: true, + }); + + // Commented out due to potential for logging PII + // request.logger.info( + // ["Webhook data", "before send", request.yar.id], + // JSON.stringify(summaryViewModel.validatedWebhookData) + // ); + + await cacheService.mergeState(request, { + webhookData: summaryViewModel.validatedWebhookData, + }); + + const feesModel = FeesModel(model, state); + + /** + * If a user does not need to pay, redirect them to /status + */ + if ((feesModel?.details ?? [])?.length === 0) { + return redirectTo(request, h, `/${request.params.id}/status`); + } + + const payReturnUrl = + this.model.feeOptions?.payReturnUrl ?? config.payReturnUrl; + + request.logger.info( + `payReturnUrl has been configured to ${payReturnUrl}` + ); + + const url = new URL( + `${payReturnUrl}/${request.params.id}/status` + ).toString(); + + const payStateMeta = payService.createPayStateMeta({ + feesModel: feesModel!, + payApiKey: this.payApiKey, + url, + }); + + const res = await payService.payRequestFromMeta(payStateMeta); + + // TODO:- refactor - this is repeated in applicationStatus + const payState = { + pay: { + payId: res.payment_id, + reference: res.reference, + self: res._links.self.href, + next_url: res._links.next_url.href, + returnUrl: url, + meta: payStateMeta, + }, + }; + + request.yar.set("basePath", model.basePath); + await cacheService.mergeState(request, payState); + summaryViewModel.webhookDataPaymentReference = res.reference; + await cacheService.mergeState(request, { + webhookData: summaryViewModel.validatedWebhookData, + }); + + const payRedirectUrl = payState.pay.next_url; + const { showPaymentSkippedWarningPage } = this.model.feeOptions; + + const { skipPayment } = request.payload; + if (skipPayment === "true" && showPaymentSkippedWarningPage) { + payState.pay.meta.attempts = 0; + await cacheService.mergeState(request, payState); + return h + .redirect(`/${request.params.id}/status/payment-skip-warning`) + .takeover(); + } + + await cacheService.mergeState(request, payState); + return h.redirect(payRedirectUrl); + }; + } + + async summaryViewModel(request: HapiRequest) { + const { cacheService } = request.services([]); + const state = await cacheService.getState(request); + const { progress = [] } = state; + + const { relevantPages } = this.model.getRelevantPages(state); + + const rowsBySection = relevantPages.reduce((prev, page) => { + let displaySectionName; + displaySectionName = page.sectionForEndSummaryPages || page.section?.name; + + // Always use section name for state access + const stateSectionName = page.section?.name; + + const section = prev[displaySectionName] ?? []; + let sectionState = stateSectionName + ? state[stateSectionName] || {} + : state; + + const toRow = this.formItemsToRowByPage({ + page, + sectionState, + fullState: state, + }); + + section.push( + ...page.components.formItems + .filter((c) => !this.options.hiddenFields?.includes(c.name)) + .flatMap((c) => toRow(c)) + ); + + prev[displaySectionName] = section; + return prev; + }, {}); + + const summaryLists = Object.entries(rowsBySection).map( + ([section, rows]) => { + const modelSection = this.model.sections.find( + (mSection) => mSection.name === section + ); + + return { + sectionTitle: !modelSection?.hideTitle ? modelSection?.title : "", + section, + rows, + }; + } + ); + + return { + page: this, + pageTitle: this.title, + sectionTitle: this.section?.title, + backLink: progress[progress.length - 1] ?? this.backLinkFallback, + name: this.model.name, + summaryLists, + showTitle: true, + customText: this.options.customText, + }; + } + + setFeedbackDetails(viewModel: SummaryViewModel, request: HapiRequest) { + const feedbackContextInfo = this.getFeedbackContextInfo(request); + + if (feedbackContextInfo) { + // set the form name to the source form name if this is a feedback form + viewModel.name = feedbackContextInfo.formTitle; + } + + // setting the feedbackLink to undefined here for feedback forms prevents the feedback link from being shown + viewModel.feedbackLink = this.feedbackUrlFromRequest(request); + } + + getFeedbackContextInfo(request: HapiRequest) { + if (this.model.def.feedback?.feedbackForm) { + if (request.url.searchParams.get(feedbackReturnInfoKey)) { + return decodeFeedbackContextInfo( + request.url.searchParams.get(feedbackReturnInfoKey) + ); + } + } + } + + feedbackUrlFromRequest(request: HapiRequest) { + const feedbackUrl = this.model.def.feedback?.url; + if (feedbackUrl) { + if (feedbackUrl.startsWith("http")) { + return feedbackUrl; + } + + const relativeFeedbackUrl = new RelativeUrl(feedbackUrl); + const returnInfo = new FeedbackContextInfo( + this.model.name, + "Summary", + `${request.url.pathname}${request.url.search}` + ); + relativeFeedbackUrl.setParam( + feedbackReturnInfoKey, + returnInfo.toString() + ); + return relativeFeedbackUrl.toString(); + } + + return undefined; + } + + get postRouteOptions() { + return { + ext: { + onPreHandler: { + method: async (_request: HapiRequest, h: HapiResponseToolkit) => { + return h.continue; + }, + }, + }, + }; + } + + formItemsToRowByPage({ + page, + sectionState, + fullState, + }: { + page: PageControllerBase; + sectionState: { [key: string]: any }; + fullState: { [key: string]: any }; + }) { + const pagePath = `/${page.model.basePath}${page.path}`; + const returnPath = `${pagePath}${this.returnUrlParameter}`; + const model = this.model; + + // Helper function to process components recursively + const processComponent = ( + component: FormComponent, + parentComponent?: FormComponent + ): any[] => { + const rows: any[] = []; + + // Process the current component if it has a name (is a form field) + if (component.name) { + // Get initial display value + let valueText = component.getDisplayStringFromState(sectionState); + + if ( + component.type === "FileUploadField" && + model.showFilenamesOnSummaryPage + ) { + valueText = + fullState.originalFilenames?.[component.name]?.originalFilename; + } + + const alternateValue = this.findDisplayValue(component, valueText); + if (alternateValue) { + valueText = alternateValue; + } + + // Use summaryTitle if available from options, otherwise fall back to title + const displayTitle = component.options?.summaryTitle ?? component.title; + + rows.push({ + key: { + text: displayTitle, + }, + value: { + text: valueText || "Not supplied", + }, + actions: this.options.disabledChangeFields.includes(component.name) + ? undefined + : { + items: [ + { + text: "Change", + visuallyHiddenText: displayTitle, + href: returnPath, + }, + ], + }, + }); + } + + // Handle SelectionControlField conditionally revealed components + if (component instanceof SelectionControlField && component.items) { + // Find selected items + const selectedValue = sectionState[component.name]; + const selectedValues = Array.isArray(selectedValue) + ? selectedValue + : [selectedValue]; + + // Process conditionally revealed components for selected items + component.items.forEach((item) => { + if ( + item.hasConditionallyRevealedComponents && + selectedValues.includes(item.value) + ) { + // Process all components in the conditionally revealed section + item.conditionallyRevealedComponents.items.forEach( + (conditionalComponent) => { + // For nested components, check if they have their own summaryTitle + const nestedRows = processComponent( + conditionalComponent, + component + ); + + rows.push(...nestedRows); + } + ); + } + }); + } + + return rows; + }; + + return (component: FormComponent) => { + const result = processComponent(component); + return result.length === 1 ? result[0] : result; + }; + } + + findDisplayValue( + component: FormComponent, + value: string + ): string | undefined { + // Check if the component has items list + if (component.items && Array.isArray(component.items)) { + // Find the item where the text or value matches the input value + const matchedItem = component.items.find( + (item) => item.text === value || item.value === value + ); + + // Return value2 if it exists, otherwise return undefined + return matchedItem?.checkpointDisplayValue || matchedItem?.text; + } + + // If no items list or no match found, return undefined + return undefined; + } + + get payApiKey(): string { + const modelDef = this.model.def; + const payApiKey = modelDef.feeOptions?.payApiKey ?? def.payApiKey; + + if (isMultipleApiKey(payApiKey)) { + return payApiKey[config.apiEnv] ?? payApiKey.test ?? payApiKey.production; + } + return payApiKey; + } + + get defaultButtonText() { + return "Confirm and send"; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/DateComparisonPageController.ts b/runner/src/server/plugins/engine/pageControllers/DateComparisonPageController.ts new file mode 100644 index 0000000000..b2d8f980e1 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/DateComparisonPageController.ts @@ -0,0 +1,175 @@ +import joi from "joi"; +import { PageController } from "./PageController"; +import { format, parseISO } from "date-fns"; +import { FormSubmissionErrors } from "../types"; +import { subMonths } from "date-fns"; + +/** + * DateComparisonPageController validates that: + * 1. Dates are not in the future + * 2. Most recent case onset date is not before the first case onset date + */ + +export class DateComparisonPageController extends PageController { + firstDateComponent: any; + secondDateComponent: any; + firstDateName: string; + secondDateName: string; + + constructor(model: any = {}, pageDef: any = {}) { + super(model, pageDef); + + this.firstDateName = pageDef?.options?.firstDateComponent || ""; + this.secondDateName = pageDef?.options?.secondDateComponent || ""; + + this.firstDateComponent = + pageDef?.components?.find( + (component) => component.name === this.firstDateName + ) || null; + + this.secondDateComponent = + pageDef?.components?.find( + (component) => component.name === this.secondDateName + ) || null; + + this.stateSchema = this.stateSchema.append({ + [this.firstDateName]: joi + .date() + .required() + .max("now") // Prevents dates in the future + .min(subMonths(new Date(), 2)) // Prevents dates more than 2 months in the past + .messages({ + ...this.firstDateComponent?.options?.customValidationMessages, + }), + }); + + if (this.secondDateComponent) { + this.stateSchema = this.stateSchema.append({ + [this.secondDateName]: joi + .date() + .required() + .min(joi.ref(this.firstDateName)) // Ensures most recent date is not before first date + .max("now") // Prevents dates in the future + .messages({ + ...this.secondDateComponent?.options?.customValidationMessages, + }), + }); + } + } + + getErrors(validationResult): FormSubmissionErrors | undefined { + if (!validationResult?.error) { + return undefined; + } + const errors = validationResult.error.details; + const formItems = this.components.formItems; + + const formatDateMessage = (message: string) => { + return message.replace(isoRegex, (text) => + format(parseISO(text), "d MMMM yyyy") + ); + }; + + const findTitle = (fieldName: string) => { + return ( + formItems.find((item) => item.name === fieldName)?.title || + "Title not found" + ); + }; + const isoRegex = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/; + + const errorList = errors.map((err) => { + let name = err.path.join("__"); + let title = findTitle(name.split("__")[0]); + let text = formatDateMessage(err.message); + + return { + path: err.path.join("."), + href: `#${name}`, + name: name, + title: title, + text: text, + type: err.type, + value: err.context.value, + }; + }); + + const addCustomErrors = (errorList) => { + const errorMap = {}; + + // Populate the errorMap with the base name and suffix + errorList.forEach((err) => { + const baseName = err.name.split("__")[0]; + const suffix = err.name.match(/__(day|month|year)$/)?.[0]; + + if (!errorMap[baseName]) { + errorMap[baseName] = { + baseName: baseName, + day: false, + month: false, + year: false, + errors: [], + name: err.name, + }; + } + + if (suffix === "__day") errorMap[baseName].day = true; + if (suffix === "__month") errorMap[baseName].month = true; + if (suffix === "__year") errorMap[baseName].year = true; + + errorMap[baseName].errors.push(err); + }); + + // Process the errorMap to set text based on combinations and add to finalErrors + const finalErrors: any = []; + Object.values(errorMap).forEach((e: any) => { + if (e.day && e.year && e.month) { + e.errors.forEach((err) => { + if (e.name.includes(this.firstDateName)) { + err.text = this.firstDateComponent?.options?.customValidationMessages?.dayMonthYear; + } + if (this.secondDateComponent) { + if (e.name.includes(this.secondDateName)) { + err.text = this.secondDateComponent?.options?.customValidationMessages?.dayMonthYear; + } + } + }); + } + + // New condition to handle number.base errors + const numberBaseErrors = e.errors.filter( + (err) => + err.type === "number.base" && + err.value !== undefined && + err.value !== "" + ); + + if (numberBaseErrors.length > 0) { + numberBaseErrors.forEach((err) => { + if (e.name.includes(this.firstDateName)) { + err.text = this.firstDateComponent?.options?.customValidationMessages?.nonNumeric; + } + if (e.name.includes(this.secondDateName)) { + err.text = this.secondDateComponent?.options?.customValidationMessages?.nonNumeric; + } + err.type = "custom.numberBase"; + }); + } + + finalErrors.push(...e.errors); + }); + + return finalErrors; + }; + + const processedErrorList = addCustomErrors(errorList); + + return { + titleText: this.errorSummaryTitle, + errorList: processedErrorList.filter( + ({ text }, index) => + index === errorList.findIndex((err) => err.text === text) + ), + }; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts new file mode 100644 index 0000000000..dfcdf3b3da --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkController.ts @@ -0,0 +1,178 @@ +import { SummaryViewModel } from "../models"; +import { PageController } from "./PageController"; +import { redirectTo, redirectUrl } from "../helpers"; +import { HapiRequest, HapiResponseToolkit } from "server/types"; +import { validateHmac } from "src/server/utils/hmac"; +import Jwt from "@hapi/jwt"; +import config from "server/config"; + +export class MagicLinkController extends PageController { + constructor(model, pageDef) { + super(model, pageDef); + } + + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + const email = request.query.email; + const hmac = request.query.signature; + const requestTime = request.query.request_time; + const hmacKey = this.model.def.outputs[0].outputConfiguration.hmacKey; + + const validation = await validateHmac(email, hmac, requestTime, hmacKey); + + //Outlook safelink consumes magic link - This bypasses it + if (!request.headers["user-agent"]) { + return h.response("Ignored bot request").code(200); + } + + const { cacheService, magicLinkCacheService } = request.services([]); + + //💣 Issue: As the program scales, this will need updating on a per-form basis. + // Otherwise active on one form, will mark them active on all. + const isMagicLinkRecordActive = await magicLinkCacheService.searchForMagicLinkRecord( + email + ); + + if (!isMagicLinkRecordActive) { + return h.redirect(`/${this.model.basePath}/expired`).code(302); + } + + await magicLinkCacheService.deleteMagicLinkRecord(email); + + if (!validation.isValid) { + // Handle different invalid token cases + switch (validation.reason) { + case "expired": + return h.redirect(`/${this.model.basePath}/expired`).code(302); + case "invalid_signature": + return h + .redirect(`/${this.model.basePath}/incorrect-email`) + .code(302); + default: + return h.redirect(`/${this.model.basePath}/error`).code(302); + } + } + + this.langFromRequest(request); + + const model = this.model; + + if (this.model.def.skipSummary) { + return this.makePostRouteHandler()(request, h); + } + + const state = await cacheService.getState(request); + const viewModel = new SummaryViewModel(this.title, model, state, request); + + if (viewModel.endPage) { + return redirectTo( + request, + h, + `/${model.basePath}${viewModel.endPage.path}` + ); + } + + /** + * iterates through the errors. If there are errors, a user will be redirected to the page + * with the error with returnUrl=`/${model.basePath}/summary` in the URL query parameter. + */ + if (viewModel.errors) { + const errorToFix = viewModel.errors[0]; + const { path } = errorToFix; + const parts = path.split("."); + const section = parts[0]; + const property = parts.length > 1 ? parts[parts.length - 1] : null; + const iteration = parts.length === 3 ? Number(parts[1]) + 1 : null; + const pageWithError = model.pages.filter((page) => { + if (page.section && page.section.name === section) { + let propertyMatches = true; + let conditionMatches = true; + if (property) { + propertyMatches = + page.components.formItems.filter( + (item) => item.name === property + ).length > 0; + } + if ( + propertyMatches && + page.condition && + model.conditions[page.condition] + ) { + conditionMatches = model.conditions[page.condition].fn(state); + } + return propertyMatches && conditionMatches; + } + return false; + })[0]; + if (pageWithError) { + const params = { + returnUrl: redirectUrl(request, `/${model.basePath}/summary`), + num: iteration && pageWithError.repeatField ? iteration : null, + }; + return redirectTo( + request, + h, + `/${model.basePath}${pageWithError.path}`, + params + ); + } + } + + const declarationError = request.yar.flash("declarationError"); + if (declarationError.length) { + viewModel.declarationError = declarationError[0]; + } + return h.view("summary", viewModel); + }; + } + + makePostRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + const email = request.query.email; + const hmac = request.query.signature; + const requestTime = request.query.request_time; + const hmacKey = this.model.def.outputs[0].outputConfiguration.hmacKey; + + const validation = await validateHmac(email, hmac, requestTime, hmacKey); + + //Outlook safelink consumes magic link - This bypasses it + if (!request.headers["user-agent"]) { + return h.response("Ignored bot request").code(200); + } + if (validation.isValid) { + const token = Jwt.token.generate( + { email: request.query.email }, + { + key: this.model.def.jwtKey, + algorithm: config.initialisedSessionAlgorithm, + }, + { + ttlSec: config.initialisedSessionTimeout / 1000, + } + ); + + // Set the JWT in a cookie + h.state("auth_token", token, { + ttl: 20 * 60 * 1000, + isSecure: true, + isHttpOnly: true, + encoding: "none", + clearInvalid: true, + path: "/", + isSameSite: "Lax", + }); + } + + const { magicLinkCacheService } = request.services([]); + + /* Populate the current session with the form state from the session that requested the magic link */ + await magicLinkCacheService.repopulateFormStateUponMagicLinkReturn( + request, + hmac + ); + + // Redirect to custom page instead of status + return redirectTo(request, h, `/${request.params.id}/email-confirmed`); + }; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkFirstSubmitPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkFirstSubmitPageController.ts new file mode 100644 index 0000000000..14cedf17d0 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkFirstSubmitPageController.ts @@ -0,0 +1,12 @@ +import { MagicLinkSubmissionPageController } from "./MagicLinkSubmissionPageController"; + +// Original MagicLinkFirstSubmitPageController as a child class +export class MagicLinkFirstSubmitPageController extends MagicLinkSubmissionPageController { + get timeRemainingRedirect() { + return `/${this.model.basePath}/email`; + } + + get redirectAfterSubmission() { + return `/${this.request.params.id}/check-your-email`; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkRedirectController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkRedirectController.ts new file mode 100644 index 0000000000..60ea1b44da --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkRedirectController.ts @@ -0,0 +1,25 @@ +import { PageController } from "server/plugins/engine/pageControllers/PageController"; +import { HapiRequest, HapiResponseToolkit } from "server/types"; + +export class MagicLinkRedirectController extends PageController { + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + const id = request.params?.id; + const forms = request.server?.app?.forms; + const model = id && forms?.[id]; + + // Fallback to the default Magic Link config used by CareOBRA + // WARNING: This has hardcoded values + // You should define your own magicLinkConfig in your (main) form config + const magicLinkConfig = model?.def?.magicLinkConfig ?? "magic-link"; + + const { magicLinkCacheService } = request.services([]); + /* In order to support resume, we need to store the form id */ + await magicLinkCacheService.saveFormIdBeforeMagicLinkRedirectToAllowResume( + request + ); + + return h.redirect(`/${magicLinkConfig}/start`).code(302); + }; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkSecondSubmitPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkSecondSubmitPageController.ts new file mode 100644 index 0000000000..a403856737 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkSecondSubmitPageController.ts @@ -0,0 +1,12 @@ +import { MagicLinkSubmissionPageController } from "./MagicLinkSubmissionPageController"; + +// MagicLinkSecondSubmitPageController as a child class +export class MagicLinkSecondSubmitPageController extends MagicLinkSubmissionPageController { + get timeRemainingRedirect() { + return `/${this.model.basePath}/check-your-email`; + } + + get redirectAfterSubmission() { + return `/${this.request.params.id}/resubmit-email`; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkStartPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkStartPageController.ts new file mode 100644 index 0000000000..7c8d8628c1 --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkStartPageController.ts @@ -0,0 +1,25 @@ +import { PageController } from "./PageController"; +import { redirectTo } from "../helpers"; +import { HapiRequest, HapiResponseToolkit } from "server/types"; + +export class MagicLinkStartPageController extends PageController { + constructor(model, pageDef) { + super(model, pageDef); + } + + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + if (this.model.values.toggle === false) { + return redirectTo(request, h, this.model.values.toggleRedirect); + } + return this.makePostRouteHandler()(request, h); + }; + } + + makePostRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + // Redirect to custom page instead of status + return redirectTo(request, h, `/${request.params.id}/email`); + }; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts b/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts new file mode 100644 index 0000000000..6c38a42daf --- /dev/null +++ b/runner/src/server/plugins/engine/pageControllers/MagicLinkSubmissionPageController.ts @@ -0,0 +1,282 @@ +import { SummaryViewModel } from "../models"; +import { PageController } from "./PageController"; +import { redirectTo } from "../helpers"; +import { HapiRequest, HapiResponseToolkit } from "server/types"; +import { createHmac } from "src/server/utils/hmac"; +import { isAllowedDomain } from "src/server/utils/domain"; +import { ServerStateCookieOptions } from "@hapi/hapi"; + +// Shared options for cookie settings +const getCookieOptions = (timeRemaining: number) => { + const options: ServerStateCookieOptions = { + ttl: timeRemaining * 1000, // Convert remaining seconds to milliseconds + isSecure: true, + isHttpOnly: true, + encoding: "base64json", + path: "/", + clearInvalid: false, + strictHeader: true, + }; + + return options; +}; + +// Base controller class containing shared functionality +export class MagicLinkSubmissionPageController extends PageController { + RETRY_TIMEOUT_SECONDS: number; + + constructor(model, pageDef) { + super(model, pageDef); + this.RETRY_TIMEOUT_SECONDS = this.model.def.retryTimeoutSeconds ?? 300; + } + + // Template-specific configurations that can be overridden by child classes + get timeRemainingRedirect() { + return `/${this.model.basePath}/email`; + } + + get redirectAfterSubmission() { + return `/${this.request.params.id}/check-your-email`; + } + + makeGetRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + this.request = request; // Store request for use in getter methods + const { cacheService } = request.services([]); + const state = await cacheService.getState(request); + const currentTime = Math.floor(Date.now() / 1000); + + // Check if there's a cookie with retry information + const retryCookie = request.state.magicLinkRetry; + + if (retryCookie) { + try { + const decoded = atob(retryCookie); // Decodes base64 + const data = JSON.parse(decoded); // Parses JSON + + // Get the retry time from the cookie + const retryAfter = data.retryAfter; + + // Calculate time remaining (in seconds) + const timeRemaining = Math.max(0, retryAfter - currentTime); + + // Allow retry if time has elapsed + if (timeRemaining <= 0) { + return redirectTo( + request, + h, + `/${this.model.basePath}/resubmit-email` + ); + } + + // Otherwise show the time remaining page with consistent calculation + const minutesRemaining = Math.ceil(timeRemaining / 60); + + await cacheService.mergeState(request, { + minutesRemaining: minutesRemaining, + }); + + return redirectTo(request, h, this.timeRemainingRedirect); + } catch (error) { + request.logger.error(["Cookie parsing error", error.message]); + return redirectTo(request, h, `/${this.model.basePath}/start`); + } + } else { + return this.makePostRouteHandler()(request, h); + } + }; + } + + makePostRouteHandler() { + return async (request: HapiRequest, h: HapiResponseToolkit) => { + this.request = request; // Store request for use in getter methods + const { cacheService, magicLinkCacheService } = request.services([]); + const model = this.model; + const state = await cacheService.getState(request); + const summaryViewModel = new SummaryViewModel( + this.title, + model, + state, + request + ); + this.setFeedbackDetails(summaryViewModel, request); + + // redirect user to start page if there are incomplete form errors + if (summaryViewModel.result.error) { + request.logger.error( + `SummaryPage Error`, + summaryViewModel.result.error + ); + + // Determine which page to redirect to + const startPage = model.def.startPage; + let redirectPath; + + if (startPage && startPage.startsWith("http")) { + redirectPath = startPage; + } else if ( + startPage && + model.def.pages.find((page) => page.path === startPage) + ) { + redirectPath = `/${model.basePath}${startPage}`; + } else { + // Default to first page if no valid start page + redirectPath = `/${model.basePath}${model.def.pages[0].path}`; + } + + return redirectTo(request, h, redirectPath); + } + + // Get user email from state + const email = state["email"]; + if (!email) { + request.logger.warn([ + "HMAC", + "No email found in state", + JSON.stringify(state), + ]); + return redirectTo(request, h, `/${model.basePath}/start`); + } + + const allowedEmailDomains = this.model.def.allowedDomains ?? []; + //hardcoded start page as a fallback if InvalidDomainRedirectPage not added to config + const InvalidDomainRedirectPage = + model.def.invalidDomainRedirect || "/start"; + if (!isAllowedDomain(email, allowedEmailDomains)) { + request.logger.warn([ + "DomainValidation", + `Email domain '${email.split("@")[1]}' not allowed`, + ]); + return redirectTo(request, h, InvalidDomainRedirectPage); + } + + const hmacKey = this.model.def.outputs[0].outputConfiguration.hmacKey; + const currentTime = Math.floor(Date.now() / 1000); + + // Check if the user already has an active HMAC link + const foundHmac = await magicLinkCacheService.searchForMagicLinkRecord( + email + ); + + if (foundHmac && foundHmac.active) { + const hmacTimestamp = foundHmac.active; + const timeDifference = currentTime - hmacTimestamp; + + if (timeDifference < this.RETRY_TIMEOUT_SECONDS) { + // User must wait before requesting another link + const timeRemaining = this.RETRY_TIMEOUT_SECONDS - timeDifference; + const minutesRemaining = Math.ceil(timeRemaining / 60); + + await cacheService.mergeState(request, { + minutesRemaining: minutesRemaining, + }); + + // Set consistent cookie for retry timeout + const cookieValue = { + retryAfter: hmacTimestamp + this.RETRY_TIMEOUT_SECONDS, + }; + + const cookieOptions = getCookieOptions(timeRemaining); + h.state("magicLinkRetry", cookieValue, cookieOptions); + + // Show the time remaining page + return redirectTo(request, h, this.timeRemainingRedirect); + } + } + + // Generate new HMAC for the email + const [hmac, currentTimestamp, hmacExpiryTime] = await createHmac( + email, + hmacKey + ); + + // Store or update the HMAC record + if (!foundHmac) { + await magicLinkCacheService.createMagicLinkRecord( + email, + hmac, + currentTimestamp + ); + } else { + // Update existing record + await magicLinkCacheService.updateMagicLinkRecord( + email, + hmac, + currentTimestamp + ); + } + + // Construct the magic link URL + const hmacUrlStart = `/${model.basePath}/return?email=`; + const hmacUrl = hmacUrlStart.concat( + email, + "&request_time=", + currentTimestamp.toString(), + "&signature=", + hmac.toString() + ); + + // First, let's get the current state to see what's in it + const currentState = await cacheService.getState(request); + + // Create new state object with all the values we want to set + const newStateValues = { + hmacSignature: hmacUrl, + hmacExpiryTime: hmacExpiryTime, + outputs: summaryViewModel.outputs, + userCompletedSummary: true, + webhookData: summaryViewModel.validatedWebhookData, + }; + + // If minutesRemaining exists in the current state, explicitly remove it + if ("minutesRemaining" in currentState) { + // Use undefined instead of null to truly remove the property + newStateValues.minutesRemaining = undefined; + } + + // Store data in state with a single merge operation + await cacheService.mergeState(request, newStateValues); + + // Set cookie for retry timeout (using consistent constant) + const cookieOptions = getCookieOptions(this.RETRY_TIMEOUT_SECONDS); + h.state( + "magicLinkRetry", + { + retryAfter: currentTimestamp + this.RETRY_TIMEOUT_SECONDS, + }, + cookieOptions + ); + + // Commented out due to potential for logging PII + // request.logger.info( + // ["Webhook data", "before send", request.yar.id], + // JSON.stringify(summaryViewModel.validatedWebhookData) + // ); + + // Get StatusService and submit the form + const { statusService } = request.services([]); + await statusService.outputRequests(request); + + /* In order to allow resume we need to store the current session id, form id and magic link form id */ + await magicLinkCacheService.saveInformationToAllowMagicLinkResume( + request, + hmac + ); + + // Redirect to custom page + return redirectTo(request, h, this.redirectAfterSubmission); + }; + } + + get postRouteOptions() { + return { + ext: { + onPreHandler: { + method: async (_request: HapiRequest, h: HapiResponseToolkit) => { + return h.continue; + }, + }, + }, + }; + } +} diff --git a/runner/src/server/plugins/engine/pageControllers/MiniSummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/MiniSummaryPageController.ts index 2cc04b0342..367c4430a5 100644 --- a/runner/src/server/plugins/engine/pageControllers/MiniSummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MiniSummaryPageController.ts @@ -7,6 +7,12 @@ import { PageController } from "./PageController"; */ export class MiniSummaryPageController extends PageController { isMiniSummaryPageController = true; + subtitle?: string; + + constructor(model, pageDef) { + super(model, pageDef); + this.subtitle = pageDef.options?.subtitle; + } makeGetRouteHandler() { return async (request: HapiRequest, h: HapiResponseToolkit) => { @@ -32,4 +38,8 @@ export class MiniSummaryPageController extends PageController { get viewName() { return "mini-summary"; } + + get defaultButtonText() { + return "Confirm and continue"; + } } diff --git a/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts b/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts index f7fa9cd6be..e407ad719f 100644 --- a/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/MultiStartPageController.ts @@ -3,15 +3,24 @@ import { PageController } from "./PageController"; export class MultiStartPageController extends PageController { get viewName() { - return "multi-start-page"; + if (this.sidebarContent) { + return "multi-start-page-with-sidebar-content"; + } else { + return "multi-start-page"; + } } getViewModel(formData: FormData, errors?: FormSubmissionErrors) { const viewModel = super.getViewModel(formData, errors); - const { showContinueButton, startPageNavigation } = this.pageDef; + const { + showContinueButton, + startPageNavigation, + sidebarContent, + } = this.pageDef; return { ...viewModel, continueButtonText: showContinueButton && this.pageDef.continueButtonText, startPageNavigation, + sidebarContent, isMultiStartPageController: true, }; } diff --git a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts index 1e122d7e78..266535a69e 100644 --- a/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts +++ b/runner/src/server/plugins/engine/pageControllers/PageControllerBase.ts @@ -26,6 +26,8 @@ import { format, parseISO } from "date-fns"; import config from "server/config"; import nunjucks from "nunjucks"; import Joi from "joi"; +import Jwt, { HapiJwt } from "@hapi/jwt"; +import { verifyHmacToken } from "../../initialiseSession/helpers"; const FORM_SCHEMA = Symbol("FORM_SCHEMA"); const STATE_SCHEMA = Symbol("STATE_SCHEMA"); @@ -53,12 +55,19 @@ export class PageControllerBase { condition: any; // TODO repeatField: any; // TODO section: any; // TODO + sectionForExitJourneySummaryPages: any; + sectionForEndSummaryPages: any; + sectionForMultiSummaryPages: any; + sidebarContent: any; components: ComponentCollection; + disableSingleComponentAsHeading: boolean; hasFormComponents: boolean; hasConditionalFormComponents: boolean; backLinkFallback?: string; details?: any; + disableBackLink?: boolean; returnUrl?: string; + buttonText?: string; // TODO: pageDef type constructor(model: FormModel, pageDef: { [prop: string]: any } = {}) { @@ -75,11 +84,20 @@ export class PageControllerBase { this.condition = pageDef.condition; this.repeatField = pageDef.repeatField; this.backLinkFallback = pageDef.backLinkFallback; + this.disableBackLink = pageDef.disableBackLink; + this.disableSingleComponentAsHeading = + pageDef.disableSingleComponentAsHeading; + this.buttonText = pageDef.customButtonText ?? this.defaultButtonText; // Resolve section this.section = model.sections?.find( (section) => section.name === pageDef.section ); + this.sectionForExitJourneySummaryPages = + pageDef.sectionForExitJourneySummaryPages; + this.sectionForMultiSummaryPages = pageDef.sectionForMultiSummaryPages; + this.sectionForEndSummaryPages = pageDef.sectionForEndSummaryPages; + this.sidebarContent = pageDef.sidebarContent; // Components collection const components = new ComponentCollection(pageDef.components, model); @@ -164,20 +182,21 @@ export class PageControllerBase { if (singleFormComponent && singleFormComponentIsFirst) { const label: any = singleFormComponent.model.label; + if (!this.disableSingleComponentAsHeading) { + if (pageTitle) { + label.text = pageTitle; + } - if (pageTitle) { - label.text = pageTitle; - } + label.isPageHeading = true; + label.classes = "govuk-fieldset__legend--l"; - label.isPageHeading = true; - label.classes = "govuk-fieldset__legend--l"; + if (singleFormComponent.model?.fieldset) { + singleFormComponent.model.fieldset.legend = label; + } - if (singleFormComponent.model?.fieldset) { - singleFormComponent.model.fieldset.legend = label; + pageTitle = pageTitle || label.text; + showTitle = false; } - - pageTitle = pageTitle || label.text; - showTitle = false; } return { @@ -201,6 +220,10 @@ export class PageControllerBase { return Array.isArray(this.pageDef.next) && this.pageDef.next.length > 0; } + get defaultButtonText() { + return "Continue"; + } + get next() { const pageDefNext = this.pageDef.next ?? []; @@ -437,6 +460,15 @@ export class PageControllerBase { //Iterate all components on this page and pull out the saved values from the state for (const component of nextPage.components.items) { newValue[component.name] = currentState[component.name]; + + if (component.options.conditionallyRevealedComponents) { + for (const key in component.options.conditionallyRevealedComponents) { + const revealedComponent = + component.options.conditionallyRevealedComponents[key]; // Get the actual object + newValue[revealedComponent.name] = + currentState[revealedComponent.name]; + } + } } if (nextPage.section) { @@ -487,6 +519,35 @@ export class PageControllerBase { : redirectTo(request, h, `/${this.model.basePath}${startPage!}`); } + if ( + this.model.def.authentication && + this.model.def.toggle === true && + this.pageDef.unauthenticated !== true + ) { + const authCookie = request.state.auth_token; // Check for the auth cookie + + if (!authCookie && !isStartPage && this.model.def.authentication) { + // If the auth cookie is missing and it's not the start page, redirect + if (currentPath !== `/${this.model.basePath}${startPage!}`) { + return h.redirect(`/${this.model.basePath}${startPage!}`); + } + } + if (authCookie) { + const tokenArtifacts = Jwt.token.decode(authCookie); + const { isValid, error } = verifyHmacToken( + tokenArtifacts, + this.model.def.jwtKey + ); + + if (!isValid) { + // If the token is invalid, redirect to the start page + if (currentPath !== `/${this.model.basePath}${startPage!}`) { + return h.redirect(`/${this.model.basePath}${startPage!}`); + } + } + } + } + formData.lang = lang; /** * We store the original filename for the user in a separate object (`originalFileNames`), however they are not used for any of the outputs. The S3 url is stored in the state. @@ -565,10 +626,15 @@ export class PageControllerBase { await cacheService.mergeState(request, { progress }); - viewModel.backLink = - progress[progress.length - 2] ?? this.backLinkFallback; + if (this.disableBackLink) { + viewModel.backLink = undefined; + } else { + viewModel.backLink = + progress[progress.length - 2] ?? this.backLinkFallback; + } viewModel.allowExit = this.model.allowExit; + return h.view(this.viewName, viewModel); }; } @@ -715,6 +781,37 @@ export class PageControllerBase { } const { cacheService } = request.services([]); + if ( + this.model.def.authentication && + this.model.def.toggle === true && + this.pageDef.unauthenticated !== true + ) { + const startPage = this.model.def.startPage; + const isStartPage = this.path === `${startPage}`; + const currentPath = `/${this.model.basePath}${this.path}${request.url.search}`; + const authCookie = request.state.auth_token; // Check for the auth cookie + if (!authCookie && !isStartPage) { + // If the auth cookie is missing and it's not the start page, redirect + if (currentPath !== `/${this.model.basePath}${startPage!}`) { + return h.redirect(`/${this.model.basePath}${startPage!}`); + } + } + + if (authCookie) { + const tokenArtifacts = Jwt.token.decode(authCookie); + const { isValid, error } = verifyHmacToken( + tokenArtifacts, + this.model.def.jwtKey + ); + if (!isValid) { + // If the token is invalid, redirect to the start page + if (currentPath !== `/${this.model.basePath}${startPage!}`) { + return h.redirect(`/${this.model.basePath}${startPage!}`); + } + } + } + } + const shouldGoToExitPage = this.model.allowExit && request.payload?.action === "exit"; @@ -892,7 +989,13 @@ export class PageControllerBase { private renderWithErrors(request, h, payload, num, progress, errors) { const viewModel = this.getViewModel(payload, num, errors); - viewModel.backLink = progress[progress.length - 2] ?? this.backLinkFallback; + if (this.disableBackLink) { + viewModel.backLink = undefined; + } else { + viewModel.backLink = + progress[progress.length - 2] ?? this.backLinkFallback; + } + this.setPhaseTag(viewModel); this.setFeedbackDetails(viewModel, request); viewModel.allowExit = this.model.allowExit; diff --git a/runner/src/server/plugins/engine/pageControllers/StartPageController.ts b/runner/src/server/plugins/engine/pageControllers/StartPageController.ts index a744e2e694..6c76ab0ad6 100644 --- a/runner/src/server/plugins/engine/pageControllers/StartPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/StartPageController.ts @@ -15,4 +15,8 @@ export class StartPageController extends PageController { skipTimeoutWarning: true, }; } + + get defaultButtonText() { + return "Start now"; + } } diff --git a/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts b/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts index 89f53b66a7..661af88a3b 100644 --- a/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts +++ b/runner/src/server/plugins/engine/pageControllers/SummaryPageController.ts @@ -168,10 +168,11 @@ export class SummaryPageController extends PageController { userCompletedSummary: true, }); - request.logger.info( - ["Webhook data", "before send", request.yar.id], - JSON.stringify(summaryViewModel.validatedWebhookData) - ); + // Commented out due to potential for logging PII + // request.logger.info( + // ["Webhook data", "before send", request.yar.id], + // JSON.stringify(summaryViewModel.validatedWebhookData) + // ); await cacheService.mergeState(request, { webhookData: summaryViewModel.validatedWebhookData, diff --git a/runner/src/server/plugins/engine/pageControllers/helpers.ts b/runner/src/server/plugins/engine/pageControllers/helpers.ts index ee87ec5759..aa6c085fdf 100644 --- a/runner/src/server/plugins/engine/pageControllers/helpers.ts +++ b/runner/src/server/plugins/engine/pageControllers/helpers.ts @@ -13,6 +13,14 @@ import { Page } from "@xgovformbuilder/model"; import { UploadPageController } from "server/plugins/engine/pageControllers/UploadPageController"; import { MultiStartPageController } from "server/plugins/engine/pageControllers/MultiStartPageController"; import { RepeatingSectionSummaryPageController } from "./RepeatingSectionSummaryPageController"; +import { CheckpointSummaryPageController } from "src/server/plugins/engine/pageControllers/CheckpointSummaryPageController"; +import { MagicLinkFirstSubmitPageController } from "./MagicLinkFirstSubmitPageController"; +import { MagicLinkSecondSubmitPageController } from "./MagicLinkSecondSubmitPageController"; +import { MagicLinkController } from "./MagicLinkController"; +import { MagicLinkStartPageController } from "./MagicLinkStartPageController"; +import { CustomSummaryPageController } from "./CustomSummaryPageController"; +import { DateComparisonPageController } from "./DateComparisonPageController"; +import { MagicLinkRedirectController } from "./MagicLinkRedirectController"; const PageControllers = { DobPageController, @@ -27,6 +35,14 @@ const PageControllers = { UploadPageController, MultiStartPageController, RepeatingSectionSummaryPageController, + CheckpointSummaryPageController, + MagicLinkFirstSubmitPageController, + MagicLinkSecondSubmitPageController, + MagicLinkController, + MagicLinkStartPageController, + CustomSummaryPageController, + DateComparisonPageController, + MagicLinkRedirectController, }; export const controllerNameFromPath = (filePath: string) => { diff --git a/runner/src/server/plugins/engine/pageControllers/index.ts b/runner/src/server/plugins/engine/pageControllers/index.ts index 2f20a4324b..ed8a652e1d 100644 --- a/runner/src/server/plugins/engine/pageControllers/index.ts +++ b/runner/src/server/plugins/engine/pageControllers/index.ts @@ -8,3 +8,9 @@ export { PageControllerBase } from "./PageControllerBase"; export { MiniSummaryPageController } from "./MiniSummaryPageController"; export { RepeatingSectionSummaryPageController } from "./RepeatingSectionSummaryPageController"; export { getPageController, controllerNameFromPath } from "./helpers"; +export { CheckpointSummaryPageController } from "./CheckpointSummaryPageController"; +export { MagicLinkController } from "./MagicLinkController"; +export { MagicLinkStartPageController } from "./MagicLinkStartPageController"; +export { CustomSummaryPageController } from "./CustomSummaryPageController"; +export { DateComparisonPageController } from "./DateComparisonPageController"; +export { MagicLinkRedirectController } from "./MagicLinkRedirectController"; diff --git a/runner/src/server/plugins/engine/pluginHandlers/files/prehandlers/handleUpload.ts b/runner/src/server/plugins/engine/pluginHandlers/files/prehandlers/handleUpload.ts index 977cbf8eb9..7bd05f2ac3 100644 --- a/runner/src/server/plugins/engine/pluginHandlers/files/prehandlers/handleUpload.ts +++ b/runner/src/server/plugins/engine/pluginHandlers/files/prehandlers/handleUpload.ts @@ -46,7 +46,7 @@ export async function handleUpload( let response; let errors = new Set(); try { - response = await uploadService.uploadDocuments(streams); + response = await uploadService.uploadDocuments(streams, request); } catch (err) { if (err.data?.res) { response = uploadService.parsedDocumentUploadResponse(err.data); @@ -102,14 +102,15 @@ export async function handleUpload( loggerIdentifier, `Document upload API responded with an error ${error}` ); - errors.add(error) + errors.add(error); } - if(errors.size > 0) { + if (errors.size > 0) { let errorsArray = Array.from(errors); - request.pre.errors = [ - ...(h.request.pre.errors || []), - ...errorsArray.map(e => parsedError(fieldName, e)), ]; + request.pre.errors = [ + ...(h.request.pre.errors || []), + ...errorsArray.map((e) => parsedError(fieldName, e)), + ]; } } diff --git a/runner/src/server/plugins/engine/views/components/contactdetailscollection.html b/runner/src/server/plugins/engine/views/components/contactdetailscollection.html new file mode 100644 index 0000000000..2345e91f25 --- /dev/null +++ b/runner/src/server/plugins/engine/views/components/contactdetailscollection.html @@ -0,0 +1,38 @@ +{% from "input/macro.njk" import govukInput %} +{% from "fieldset/macro.njk" import govukFieldset %} + +{% macro ContactDetailsCollection(component) %} +
    + {% call govukFieldset({ + legend: { + text: component.model.fieldset.legend.text, + classes: "govuk-fieldset__legend--m" + } + }) %} + {% if component.model.hint %} +
    {{ component.model.hint.html | safe }}
    + {% endif %} + + {% if component.model.errorMessage %} +

    + Error: + {{ component.model.errorMessage.text }} +

    + {% endif %} + + {% for item in component.model.items %} + {{ govukInput({ + label: item.label, + hint: item.hint, + id: item.id, + name: item.name, + value: item.value, + type: item.type, + classes: item.classes, + autocomplete: item.autocomplete, + errorMessage: item.errorMessage + }) }} + {% endfor %} + {% endcall %} +
    +{% endmacro %} \ No newline at end of file diff --git a/runner/src/server/plugins/engine/views/components/contentwithstate.html b/runner/src/server/plugins/engine/views/components/contentwithstate.html new file mode 100644 index 0000000000..7e8c6f9076 --- /dev/null +++ b/runner/src/server/plugins/engine/views/components/contentwithstate.html @@ -0,0 +1,3 @@ +{% macro ContentWithState(component) %} +

    {{ component.model.content | safe }}

    +{% endmacro %} diff --git a/runner/src/server/plugins/engine/views/partials/form.html b/runner/src/server/plugins/engine/views/partials/form.html index 25aa6e293f..02237ce91f 100644 --- a/runner/src/server/plugins/engine/views/partials/form.html +++ b/runner/src/server/plugins/engine/views/partials/form.html @@ -16,23 +16,17 @@ {% endif %} {% if not (components[0].type == "FlashCard") %} - {% if isStartPage %} - {{ govukButton({ attributes: { id: "submit" }, text: "Start now", isStartButton: true }) }} - {% elseif page.isMiniSummaryPageController %} - {{ govukButton({ attributes: { id: "submit" }, text: "Confirm and continue" }) }} + {% if page.isRepeatingFieldPageController and page.isSamePageDisplayMode %} + {% if details.rows.length %} + {{ govukButton({ attributes: { id: "submit" }, text: page.buttonText if page.buttonText else "Continue", name: "next", value: "continue"}) }} + {% endif %} {% else %} - {% if page.isRepeatingFieldPageController and page.isSamePageDisplayMode %} - {% if details.rows.length %} - {{ govukButton({ attributes: { id: "submit" }, text: "Continue", name: "next", value: "continue"}) }} - {% endif %} - {% else %} - {{ govukButton({ attributes: { id: "submit" }, text: "Continue" }) }} - {% if allowExit %} - + {{ govukButton({ attributes: { id: "submit" }, text: page.buttonText if page.buttonText else "Continue" }) }} + {% if allowExit %} + - {% endif %} {% endif %} {% endif %} {% endif %} diff --git a/runner/src/server/plugins/engine/views/partials/heading.html b/runner/src/server/plugins/engine/views/partials/heading.html index 564dcaf236..e225906ff6 100644 --- a/runner/src/server/plugins/engine/views/partials/heading.html +++ b/runner/src/server/plugins/engine/views/partials/heading.html @@ -6,3 +6,6 @@

    {{pageTitle}}

    {% endif %} +{% if page.subtitle %} +

    {{ page.subtitle }}

    +{% endif %} \ No newline at end of file diff --git a/runner/src/server/plugins/errorPages.ts b/runner/src/server/plugins/errorPages.ts index ebe4b27cbd..85c6a17fbc 100644 --- a/runner/src/server/plugins/errorPages.ts +++ b/runner/src/server/plugins/errorPages.ts @@ -1,4 +1,5 @@ -import { HapiRequest, HapiResponseToolkit } from "../types"; +import { HapiRequest, HapiResponseToolkit, HapiServer } from "../types"; +import config from "../config"; /* * Add an `onPreResponse` listener to return error pages @@ -6,7 +7,7 @@ import { HapiRequest, HapiResponseToolkit } from "../types"; export default { plugin: { name: "error-pages", - register: (server) => { + register: (server: HapiServer) => { server.ext( "onPreResponse", (request: HapiRequest, h: HapiResponseToolkit) => { @@ -29,8 +30,28 @@ export default { message: response.message, }); + try { + const url = request.url; + var urlPath = url.pathname.split("/"); + var form = server.app.forms[urlPath[1]]; + } catch (e) { + return h.view("500").code(500); + } + + // In the event of 403 (CSRF protection) + if (statusCode === 403) { + return h + .view("csrf-protection", { url: urlPath[1], name: form.name }) + .code(statusCode); + } + // The return the `500` view - return h.view("500").code(statusCode); + return h + .view("500", { + name: form?.name || config.serviceName, + contactEmail: form?.def.error500ContactEmail, + }) + .code(statusCode); } return h.continue; } diff --git a/runner/src/server/plugins/initialiseSession/helpers.ts b/runner/src/server/plugins/initialiseSession/helpers.ts index a41a15e057..db645d4620 100644 --- a/runner/src/server/plugins/initialiseSession/helpers.ts +++ b/runner/src/server/plugins/initialiseSession/helpers.ts @@ -83,3 +83,18 @@ export const callbackValidation = (safelist = config.safelist) => return helpers.error("string.hostname"); }); + +export function verifyHmacToken(decodedToken, key) { + try { + Jwt.token.verify(decodedToken, { + key: key, + algorithm: config.initialisedSessionAlgorithm, + }); + return { isValid: true }; + } catch (err) { + return { + isValid: false, + error: `${err}`, + }; + } +} diff --git a/runner/src/server/plugins/initialiseSession/initialiseSession.ts b/runner/src/server/plugins/initialiseSession/initialiseSession.ts index eaed1e7598..4018e41a19 100644 --- a/runner/src/server/plugins/initialiseSession/initialiseSession.ts +++ b/runner/src/server/plugins/initialiseSession/initialiseSession.ts @@ -122,5 +122,26 @@ export const initialiseSession: Plugin = { return h.response({ token }).code(201); }, }); + + server.route({ + method: "POST", + path: "/session/keep-alive", + options: { + auth: false, + }, + handler: async (request, h) => { + const { cacheService } = request.services([]); + + // Read existing state + const state = await cacheService.getState(request); + + if (state) { + // Re-save without changes → refresh TTL + await cacheService.mergeState(request, {}); + } + + return h.response().code(204); + }, + }); }, }; diff --git a/runner/src/server/plugins/initialiseSession/types.ts b/runner/src/server/plugins/initialiseSession/types.ts index 531cf57570..b0a8315053 100644 --- a/runner/src/server/plugins/initialiseSession/types.ts +++ b/runner/src/server/plugins/initialiseSession/types.ts @@ -17,6 +17,7 @@ export type InitialiseSessionOptions = { title: string; paymentSkipped?: false | string; nextSteps?: false | string; + hidePanel?: boolean; }; components: ContentComponentsDef[]; }; diff --git a/runner/src/server/plugins/router.ts b/runner/src/server/plugins/router.ts index 77d5006809..121b95c416 100644 --- a/runner/src/server/plugins/router.ts +++ b/runner/src/server/plugins/router.ts @@ -4,6 +4,13 @@ import { healthCheckRoute, publicRoutes } from "../routes"; import { HapiRequest, HapiResponseToolkit } from "../types"; import config from "../config"; import getRequestInfo from "server/utils/getRequestInfo"; +import { FormModel } from "server/plugins/engine/models"; +import { feedbackReturnInfoKey } from "./engine/helpers"; +import { FeedbackContextInfo, RelativeUrl } from "./engine/feedback"; + +import fs from "fs"; +import path from "path"; +import { Server } from "@hapi/hapi"; const routes = [...publicRoutes, healthCheckRoute]; @@ -24,28 +31,95 @@ interface CookiePayload { export default { plugin: { name: "router", - register: (server) => { + register: (server: Server) => { server.route(routes); server.route([ { method: "get", - path: "/help/privacy", + path: "/{url}/privacy", handler: async (_request: HapiRequest, h: HapiResponseToolkit) => { - if (config.privacyPolicyUrl) { - return h.redirect(config.privacyPolicyUrl); + const { url } = _request.params; // Extract the dynamic page parameter + const form = server.app.forms[url]; // Gain requested form context + + // Construct the file path for the view + const viewPath = path.join( + __dirname, + "../views", + url, + "privacy.html" + ); + + // Catch the default help page before processing further + if (url === "help") { + return h.view("help/privacy"); + } + + // If one of the close-contact forms, display the close-contact privacy + if (url.includes("close-contact-form")) { + return h.view("close-contact-form/privacy"); + } + + // Check if the file exists + if (!form || !fs.existsSync(viewPath)) { + return h.redirect("/help/privacy"); } - return h.view("help/privacy"); + + const title = `${url}/privacy`; + return h.view(title, { + name: form.name, + serviceName: form.def.serviceName, + serviceStartPage: form.serviceStartPage, + feedbackLink: feedbackUrlFromRequest(_request, form, title), + returnTo: form.returnTo, + }); }, }, { method: "get", - path: "/help/cookies", + path: "/{url}/cookies", handler: async (request: HapiRequest, h: HapiResponseToolkit) => { + const { url } = request.params; // Extract the dynamic page parameter const cookiesPolicy = request.state.cookies_policy; let analytics = cookiesPolicy?.analytics === "on" ? "accept" : "reject"; - return h.view("help/cookies", { + + const form = server.app.forms[url]; // Gain requested form context + + // Construct the file path for the view + const viewPath = path.join( + __dirname, + "../views", + url, + "cookies.html" + ); + + // Catch the default help page before processing further + if (url === "help") { + return h.view("help/cookies"); + } + + // If one of the close-contact forms, display the close-contact cookies + if (url.includes("close-contact-form")) { + return h.view("close-contact-form/cookies"); + } + + // Check if the file exists + if (!form || !fs.existsSync(viewPath)) { + return h.redirect("/help/cookies"); + } + + const title = `${url}/cookies`; + return h.view(title, { analytics, + name: form.name, + serviceName: form.def.serviceName, + serviceStartPage: form.serviceStartPage, + returnTo: form.returnTo, + feedbackLink: feedbackUrlFromRequest(request, form, title), + matomoUrl: form.def.analytics.matomoUrl, + matomoId: form.def.analytics.matomoId, + gtmId1: form.def.analytics.gtmId1, + gtmId2: form.def.analytics.gtmId2, }); }, }, @@ -72,18 +146,42 @@ export default { }).required(), }, }, - path: "/help/cookies", + path: "/{url}/cookies", handler: async (request: HapiRequest, h: HapiResponseToolkit) => { + const { url } = request.params; // Extract the dynamic page parameter + const { cookies } = request.payload as CookiePayload; const accept = cookies === "accept"; const { referrer } = getRequestInfo(request); - let redirectPath = "/help/cookies"; + const form = server.app.forms[url]; // Gain requested form context + + // Construct the file path for the view + const viewPath = path.join( + __dirname, + "../views", + url, + "cookies.html" + ); + + let redirectPath = `/${url}/cookies`; + + // Catch the default help page before processing further + if (url === "help") { + redirectPath = "help/cookies"; + } + + // Check if the file exists + if (!form || !fs.existsSync(viewPath)) { + redirectPath = "/help/cookies"; + } if (referrer) { redirectPath = new URL(referrer).pathname; } + const cookieName = form?.name || `${url}Page`; + return h.redirect(redirectPath).state( "cookies_policy", { @@ -92,6 +190,7 @@ export default { essential: true, analytics: accept ? "on" : "off", usage: accept, + name: cookieName, }, { isHttpOnly: false, @@ -104,17 +203,79 @@ export default { server.route({ method: "get", - path: "/help/terms-and-conditions", + path: "/{url}/terms-and-conditions", handler: async (_request: HapiRequest, h: HapiResponseToolkit) => { - return h.view("help/terms-and-conditions"); + const { url } = _request.params; // Extract the dynamic page parameter + + const form = server.app.forms[url]; // Gain requested form context + + // Construct the file path for the view + const viewPath = path.join( + __dirname, + "../views", + url, + "terms-and-conditions.html" + ); + + // Catch the default help page before processing further + if (url === "help") { + return h.view("help/terms-and-conditions"); + } + + // Check if the file exists, if it doesn't, redirect to the default accessibility statement + if (!form || !fs.existsSync(viewPath)) { + return h.redirect("/help/terms-and-conditions"); + } + + const title = `${url}/terms-and-conditions`; + return h.view(title, { + name: form.name, + serviceName: form.def.serviceName, + serviceStartPage: form.serviceStartPage, + feedbackLink: feedbackUrlFromRequest(_request, form, title), + }); }, }); server.route({ method: "get", - path: "/help/accessibility-statement", + path: "/{url}/accessibility-statement", handler: async (_request: HapiRequest, h: HapiResponseToolkit) => { - return h.view("help/accessibility-statement"); + const { url } = _request.params; // Extract the dynamic page parameter + + const form = server.app.forms[url]; // Gain requested form context + + // Construct the file path for the view + const viewPath = path.join( + __dirname, + "../views", + url, + "accessibility-statement.html" + ); + + // Catch the default help page before processing further + if (url === "help") { + return h.view("help/accessibility-statement"); + } + + // If one of the close-contact forms, display the close-contact accessibility statement + if (url.includes("close-contact-form")) { + return h.view("close-contact-form/accessibility-statement"); + } + + // Check if the file exists, if it doesn't, redirect to the default accessibility statement + if (!form || !fs.existsSync(viewPath)) { + return h.redirect("/help/accessibility-statement"); + } + + const title = `${url}/accessibility-statement`; + return h.view(title, { + name: form.name, + serviceName: form.serviceName, + serviceStartPage: form.serviceStartPage, + feedbackLink: feedbackUrlFromRequest(_request, form, title), + returnTo: form.returnTo, + }); }, }); @@ -132,28 +293,51 @@ export default { server.route({ method: "get", - path: "/timeout", + path: "/{url}/timeout", handler: async (request: HapiRequest, h: HapiResponseToolkit) => { if (request.yar) { request.yar.reset(); } - let startPage = "/"; - - const { referer } = request.headers; + const { url } = request.params; + const form = server.app.forms[url]; + let startPage = `/${url}`; - if (referer) { - const match = referer.match(/https?:\/\/[^/]+\/([^/]+).*/); - if (match && match.length > 1) { - startPage = `/${match[1]}`; - } - } - - return h.view("timeout", { - startPage, + const title = "timeout"; + return h.view(title, { + name: form?.name, + serviceName: form?.serviceName, + serviceStartPage: form.serviceStartPage, + startPage: startPage, + feedbackLink: feedbackUrlFromRequest(request, form, title), + returnTo: form.returnTo, }); }, }); }, }, }; + +function feedbackUrlFromRequest( + request: HapiRequest, + form: FormModel, + title: string +): string | void { + const feedbackUrl = form.def.feedback?.url as any; + if (feedbackUrl) { + if (feedbackUrl.startsWith("http")) { + return feedbackUrl; + } + + const relativeFeedbackUrl = new RelativeUrl(feedbackUrl); + const returnInfo = new FeedbackContextInfo( + form.name, + title, + `${request.url.pathname}${request.url.search}` + ); + relativeFeedbackUrl.setParam(feedbackReturnInfoKey, returnInfo.toString()); + return relativeFeedbackUrl.toString(); + } + + return undefined; +} diff --git a/runner/src/server/plugins/session.ts b/runner/src/server/plugins/session.ts index 6e28dbb605..33c52b54a0 100644 --- a/runner/src/server/plugins/session.ts +++ b/runner/src/server/plugins/session.ts @@ -9,7 +9,7 @@ export default { }, cookieOptions: { password: config.sessionCookiePassword || generateCookiePassword(), - isSecure: !config.isDev, + isSecure: config.httpsCookieSecureAttribute, isHttpOnly: true, isSameSite: "Lax", }, diff --git a/runner/src/server/plugins/views.ts b/runner/src/server/plugins/views.ts index 0afc6e0f2c..5eecbfab1b 100644 --- a/runner/src/server/plugins/views.ts +++ b/runner/src/server/plugins/views.ts @@ -7,6 +7,7 @@ import pkg from "../../../package.json"; import config from "../config"; import { HapiRequest } from "../types"; import additionalContexts from "../templates/additionalContexts.json"; +import srsContexts from "../templates/srsContexts.json"; const basedir = path.join(process.cwd(), ".."); @@ -42,6 +43,7 @@ export default { watch: false, }); environment.addGlobal("additionalContexts", additionalContexts); + environment.addGlobal("srsContexts", srsContexts); environment.addFilter("isArray", (x) => Array.isArray(x)); options.compileOptions.environment = environment; @@ -60,29 +62,47 @@ export default { `${path.dirname(resolve.sync("hmpo-components"))}/components`, ], isCached: !config.isDev, - context: (request: HapiRequest) => ({ - appVersion: pkg.version, - assetPath: "/assets", - cookiesPolicy: request?.state?.cookies_policy, - serviceName: config.serviceName, - returnTo: request?.server?.app?.forms?.[request.params?.id]?.def?.returnTo || false, - feedbackLink: config.feedbackLink, - pageTitle: config.serviceName + " - GOV.UK", - analyticsAccount: config.analyticsAccount, - gtmId1: config.gtmId1, - gtmId2: config.gtmId2, - location: request?.app.location, - matomoId: config.matomoId, - matomoUrl: config.matomoUrl, - BROWSER_REFRESH_URL: config.browserRefreshUrl, - sessionTimeout: config.sessionTimeout, - skipTimeoutWarning: false, - serviceStartPage: config.serviceStartPage, - privacyPolicyUrl: config.privacyPolicyUrl || "/help/privacy", - phaseTag: config.phaseTag, - navigation: request?.auth.isAuthenticated - ? [{ text: "Sign out", href: "/logout" }] - : null, - }), + context: (request: HapiRequest) => { + const id = request.params?.id; + const forms = request.server?.app?.forms; + const model = id && forms?.[id]; + const analytics = model?.def?.analytics || {}; + + return { + appVersion: pkg.version, + assetPath: "/assets", + cookiesPolicy: request?.state?.cookies_policy, + serviceName: + request.server?.app?.forms?.[request.params?.id]?.def?.serviceName || + config.serviceName, + returnTo: + request?.server?.app?.forms?.[request.params?.id]?.def?.returnTo || + false, + feedbackLink: config.feedbackLink, + pageTitle: + (request.server?.app?.forms?.[request.params?.id]?.def?.serviceName || + config.serviceName) + " - GOV.UK", + analyticsAccount: config.analyticsAccount, + gtmId1: analytics.gtmId1 || "", + gtmId2: analytics.gtmId2 || "", + location: request?.app.location, + matomoId: analytics.matomoId || "", + matomoUrl: analytics.matomoUrl || "", + BROWSER_REFRESH_URL: config.browserRefreshUrl, + sessionTimeout: config.sessionTimeout, + skipTimeoutWarning: false, + serviceStartPage: + request.server?.app?.forms?.[request.params?.id]?.def + ?.fullStartPage || + config.serviceStartPage || + config.serviceName || + "#", + privacyPolicyUrl: config.privacyPolicyUrl || "/help/privacy", + phaseTag: config.phaseTag, + navigation: request?.auth.isAuthenticated + ? [{ text: "Sign out", href: "/logout" }] + : null, + }; + }, }, }; diff --git a/runner/src/server/schemas/webhookSchema.ts b/runner/src/server/schemas/webhookSchema.ts index e490291e88..bec9f0ffb4 100644 --- a/runner/src/server/schemas/webhookSchema.ts +++ b/runner/src/server/schemas/webhookSchema.ts @@ -78,6 +78,7 @@ const optionsSchema: joi.ObjectSchema< title: joi.string().optional().allow(false, ""), paymentSkipped: joi.string().optional().allow(false, ""), nextSteps: joi.string().optional().allow(false, ""), + hidePanel: joi.boolean().optional(), }) .optional(), components: joi.array().items(componentSchema), diff --git a/runner/src/server/services/ExitService.ts b/runner/src/server/services/ExitService.ts index f6369e166c..30dedb94c6 100644 --- a/runner/src/server/services/ExitService.ts +++ b/runner/src/server/services/ExitService.ts @@ -46,18 +46,19 @@ export class ExitService { }); return response.payload; } catch (e: unknown) { - if (e.data?.isResponseError) { - this.logger.error( - { - service: "ExitService", - method: "POST", - url, - reqBody: payload, - statusCode: e.data.res.statusCode, - }, - `${url} responded with an error when exiting form for ${payload?.exitState?.exitEmailAddress}.` - ); - } + // Commented out due to potential for logging PII + // if (e.data?.isResponseError) { + // this.logger.error( + // { + // service: "ExitService", + // method: "POST", + // url, + // reqBody: payload, + // statusCode: e.data.res.statusCode, + // }, + // `${url} responded with an error when exiting form for ${payload?.exitState?.exitEmailAddress}.` + // ); + // } throw e; } } diff --git a/runner/src/server/services/cacheService.ts b/runner/src/server/services/cacheService.ts index 708b6e7435..80b627131b 100644 --- a/runner/src/server/services/cacheService.ts +++ b/runner/src/server/services/cacheService.ts @@ -42,13 +42,16 @@ export class CacheService { this.logger = server.logger; } - async getState(request: HapiRequest): Promise { + async getState( + request: Parameters[0] + ): Promise { const cached = await this.cache.get(this.Key(request)); + return cached || {}; } async mergeState( - request: HapiRequest, + request: Parameters[0], value: object, nullOverride = true, arrayMerge = false @@ -122,7 +125,7 @@ export class CacheService { return this.mergeState(request, { exitState }); } - async clearState(request: HapiRequest) { + async clearState(request: Parameters[0]) { if (request.yar?.id) { this.cache.drop(this.Key(request)); } @@ -135,10 +138,17 @@ export class CacheService { * @param request - hapi request object * @param additionalIdentifier - appended to the id */ - Key(request: HapiRequest, additionalIdentifier?: ADDITIONAL_IDENTIFIER) { + Key( + request: { + yar: Pick; + params: HapiRequest["params"]; + }, + additionalIdentifier?: ADDITIONAL_IDENTIFIER + ) { if (!request?.yar?.id) { throw Error("No session ID found"); } + return { segment: partition, id: `${request.yar.id}:${request.params.id}${additionalIdentifier ?? ""}`, diff --git a/runner/src/server/services/formSecurityService.ts b/runner/src/server/services/formSecurityService.ts new file mode 100644 index 0000000000..b9099aad7d --- /dev/null +++ b/runner/src/server/services/formSecurityService.ts @@ -0,0 +1,64 @@ +import { HapiRequest, HapiServer } from "../types"; + +import { + getSecureFormSubmissionServiceInstance, + SecureFormSubmissionService, +} from "./secureFormSubmissionService"; + +export class FormSecurityService { + /** + * Service responsible for securing form submissions. This service has been registered by {@link #createServer} + */ + + logger: HapiServer["logger"]; + constructor(server: HapiServer) { + this.logger = server.logger; + } + + async getSecurityHeaders(request: HapiRequest) { + const formId = request.params?.id as string; + if (!formId) { + return; + } + + const form = request.server?.app?.forms?.[formId]; + if (!form) { + return; + } + + let customSecurityHeaders: Record = {}; + + if (form.def.secureFormSubmissionConfig) { + /** Secure form submissions facilitated through a form specific instance of the secureFormSubmissionService + * We resolve the named service instance for the form + * If it exists, it's implementation will return a headers object \{ Authorization: "Bearer "\} + * For more information @see secure-form-submissions.md + */ + + const instanceName = getSecureFormSubmissionServiceInstance(formId); + if (instanceName) { + const serviceInstance = request.services([])[ + instanceName + ] as SecureFormSubmissionService; + + if (serviceInstance) { + const headers = await serviceInstance.getAuthHeader(); + if (headers) { + const { + useAwsWafUserAgentWorkaround, + } = form.def.secureFormSubmissionConfig; + + if (useAwsWafUserAgentWorkaround == true) { + /* AWS WAF forces User-Agent as part of auth, provide one to prevent 403 */ + headers["User-Agent"] = "X-GOV Forms/v1.0"; + } + + customSecurityHeaders = headers; + } + } + } + } + + return customSecurityHeaders; + } +} diff --git a/runner/src/server/services/index.ts b/runner/src/server/services/index.ts index 79e74c6c69..a1184e9afd 100644 --- a/runner/src/server/services/index.ts +++ b/runner/src/server/services/index.ts @@ -3,7 +3,14 @@ export { PayService } from "./payService"; export { NotifyService } from "./notifyService"; export { EmailService } from "./emailService"; export { CacheService, catboxProvider } from "./cacheService"; +export { MagicLinkCacheService } from "./magicLinkCacheService"; export { WebhookService } from "./webhookService"; export { StatusService } from "./statusService"; export { AddressService } from "./addressService"; export { ExitService } from "./ExitService"; +export { FormSecurityService } from "./formSecurityService"; +export { MsalAuthorizer } from "./msalAuthorizerService"; +export { + SecureFormSubmissionService, + getSecureFormSubmissionServiceInstance, +} from "./secureFormSubmissionService"; diff --git a/runner/src/server/services/magicLinkCacheService.ts b/runner/src/server/services/magicLinkCacheService.ts new file mode 100644 index 0000000000..09a6fd1fec --- /dev/null +++ b/runner/src/server/services/magicLinkCacheService.ts @@ -0,0 +1,283 @@ +import { Policy, PolicyOptions } from "@hapi/catbox"; +import config from "../config"; +import { HapiRequest, HapiServer } from "../types"; +import { CacheService } from "./cacheService"; + +export class MagicLinkCacheService { + /* This service is responsible for getting, setting and deleting magic link data in the cache. + This service has been registered by {@link createServer} + */ + cacheService: CacheService; + + magicLinkRecordCache: TypedCache; + magicLinkFormIdBySessionCache: TypedCache; + magicLinkReturnDataByHmacCache: TypedCache; + + logger: HapiServer["logger"]; + + ttl = config.sessionTimeout ?? 1000 * 60 * 10; // 10 minutes + + constructor(server: HapiServer) { + this.logger = server.logger; + + const { cacheService } = server.services([]); + this.cacheService = cacheService; + + this.magicLinkRecordCache = cacheService.cache as TypedCache< + MagicLinkRecord + >; + + this.magicLinkFormIdBySessionCache = cacheService.cache as TypedCache< + FormIdBySessionIdRecord + >; + + this.magicLinkReturnDataByHmacCache = cacheService.cache as TypedCache< + ReturnDataByHmacRecord + >; + } + + async createMagicLinkRecord( + email: string, + hmac: string, + currentTimestamp: number + ) { + const key = getMagicLinkRecordKey(email); + const value = { + hmac: hmac, + active: currentTimestamp, + }; + return this.magicLinkRecordCache.set(key, value, this.ttl); + } + + async updateMagicLinkRecord( + email: string, + hmac: string, + currentTimestamp: number + ) { + const key = getMagicLinkRecordKey(email); + + const value = { + hmac: hmac, + active: currentTimestamp, + }; + return this.magicLinkRecordCache.set(key, value, this.ttl); + } + + async searchForMagicLinkRecord(email: string) { + const key = getMagicLinkRecordKey(email); + const emailCached = await this.magicLinkRecordCache.get(key); + return emailCached ?? null; + } + + async deleteMagicLinkRecord(email: string) { + const key = getMagicLinkRecordKey(email); + return await this.magicLinkRecordCache.drop(key); + } + + async saveFormIdBeforeMagicLinkRedirectToAllowResume(request: HapiRequest) { + /* Magic Link Session Resume Step 1: Save the form id before redirecting to the Magic Link form + Saves form id by session id, to allow retrieval in the magic link form flow + */ + const sessionId = request.yar.id; + + /* Form id being redirected to magic link from, for example "ReportAnOutbreak" */ + const formId = request.params.id as string; + + if (!sessionId || !formId) { + request.logger.error("Magic Link: Missing data in step 1", { + sessionId, + formId, + }); + + return; + } + + /* Set the current form id to allow it to be accessed from the magic link form flow */ + const key = getFormIdBySessionIdKey(sessionId); + await this.magicLinkFormIdBySessionCache.set(key, { formId }, this.ttl); + } + + async saveInformationToAllowMagicLinkResume( + request: HapiRequest, + hmac: string + ) { + /* Magic Link Session Resume Step 2: Save additional information when sending out the Magic Link + In order to be able to re-populate the state after magic link has been clicked without relying on browser state we save the current: + - session id (as a new session will be started when opening in a differnt browser) + - form id (i.e "ReportAnOutbreak", to know which cache key to retrieve state from) + */ + + const sessionId = request.yar.id; + const magicLinkFormId = request.params.id as string; + + if (!sessionId || !magicLinkFormId) { + request.logger.error("Magic Link: Missing data in step 2", { + sessionId, + magicLinkFormId, + }); + + return; + } + + /* Retrieve form id using the FormIdBySessionIdLookup */ + const previousFormEntry = await this.magicLinkFormIdBySessionCache.get( + getFormIdBySessionIdKey(sessionId) + ); + + if (!previousFormEntry) { + request.logger.error("Magic Link: Missing data in step 2", { + sessionId, + magicLinkFormId, + previousFormEntry, + }); + + return; + } + + /* Save information required to populate state from previous session */ + await this.magicLinkReturnDataByHmacCache.set( + getReturnDataByHmacKey(hmac), + { + sessionId, + formId: previousFormEntry.formId, + }, + this.ttl + ); + + /* Clear out FormId By Session lookup */ + await this.magicLinkFormIdBySessionCache.drop( + getFormIdBySessionIdKey(sessionId) + ); + } + + async repopulateFormStateUponMagicLinkReturn( + request: HapiRequest, + hmac: string + ) { + /* Magic Link Session Resume Step 3: + Populate current session with saved data when returning to site from email link, before navigating back to normal form + */ + const magicLinkReturnEntry = await this.magicLinkReturnDataByHmacCache.get( + getReturnDataByHmacKey(hmac) + ); + + if (!magicLinkReturnEntry) { + request.logger.error( + "Magic Link: Missing data in step 3 (magicLinkReturnEntry undefined)" + ); + + return; + } + + /* Found previous session state */ + const currentSessionId = request.yar.id; + const magicLinkFormId = request.params.id; + + const { + sessionId: previousSessionId, + formId: previousFormId, + } = magicLinkReturnEntry; + + if (!currentSessionId || !previousSessionId || !previousFormId) { + request.logger.error("Magic Link: Missing data in step 3", { + currentSessionId, + previousSessionId, + previousFormId, + }); + return; + } + + if (currentSessionId === previousSessionId) { + /* Continuing in same browser, no need to repopulate previous state */ + return; + } + + /* Continuing in different session (different browser / new browser / new instance / tab) + Re-instate form states from previous session + */ + await this.mergeFormStateFromPreviousSession({ + previousSessionId, + currentSessionId, + formId: magicLinkFormId, + }); + + await this.mergeFormStateFromPreviousSession({ + previousSessionId, + currentSessionId, + formId: previousFormId, + }); + + /* Cleaning up state from previous session */ + await this.clearFormState(previousSessionId, magicLinkFormId); + await this.clearFormState(previousSessionId, previousFormId); + + /* Delete Magic Link Lookup Entry */ + await this.magicLinkReturnDataByHmacCache.drop( + getReturnDataByHmacKey(hmac) + ); + } + + private async mergeFormStateFromPreviousSession({ + previousSessionId, + currentSessionId, + formId, + }: { + previousSessionId: string; + currentSessionId: string; + formId: string; + }) { + const previousFormState = await this.getFormState( + previousSessionId, + formId + ); + + await this.mergeFormState(currentSessionId, formId, previousFormState); + } + + private async getFormState(sessionId: string, formId: string) { + return await this.cacheService.getState({ + params: { id: formId }, + yar: { id: sessionId }, + }); + } + + private async mergeFormState( + sessionId: string, + formId: string, + value: Record + ) { + return await this.cacheService.mergeState( + { + params: { id: formId }, + yar: { id: sessionId }, + }, + value + ); + } + + private async clearFormState(sessionId: string, formId: string) { + if (sessionId && formId) { + await this.cacheService.clearState({ + params: { id: formId }, + yar: { id: sessionId }, + }); + } + } +} + +type TypedCache = Policy>; + +type MagicLinkRecord = { hmac: string; active: number }; +const getMagicLinkRecordKey = (email: string) => { + return `magic_link:${email.toLocaleLowerCase()}`; +}; + +type FormIdBySessionIdRecord = { formId: string }; +const getFormIdBySessionIdKey = (sessionId: string) => { + return `magic_link_form_id_by_session:${sessionId.toLocaleLowerCase()}`; +}; + +type ReturnDataByHmacRecord = { sessionId: string; formId: string } | undefined; +const getReturnDataByHmacKey = (hmac: string) => { + return `magic_link_return_data_by_hmac:${hmac.toLocaleLowerCase()}`; +}; diff --git a/runner/src/server/services/msalAuthorizerService.ts b/runner/src/server/services/msalAuthorizerService.ts new file mode 100644 index 0000000000..986bcb45bf --- /dev/null +++ b/runner/src/server/services/msalAuthorizerService.ts @@ -0,0 +1,26 @@ +import { ConfidentialClientApplication } from "@azure/msal-node"; +import { MsalAuthorizerConfig } from "@xgovformbuilder/model"; + +export class MsalAuthorizer { + private readonly msal: ConfidentialClientApplication; + private readonly scopes: string[]; + + constructor(config: MsalAuthorizerConfig) { + this.scopes = config.scopes; + this.msal = new ConfidentialClientApplication({ + auth: { + clientId: config.clientId, + clientSecret: config.clientSecret, + authority: `https://login.microsoftonline.com/${config.tenantId}`, + }, + }); + } + + async getToken(): Promise { + const token = await this.msal.acquireTokenByClientCredential({ + scopes: this.scopes, + }); + if (!token?.accessToken) throw new Error("Failed to acquire access token"); + return token.accessToken; + } +} diff --git a/runner/src/server/services/queueStatusService.ts b/runner/src/server/services/queueStatusService.ts index 26e27eee58..0c9fbac5f1 100644 --- a/runner/src/server/services/queueStatusService.ts +++ b/runner/src/server/services/queueStatusService.ts @@ -40,7 +40,10 @@ export class QueueStatusService extends StatusService { `Queue reference: ${queueReference}` ); } catch (e) { - throw Boom.badRequest(e); + throw Boom.badRequest( + "QueueStatusService:queueService.sendToQueue threw an error", + e + ); } } diff --git a/runner/src/server/services/secureFormSubmissionService.ts b/runner/src/server/services/secureFormSubmissionService.ts new file mode 100644 index 0000000000..4092c33084 --- /dev/null +++ b/runner/src/server/services/secureFormSubmissionService.ts @@ -0,0 +1,28 @@ +import { SecureFormSubmissionConfig } from "@xgovformbuilder/model"; +import { MsalAuthorizer } from "./msalAuthorizerService"; + +export class SecureFormSubmissionService { + private readonly auth: MsalAuthorizer; + + constructor(config: SecureFormSubmissionConfig) { + this.auth = new MsalAuthorizer(config); + } + + async getAuthHeader() { + const headers: Record = { + Authorization: `Bearer ${await this.auth.getToken()}`, + }; + + return headers; + } +} + +export const getSecureFormSubmissionServiceInstance = (formId: string) => { + if (!formId || !formId.trim().length) { + throw new Error( + `Failed to get secure form submission service instance name for : ${formId}` + ); + } + + return `secureFormSubmissionServiceInstance:${formId}`; +}; diff --git a/runner/src/server/services/statusService.ts b/runner/src/server/services/statusService.ts index 65c69253d1..f7e7026373 100644 --- a/runner/src/server/services/statusService.ts +++ b/runner/src/server/services/statusService.ts @@ -1,19 +1,24 @@ import { HapiRequest, HapiServer } from "../types"; +import { createHmacRaw } from "../utils/hmac"; import { CacheService, + FormSecurityService, NotifyService, PayService, WebhookService, } from "server/services"; import { SendNotificationArgs } from "server/services/notifyService"; -import { Output, WebhookOutputConfiguration } from "@xgovformbuilder/model"; -import type { NotifyModel } from "../plugins/engine/models/submission"; +import { WebhookOutputConfiguration } from "@xgovformbuilder/model"; import { ComponentCollection } from "server/plugins/engine/components/ComponentCollection"; import { FormSubmissionState } from "server/plugins/engine/types"; import { FormModel } from "server/plugins/engine/models"; import Boom from "boom"; import config from "server/config"; import nunjucks from "nunjucks"; +import { + OutputData, + TNotifyModel, +} from "../plugins/engine/models/submission/types"; type WebhookModel = WebhookOutputConfiguration & { formData: object; @@ -24,22 +29,17 @@ type OutputArgs = { webhook: WebhookModel[]; }; -type OutputModel = Output & { - outputData: NotifyModel | WebhookModel; -}; - function isWebhookModel( - output: OutputModel["outputData"] + output: OutputData["outputData"] ): output is WebhookModel { return (output as WebhookModel)?.url !== undefined; } function isNotifyModel( - output: OutputModel["outputData"] -): output is NotifyModel { - return (output as NotifyModel)?.emailAddress !== undefined; + output: OutputData["outputData"] +): output is TNotifyModel { + return (output as TNotifyModel)?.emailAddress !== undefined; } - export class StatusService { /** * StatusService handles sending data at the end of the form to the configured `Outputs` @@ -49,6 +49,7 @@ export class StatusService { webhookService: WebhookService; notifyService: NotifyService; payService: PayService; + formSecurityService: FormSecurityService; constructor(server: HapiServer) { this.logger = server.logger; @@ -57,11 +58,13 @@ export class StatusService { webhookService, notifyService, payService, + formSecurityService, } = server.services([]); this.cacheService = cacheService; this.webhookService = webhookService; this.notifyService = notifyService; this.payService = payService; + this.formSecurityService = formSecurityService; } async shouldShowPayErrorPage(request: HapiRequest): Promise { const { pay } = await this.cacheService.getState(request); @@ -130,6 +133,36 @@ export class StatusService { let newReference; + /** + * If the OPTIONAL config contains webhookHmacSharedKey, then we send HMAC Auth headers + * This is used to confirm ONLY X-Gov's backend is sending data to our API + * Everyone else will be Rejected + */ + const id = request.params?.id; + const forms = request.server?.app?.forms; + const model = id && forms?.[id]; + const hmacKey = model?.def?.webhookHmacSharedKey; + let customSecurityHeaders: Record = {}; + + if (hmacKey) { + const [hmacSignature, requestTime, hmacExpiryTime] = await createHmacRaw( + request.yar.id, + hmacKey + ); + customSecurityHeaders = { + "X-Request-ID": request.yar.id.toString(), + "X-HMAC-Signature": hmacSignature.toString(), + "X-HMAC-Time": requestTime.toString(), + }; + } else { + const formSecurityHeaders = await this.formSecurityService.getSecurityHeaders( + request + ); + if (formSecurityHeaders) { + customSecurityHeaders = formSecurityHeaders; + } + } + if (callback) { this.logger.info( ["StatusService", "outputRequests"], @@ -142,7 +175,10 @@ export class StatusService { "PUT" ); } catch (e) { - throw Boom.badRequest(e); + throw Boom.badRequest( + "StatusService:webhookService.postRequest threw an error", + e + ); } } @@ -153,7 +189,8 @@ export class StatusService { firstWebhook.outputData.url, { ...formData }, "POST", - firstWebhook.outputData.sendAdditionalPayMetadata + firstWebhook.outputData.sendAdditionalPayMetadata, + customSecurityHeaders ); await this.cacheService.mergeState(request, { reference: newReference, @@ -164,7 +201,9 @@ export class StatusService { otherOutputs, formData, newReference, - state.pay + state.pay, + state.hmacSignature, + state.hmacExpiryTime ); const requests = [ @@ -176,7 +215,8 @@ export class StatusService { ...formData, }, "POST", - sendAdditionalPayMetadata + sendAdditionalPayMetadata, + customSecurityHeaders ) ), ]; @@ -193,16 +233,28 @@ export class StatusService { webhookArgsFromState(state) { const { pay = {}, webhookData } = state; const { paymentSkipped } = pay; - const { metadata, fees, ...rest } = webhookData; - const webhookArgs = { - ...rest, - ...(!paymentSkipped && { fees }), - metadata: { - ...metadata, - ...state.metadata, - paymentSkipped: paymentSkipped ?? false, - }, - }; + const webhookArgs = (() => { + if (!webhookData) { + // Handle the case when webhookData is undefined + return { + metadata: { + ...state.metadata, + paymentSkipped: paymentSkipped ?? false, + }, + }; + } + + const { metadata, fees, ...rest } = webhookData; + return { + ...rest, + ...(!paymentSkipped && { fees }), + metadata: { + ...metadata, + ...state.metadata, + paymentSkipped: paymentSkipped ?? false, + }, + }; + })(); if (pay) { webhookArgs.metadata.pay = { @@ -218,7 +270,9 @@ export class StatusService { emailOutputsFromState( outputData, reference, - payReference + payReference, + hmacSignature, + hmacExpiryTime ): SendNotificationArgs { const { apiKey, @@ -239,6 +293,8 @@ export class StatusService { hasPaymentReference: !!payReference, paymentReference: payReference || "", }), + hmacSignature, + hmacExpiryTime, }, reference, apiKey, @@ -250,20 +306,24 @@ export class StatusService { } outputArgs( - outputs: OutputModel[] = [], + outputs: OutputData[] = [], formData = {}, reference, - payReference + payReference, + hmacSignature, + hmacExpiryTime ): OutputArgs { this.logger.trace(["StatusService", "outputArgs"], JSON.stringify(outputs)); return outputs.reduce( - (previousValue: OutputArgs, currentValue: OutputModel) => { + (previousValue: OutputArgs, currentValue: OutputData) => { let { notify, webhook } = previousValue; if (isNotifyModel(currentValue.outputData)) { const args = this.emailOutputsFromState( currentValue.outputData, reference, - payReference + payReference, + hmacSignature, + hmacExpiryTime ); this.logger.trace( ["StatusService", "outputArgs", "notify"], diff --git a/runner/src/server/services/upload/uploadService.ts b/runner/src/server/services/upload/uploadService.ts index d9c537403a..7b035cd44a 100644 --- a/runner/src/server/services/upload/uploadService.ts +++ b/runner/src/server/services/upload/uploadService.ts @@ -2,6 +2,7 @@ import FormData from "form-data"; import config from "../../config"; import { get, post } from "../httpService"; +import { createHmacRaw } from "../../utils/hmac"; import { HapiRequest, HapiResponseToolkit, HapiServer } from "../../types"; type Payload = HapiRequest["payload"]; @@ -26,10 +27,10 @@ const parsedError = (key: string, error?: string) => { }; const ERRORS = { - fileSizeError: 'The selected files are too large', + fileSizeError: "The selected files are too large", fileTypeError: "Invalid file type. Upload a PNG, JPG or PDF", - fileCountError: 'You have selected too many files', - virusError: 'The selected files contain a virus', + fileCountError: "You have selected too many files", + virusError: "The selected files contain a virus", default: "There was an error uploading your file", }; @@ -55,7 +56,7 @@ export class UploadService { const namesSet = new Set(acceptedTypeNames); acceptedTypeNames = Array.from(namesSet); - + const acceptedTypesNameWithoutLast = acceptedTypeNames .slice(0, -1) .join(", "); @@ -109,7 +110,7 @@ export class UploadService { }); } - async uploadDocuments(streams: any[]) { + async uploadDocuments(streams: any[], request: HapiRequest) { const form = new FormData(); for (const stream of streams) { form.append("files", stream, { @@ -118,7 +119,30 @@ export class UploadService { }); } - const requestData = { headers: form.getHeaders(), payload: form }; + const formHeaders = form.getHeaders(); + + const id = request.params?.id; + const forms = request.server?.app?.forms; + const model = id && forms?.[id]; + const hmacKey = model?.def?.fileUploadHmacSharedKey; + + const [hmacSignature, requestTime] = await createHmacRaw( + request.yar.id, + hmacKey + ); + + const customSecurityHeaders = { + "X-Request-ID": request.yar.id.toString(), + "X-HMAC-Signature": hmacSignature.toString(), + "X-HMAC-Time": requestTime.toString(), + }; + + const headers = { + ...formHeaders, + ...customSecurityHeaders, + }; + + const requestData = { headers, payload: form }; const responseData = await post( `${config.documentUploadApiUrl}/v1/files`, requestData @@ -151,7 +175,7 @@ export class UploadService { error = ERRORS.fileTypeError; break; case 413: - if(errorCode === "TOO_MANY_FILES") { + if (errorCode === "TOO_MANY_FILES") { if (payloadJson?.maxFilesPerUpload) { error = `You can only select up to ${payloadJson?.maxFilesPerUpload} files at the same time`; } else { @@ -184,9 +208,33 @@ export class UploadService { file: HapiReadableStream, customAcceptedTypes?: string[] ) { + const contentType = file?.hapi?.headers?.["content-type"]; + const filename = file?.hapi?.filename; const acceptedTypes = customAcceptedTypes ?? this.validContentTypes; - return acceptedTypes.includes(file?.hapi?.headers?.["content-type"]); + let isValid = acceptedTypes.includes(contentType); + + // Fallback: allow .ris files with 'application/octet-stream' + // API BACKEND - Will be used to scan if this is actually what it claims to be ... + if (!isValid && filename?.endsWith(".ris")) { + this.logger.warn("UPLOAD_WARNING", { + reason: "RIS file had generic content type", + filename, + contentType, + }); + isValid = true; + } + + // Fallback: allow .msg files with 'application/octet-stream' + if (!isValid && filename?.endsWith(".msg")) { + this.logger.warn("UPLOAD_WARNING", { + reason: "RIS file had generic content type", + filename, + contentType, + }); + isValid = true; + } + return isValid; } invalidFileTypeError(fieldName: string, customAcceptedTypes?: string[]) { @@ -216,9 +264,23 @@ export class UploadService { const contentTypeToName = { "image/jpeg": "jpg, jpeg", "image/png": "png", + "image/gif": "gif", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": "xlsx", + "text/csv": "csv", + "application/vnd.ms-excel.sheet.macroEnabled.12": "xlsm", + "application/xml": "xml", "application/pdf": "pdf", - "application/vnd.oasis.opendocument.text": "odt", "application/vnd.openxmlformats-officedocument.wordprocessingml.document": "docx", - "text/csv": "csv", + "application/rtf": "rtf", + "text/rtf": "rtf", + "application/msword": "doc", + "application/x-research-info-systems": "ris", + "text/ris": "ris", + "text/plain": "txt", + "application/vnd.ms-outlook": "msg", + "application/vnd.openxmlformats-officedocument.presentationml.presentation": + "pptx", + "application/vnd.ms-excel": "xls", + // "application/zip": "zip" }; diff --git a/runner/src/server/services/webhookService.ts b/runner/src/server/services/webhookService.ts index a357f2a3ae..fe11e832d2 100644 --- a/runner/src/server/services/webhookService.ts +++ b/runner/src/server/services/webhookService.ts @@ -10,7 +10,8 @@ const DEFAULT_OPTIONS = { }; export class WebhookService { - logger: any; + logger: HapiServer["logger"]; + constructor(server: HapiServer) { this.logger = server.logger; } @@ -27,36 +28,54 @@ export class WebhookService { url: string, data: object, method: "POST" | "PUT" = "POST", - sendAdditionalPayMetadata: boolean = false - ) { - this.logger.info( - ["WebhookService", "postRequest body"], - JSON.stringify(data) - ); + sendAdditionalPayMetadata: boolean = false, + authHeaders?: Record + ): Promise { + // Commented out due to potential for logging PII + // this.logger.info( + // ["WebhookService", "postRequest body"], + // JSON.stringify(data) + // ); + let request = method === "POST" ? post : put; try { if (!sendAdditionalPayMetadata) { delete data?.metadata?.pay; } - const { payload } = await request(url, { + const { payload, res } = await request(url, { ...DEFAULT_OPTIONS, + headers: { + ...DEFAULT_OPTIONS.headers, + ...(authHeaders || {}), + }, payload: JSON.stringify(data), }); if (typeof payload === "object" && !Buffer.isBuffer(payload)) { return payload.reference; } + + const Name = JSON.parse(payload)[0]?.Name; + + if (Name) { + return Name; + } + + this.logger.info(`Request status code: ${res.statusCode}`); + const { reference } = JSON.parse(payload); + this.logger.info( ["WebhookService", "postRequest"], `Webhook request to ${url} submitted OK` ); - this.logger.debug( - ["WebhookService", "postRequest", `REF: ${reference}`], - JSON.stringify(payload) - ); + // Commented out due to potential for logging PII + // this.logger.debug( + // ["WebhookService", "postRequest", `REF: ${reference}`], + // JSON.stringify(payload) + // ); return reference; - } catch (error) { + } catch (error: any) { this.logger.error(["WebhookService", "postRequest"], error); return "UNKNOWN"; } diff --git a/runner/src/server/templates/srsContexts.json b/runner/src/server/templates/srsContexts.json new file mode 100644 index 0000000000..49b77ea12b --- /dev/null +++ b/runner/src/server/templates/srsContexts.json @@ -0,0 +1,10 @@ +{ + "diseaseInfo": { + "001F00": { + "name": "bird (avian) flu" + }, + "001F01": { + "name": "Mers-Cov" + } + } +} diff --git a/runner/src/server/transforms/summaryDetails/filterSections.ts b/runner/src/server/transforms/summaryDetails/filterSections.ts new file mode 100644 index 0000000000..960ae129f5 --- /dev/null +++ b/runner/src/server/transforms/summaryDetails/filterSections.ts @@ -0,0 +1,15 @@ +// Removes rows that don't belong to sections +// Transforms sections with names where a number follows a letter into a card + +export function filterSections(details) { + return details + .filter((detail) => detail.name) + .map((detail) => { + if (detail.name.match(/\w\d/)) { + detail.card = detail.items.find((item) => item.inError) + ? detail.items[0].pageId + : detail.items[0].url; + } + return detail; + }); +} diff --git a/runner/src/server/transforms/summaryDetails/index.ts b/runner/src/server/transforms/summaryDetails/index.ts index 9bfed44a4e..30c1e69552 100644 --- a/runner/src/server/transforms/summaryDetails/index.ts +++ b/runner/src/server/transforms/summaryDetails/index.ts @@ -1,11 +1,142 @@ -"use strict"; - -import { SummaryDetailsTransformationMap } from "server/transforms/summaryDetails/types"; -export { SummaryDetailsTransformationMap }; - -/** - * [View the docs for summary-details-transformations an explanation of how this feature works](docs/runner/summary-details-transforms.md) - */ -const summaryDetailsTransformations: SummaryDetailsTransformationMap = {}; - -module.exports = summaryDetailsTransformations; +"use strict"; + +import { mergeRows } from "./mergeRows"; +import { removeRows } from "./removeRows"; +import { filterSections } from "./filterSections"; + +import { SummaryDetailsTransformationMap } from "server/transforms/summaryDetails/types"; +export { SummaryDetailsTransformationMap }; + +/** + * [View the docs for summary-details-transformations an explanation of how this feature works](docs/runner/summary-details-transforms.md) + */ + +const closeContactParams = [ + { + names: ["first_name", "last_name"], + to: "Full name", + joiner: " ", + }, + { + names: ["mobile_number", "landline_number", "email_address"], + to: "Contact details", + joiner: "\n", + }, +]; + +const klsRemoveParams = ["ZpmVWP"]; + +const summaryDetailsTransformations: SummaryDetailsTransformationMap = { + "close-contact-form-nl1-dev": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-nl1-test": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-nl4": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-nl5": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-nl7": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-nl8": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-uat": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-mers": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-mers": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-nl1-dev": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-nl1-test": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-nl4": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-nl5": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-nl7": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-nl8": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca-uat": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-cca": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-nl1-dev": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-nl1-test": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-nl4": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-nl5": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-nl7": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-nl8": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-hpt-uat": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "close-contact-form-hpt": (details) => { + const firstTransform = mergeRows(details, closeContactParams); + return filterSections(firstTransform); + }, + "kls-enquiries": (details) => { + return removeRows(details, klsRemoveParams); + }, + "kls-training-request": (details) => { + return removeRows(details, klsRemoveParams); + }, +}; + +module.exports = summaryDetailsTransformations; diff --git a/runner/src/server/transforms/summaryDetails/mergeRows.ts b/runner/src/server/transforms/summaryDetails/mergeRows.ts new file mode 100644 index 0000000000..cc92aa5b45 --- /dev/null +++ b/runner/src/server/transforms/summaryDetails/mergeRows.ts @@ -0,0 +1,35 @@ +// Find fields in each section, create a row with a value that combines the values of those fields, then remove the original fields + +export function mergeRows( + details: any, + fields: Array<{ names: Array; to: string; joiner: string }> +) { + return details.map( + (detail: { name: string; title: string; items: Array }) => { + const allFieldNames = fields.map((field) => field.names).flat(); + const transformedItems = detail.items + .map((item) => { + const field = fields.find((field) => field.names[0] === item.name); + if (field) { + const { names, to, joiner } = field; + const findItem = (name: string) => + detail.items.find((item) => item.name === name); + const values = names + .map((name) => (findItem(name) ? findItem(name).value : null)) + .filter((value) => value); + + return { + ...item, + name: to.toLowerCase().replace(" ", "_"), + ...{ label: to, title: to, rawValue: to }, + value: values.length === 0 ? null : values.join(joiner), + }; + } + return item; + }) + .filter((item) => !allFieldNames.includes(item.name)); + + return { ...detail, items: transformedItems }; + } + ); +} diff --git a/runner/src/server/transforms/summaryDetails/removeRows.ts b/runner/src/server/transforms/summaryDetails/removeRows.ts new file mode 100644 index 0000000000..95f947415f --- /dev/null +++ b/runner/src/server/transforms/summaryDetails/removeRows.ts @@ -0,0 +1,15 @@ +// Remove rows from summary details based on field name + +export function removeRows( + details: any, + names: Array +) { + return details.map( + (detail: { name: string; title: string; items: Array }) => { + const filteredItems = detail.items + .filter((item) => !names.includes(item.name)); + + return { ...detail, items: filteredItems }; + } + ); +} \ No newline at end of file diff --git a/runner/src/server/types.ts b/runner/src/server/types.ts index 0aa272475c..b228d5dda9 100644 --- a/runner/src/server/types.ts +++ b/runner/src/server/types.ts @@ -13,6 +13,8 @@ import { RateOptions } from "./plugins/rateLimit"; import { CacheService, ExitService, + FormSecurityService, + MagicLinkCacheService, NotifyService, PayService, StatusService, @@ -27,6 +29,7 @@ type Services = ( services: string[] ) => { cacheService: CacheService; + magicLinkCacheService: MagicLinkCacheService; notifyService: NotifyService; payService: PayService; uploadService: UploadService; @@ -35,6 +38,7 @@ type Services = ( queueService: QueueService; queueStatusService: QueueStatusService; exitService: ExitService; + formSecurityService: FormSecurityService; }; export type RouteConfig = { diff --git a/runner/src/server/utils/__tests__/isValidSecureFormSubmissionConfig.jest.ts b/runner/src/server/utils/__tests__/isValidSecureFormSubmissionConfig.jest.ts new file mode 100644 index 0000000000..0032799e33 --- /dev/null +++ b/runner/src/server/utils/__tests__/isValidSecureFormSubmissionConfig.jest.ts @@ -0,0 +1,68 @@ +import { isValidSecureFormSubmissionConfig } from "../isValidSecureFormSubmissionConfig"; + +const VALID_CONFIG = { + tenantId: "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + clientId: "b2c3d4e5-f6a7-8901-bcde-f12345678901", + clientSecret: "super-secret-value-123", + scopes: ["https://graph.microsoft.com/.default"], +}; + +describe("isValidSecureFormSubmissionConfig", () => { + it("returns true for a valid config", () => { + expect(isValidSecureFormSubmissionConfig(VALID_CONFIG)).toBe(true); + }); + + it("returns false when tenantId is empty", () => { + expect( + isValidSecureFormSubmissionConfig({ ...VALID_CONFIG, tenantId: "" }) + ).toBe(false); + }); + + it("returns false when tenantId is not a GUID", () => { + expect( + isValidSecureFormSubmissionConfig({ + ...VALID_CONFIG, + tenantId: "not-a-guid", + }) + ).toBe(false); + }); + + it("returns false when clientId is empty", () => { + expect( + isValidSecureFormSubmissionConfig({ ...VALID_CONFIG, clientId: "" }) + ).toBe(false); + }); + + it("returns false when clientId is not a GUID", () => { + expect( + isValidSecureFormSubmissionConfig({ + ...VALID_CONFIG, + clientId: "not-a-guid", + }) + ).toBe(false); + }); + + it("returns false when clientSecret is empty", () => { + expect( + isValidSecureFormSubmissionConfig({ ...VALID_CONFIG, clientSecret: "" }) + ).toBe(false); + }); + + it("returns false when scopes is empty", () => { + expect( + isValidSecureFormSubmissionConfig({ ...VALID_CONFIG, scopes: [] }) + ).toBe(false); + }); + + it("returns false when scopes contains an empty string", () => { + expect( + isValidSecureFormSubmissionConfig({ ...VALID_CONFIG, scopes: [""] }) + ).toBe(false); + }); + + it("returns false when scopes contains two empty string", () => { + expect( + isValidSecureFormSubmissionConfig({ ...VALID_CONFIG, scopes: ["", ""] }) + ).toBe(false); + }); +}); diff --git a/runner/src/server/utils/configSchema.ts b/runner/src/server/utils/configSchema.ts index 0c52740455..33b9098129 100644 --- a/runner/src/server/utils/configSchema.ts +++ b/runner/src/server/utils/configSchema.ts @@ -54,6 +54,7 @@ export const configSchema = Joi.object({ sslCert: Joi.string().optional(), sessionTimeout: Joi.number(), sessionCookiePassword: Joi.string().optional(), + httpsCookieSecureAttribute: Joi.boolean().optional(), rateLimit: Joi.boolean().optional(), fromEmailAddress: Joi.string().optional().allow(""), serviceStartPage: Joi.string().optional().allow(""), diff --git a/runner/src/server/utils/domain.ts b/runner/src/server/utils/domain.ts new file mode 100644 index 0000000000..45800dadb9 --- /dev/null +++ b/runner/src/server/utils/domain.ts @@ -0,0 +1,21 @@ +export function isAllowedDomain( + email: string, + allowedDomains: string[] +): boolean { + if (!allowedDomains || allowedDomains.length === 0) { + return true; + } + + const trimmedEmail = email.trim(); + const basicEmailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + + if (!basicEmailRegex.test(trimmedEmail)) { + return false; + } + + const domain = trimmedEmail.split("@")[1].toLowerCase(); + return allowedDomains.some((allowed) => { + const allowedLower = allowed.toLowerCase(); + return domain === allowedLower || domain.endsWith("." + allowedLower); + }); +} diff --git a/runner/src/server/utils/hmac.ts b/runner/src/server/utils/hmac.ts new file mode 100644 index 0000000000..560e23ee1f --- /dev/null +++ b/runner/src/server/utils/hmac.ts @@ -0,0 +1,148 @@ +import crypto from "crypto"; + +// Configuration constants +const TIME_THRESHOLD = 1200; // 5 minutes in seconds + +function lastSunday(month, year) { + var d = new Date(); + var lastDayOfMonth = new Date(Date.UTC(year || d.getFullYear(), month, 0)); + var day = lastDayOfMonth.getDay(); + return new Date( + Date.UTC( + lastDayOfMonth.getFullYear(), + lastDayOfMonth.getMonth(), + lastDayOfMonth.getDate() - day + ) + ); +} + +function isBST(date) { + var d = date || new Date(); + var starts = lastSunday(3, d.getFullYear()); + starts.setHours(1); + var ends = lastSunday(10, d.getFullYear()); + ends.setHours(1); + return d.getTime() >= starts.getTime() && d.getTime() < ends.getTime(); +} + +function applyBSTIfRequired(timestamp) { + const date = new Date(timestamp * 1000); + + if (isBST(date)) { + // During BST, add 1 hour (3600 seconds) + return timestamp + 3600; + } else { + // During GMT, no adjustment needed + return timestamp; + } +} + +/** + * Formats a Unix timestamp to a human-readable time string + */ +function formatUnixTimestamp(timestamp: number): string { + const date = new Date(timestamp * 1000); // Convert seconds to milliseconds + let hours = date.getUTCHours(); + const minutes = date.getUTCMinutes(); + const ampm = hours >= 12 ? "pm" : "am"; + + hours = hours % 12 || 12; // Convert 0 to 12 for 12-hour format + + return `${hours}.${minutes < 10 ? "0" : ""}${minutes}${ampm}`; +} + +/** + * Creates an HMAC signature for authentication + */ +export async function createHmac( + email: string, + hmacKey: string +): Promise<[string, number, string]> { + try { + // Get current timestamp + const currentTimestamp = Math.floor(Date.now() / 1000); + + // Prepare the data for HMAC calculation + const dataToHash = email + currentTimestamp; + + // Calculate the HMAC hash + const hmac = crypto + .createHmac("sha256", hmacKey) + .update(dataToHash) + .digest("hex"); + + const expiryTimestamp = currentTimestamp + TIME_THRESHOLD; + const adjustedExpiryForDisplay = applyBSTIfRequired(expiryTimestamp); + + const hmacExpiryTime = formatUnixTimestamp(adjustedExpiryForDisplay); + + return [hmac, currentTimestamp, hmacExpiryTime]; + } catch (error) { + console.error("Error creating HMAC:", error); + throw error; + } +} + +/** + * Similar to the above but returns raw epoch timestamps, + * making it preferable for cryptographic logic. + * The other function may benefit from refactoring + * to separate display logic from core logic. */ +export async function createHmacRaw( + message: string, + hmacKey: string +): Promise<[string, number, number]> { + try { + const currentTimestamp = Math.floor(Date.now() / 1000); + const dataToHash = message + currentTimestamp; + const hmac = crypto + .createHmac("sha256", hmacKey) + .update(dataToHash) + .digest("hex"); + + const expiryTimestamp = currentTimestamp + TIME_THRESHOLD; + + return [hmac, currentTimestamp, expiryTimestamp]; + } catch (error) { + console.error("Error creating HMAC (raw):", error); + throw error; + } +} + +/** + * Validates an HMAC signature + */ +export async function validateHmac( + email: string, + signature: string, + requestTime: string, + hmacKey: string +) { + try { + // Get the current UTC time + const currentUtcUnixTimestamp = Math.floor(Date.now() / 1000); + + if (currentUtcUnixTimestamp > parseInt(requestTime) + TIME_THRESHOLD) { + return { isValid: false, reason: "expired" }; + } + + // Prepare the data for HMAC calculation + const dataToHash = email + requestTime; + + // Calculate the HMAC hash + const xResponseHmac = crypto + .createHmac("sha256", hmacKey) + .update(dataToHash) + .digest("hex"); + + // Verify the HMAC + if (signature === xResponseHmac) { + return { isValid: true, reason: "valid" }; + } else { + return { isValid: false, reason: "invalid_signature" }; + } + } catch (error) { + console.error("Error validating HMAC:", error); + return { isValid: false, reason: "error" }; + } +} diff --git a/runner/src/server/utils/isValidSecureFormSubmissionConfig.ts b/runner/src/server/utils/isValidSecureFormSubmissionConfig.ts new file mode 100644 index 0000000000..d869185eea --- /dev/null +++ b/runner/src/server/utils/isValidSecureFormSubmissionConfig.ts @@ -0,0 +1,19 @@ +import { FormConfiguration } from "./plugins/engine/services/configurationService"; + +const GUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i; + +export const isValidSecureFormSubmissionConfig = ( + config: FormConfiguration["configuration"]["secureFormSubmissionConfig"] +): boolean => { + if (!config) { + return false; + } + + return ( + GUID.test(config.tenantId) && + GUID.test(config.clientId) && + config.clientSecret.length > 0 && + config.scopes.length > 0 && + config.scopes.every((s) => s.length > 0) + ); +}; diff --git a/runner/src/server/views/500.html b/runner/src/server/views/500.html index d57926c5c2..37a98945da 100755 --- a/runner/src/server/views/500.html +++ b/runner/src/server/views/500.html @@ -6,7 +6,12 @@

    Sorry, there is a problem with the service

    -

    Contact your closest consulate.

    + + {% if contactEmail %} +

    Contact {{contactEmail}}.

    + {% else %} +

    Contact your closest consulate.

    + {% endif %}
    diff --git a/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html b/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html new file mode 100644 index 0000000000..e2e4077d30 --- /dev/null +++ b/runner/src/server/views/ReportAnOutbreak/accessibility-statement.html @@ -0,0 +1,92 @@ +{% extends 'layout.html' %} + +{% block pageTitle %} + {{ name }} - Accessibility Statement +{% endblock %} + +{% block content %} +
    +
    +
    +
    +

    Accessibility statement for {{ name }}

    +

    + This accessibility statement applies to the Report an Outbreak website https://forms.ukhsa.gov.uk/ReportAnOutbreak (opens in new tab). +

    + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: +

    +

    +

      +
    • change colours, contrast levels and fonts using browser or device settings
    • +
    • zoom in up to 400% without the text spilling off the screen
    • +
    • navigate most of the website using a keyboard or speech recognition software
    • +
    • listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)
    • +
    +

    +

    + We’ve also made the website text as simple as possible to understand. +
    + AbilityNet (opens in new tab) has advice on making your device easier to use if you have a disability. +

    +

    How accessible this website is

    +

    + We know some parts of this website are not fully accessible: + +

      +
    • you cannot modify the line height or spacing of text
    • +
    • you cannot skip to the main content when using a screen reader
    • +
    +

    +

    Feedback and contact information

    +

    + If you find any problems not listed on this page or believe we're not meeting accessibility requirements, email ukhsa_techbp_product@ukhsa.gov.uk +
    +

    +

    + If you have difficulty using the website to report an outbreak, you should phone your local UKHSA health protection team (opens in new tab). +

    +

    Enforcement procedure

    +

    + + The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS) (opens in new tab). +

    +

    Technical information about this website’s accessibility

    +

    + UK Health Security Agency (UKHSA) is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. +

    +

    Compliance status

    +

    + This website is partially compliant with the Web Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below +

    +

    Non-accessible content

    +

    + The content listed below is non-accessible for the following reasons.  +

    +

    Non-compliance with the accessibility regulations

    +

    + Some page headers and subtitles are incorrectly tagged or do not correspond to their associated content. This fails WCAG success criterion 2.4.6 (headings and labels).
    +
    + There is no user interface that allows the keyboard focus indicator to be visible. This fails WCAG success criterion 2.4.7 (focus visible).

    + External links do not signal that they will open in a new tab, so people using a screen reader do not know that the page content is changing. This fails WCAG success criterion 4.1.3 (status changes)
    +
    + We plan to address these issues soon. +

    +

    Content that’s not within the scope of accessibility regulations

    +

    + PDFs and other documents - The accessibility regulations do not require us to fix PDFs or other documents delivered by email. We plan to meet accessibility standards with all new PDFs or Word documents we will share. +

    +

    What we’re doing to improve accessibility

    +

    + We have been testing our website with users with a variety of accessibility needs. We intend to fix the non-accessible content listed above. We keep testing our website to understand where we are non-compliant with accessibility standards. Any non-compliant components will be raised in our roadmap and improved in the coming months. +

    +

    Preparation of this accessibility statement

    +

    + This statement was prepared in October 2023. It was last reviewed in April 2025.
    + This website was last tested in March 2025 against the WCAG 2.2 AA standard.
    + The test was carried out by UK Health Security Agency. The most viewed pages were tested using automated testing tools by our website team. A further audit of the website was carried out to the WCAG 2.2 AA standard. +

    +
    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/ReportAnOutbreak/cookies.html b/runner/src/server/views/ReportAnOutbreak/cookies.html new file mode 100644 index 0000000000..a62af585cc --- /dev/null +++ b/runner/src/server/views/ReportAnOutbreak/cookies.html @@ -0,0 +1,114 @@ +{% extends 'layout.html' %} +{% from "radios/macro.njk" import govukRadios %} +{% from "button/macro.njk" import govukButton %} + +{% block content %} +
    +
    +

    Cookies on {{ name }}

    +

    Cookies are files saved on your phone, tablet or computer when you visit a website.

    +

    We use cookies to remember information you've entered when applying to prove your eligibility.

    + +

    Strictly necessary cookies

    +

    Your progress when using this service

    +

    When you use this service, we’ll set a cookie to remember your progress through the forms. These cookies do not store your personal data and are deleted once you’ve completed the transaction.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    cookies_policySaves your cookie consent settingsWhen you close your browser
    sessionSet to remember information you’ve entered into a formWhen you close your browser
    crumbHelps us to prevent cross site scripting attacksWhen you close your browser
    auth_tokenSet to keep you authenticated on the serviceWhen you close your browser
    magicLinkRetrySet to aid initial authenticationWhen you close your browser
    + + {% if gtmId1 or gtmId2 %} +
    + +

    Cookies that measure website use

    +

    Measuring website usage (Google Analytics)

    +

    We use Google Analytics to measure how you use the website so we can improve it based on user needs. We do not allow Google to use or share the data about how you use this site.

    +

    Google Analytics sets cookies that store anonymised information about:

    +
      +
    • how you got to the site
    • +
    • the pages you visit within this service, GOV.UK and other government digital services, and how long you spend on each page
    • +
    • what you click on while you are visiting the site
    • +
    + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    _gaUsed to distinguish users2 years
    _ga_[id]used to persist session state2 years
    + {{ govukRadios({ + name: "cookies", + items: [ + { + value: "accept", + text: "Use cookies that measure my website use" + }, + { + value: "reject", + text: "Do not use cookies that measure my website use" + } + ], + value: analytics + }) }} + {% endif %} + + {% if matomoUrl and matomoId %} +

    Cookies that measure website use

    +

    Measuring website usage (Matomo)

    +

    We use Matomo Analytics software to collect non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request.

    +

    We do this to better understand how applicants for overseas loans use the website. From time to time, the Foreign and Commonwealth Office may release non-personally-identifying information in the aggregate, eg, by publishing a report on trends in the usage of its website.

    +

    We don't use any cookies to do this.

    + {% endif %} + {% if gtmId1 or gtmId2 %} + {{ govukButton({ attributes: { id: "submit" }, text: "Save changes" }) }} +
    + {% endif %} +
    +
    +{% endblock %} diff --git a/runner/src/server/views/ReportAnOutbreak/privacy.html b/runner/src/server/views/ReportAnOutbreak/privacy.html new file mode 100644 index 0000000000..56955d9666 --- /dev/null +++ b/runner/src/server/views/ReportAnOutbreak/privacy.html @@ -0,0 +1,178 @@ +{% extends "layout.html" %} + +{% block pageTitle %} + {{ name }} Privacy Notice +{% endblock %} + +{% block content %} +
    +
    +
    +

    Privacy notice for {{ name }}

    +

    About UKHSA

    +

    + On 1 October 2021, the UK Health Security Agency (UKHSA) came into being. An executive agency of the Department of Health and Social Care (DHSC), UKHSA combines many of the health protection activities previously undertaken by Public Health England (PHE), together with all of the activities of the NHS Test and Trace Programme and the Joint Biosecurity Centre (JBC). +

    + The processing activities previously undertaken by these organisations and their associated data processors have not changed with the establishment of UKHSA. Individual rights are not affected by this change. +

    + We are responsible for planning, preventing and responding to external health threats, and providing intellectual, scientific and operational leadership at national and local level, as well as internationally. UKHSA will ensure the nation can respond quickly and at greater scale to deal with pandemics and future threats. +

    + We collect and use personal information to fulfil our remit from the government. +

    +

    + UKHSA’s responsibilities include providing the Report an outbreak service. Read about UKHSA’s responsibilities in the UKHSA strategic plan 2023 to 2026 (opens in new tab). +

    + The 'Report an outbreak' service enables Adult Social Care (ASC) providers to report outbreaks of acute respiratory infection (ARI) like flu or COVID-19. It automates the outbreak risk assessment process and provides immediate relevant outbreak management advice to the setting via email. +

    + This privacy notice explains what personal information we collect, use and may share for Report an outbreak. It explains what your rights are if we hold your personal information, and how you can find out more or raise a concern. +

    + DHSC is the data controller for the personal information we collect, store and use to fulfil our remit. +

    +

    The information we collect

    +

    + During an outbreak, the local health protection team needs to collect personal information so they can quickly provide the care setting with relevant outbreak management advice. +

    + The personal information we collect and use includes the reporter’s (and an optional additional contact person’s): +

    +

    +

      +
    • full name
    • +
    • job title
    • +
    • work address
    • +
    • telephone number
    • +
    • email address
    • +
    • computer IP address
    • +
    +

    +

    How we collect your information

    +

    + This personal information comes from the person in the ASC setting that reports the outbreak. +

    + +

    The purposes we use your information for

    +

    + We triage and interpret outbreak reports to prioritise and minimise the impact of outbreaks. +

    + We use your information to contact you to provide advice and support to help you manage your outbreak. +

    + We work with local authority health protection teams to make sure the local advice and support you receive is coordinated. +

    + +

    How we protect your information

    +

    + The personal information used by Report an outbreak is protected in a number of ways. +

    + It is stored on computer systems that have been tested to make sure they are secure and which are kept up to date to protect them from viruses and hacking. Where we share your personal information with other organisations, we only ever do so using secure computer systems or encrypted email. +

    + Your information used by us can only be seen by staff who have been specifically trained to protect your privacy. Strong controls are in place to make sure all these staff can only see the minimum amount of personal information they need to do their job. +

    + Whenever possible, we only use your information in a form that does not directly identify you. +

    + No information that could identify individual people is ever published by UKHSA. +

    +

    Where we store your information

    +

    + All personal information used by Report an Outbreak is held in the UK only. +

    +

    Who we share your information with

    +

    + We may share your personal information with other organisations to support the service. If we do share your personal information, we only do so where the law allows and we only share the minimum necessary amount of information. +

    +

    With local authorities

    +

    + Local authorities and mayoral and combined local authorities have responsibilities for protecting the health of their residents. We share information from Report an outbreak with your local authority to enable a coordinated local outbreak management response. You can find privacy information about the data your local authority collects and uses to prevent and control the spread of acute respiratory infections on its website. +

    +

    How long we keep your information

    +

    + We will only keep your personal information for as long as we need it to protect public health or as otherwise required by law. +

    + Most of the time, we will keep your information in accordance with the time periods specified in the Records Management Code of Practice for Health and Social Care 2021 (opens in new tab). For example, the Code sets out an 8-year retention period for general medical records. +

    + As one of our purposes for collecting personal information is to recognise trends, we may need to keep your information for longer. +

    + The personal information used by Report an outbreak is kept for 20 years. +

    + The information needs to be kept for this long so we can monitor outbreak reporting and control measures over a sufficient time period. +

    +

    Your rights over your information

    +

    + Under data protection law, you have a number of rights over your personal information. You have the right to: +

    +

    +

      +
    • ask for a copy of any information we hold about you
    • +
    • ask for any information we hold about you that you think is inaccurate to be changed
    • +
    • ask us to restrict our use of your information, for example, where you think the information we are using is inaccurate
    • +
    • object to us using any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • delete any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • ask us not to use your information to make automated decisions about you without the involvement of one of our staff
    • +
    +

    +

    + You can exercise any of these rights by contacting UKHSA at: +

    +
    + Information Rights Team
    + UKHSA
    + 5th Floor, 10 South Colonnade
    + London
    + E14 4PU
    + United Kingdom
    + Email: InformationRights@UKHSA.gov.uk +
    + +

    + You will be asked to provide proof of your identity so that we can be sure we only provide you with your information. +

    + +

    Our legal basis to use your information

    +

    + The law on protecting personal information, known as the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA), allows UKHSA to use the personal information collected by Report an outbreak. +

    +

    + The sections of the UK GDPR and the DPA that apply where we use personal information for Report an outbreak are: +

    +

    +

      +
    • UK GDPR Article 6(1)(e) ‘processing is necessary for the performance of a task carried out in the public interest’
    • +
    • UK GDPR Article 9(2)(i) ‘processing is necessary for reasons of public interest in the area of public health’
    • +
    • Data Protection Act 2018 Schedule 1 Part 1 (3) ‘public health’
    • +
    +

    +

    How to find out more or raise a concern

    +

    + If you would like to find out more about Report an outbreak, you can contact us at enquiries@ukhsa.gov.uk. +

    + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: +

    +
    + Office of the Data Protection Officer
    + Department of Health and Social Care
    + 1st Floor North
    + 39 Victoria Street
    + London
    + SW1H 0EU
    +
    +

    + You also have the right to contact the Information Commissioner’s Office (opens in new tab) if you have any concerns about how Public Health England uses and protects any personal information it holds about you. You can do so by calling the ICO’s helpline on 0303 123 1113, visiting the ICO’s website at ico.org.uk (opens in new tab) or by writing to: +

    +
    + Customer Contact
    + Information Commissioner's Office
    + Wycliffe House
    + Water Lane
    + Wilmslow
    + SK9 5AF
    +
    +

    About this privacy information

    +

    + The personal information we collect and use may change so we may need to revise this notice. If we do, the publication date will change. +

    + Published April 2025. +

    + For more information, see the UKHSA privacy notice (opens in new tab) +

    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/checkpoint-summary.html b/runner/src/server/views/checkpoint-summary.html new file mode 100644 index 0000000000..d73febb786 --- /dev/null +++ b/runner/src/server/views/checkpoint-summary.html @@ -0,0 +1,62 @@ +{% from "partials/summary-detail.html" import summaryDetail %} + +{% from "components/checkboxes/macro.njk" import govukCheckboxes %} +{% from "summary-list/macro.njk" import govukSummaryList %} +{% extends 'layout.html' %} + +{% block content %} + {% include "partials/heading.html" %} + + {% if customText.insetText %} +
    + {{ customText.insetText | safe }} +
    + {% endif %} + +
    +
    + + {% for list in summaryLists %} +
    +
    +

    + {{list.sectionTitle}} +

    +
    +
    + {{ govukSummaryList(list) }} +
    +
    + + {% endfor %} + + + + {% if customText.details %} +

    + {{ customText.details | safe }} +

    + {% endif %} + + {% if page.hasNext %} +
    + +
    + + + {% else %} + +
    + +
    + {% endif %} + + +
    + +
    +{% endblock %} \ No newline at end of file diff --git a/runner/src/server/views/close-contact-form/accessibility-statement.html b/runner/src/server/views/close-contact-form/accessibility-statement.html new file mode 100644 index 0000000000..7db4e73554 --- /dev/null +++ b/runner/src/server/views/close-contact-form/accessibility-statement.html @@ -0,0 +1,92 @@ +{% extends 'layout.html' %} + +{% block pageTitle %} + {{ name }} - Accessibility Statement +{% endblock %} + +{% block content %} +
    +
    +
    +
    +

    Accessibility statement for {{ name }}

    +

    + This accessibility statement applies to the Report an Outbreak website https://forms.ukhsa.gov.uk/ReportAnOutbreak (opens in new tab). +

    + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: +

    +

    +

      +
    • change colours, contrast levels and fonts using browser or device settings
    • +
    • zoom in up to 400% without the text spilling off the screen
    • +
    • navigate most of the website using a keyboard or speech recognition software
    • +
    • listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)
    • +
    +

    +

    + We’ve also made the website text as simple as possible to understand. +
    + AbilityNet (opens in new tab) has advice on making your device easier to use if you have a disability. +

    +

    How accessible this website is

    +

    + We know some parts of this website are not fully accessible: + +

      +
    • you cannot modify the line height or spacing of text
    • +
    • you cannot skip to the main content when using a screen reader
    • +
    +

    +

    Feedback and contact information

    +

    + If you find any problems not listed on this page or believe we're not meeting accessibility requirements, email ukhsa_techbp_product@ukhsa.gov.uk +
    +

    +

    + If you have difficulty using the website to report an outbreak, you should phone your local UKHSA health protection team (opens in new tab). +

    +

    Enforcement procedure

    +

    + + The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS) (opens in new tab). +

    +

    Technical information about this website’s accessibility

    +

    + UK Health Security Agency (UKHSA) is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. +

    +

    Compliance status

    +

    + This website is partially compliant with the Web Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below +

    +

    Non-accessible content

    +

    + The content listed below is non-accessible for the following reasons.  +

    +

    Non-compliance with the accessibility regulations

    +

    + Some page headers and subtitles are incorrectly tagged or do not correspond to their associated content. This fails WCAG success criterion 2.4.6 (headings and labels).
    +
    + There is no user interface that allows the keyboard focus indicator to be visible. This fails WCAG success criterion 2.4.7 (focus visible).

    + External links do not signal that they will open in a new tab, so people using a screen reader do not know that the page content is changing. This fails WCAG success criterion 4.1.3 (status changes)
    +
    + We plan to address these issues soon. +

    +

    Content that’s not within the scope of accessibility regulations

    +

    + PDFs and other documents - The accessibility regulations do not require us to fix PDFs or other documents delivered by email. We plan to meet accessibility standards with all new PDFs or Word documents we will share. +

    +

    What we’re doing to improve accessibility

    +

    + We have been testing our website with users with a variety of accessibility needs. We intend to fix the non-accessible content listed above. We keep testing our website to understand where we are non-compliant with accessibility standards. Any non-compliant components will be raised in our roadmap and improved in the coming months. +

    +

    Preparation of this accessibility statement

    +

    + This statement was prepared in October 2023. It was last reviewed in April 2025.
    + This website was last tested in March 2025 against the WCAG 2.2 AA standard.
    + The test was carried out by UK Health Security Agency. The most viewed pages were tested using automated testing tools by our website team. A further audit of the website was carried out to the WCAG 2.2 AA standard. +

    +
    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/close-contact-form/cookies.html b/runner/src/server/views/close-contact-form/cookies.html new file mode 100644 index 0000000000..1a4cee14a7 --- /dev/null +++ b/runner/src/server/views/close-contact-form/cookies.html @@ -0,0 +1,114 @@ +{% extends 'layout.html' %} +{% from "radios/macro.njk" import govukRadios %} +{% from "button/macro.njk" import govukButton %} + +{% block content %} +
    +
    +

    Cookies on {{ name }}

    +

    Cookies are files saved on your phone, tablet or computer when you visit a website.

    +

    We use cookies to remember information you've entered when applying to prove your eligibility.

    + +

    Strictly necessary cookies

    +

    Your progress when using this service

    +

    When you use this service, we’ll set a cookie to remember your progress through the forms. These cookies do not store your personal data and are deleted once you’ve completed the transaction.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    cookies_policySaves your cookie consent settingsWhen you close your browser
    sessionSet to remember information you’ve entered into a formWhen you close your browser
    crumbHelps us to prevent cross site scripting attacksWhen you close your browser
    auth_tokenSet to keep you authenticated on the serviceWhen you close your browser
    magicLinkRetrySet to aid initial authenticationWhen you close your browser
    + + {% if gtmId1 or gtmId2 %} + + +

    Cookies that measure website use

    +

    Measuring website usage (Google Analytics)

    +

    We use Google Analytics to measure how you use the website so we can improve it based on user needs. We do not allow Google to use or share the data about how you use this site.

    +

    Google Analytics sets cookies that store anonymised information about:

    +
      +
    • how you got to the site
    • +
    • the pages you visit within this service, GOV.UK and other government digital services, and how long you spend on each page
    • +
    • what you click on while you are visiting the site
    • +
    + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    _gaUsed to distinguish users2 years
    _ga_[id]used to persist session state2 years
    + {{ govukRadios({ + name: "cookies", + items: [ + { + value: "accept", + text: "Use cookies that measure my website use" + }, + { + value: "reject", + text: "Do not use cookies that measure my website use" + } + ], + value: analytics + }) }} + {% endif %} + + {% if matomoUrl and matomoId %} +

    Cookies that measure website use

    +

    Measuring website usage (Matomo)

    +

    We use Matomo Analytics software to collect non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request.

    +

    We do this to better understand how applicants for overseas loans use the website. From time to time, the Foreign and Commonwealth Office may release non-personally-identifying information in the aggregate, eg, by publishing a report on trends in the usage of its website.

    +

    We don't use any cookies to do this.

    + {% endif %} + {% if gtmId1 or gtmId2 %} + {{ govukButton({ attributes: { id: "submit" }, text: "Save changes" }) }} + + {% endif %} +
    +
    +{% endblock %} diff --git a/runner/src/server/views/close-contact-form/privacy.html b/runner/src/server/views/close-contact-form/privacy.html new file mode 100644 index 0000000000..89d562f51c --- /dev/null +++ b/runner/src/server/views/close-contact-form/privacy.html @@ -0,0 +1,178 @@ +{% extends "layout.html" %} + +{% block pageTitle %} + {{ name }} Privacy Notice +{% endblock %} + +{% block content %} +
    +
    +
    +

    Privacy notice for {{ name }}

    +

    About UKHSA

    +

    + On 1 October 2021, the UK Health Security Agency (UKHSA) came into being. An executive agency of the Department of Health and Social Care (DHSC), UKHSA combines many of the health protection activities previously undertaken by Public Health England (PHE), together with all of the activities of the NHS Test and Trace Programme and the Joint Biosecurity Centre (JBC). +

    + The processing activities previously undertaken by these organisations and their associated data processors have not changed with the establishment of UKHSA. Individual rights are not affected by this change. +

    + We are responsible for planning, preventing and responding to external health threats, and providing intellectual, scientific and operational leadership at national and local level, as well as internationally. UKHSA will ensure the nation can respond quickly and at greater scale to deal with pandemics and future threats. +

    + We collect and use personal information to fulfil our remit from the government. +

    +

    + UKHSA’s responsibilities include providing the Report an outbreak service. Read about UKHSA’s responsibilities in the UKHSA strategic plan 2023 to 2026 (opens in new tab). +

    + The 'Report an outbreak' service enables Adult Social Care (ASC) providers to report outbreaks of acute respiratory infection (ARI) like flu or COVID-19. It automates the outbreak risk assessment process and provides immediate relevant outbreak management advice to the setting via email. +

    + This privacy notice explains what personal information we collect, use and may share for Report an outbreak. It explains what your rights are if we hold your personal information, and how you can find out more or raise a concern. +

    + DHSC is the data controller for the personal information we collect, store and use to fulfil our remit. +

    +

    The information we collect

    +

    + During an outbreak, the local health protection team needs to collect personal information so they can quickly provide the care setting with relevant outbreak management advice. +

    + The personal information we collect and use includes the reporter’s (and an optional additional contact person’s): +

    +

    +

      +
    • full name
    • +
    • job title
    • +
    • work address
    • +
    • telephone number
    • +
    • email address
    • +
    • computer IP address
    • +
    +

    +

    How we collect your information

    +

    + This personal information comes from the person in the ASC setting that reports the outbreak. +

    + +

    The purposes we use your information for

    +

    + We triage and interpret outbreak reports to prioritise and minimise the impact of outbreaks. +

    + We use your information to contact you to provide advice and support to help you manage your outbreak. +

    + We work with local authority health protection teams to make sure the local advice and support you receive is coordinated. +

    + +

    How we protect your information

    +

    + The personal information used by Report an outbreak is protected in a number of ways. +

    + It is stored on computer systems that have been tested to make sure they are secure and which are kept up to date to protect them from viruses and hacking. Where we share your personal information with other organisations, we only ever do so using secure computer systems or encrypted email. +

    + Your information used by us can only be seen by staff who have been specifically trained to protect your privacy. Strong controls are in place to make sure all these staff can only see the minimum amount of personal information they need to do their job. +

    + Whenever possible, we only use your information in a form that does not directly identify you. +

    + No information that could identify individual people is ever published by UKHSA. +

    +

    Where we store your information

    +

    + All personal information used by Report an Outbreak is held in the UK only. +

    +

    Who we share your information with

    +

    + We may share your personal information with other organisations to support the service. If we do share your personal information, we only do so where the law allows and we only share the minimum necessary amount of information. +

    +

    With local authorities

    +

    + Local authorities and mayoral and combined local authorities have responsibilities for protecting the health of their residents. We share information from Report an outbreak with your local authority to enable a coordinated local outbreak management response. You can find privacy information about the data your local authority collects and uses to prevent and control the spread of acute respiratory infections on its website. +

    +

    How long we keep your information

    +

    + We will only keep your personal information for as long as we need it to protect public health or as otherwise required by law. +

    + Most of the time, we will keep your information in accordance with the time periods specified in the Records Management Code of Practice for Health and Social Care 2021 (opens in new tab). For example, the Code sets out an 8-year retention period for general medical records. +

    + As one of our purposes for collecting personal information is to recognise trends, we may need to keep your information for longer. +

    + The personal information used by Report an outbreak is kept for 20 years. +

    + The information needs to be kept for this long so we can monitor outbreak reporting and control measures over a sufficient time period. +

    +

    Your rights over your information

    +

    + Under data protection law, you have a number of rights over your personal information. You have the right to: +

    +

    +

      +
    • ask for a copy of any information we hold about you
    • +
    • ask for any information we hold about you that you think is inaccurate to be changed
    • +
    • ask us to restrict our use of your information, for example, where you think the information we are using is inaccurate
    • +
    • object to us using any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • delete any information we hold about you, although this is not an absolute right and we may need to continue to use your information – we will tell you why if this is the case
    • +
    • ask us not to use your information to make automated decisions about you without the involvement of one of our staff
    • +
    +

    +

    + You can exercise any of these rights by contacting UKHSA at: +

    +
    + Information Rights Team
    + UKHSA
    + 5th Floor, 10 South Colonnade
    + London
    + E14 4PU
    + United Kingdom
    + Email: InformationRights@UKHSA.gov.uk +
    + +

    + You will be asked to provide proof of your identity so that we can be sure we only provide you with your information. +

    + +

    Our legal basis to use your information

    +

    + The law on protecting personal information, known as the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA), allows UKHSA to use the personal information collected by Report an outbreak. +

    +

    + The sections of the UK GDPR and the DPA that apply where we use personal information for Report an outbreak are: +

    +

    +

      +
    • UK GDPR Article 6(1)(e) ‘processing is necessary for the performance of a task carried out in the public interest’
    • +
    • UK GDPR Article 9(2)(i) ‘processing is necessary for reasons of public interest in the area of public health’
    • +
    • Data Protection Act 2018 Schedule 1 Part 1 (3) ‘public health’
    • +
    +

    +

    How to find out more or raise a concern

    +

    + If you would like to find out more about Report an outbreak, you can contact us at enquiries@ukhsa.gov.uk. +

    + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: +

    +
    + Office of the Data Protection Officer
    + Department of Health and Social Care
    + 1st Floor North
    + 39 Victoria Street
    + London
    + SW1H 0EU
    +
    +

    + You also have the right to contact the Information Commissioner’s Office (opens in new tab) if you have any concerns about how Public Health England uses and protects any personal information it holds about you. You can do so by calling the ICO’s helpline on 0303 123 1113, visiting the ICO’s website at ico.org.uk (opens in new tab) or by writing to: +

    +
    + Customer Contact
    + Information Commissioner's Office
    + Wycliffe House
    + Water Lane
    + Wilmslow
    + SK9 5AF
    +
    +

    About this privacy information

    +

    + The personal information we collect and use may change so we may need to revise this notice. If we do, the publication date will change. +

    + Published April 2025. +

    + For more information, see the UKHSA privacy notice (opens in new tab) +

    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/confirmation.html b/runner/src/server/views/confirmation.html index c9eb837176..5fad12fe0c 100644 --- a/runner/src/server/views/confirmation.html +++ b/runner/src/server/views/confirmation.html @@ -14,49 +14,66 @@ {% endblock %} {% block content %} -
    - {% set tmpl = 'Your reference number
    ' + reference + '' if reference else '' %} - {% if not customText %} - {{ govukPanel({ - titleText: "Application complete", - html: tmpl - }) }} - {% if paymentSkipped %} -

    - Someone will be in touch to make a payment. -

    - {% else %} -

    - You will receive an email with details with the next steps. -

    - {% endif %} - {% if components.length > 0 %} -

    What happens next

    + {% set tmpl = 'Your reference number
    ' + reference + '' if reference else '' %} + {% if reference %} +

    Your reference number is: {{ reference }}

    + {% endif %} + {% if not customText.hidePanel %} + {% if not customText %} + {{ govukPanel({ + titleText: "Application complete", + html: tmpl + }) }} + {% else %} + {{ govukPanel({ + titleText: customText.title, + html: tmpl + }) }} + {% endif %} {% endif %} - {% else %} - {{ govukPanel({ - titleText: customText.title, - html: tmpl - }) }} - {% if paymentSkipped and customText.paymentSkipped %} -

    - {{ customText.paymentSkipped | safe }} -

    + + + {% if not customText %} + {% if paymentSkipped %} +

    + Someone will be in touch to make a payment. +

    + {% else %} +

    + You will receive an email with details with the next steps. +

    + {% endif %} {% else %} - {% if customText.nextSteps %} + {% if paymentSkipped and customText.paymentSkipped %}

    - {{ customText.nextSteps | safe }} + {{ customText.paymentSkipped | safe }}

    + {% else %} + {% if reference and not useNormalHeading %} +

    + {{ customText.referenceTitle }} +

    +

    + Your reference number is: {{ reference }}. + {{ customText.referenceContent }} +

    + {% endif %} + + {% if customText.nextSteps %} +

    + {{ customText.nextSteps | safe }} +

    + {% endif %} {% endif %} {% endif %} + {% if components.length > 0 %}

    What happens next

    {% endif %} - {% endif %} - - {{ componentList(components) }} + + {{ componentList(components) }}
    -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/runner/src/server/views/csrf-protection.html b/runner/src/server/views/csrf-protection.html new file mode 100755 index 0000000000..b2c31e973a --- /dev/null +++ b/runner/src/server/views/csrf-protection.html @@ -0,0 +1,16 @@ +{% extends 'layout.html' %} + +{% block content %} +
    +
    +
    +
    +

    Something unexpected happened

    +

    In order to ensure the data you've inputted into the system is protected, please re-enter the form where you left off.


    + + Back to start +
    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/custom-summary.html b/runner/src/server/views/custom-summary.html new file mode 100644 index 0000000000..f07096d693 --- /dev/null +++ b/runner/src/server/views/custom-summary.html @@ -0,0 +1,159 @@ +{% from "components/checkboxes/macro.njk" import govukCheckboxes %} +{% from "summary-list/macro.njk" import govukSummaryList %} +{% extends 'layout.html' %} + +{% block content %} +
    +
    +
    +

    + {% if callback and callback.title %} + {{ callback.title }} + {% else %} + {{ pageTitle }} + {% endif %} +

    + + {% if callback and callback.message %} +
    + {{ callback.message }} +
    + {% endif %} + + {% if customText.insetText %} +
    + {{ customText.insetText | safe }} +
    + {% endif %} + + {% if callback and callback.htmlMessage %} + {{ callback.htmlMessage | safe }} + {% endif %} + + {% for detail in details %} +
    +

    {{ detail.title }}

    +
    + {% set rows = [] %} + {% for item in detail.items %} + {% set changeUrl = item.url %} + {% if not item.immutable %} + {% set actions = [{ + text: "Change", + href: changeUrl, + visuallyHiddenText: item.label + }] %} + {% else %} + {% set actions = [] %} + {% endif %} + {% set rows = (rows.push({ + key: { + text: item.label + }, + value: { + text: item.value + }, + actions: { + items: actions + } + }), rows) %} + {% endfor %} + {{ govukSummaryList({ + rows: rows + }) }} +
    +
    + {% endfor %} + + {% for list in summaryLists %} +
    +

    + {{list.sectionTitle}} +

    +
    + {{ govukSummaryList(list) }} +
    +
    + {% endfor %} + + {% if fees and fees.details|length %} +

    Fees

    +
      + {% for fee in fees.details %} +
    • {{ fee.description }}: £{{fee.amount / 100}}
    • + {% endfor %} +
    +

    Total cost: £{{fees.total / 100 }}

    +

    You should not be charged an exchange fee if you pay with a UK credit or debit card.

    + {% endif %} + + {% if customText.endContent %} + {{ customText.endContent | safe }} + {% endif %} + + {% if not result.error %} +
    + + + {%if declaration %} +

    Declaration

    + {{ declaration | safe }} +
    + {% if declarationError %} + + Error: {{declarationError}} + + {% endif %} +
    +
    + + +
    +
    +
    + {% endif %} + + {% if fees and fees.details|length %} + + {% else %} + + {% endif %} + + {% if showPaymentSkippedWarningPage %} +
    + +
    + {% endif %} + +
    + {% endif %} +
    +
    +
    + + + +{% endblock %} diff --git a/runner/src/server/views/kls-enquiries/accessibility-statement.html b/runner/src/server/views/kls-enquiries/accessibility-statement.html new file mode 100644 index 0000000000..f4c05051b9 --- /dev/null +++ b/runner/src/server/views/kls-enquiries/accessibility-statement.html @@ -0,0 +1,97 @@ +{% extends 'layout.html' %} + +{% block pageTitle %} + {{ name }} - Accessibility Statement +{% endblock %} + +{% block content %} +
    +
    +
    +

    Accessibility statement for ‘Contact the UKHSA Knowledge and Library Services’

    +

    + This accessibility statement applies to the UKHSA Knowledge and Library Services enquiry form websites: +

    +
      +
    • KLS enquiry form: https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab)
    • +
    • KLS Training enquiry form: https://forms.ukhsa.gov.uk/kls-training-request (opens in new tab)
    • +

      + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: +

      +

      +

        +
      • change colours, contrast levels and fonts using browser or device settings
      • +
      • zoom in up to 400% without the text spilling off the screen
      • +
      • navigate most of the website using a keyboard or speech recognition software
      • +
      • listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)
      • +
      +

      +

      + We’ve also made the website text as simple as possible to understand. +
      + AbilityNet (opens in new tab) has advice on making your device easier to use if you have a disability. +

      +

      How accessible this website is

      +

      + We know some parts of this website are not fully accessible: + +

        +
      • Narrator does not read out error messages in full automatically without user selection
      • +
      • you cannot modify the line height or spacing of text
      • +
      • you cannot autocomplete some form fields with assistive technology
      • +
      • when using Narrator, you cannot select an item listed in dropdown list using input means including the ENTER, TAB and Spacebar keys
      • +
      +

      +

      Feedback and contact information

      +

      + If you find any problems not listed on this page or believe we're not meeting accessibility requirements, email ukhsa_techbp_product@ukhsa.gov.uk +
      +

      +

      + If you have difficulty using the website to make an enquiry to the KLS team, you should email libraries@kls.ukhsa.gov.uk. +

      +

      Enforcement procedure

      +

      + + The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS) (opens in new tab). +

      +

      Technical information about this website’s accessibility

      +

      + UK Health Security Agency (UKHSA) is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. +

      +

      Compliance status

      +

      + This website is partially compliant with the Web Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below +

      +

      Non-accessible content

      +

      + The content listed below is non-accessible for the following reasons.  +

      +

      Non-compliance with the accessibility regulations

      +

      + This website is undergoing a second round of testing against Web Content Accessibility Guidelines version 2.2. There are several guidelines not yet fully adhered to including: +

        +
      • 3.3.3 - Error Suggestion - Error message not fully read out by Narrator
      • +
      • 1.3.5 - Identify Input Purpose - Some form control fields do not use fine-grained autocomplete attribute definition techniques required for assistive technology users
      • +
      • 2.1.1 - Keyboard Accessibility - Cannot select dropdown item with Narrator focused on it
      • +
      + We plan to address these issues soon. +

      +

      Content that’s not within the scope of accessibility regulations

      +

      + PDFs and other documents - The accessibility regulations do not require us to fix PDFs or other documents delivered by email. We plan to meet accessibility standards with all new PDFs or Word documents we will share. +

      +

      What we’re doing to improve accessibility

      +

      + We have been testing our website with users with a variety of accessibility needs. We intend to fix the non-accessible content listed above. We keep testing our website to understand where we are non-compliant with accessibility standards. Any non-compliant components will be raised in our roadmap and improved in the coming months. +

      +

      Preparation of this accessibility statement

      +

      + This statement was prepared in July 2025.
      + This website was last tested in July 2025 against the WCAG 2.2 AA standard.
      + The test was carried out by UK Health Security Agency. The most viewed pages were tested using automated testing tools by our website team. A further audit of the website was carried out to the WCAG 2.2 AA standard. +

      +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-enquiries/cookies.html b/runner/src/server/views/kls-enquiries/cookies.html new file mode 100644 index 0000000000..a62af585cc --- /dev/null +++ b/runner/src/server/views/kls-enquiries/cookies.html @@ -0,0 +1,114 @@ +{% extends 'layout.html' %} +{% from "radios/macro.njk" import govukRadios %} +{% from "button/macro.njk" import govukButton %} + +{% block content %} +
    +
    +

    Cookies on {{ name }}

    +

    Cookies are files saved on your phone, tablet or computer when you visit a website.

    +

    We use cookies to remember information you've entered when applying to prove your eligibility.

    + +

    Strictly necessary cookies

    +

    Your progress when using this service

    +

    When you use this service, we’ll set a cookie to remember your progress through the forms. These cookies do not store your personal data and are deleted once you’ve completed the transaction.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    cookies_policySaves your cookie consent settingsWhen you close your browser
    sessionSet to remember information you’ve entered into a formWhen you close your browser
    crumbHelps us to prevent cross site scripting attacksWhen you close your browser
    auth_tokenSet to keep you authenticated on the serviceWhen you close your browser
    magicLinkRetrySet to aid initial authenticationWhen you close your browser
    + + {% if gtmId1 or gtmId2 %} +
    + +

    Cookies that measure website use

    +

    Measuring website usage (Google Analytics)

    +

    We use Google Analytics to measure how you use the website so we can improve it based on user needs. We do not allow Google to use or share the data about how you use this site.

    +

    Google Analytics sets cookies that store anonymised information about:

    +
      +
    • how you got to the site
    • +
    • the pages you visit within this service, GOV.UK and other government digital services, and how long you spend on each page
    • +
    • what you click on while you are visiting the site
    • +
    + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    _gaUsed to distinguish users2 years
    _ga_[id]used to persist session state2 years
    + {{ govukRadios({ + name: "cookies", + items: [ + { + value: "accept", + text: "Use cookies that measure my website use" + }, + { + value: "reject", + text: "Do not use cookies that measure my website use" + } + ], + value: analytics + }) }} + {% endif %} + + {% if matomoUrl and matomoId %} +

    Cookies that measure website use

    +

    Measuring website usage (Matomo)

    +

    We use Matomo Analytics software to collect non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request.

    +

    We do this to better understand how applicants for overseas loans use the website. From time to time, the Foreign and Commonwealth Office may release non-personally-identifying information in the aggregate, eg, by publishing a report on trends in the usage of its website.

    +

    We don't use any cookies to do this.

    + {% endif %} + {% if gtmId1 or gtmId2 %} + {{ govukButton({ attributes: { id: "submit" }, text: "Save changes" }) }} +
    + {% endif %} +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-enquiries/privacy.html b/runner/src/server/views/kls-enquiries/privacy.html new file mode 100644 index 0000000000..1b718a68f6 --- /dev/null +++ b/runner/src/server/views/kls-enquiries/privacy.html @@ -0,0 +1,166 @@ +{% extends "layout.html" %} + +{% block pageTitle %} + {{ name }} Privacy Notice +{% endblock %} + +{% block content %} +
    +
    +
    +

    Privacy Notice for ‘Contact the UKHSA Knowledge and Library Services’

    +

    About UKHSA

    +

    + On 1 October 2021, the UK Health Security Agency (UKHSA) was established as an executive agency of the Department of Health and Social Care (DHSC). UKHSA brings together many of the health protection functions previously undertaken by Public Health England (PHE), the NHS Test and Trace Programme, and the Joint Biosecurity Centre (JBC). +

    + Our responsibilities include preparing for, preventing, and responding to external health threats. We provide scientific, operational, and strategic leadership nationally and internationally. +

    + UKHSA’s remit (opens in new tab) includes Knowledge and Library Services (KLS). KLS supports evidence-based decision-making across public health and healthcare by providing access to expert literature searching, current awareness, training, evidence briefings and other services. +

    + This privacy notice explains what personal information we collect through our Contact Us form, how we use and protect it, and what your rights are. +

    +

    The information we collect

    +

    + We collect the following personal information to help us respond to your enquiry and provide the requested service: +

    +

    +

      +
    • full name
    • +
    • job title
    • +
    • work address
    • +
    • location
    • +
    • email address
    • +
    • IP address
    • +
    • your enquiry details (including any information you provide in your request)
    • +
    +

    +

    How we collect your information

    +

    + This information is provided directly by you when you complete and submit the Contact Us form for KLS. +

    + +

    The purposes we use your information for

    +

    + We collect this information so we can respond to your enquiry, support your request, and help us monitor and improve our services. +

    +

      +
    • literature searches
    • +
    • evidence briefings
    • +
    • systematic reviews
    • +
    • current awareness alerts
    • +
    • bespoke training requests (e.g., information skills, EndNote, critical appraisal)
    • +
    • general enquiries
    • +
    +

    + +

    How we protect your information

    +

    + We have put in place a range of organisational processes and technical security measures to protect your personal information from loss, misuse and unauthorised access, disclosure, alteration and destruction. +

    + Your personal information can only be seen by staff who have been trained to protect your confidentiality and understand laws and regulations such as the Data Protection Act 2018 and the UK GDPR. +

    + Strict controls are in place to ensure that staff can only access your information if they need it to do their job, and they are only provided with access to the minimum necessary information. Where we share information with other organisations, we take appropriate measures to ensure this is used lawfully and protected. +

    + Whenever possible, we only use your information in a form that does not directly identify you. For example, we may pseudonymise identifying details or substitute your date of birth with your age to help protect your confidentiality. +

    + No information that could identify you will ever be published by us. +

    +

    Where we store your information

    +

    + All personal information used by the UKHSA Knowledge and Library Services is held in the UK only. +

    +

    Who we share your information with

    +

    + We do not routinely share your personal information with external organisations. In limited circumstances, we may share it with other parts of UKHSA or with approved partners if this is required to respond to your enquiry or improve the service, and only where the law allows us to do so. +

    +

    + We always ensure that the minimum necessary amount of personal information is shared, and that appropriate safeguards are in place. +

    +

    How long we keep your information

    +

    + We will only retain your personal information for as long as necessary to respond to your request or enquiry, and in accordance with the Records Management Code of Practice for Health and Social Care 2021. . +

    +

    Your rights over your information

    +

    + Under data protection law, you have a number of rights over your personal information. You have the right to: +

    +

    +

      +
    • ask for a copy of any information we hold about you
    • +
    • ask for any inaccurate information we hold about you to be corrected
    • +
    • ask us to restrict our use of your information, for example, if you think it's inaccurate
    • +
    • object to us using your information (although we may need to continue using it – if so, we will explain why)
    • +
    • ask us to delete your information (this is not an absolute right, and we will explain if we need to retain it)
    • +
    • ask us not to make automated decisions about you without human involvement
    • +
    +

    +

    + You can exercise these rights by contacting us at: +

    + +

    + Alternatively, you can exercise any of these rights by contacting UKHSA at: +

    +
    + Information Rights Team
    + UKHSA
    + 5th Floor, 10 South Colonnade
    + London
    + E14 4PU
    + United Kingdom
    + Email: InformationRights@UKHSA.gov.uk
    +
    + +

    + You will be asked to provide proof of your identity so that we can be sure we only provide you with your information. +

    + +

    Our legal basis to use your information

    +

    + UKHSA is allowed to collect and use personal data under the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018. The legal bases we rely on are: +

    +

    +

      +
    • UK GDPR Article 6(1)(e) – processing is necessary for the performance of a task carried out in the public interest
    • +
    • UK GDPR Article 9(2)(i) – processing is necessary for reasons of public interest in the area of public health
    • +
    • Data Protection Act 2018 Schedule 1, Part 1 (3) – public health
    • +
    +

    +

    How to find out more or raise a concern

    +

    + If you have any questions about this privacy notice or how we use your personal information, you can contact us at libraries@kls.ukhsa.gov.uk. +

    + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: +

    +
    + Office of the Data Protection Officer
    + Department of Health and Social Care
    + 39 Victoria Street
    + London
    + SW1H 0EU
    +
    +

    + You also have the right to contact the Information Commissioner’s Office (opens in new tab) if you have any concerns about how Public Health England uses and protects any personal information it holds about you. You can do so by calling the ICO’s helpline on 0303 123 1113, visiting the ICO’s website at ico.org.uk (opens in new tab) or by writing to: +

    +
    + Customer Contact
    + Information Commissioner's Office
    + Wycliffe House
    + Water Lane
    + Wilmslow
    + SK9 5AF
    +
    +

    About this privacy information

    +

    + This notice may be updated if the information we collect or the way we use it changes. The publication date will be updated accordingly. +

    + Published July 2025 +

    + For more information, see the UKHSA privacy notice (opens in new tab) +

    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-magic-link/accessibility-statement.html b/runner/src/server/views/kls-magic-link/accessibility-statement.html new file mode 100644 index 0000000000..f4c05051b9 --- /dev/null +++ b/runner/src/server/views/kls-magic-link/accessibility-statement.html @@ -0,0 +1,97 @@ +{% extends 'layout.html' %} + +{% block pageTitle %} + {{ name }} - Accessibility Statement +{% endblock %} + +{% block content %} +
    +
    +
    +

    Accessibility statement for ‘Contact the UKHSA Knowledge and Library Services’

    +

    + This accessibility statement applies to the UKHSA Knowledge and Library Services enquiry form websites: +

    +
      +
    • KLS enquiry form: https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab)
    • +
    • KLS Training enquiry form: https://forms.ukhsa.gov.uk/kls-training-request (opens in new tab)
    • +

      + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: +

      +

      +

        +
      • change colours, contrast levels and fonts using browser or device settings
      • +
      • zoom in up to 400% without the text spilling off the screen
      • +
      • navigate most of the website using a keyboard or speech recognition software
      • +
      • listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)
      • +
      +

      +

      + We’ve also made the website text as simple as possible to understand. +
      + AbilityNet (opens in new tab) has advice on making your device easier to use if you have a disability. +

      +

      How accessible this website is

      +

      + We know some parts of this website are not fully accessible: + +

        +
      • Narrator does not read out error messages in full automatically without user selection
      • +
      • you cannot modify the line height or spacing of text
      • +
      • you cannot autocomplete some form fields with assistive technology
      • +
      • when using Narrator, you cannot select an item listed in dropdown list using input means including the ENTER, TAB and Spacebar keys
      • +
      +

      +

      Feedback and contact information

      +

      + If you find any problems not listed on this page or believe we're not meeting accessibility requirements, email ukhsa_techbp_product@ukhsa.gov.uk +
      +

      +

      + If you have difficulty using the website to make an enquiry to the KLS team, you should email libraries@kls.ukhsa.gov.uk. +

      +

      Enforcement procedure

      +

      + + The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS) (opens in new tab). +

      +

      Technical information about this website’s accessibility

      +

      + UK Health Security Agency (UKHSA) is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. +

      +

      Compliance status

      +

      + This website is partially compliant with the Web Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below +

      +

      Non-accessible content

      +

      + The content listed below is non-accessible for the following reasons.  +

      +

      Non-compliance with the accessibility regulations

      +

      + This website is undergoing a second round of testing against Web Content Accessibility Guidelines version 2.2. There are several guidelines not yet fully adhered to including: +

        +
      • 3.3.3 - Error Suggestion - Error message not fully read out by Narrator
      • +
      • 1.3.5 - Identify Input Purpose - Some form control fields do not use fine-grained autocomplete attribute definition techniques required for assistive technology users
      • +
      • 2.1.1 - Keyboard Accessibility - Cannot select dropdown item with Narrator focused on it
      • +
      + We plan to address these issues soon. +

      +

      Content that’s not within the scope of accessibility regulations

      +

      + PDFs and other documents - The accessibility regulations do not require us to fix PDFs or other documents delivered by email. We plan to meet accessibility standards with all new PDFs or Word documents we will share. +

      +

      What we’re doing to improve accessibility

      +

      + We have been testing our website with users with a variety of accessibility needs. We intend to fix the non-accessible content listed above. We keep testing our website to understand where we are non-compliant with accessibility standards. Any non-compliant components will be raised in our roadmap and improved in the coming months. +

      +

      Preparation of this accessibility statement

      +

      + This statement was prepared in July 2025.
      + This website was last tested in July 2025 against the WCAG 2.2 AA standard.
      + The test was carried out by UK Health Security Agency. The most viewed pages were tested using automated testing tools by our website team. A further audit of the website was carried out to the WCAG 2.2 AA standard. +

      +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-magic-link/cookies.html b/runner/src/server/views/kls-magic-link/cookies.html new file mode 100644 index 0000000000..a62af585cc --- /dev/null +++ b/runner/src/server/views/kls-magic-link/cookies.html @@ -0,0 +1,114 @@ +{% extends 'layout.html' %} +{% from "radios/macro.njk" import govukRadios %} +{% from "button/macro.njk" import govukButton %} + +{% block content %} +
    +
    +

    Cookies on {{ name }}

    +

    Cookies are files saved on your phone, tablet or computer when you visit a website.

    +

    We use cookies to remember information you've entered when applying to prove your eligibility.

    + +

    Strictly necessary cookies

    +

    Your progress when using this service

    +

    When you use this service, we’ll set a cookie to remember your progress through the forms. These cookies do not store your personal data and are deleted once you’ve completed the transaction.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    cookies_policySaves your cookie consent settingsWhen you close your browser
    sessionSet to remember information you’ve entered into a formWhen you close your browser
    crumbHelps us to prevent cross site scripting attacksWhen you close your browser
    auth_tokenSet to keep you authenticated on the serviceWhen you close your browser
    magicLinkRetrySet to aid initial authenticationWhen you close your browser
    + + {% if gtmId1 or gtmId2 %} +
    + +

    Cookies that measure website use

    +

    Measuring website usage (Google Analytics)

    +

    We use Google Analytics to measure how you use the website so we can improve it based on user needs. We do not allow Google to use or share the data about how you use this site.

    +

    Google Analytics sets cookies that store anonymised information about:

    +
      +
    • how you got to the site
    • +
    • the pages you visit within this service, GOV.UK and other government digital services, and how long you spend on each page
    • +
    • what you click on while you are visiting the site
    • +
    + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    _gaUsed to distinguish users2 years
    _ga_[id]used to persist session state2 years
    + {{ govukRadios({ + name: "cookies", + items: [ + { + value: "accept", + text: "Use cookies that measure my website use" + }, + { + value: "reject", + text: "Do not use cookies that measure my website use" + } + ], + value: analytics + }) }} + {% endif %} + + {% if matomoUrl and matomoId %} +

    Cookies that measure website use

    +

    Measuring website usage (Matomo)

    +

    We use Matomo Analytics software to collect non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request.

    +

    We do this to better understand how applicants for overseas loans use the website. From time to time, the Foreign and Commonwealth Office may release non-personally-identifying information in the aggregate, eg, by publishing a report on trends in the usage of its website.

    +

    We don't use any cookies to do this.

    + {% endif %} + {% if gtmId1 or gtmId2 %} + {{ govukButton({ attributes: { id: "submit" }, text: "Save changes" }) }} +
    + {% endif %} +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-magic-link/privacy.html b/runner/src/server/views/kls-magic-link/privacy.html new file mode 100644 index 0000000000..1b718a68f6 --- /dev/null +++ b/runner/src/server/views/kls-magic-link/privacy.html @@ -0,0 +1,166 @@ +{% extends "layout.html" %} + +{% block pageTitle %} + {{ name }} Privacy Notice +{% endblock %} + +{% block content %} +
    +
    +
    +

    Privacy Notice for ‘Contact the UKHSA Knowledge and Library Services’

    +

    About UKHSA

    +

    + On 1 October 2021, the UK Health Security Agency (UKHSA) was established as an executive agency of the Department of Health and Social Care (DHSC). UKHSA brings together many of the health protection functions previously undertaken by Public Health England (PHE), the NHS Test and Trace Programme, and the Joint Biosecurity Centre (JBC). +

    + Our responsibilities include preparing for, preventing, and responding to external health threats. We provide scientific, operational, and strategic leadership nationally and internationally. +

    + UKHSA’s remit (opens in new tab) includes Knowledge and Library Services (KLS). KLS supports evidence-based decision-making across public health and healthcare by providing access to expert literature searching, current awareness, training, evidence briefings and other services. +

    + This privacy notice explains what personal information we collect through our Contact Us form, how we use and protect it, and what your rights are. +

    +

    The information we collect

    +

    + We collect the following personal information to help us respond to your enquiry and provide the requested service: +

    +

    +

      +
    • full name
    • +
    • job title
    • +
    • work address
    • +
    • location
    • +
    • email address
    • +
    • IP address
    • +
    • your enquiry details (including any information you provide in your request)
    • +
    +

    +

    How we collect your information

    +

    + This information is provided directly by you when you complete and submit the Contact Us form for KLS. +

    + +

    The purposes we use your information for

    +

    + We collect this information so we can respond to your enquiry, support your request, and help us monitor and improve our services. +

    +

      +
    • literature searches
    • +
    • evidence briefings
    • +
    • systematic reviews
    • +
    • current awareness alerts
    • +
    • bespoke training requests (e.g., information skills, EndNote, critical appraisal)
    • +
    • general enquiries
    • +
    +

    + +

    How we protect your information

    +

    + We have put in place a range of organisational processes and technical security measures to protect your personal information from loss, misuse and unauthorised access, disclosure, alteration and destruction. +

    + Your personal information can only be seen by staff who have been trained to protect your confidentiality and understand laws and regulations such as the Data Protection Act 2018 and the UK GDPR. +

    + Strict controls are in place to ensure that staff can only access your information if they need it to do their job, and they are only provided with access to the minimum necessary information. Where we share information with other organisations, we take appropriate measures to ensure this is used lawfully and protected. +

    + Whenever possible, we only use your information in a form that does not directly identify you. For example, we may pseudonymise identifying details or substitute your date of birth with your age to help protect your confidentiality. +

    + No information that could identify you will ever be published by us. +

    +

    Where we store your information

    +

    + All personal information used by the UKHSA Knowledge and Library Services is held in the UK only. +

    +

    Who we share your information with

    +

    + We do not routinely share your personal information with external organisations. In limited circumstances, we may share it with other parts of UKHSA or with approved partners if this is required to respond to your enquiry or improve the service, and only where the law allows us to do so. +

    +

    + We always ensure that the minimum necessary amount of personal information is shared, and that appropriate safeguards are in place. +

    +

    How long we keep your information

    +

    + We will only retain your personal information for as long as necessary to respond to your request or enquiry, and in accordance with the Records Management Code of Practice for Health and Social Care 2021. . +

    +

    Your rights over your information

    +

    + Under data protection law, you have a number of rights over your personal information. You have the right to: +

    +

    +

      +
    • ask for a copy of any information we hold about you
    • +
    • ask for any inaccurate information we hold about you to be corrected
    • +
    • ask us to restrict our use of your information, for example, if you think it's inaccurate
    • +
    • object to us using your information (although we may need to continue using it – if so, we will explain why)
    • +
    • ask us to delete your information (this is not an absolute right, and we will explain if we need to retain it)
    • +
    • ask us not to make automated decisions about you without human involvement
    • +
    +

    +

    + You can exercise these rights by contacting us at: +

    + +

    + Alternatively, you can exercise any of these rights by contacting UKHSA at: +

    +
    + Information Rights Team
    + UKHSA
    + 5th Floor, 10 South Colonnade
    + London
    + E14 4PU
    + United Kingdom
    + Email: InformationRights@UKHSA.gov.uk
    +
    + +

    + You will be asked to provide proof of your identity so that we can be sure we only provide you with your information. +

    + +

    Our legal basis to use your information

    +

    + UKHSA is allowed to collect and use personal data under the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018. The legal bases we rely on are: +

    +

    +

      +
    • UK GDPR Article 6(1)(e) – processing is necessary for the performance of a task carried out in the public interest
    • +
    • UK GDPR Article 9(2)(i) – processing is necessary for reasons of public interest in the area of public health
    • +
    • Data Protection Act 2018 Schedule 1, Part 1 (3) – public health
    • +
    +

    +

    How to find out more or raise a concern

    +

    + If you have any questions about this privacy notice or how we use your personal information, you can contact us at libraries@kls.ukhsa.gov.uk. +

    + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: +

    +
    + Office of the Data Protection Officer
    + Department of Health and Social Care
    + 39 Victoria Street
    + London
    + SW1H 0EU
    +
    +

    + You also have the right to contact the Information Commissioner’s Office (opens in new tab) if you have any concerns about how Public Health England uses and protects any personal information it holds about you. You can do so by calling the ICO’s helpline on 0303 123 1113, visiting the ICO’s website at ico.org.uk (opens in new tab) or by writing to: +

    +
    + Customer Contact
    + Information Commissioner's Office
    + Wycliffe House
    + Water Lane
    + Wilmslow
    + SK9 5AF
    +
    +

    About this privacy information

    +

    + This notice may be updated if the information we collect or the way we use it changes. The publication date will be updated accordingly. +

    + Published July 2025 +

    + For more information, see the UKHSA privacy notice (opens in new tab) +

    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-training-magic-link/accessibility-statement.html b/runner/src/server/views/kls-training-magic-link/accessibility-statement.html new file mode 100644 index 0000000000..f4c05051b9 --- /dev/null +++ b/runner/src/server/views/kls-training-magic-link/accessibility-statement.html @@ -0,0 +1,97 @@ +{% extends 'layout.html' %} + +{% block pageTitle %} + {{ name }} - Accessibility Statement +{% endblock %} + +{% block content %} +
    +
    +
    +

    Accessibility statement for ‘Contact the UKHSA Knowledge and Library Services’

    +

    + This accessibility statement applies to the UKHSA Knowledge and Library Services enquiry form websites: +

    +
      +
    • KLS enquiry form: https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab)
    • +
    • KLS Training enquiry form: https://forms.ukhsa.gov.uk/kls-training-request (opens in new tab)
    • +

      + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: +

      +

      +

        +
      • change colours, contrast levels and fonts using browser or device settings
      • +
      • zoom in up to 400% without the text spilling off the screen
      • +
      • navigate most of the website using a keyboard or speech recognition software
      • +
      • listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)
      • +
      +

      +

      + We’ve also made the website text as simple as possible to understand. +
      + AbilityNet (opens in new tab) has advice on making your device easier to use if you have a disability. +

      +

      How accessible this website is

      +

      + We know some parts of this website are not fully accessible: + +

        +
      • Narrator does not read out error messages in full automatically without user selection
      • +
      • you cannot modify the line height or spacing of text
      • +
      • you cannot autocomplete some form fields with assistive technology
      • +
      • when using Narrator, you cannot select an item listed in dropdown list using input means including the ENTER, TAB and Spacebar keys
      • +
      +

      +

      Feedback and contact information

      +

      + If you find any problems not listed on this page or believe we're not meeting accessibility requirements, email ukhsa_techbp_product@ukhsa.gov.uk +
      +

      +

      + If you have difficulty using the website to make an enquiry to the KLS team, you should email libraries@kls.ukhsa.gov.uk. +

      +

      Enforcement procedure

      +

      + + The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS) (opens in new tab). +

      +

      Technical information about this website’s accessibility

      +

      + UK Health Security Agency (UKHSA) is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. +

      +

      Compliance status

      +

      + This website is partially compliant with the Web Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below +

      +

      Non-accessible content

      +

      + The content listed below is non-accessible for the following reasons.  +

      +

      Non-compliance with the accessibility regulations

      +

      + This website is undergoing a second round of testing against Web Content Accessibility Guidelines version 2.2. There are several guidelines not yet fully adhered to including: +

        +
      • 3.3.3 - Error Suggestion - Error message not fully read out by Narrator
      • +
      • 1.3.5 - Identify Input Purpose - Some form control fields do not use fine-grained autocomplete attribute definition techniques required for assistive technology users
      • +
      • 2.1.1 - Keyboard Accessibility - Cannot select dropdown item with Narrator focused on it
      • +
      + We plan to address these issues soon. +

      +

      Content that’s not within the scope of accessibility regulations

      +

      + PDFs and other documents - The accessibility regulations do not require us to fix PDFs or other documents delivered by email. We plan to meet accessibility standards with all new PDFs or Word documents we will share. +

      +

      What we’re doing to improve accessibility

      +

      + We have been testing our website with users with a variety of accessibility needs. We intend to fix the non-accessible content listed above. We keep testing our website to understand where we are non-compliant with accessibility standards. Any non-compliant components will be raised in our roadmap and improved in the coming months. +

      +

      Preparation of this accessibility statement

      +

      + This statement was prepared in July 2025.
      + This website was last tested in July 2025 against the WCAG 2.2 AA standard.
      + The test was carried out by UK Health Security Agency. The most viewed pages were tested using automated testing tools by our website team. A further audit of the website was carried out to the WCAG 2.2 AA standard. +

      +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-training-magic-link/cookies.html b/runner/src/server/views/kls-training-magic-link/cookies.html new file mode 100644 index 0000000000..a62af585cc --- /dev/null +++ b/runner/src/server/views/kls-training-magic-link/cookies.html @@ -0,0 +1,114 @@ +{% extends 'layout.html' %} +{% from "radios/macro.njk" import govukRadios %} +{% from "button/macro.njk" import govukButton %} + +{% block content %} +
    +
    +

    Cookies on {{ name }}

    +

    Cookies are files saved on your phone, tablet or computer when you visit a website.

    +

    We use cookies to remember information you've entered when applying to prove your eligibility.

    + +

    Strictly necessary cookies

    +

    Your progress when using this service

    +

    When you use this service, we’ll set a cookie to remember your progress through the forms. These cookies do not store your personal data and are deleted once you’ve completed the transaction.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    cookies_policySaves your cookie consent settingsWhen you close your browser
    sessionSet to remember information you’ve entered into a formWhen you close your browser
    crumbHelps us to prevent cross site scripting attacksWhen you close your browser
    auth_tokenSet to keep you authenticated on the serviceWhen you close your browser
    magicLinkRetrySet to aid initial authenticationWhen you close your browser
    + + {% if gtmId1 or gtmId2 %} +
    + +

    Cookies that measure website use

    +

    Measuring website usage (Google Analytics)

    +

    We use Google Analytics to measure how you use the website so we can improve it based on user needs. We do not allow Google to use or share the data about how you use this site.

    +

    Google Analytics sets cookies that store anonymised information about:

    +
      +
    • how you got to the site
    • +
    • the pages you visit within this service, GOV.UK and other government digital services, and how long you spend on each page
    • +
    • what you click on while you are visiting the site
    • +
    + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    _gaUsed to distinguish users2 years
    _ga_[id]used to persist session state2 years
    + {{ govukRadios({ + name: "cookies", + items: [ + { + value: "accept", + text: "Use cookies that measure my website use" + }, + { + value: "reject", + text: "Do not use cookies that measure my website use" + } + ], + value: analytics + }) }} + {% endif %} + + {% if matomoUrl and matomoId %} +

    Cookies that measure website use

    +

    Measuring website usage (Matomo)

    +

    We use Matomo Analytics software to collect non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request.

    +

    We do this to better understand how applicants for overseas loans use the website. From time to time, the Foreign and Commonwealth Office may release non-personally-identifying information in the aggregate, eg, by publishing a report on trends in the usage of its website.

    +

    We don't use any cookies to do this.

    + {% endif %} + {% if gtmId1 or gtmId2 %} + {{ govukButton({ attributes: { id: "submit" }, text: "Save changes" }) }} +
    + {% endif %} +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-training-magic-link/privacy.html b/runner/src/server/views/kls-training-magic-link/privacy.html new file mode 100644 index 0000000000..1b718a68f6 --- /dev/null +++ b/runner/src/server/views/kls-training-magic-link/privacy.html @@ -0,0 +1,166 @@ +{% extends "layout.html" %} + +{% block pageTitle %} + {{ name }} Privacy Notice +{% endblock %} + +{% block content %} +
    +
    +
    +

    Privacy Notice for ‘Contact the UKHSA Knowledge and Library Services’

    +

    About UKHSA

    +

    + On 1 October 2021, the UK Health Security Agency (UKHSA) was established as an executive agency of the Department of Health and Social Care (DHSC). UKHSA brings together many of the health protection functions previously undertaken by Public Health England (PHE), the NHS Test and Trace Programme, and the Joint Biosecurity Centre (JBC). +

    + Our responsibilities include preparing for, preventing, and responding to external health threats. We provide scientific, operational, and strategic leadership nationally and internationally. +

    + UKHSA’s remit (opens in new tab) includes Knowledge and Library Services (KLS). KLS supports evidence-based decision-making across public health and healthcare by providing access to expert literature searching, current awareness, training, evidence briefings and other services. +

    + This privacy notice explains what personal information we collect through our Contact Us form, how we use and protect it, and what your rights are. +

    +

    The information we collect

    +

    + We collect the following personal information to help us respond to your enquiry and provide the requested service: +

    +

    +

      +
    • full name
    • +
    • job title
    • +
    • work address
    • +
    • location
    • +
    • email address
    • +
    • IP address
    • +
    • your enquiry details (including any information you provide in your request)
    • +
    +

    +

    How we collect your information

    +

    + This information is provided directly by you when you complete and submit the Contact Us form for KLS. +

    + +

    The purposes we use your information for

    +

    + We collect this information so we can respond to your enquiry, support your request, and help us monitor and improve our services. +

    +

      +
    • literature searches
    • +
    • evidence briefings
    • +
    • systematic reviews
    • +
    • current awareness alerts
    • +
    • bespoke training requests (e.g., information skills, EndNote, critical appraisal)
    • +
    • general enquiries
    • +
    +

    + +

    How we protect your information

    +

    + We have put in place a range of organisational processes and technical security measures to protect your personal information from loss, misuse and unauthorised access, disclosure, alteration and destruction. +

    + Your personal information can only be seen by staff who have been trained to protect your confidentiality and understand laws and regulations such as the Data Protection Act 2018 and the UK GDPR. +

    + Strict controls are in place to ensure that staff can only access your information if they need it to do their job, and they are only provided with access to the minimum necessary information. Where we share information with other organisations, we take appropriate measures to ensure this is used lawfully and protected. +

    + Whenever possible, we only use your information in a form that does not directly identify you. For example, we may pseudonymise identifying details or substitute your date of birth with your age to help protect your confidentiality. +

    + No information that could identify you will ever be published by us. +

    +

    Where we store your information

    +

    + All personal information used by the UKHSA Knowledge and Library Services is held in the UK only. +

    +

    Who we share your information with

    +

    + We do not routinely share your personal information with external organisations. In limited circumstances, we may share it with other parts of UKHSA or with approved partners if this is required to respond to your enquiry or improve the service, and only where the law allows us to do so. +

    +

    + We always ensure that the minimum necessary amount of personal information is shared, and that appropriate safeguards are in place. +

    +

    How long we keep your information

    +

    + We will only retain your personal information for as long as necessary to respond to your request or enquiry, and in accordance with the Records Management Code of Practice for Health and Social Care 2021. . +

    +

    Your rights over your information

    +

    + Under data protection law, you have a number of rights over your personal information. You have the right to: +

    +

    +

      +
    • ask for a copy of any information we hold about you
    • +
    • ask for any inaccurate information we hold about you to be corrected
    • +
    • ask us to restrict our use of your information, for example, if you think it's inaccurate
    • +
    • object to us using your information (although we may need to continue using it – if so, we will explain why)
    • +
    • ask us to delete your information (this is not an absolute right, and we will explain if we need to retain it)
    • +
    • ask us not to make automated decisions about you without human involvement
    • +
    +

    +

    + You can exercise these rights by contacting us at: +

    + +

    + Alternatively, you can exercise any of these rights by contacting UKHSA at: +

    +
    + Information Rights Team
    + UKHSA
    + 5th Floor, 10 South Colonnade
    + London
    + E14 4PU
    + United Kingdom
    + Email: InformationRights@UKHSA.gov.uk
    +
    + +

    + You will be asked to provide proof of your identity so that we can be sure we only provide you with your information. +

    + +

    Our legal basis to use your information

    +

    + UKHSA is allowed to collect and use personal data under the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018. The legal bases we rely on are: +

    +

    +

      +
    • UK GDPR Article 6(1)(e) – processing is necessary for the performance of a task carried out in the public interest
    • +
    • UK GDPR Article 9(2)(i) – processing is necessary for reasons of public interest in the area of public health
    • +
    • Data Protection Act 2018 Schedule 1, Part 1 (3) – public health
    • +
    +

    +

    How to find out more or raise a concern

    +

    + If you have any questions about this privacy notice or how we use your personal information, you can contact us at libraries@kls.ukhsa.gov.uk. +

    + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: +

    +
    + Office of the Data Protection Officer
    + Department of Health and Social Care
    + 39 Victoria Street
    + London
    + SW1H 0EU
    +
    +

    + You also have the right to contact the Information Commissioner’s Office (opens in new tab) if you have any concerns about how Public Health England uses and protects any personal information it holds about you. You can do so by calling the ICO’s helpline on 0303 123 1113, visiting the ICO’s website at ico.org.uk (opens in new tab) or by writing to: +

    +
    + Customer Contact
    + Information Commissioner's Office
    + Wycliffe House
    + Water Lane
    + Wilmslow
    + SK9 5AF
    +
    +

    About this privacy information

    +

    + This notice may be updated if the information we collect or the way we use it changes. The publication date will be updated accordingly. +

    + Published July 2025 +

    + For more information, see the UKHSA privacy notice (opens in new tab) +

    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-training-request/accessibility-statement.html b/runner/src/server/views/kls-training-request/accessibility-statement.html new file mode 100644 index 0000000000..f4c05051b9 --- /dev/null +++ b/runner/src/server/views/kls-training-request/accessibility-statement.html @@ -0,0 +1,97 @@ +{% extends 'layout.html' %} + +{% block pageTitle %} + {{ name }} - Accessibility Statement +{% endblock %} + +{% block content %} +
    +
    +
    +

    Accessibility statement for ‘Contact the UKHSA Knowledge and Library Services’

    +

    + This accessibility statement applies to the UKHSA Knowledge and Library Services enquiry form websites: +

    +
      +
    • KLS enquiry form: https://forms.ukhsa.gov.uk/kls-enquiries (opens in new tab)
    • +
    • KLS Training enquiry form: https://forms.ukhsa.gov.uk/kls-training-request (opens in new tab)
    • +

      + This website is run by UK Health Security Agency (UKHSA). We want as many people as possible to be able to use this website. For example, that means you should be able to: +

      +

      +

        +
      • change colours, contrast levels and fonts using browser or device settings
      • +
      • zoom in up to 400% without the text spilling off the screen
      • +
      • navigate most of the website using a keyboard or speech recognition software
      • +
      • listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)
      • +
      +

      +

      + We’ve also made the website text as simple as possible to understand. +
      + AbilityNet (opens in new tab) has advice on making your device easier to use if you have a disability. +

      +

      How accessible this website is

      +

      + We know some parts of this website are not fully accessible: + +

        +
      • Narrator does not read out error messages in full automatically without user selection
      • +
      • you cannot modify the line height or spacing of text
      • +
      • you cannot autocomplete some form fields with assistive technology
      • +
      • when using Narrator, you cannot select an item listed in dropdown list using input means including the ENTER, TAB and Spacebar keys
      • +
      +

      +

      Feedback and contact information

      +

      + If you find any problems not listed on this page or believe we're not meeting accessibility requirements, email ukhsa_techbp_product@ukhsa.gov.uk +
      +

      +

      + If you have difficulty using the website to make an enquiry to the KLS team, you should email libraries@kls.ukhsa.gov.uk. +

      +

      Enforcement procedure

      +

      + + The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS) (opens in new tab). +

      +

      Technical information about this website’s accessibility

      +

      + UK Health Security Agency (UKHSA) is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. +

      +

      Compliance status

      +

      + This website is partially compliant with the Web Content Accessibility Guidelines version 2.2 (opens in new tab) AA standard, due to the non-compliances and exemptions listed below +

      +

      Non-accessible content

      +

      + The content listed below is non-accessible for the following reasons.  +

      +

      Non-compliance with the accessibility regulations

      +

      + This website is undergoing a second round of testing against Web Content Accessibility Guidelines version 2.2. There are several guidelines not yet fully adhered to including: +

        +
      • 3.3.3 - Error Suggestion - Error message not fully read out by Narrator
      • +
      • 1.3.5 - Identify Input Purpose - Some form control fields do not use fine-grained autocomplete attribute definition techniques required for assistive technology users
      • +
      • 2.1.1 - Keyboard Accessibility - Cannot select dropdown item with Narrator focused on it
      • +
      + We plan to address these issues soon. +

      +

      Content that’s not within the scope of accessibility regulations

      +

      + PDFs and other documents - The accessibility regulations do not require us to fix PDFs or other documents delivered by email. We plan to meet accessibility standards with all new PDFs or Word documents we will share. +

      +

      What we’re doing to improve accessibility

      +

      + We have been testing our website with users with a variety of accessibility needs. We intend to fix the non-accessible content listed above. We keep testing our website to understand where we are non-compliant with accessibility standards. Any non-compliant components will be raised in our roadmap and improved in the coming months. +

      +

      Preparation of this accessibility statement

      +

      + This statement was prepared in July 2025.
      + This website was last tested in July 2025 against the WCAG 2.2 AA standard.
      + The test was carried out by UK Health Security Agency. The most viewed pages were tested using automated testing tools by our website team. A further audit of the website was carried out to the WCAG 2.2 AA standard. +

      +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-training-request/cookies.html b/runner/src/server/views/kls-training-request/cookies.html new file mode 100644 index 0000000000..a62af585cc --- /dev/null +++ b/runner/src/server/views/kls-training-request/cookies.html @@ -0,0 +1,114 @@ +{% extends 'layout.html' %} +{% from "radios/macro.njk" import govukRadios %} +{% from "button/macro.njk" import govukButton %} + +{% block content %} +
    +
    +

    Cookies on {{ name }}

    +

    Cookies are files saved on your phone, tablet or computer when you visit a website.

    +

    We use cookies to remember information you've entered when applying to prove your eligibility.

    + +

    Strictly necessary cookies

    +

    Your progress when using this service

    +

    When you use this service, we’ll set a cookie to remember your progress through the forms. These cookies do not store your personal data and are deleted once you’ve completed the transaction.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    cookies_policySaves your cookie consent settingsWhen you close your browser
    sessionSet to remember information you’ve entered into a formWhen you close your browser
    crumbHelps us to prevent cross site scripting attacksWhen you close your browser
    auth_tokenSet to keep you authenticated on the serviceWhen you close your browser
    magicLinkRetrySet to aid initial authenticationWhen you close your browser
    + + {% if gtmId1 or gtmId2 %} +
    + +

    Cookies that measure website use

    +

    Measuring website usage (Google Analytics)

    +

    We use Google Analytics to measure how you use the website so we can improve it based on user needs. We do not allow Google to use or share the data about how you use this site.

    +

    Google Analytics sets cookies that store anonymised information about:

    +
      +
    • how you got to the site
    • +
    • the pages you visit within this service, GOV.UK and other government digital services, and how long you spend on each page
    • +
    • what you click on while you are visiting the site
    • +
    + + + + + + + + + + + + + + + + + + + + +
    NamePurposeExpires
    _gaUsed to distinguish users2 years
    _ga_[id]used to persist session state2 years
    + {{ govukRadios({ + name: "cookies", + items: [ + { + value: "accept", + text: "Use cookies that measure my website use" + }, + { + value: "reject", + text: "Do not use cookies that measure my website use" + } + ], + value: analytics + }) }} + {% endif %} + + {% if matomoUrl and matomoId %} +

    Cookies that measure website use

    +

    Measuring website usage (Matomo)

    +

    We use Matomo Analytics software to collect non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request.

    +

    We do this to better understand how applicants for overseas loans use the website. From time to time, the Foreign and Commonwealth Office may release non-personally-identifying information in the aggregate, eg, by publishing a report on trends in the usage of its website.

    +

    We don't use any cookies to do this.

    + {% endif %} + {% if gtmId1 or gtmId2 %} + {{ govukButton({ attributes: { id: "submit" }, text: "Save changes" }) }} +
    + {% endif %} +
    +
    +{% endblock %} diff --git a/runner/src/server/views/kls-training-request/privacy.html b/runner/src/server/views/kls-training-request/privacy.html new file mode 100644 index 0000000000..1b718a68f6 --- /dev/null +++ b/runner/src/server/views/kls-training-request/privacy.html @@ -0,0 +1,166 @@ +{% extends "layout.html" %} + +{% block pageTitle %} + {{ name }} Privacy Notice +{% endblock %} + +{% block content %} +
    +
    +
    +

    Privacy Notice for ‘Contact the UKHSA Knowledge and Library Services’

    +

    About UKHSA

    +

    + On 1 October 2021, the UK Health Security Agency (UKHSA) was established as an executive agency of the Department of Health and Social Care (DHSC). UKHSA brings together many of the health protection functions previously undertaken by Public Health England (PHE), the NHS Test and Trace Programme, and the Joint Biosecurity Centre (JBC). +

    + Our responsibilities include preparing for, preventing, and responding to external health threats. We provide scientific, operational, and strategic leadership nationally and internationally. +

    + UKHSA’s remit (opens in new tab) includes Knowledge and Library Services (KLS). KLS supports evidence-based decision-making across public health and healthcare by providing access to expert literature searching, current awareness, training, evidence briefings and other services. +

    + This privacy notice explains what personal information we collect through our Contact Us form, how we use and protect it, and what your rights are. +

    +

    The information we collect

    +

    + We collect the following personal information to help us respond to your enquiry and provide the requested service: +

    +

    +

      +
    • full name
    • +
    • job title
    • +
    • work address
    • +
    • location
    • +
    • email address
    • +
    • IP address
    • +
    • your enquiry details (including any information you provide in your request)
    • +
    +

    +

    How we collect your information

    +

    + This information is provided directly by you when you complete and submit the Contact Us form for KLS. +

    + +

    The purposes we use your information for

    +

    + We collect this information so we can respond to your enquiry, support your request, and help us monitor and improve our services. +

    +

      +
    • literature searches
    • +
    • evidence briefings
    • +
    • systematic reviews
    • +
    • current awareness alerts
    • +
    • bespoke training requests (e.g., information skills, EndNote, critical appraisal)
    • +
    • general enquiries
    • +
    +

    + +

    How we protect your information

    +

    + We have put in place a range of organisational processes and technical security measures to protect your personal information from loss, misuse and unauthorised access, disclosure, alteration and destruction. +

    + Your personal information can only be seen by staff who have been trained to protect your confidentiality and understand laws and regulations such as the Data Protection Act 2018 and the UK GDPR. +

    + Strict controls are in place to ensure that staff can only access your information if they need it to do their job, and they are only provided with access to the minimum necessary information. Where we share information with other organisations, we take appropriate measures to ensure this is used lawfully and protected. +

    + Whenever possible, we only use your information in a form that does not directly identify you. For example, we may pseudonymise identifying details or substitute your date of birth with your age to help protect your confidentiality. +

    + No information that could identify you will ever be published by us. +

    +

    Where we store your information

    +

    + All personal information used by the UKHSA Knowledge and Library Services is held in the UK only. +

    +

    Who we share your information with

    +

    + We do not routinely share your personal information with external organisations. In limited circumstances, we may share it with other parts of UKHSA or with approved partners if this is required to respond to your enquiry or improve the service, and only where the law allows us to do so. +

    +

    + We always ensure that the minimum necessary amount of personal information is shared, and that appropriate safeguards are in place. +

    +

    How long we keep your information

    +

    + We will only retain your personal information for as long as necessary to respond to your request or enquiry, and in accordance with the Records Management Code of Practice for Health and Social Care 2021. . +

    +

    Your rights over your information

    +

    + Under data protection law, you have a number of rights over your personal information. You have the right to: +

    +

    +

      +
    • ask for a copy of any information we hold about you
    • +
    • ask for any inaccurate information we hold about you to be corrected
    • +
    • ask us to restrict our use of your information, for example, if you think it's inaccurate
    • +
    • object to us using your information (although we may need to continue using it – if so, we will explain why)
    • +
    • ask us to delete your information (this is not an absolute right, and we will explain if we need to retain it)
    • +
    • ask us not to make automated decisions about you without human involvement
    • +
    +

    +

    + You can exercise these rights by contacting us at: +

    + +

    + Alternatively, you can exercise any of these rights by contacting UKHSA at: +

    +
    + Information Rights Team
    + UKHSA
    + 5th Floor, 10 South Colonnade
    + London
    + E14 4PU
    + United Kingdom
    + Email: InformationRights@UKHSA.gov.uk
    +
    + +

    + You will be asked to provide proof of your identity so that we can be sure we only provide you with your information. +

    + +

    Our legal basis to use your information

    +

    + UKHSA is allowed to collect and use personal data under the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018. The legal bases we rely on are: +

    +

    +

      +
    • UK GDPR Article 6(1)(e) – processing is necessary for the performance of a task carried out in the public interest
    • +
    • UK GDPR Article 9(2)(i) – processing is necessary for reasons of public interest in the area of public health
    • +
    • Data Protection Act 2018 Schedule 1, Part 1 (3) – public health
    • +
    +

    +

    How to find out more or raise a concern

    +

    + If you have any questions about this privacy notice or how we use your personal information, you can contact us at libraries@kls.ukhsa.gov.uk. +

    + If you have any concerns about how personal information is used and protected by UKHSA, you can contact the Department of Health and Social Care’s Data Protection Officer at data_protection@dhsc.gov.uk or by writing to: +

    +
    + Office of the Data Protection Officer
    + Department of Health and Social Care
    + 39 Victoria Street
    + London
    + SW1H 0EU
    +
    +

    + You also have the right to contact the Information Commissioner’s Office (opens in new tab) if you have any concerns about how Public Health England uses and protects any personal information it holds about you. You can do so by calling the ICO’s helpline on 0303 123 1113, visiting the ICO’s website at ico.org.uk (opens in new tab) or by writing to: +

    +
    + Customer Contact
    + Information Commissioner's Office
    + Wycliffe House
    + Water Lane
    + Wilmslow
    + SK9 5AF
    +
    +

    About this privacy information

    +

    + This notice may be updated if the information we collect or the way we use it changes. The publication date will be updated accordingly. +

    + Published July 2025 +

    + For more information, see the UKHSA privacy notice (opens in new tab) +

    +
    +
    +
    +{% endblock %} diff --git a/runner/src/server/views/layout.html b/runner/src/server/views/layout.html index af0cfbd4be..bcd93373e7 100644 --- a/runner/src/server/views/layout.html +++ b/runner/src/server/views/layout.html @@ -170,6 +170,7 @@

    Default page template

    + @@ -182,6 +183,8 @@

    Default page template

    GOVUKFrontend.modalDialog.idleMinutesBeforeTimeOut = Number('{{ (sessionTimeout / 60000) - 1 }}') - GOVUKFrontend.modalDialog.minutesTimeOutModalVisible GOVUKFrontend.modalDialog.init() + + new SessionHeartbeat(2); {% endif %} }); @@ -197,17 +200,14 @@

    Default page template

    rebrand: true, meta: { items: [{ - href: privacyPolicyUrl, + href: 'privacy', text: 'Privacy' }, { - href: '/help/cookies', + href: 'cookies', text: 'Cookies' }, { - href: '/help/accessibility-statement', + href: 'accessibility-statement', text: 'Accessibility Statement' - }, { - href: '/help/terms-and-conditions', - text: 'Terms and Conditions' }] } }) }} diff --git a/runner/src/server/views/multi-start-page-with-sidebar-content.html b/runner/src/server/views/multi-start-page-with-sidebar-content.html new file mode 100644 index 0000000000..8f7a33d0bf --- /dev/null +++ b/runner/src/server/views/multi-start-page-with-sidebar-content.html @@ -0,0 +1,75 @@ +{% from "pagination/macro.njk" import govukPagination %} +{% from "button/macro.njk" import govukButton %} +{% extends 'layout.html' %} + +{% block templateImports %} +{{ super() }} +{% endblock %} + +{% from "error-summary/macro.njk" import govukErrorSummary %} +{% from "partials/components.html" import componentList with context %} + +{% block content %} + +{% set gridSize = "full" %} +
    +
    + {% if errors %} + {{ govukErrorSummary(errors) }} + {% endif %} + +
    + + {% include "partials/heading.html" %} + +
    + +
    +
    + +
    + +
    + + {{ componentList(components) }} + + {% if continueButtonText %} + {{ govukButton({ attributes: { id: "submit" }, text: continueButtonText })}} + {% endif %} + + {{ govukPagination(startPageNavigation) }} +
    +
    +
    +
    +




    +
    +

    {{sidebarContent.title}}

    +
    +
      +
    • +

      {{sidebarContent.subtitle}}

      +
    • + {% for item in sidebarContent.links %} +
    • + + + {{ item.title }} + + +
    • + {% endfor %} +
    +
    +
    +
    +
    + + + +
    {{ value | dump(2) | safe }}
    +
    + +
    + +{% endblock %} \ No newline at end of file diff --git a/runner/src/server/views/partials/modal-dialog.html b/runner/src/server/views/partials/modal-dialog.html index b85bf90d20..d5de3992b5 100644 --- a/runner/src/server/views/partials/modal-dialog.html +++ b/runner/src/server/views/partials/modal-dialog.html @@ -1,5 +1,5 @@ + data-url-redirect="timeout" class="modal-dialog dialog" role="dialog" aria-live="polite" aria-labelledby="dialog-title" aria-describedby="at-timer"> diff --git a/runner/test/cases/server/plugins/engine/pageControllers/CheckpointSummaryPageController.test.ts b/runner/test/cases/server/plugins/engine/pageControllers/CheckpointSummaryPageController.test.ts new file mode 100644 index 0000000000..582e4cf75c --- /dev/null +++ b/runner/test/cases/server/plugins/engine/pageControllers/CheckpointSummaryPageController.test.ts @@ -0,0 +1,251 @@ +import * as Code from "@hapi/code"; +import * as Lab from "@hapi/lab"; +import { FormModel } from "server/plugins/engine/models"; +import { CheckpointSummaryPageController } from "server/plugins/engine/pageControllers/CheckpointSummaryPageController"; + +const { expect } = Code; +const lab = Lab.script(); +exports.lab = lab; +const { describe, it, beforeEach } = lab; + +describe("CheckpointSummaryPageController", () => { + let controller; + let mockModel; + let mockPageDef; + let mockRequest; + let mockH; + let mockCacheService; + + beforeEach(() => { + const formDef = { + pages: [ + { + path: "/page1", + title: "Page 1", + section: "section1", + components: [], + }, + ], + sections: [ + { name: "section1", title: "Section 1", hideTitle: false }, + { name: "section2", title: "Section 2", hideTitle: true }, + ], + startPage: "/page1", + lists: [], + conditions: [], + name: "Test Form", + }; + + mockModel = { + options: { + basePath: "test-form", + }, + name: "Test Form", + conditions: [], + lists: [], + sections: [ + { name: "section1", title: "Section 1", hideTitle: false }, + { name: "section2", title: "Section 2", hideTitle: true }, + ], + pages: [ + { + path: "/page1", + title: "Page 1", + section: "section1", + components: [], + }, + ], + getRelevantPages: () => ({ + relevantPages: [ + { + path: "/page1", + title: "Page 1", + section: { name: "section1" }, + sectionForMultiSummaryPages: "Custom Section 1", + components: { + formItems: [ + { + name: "field1", + title: "Field 1", + type: "TextField", + options: { summaryTitle: "F1" }, + getDisplayStringFromState: (state) => state.field1, + }, + ], + }, + }, + { + path: "/page2", + title: "Page 2", + section: { name: "section2" }, + sectionForMultiSummaryPages: "Custom Section 2", + components: { + formItems: [ + { + name: "field2", + title: "Field 2", + type: "TextField", + options: { summaryTitle: "F2" }, + getDisplayStringFromState: (state) => state.field2, + }, + ], + }, + }, + ], + }), + showFilenamesOnSummaryPage: true, + def: formDef, + }; + + mockPageDef = { + path: "/summary", + title: "Summary Page", + section: "section1", + controller: "CheckpointSummaryPageController", + name: "summary-page", + components: [], + next: [], + options: { + customText: { + title: "Custom Title", + }, + }, + }; + + mockCacheService = { + getState: () => + Promise.resolve({ + section1: { field1: "test value 1" }, + section2: { field2: "test value 2" }, + progress: ["/previous-page"], + originalFilenames: { + field1: { originalFilename: "test1.pdf" }, + field2: { originalFilename: "test2.pdf" }, + }, + }), + }; + + mockRequest = { + services: () => ({ cacheService: mockCacheService }), + yar: { + set: () => {}, + }, + }; + + mockH = { + view: (template, data) => ({ template, data }), + redirect: (path) => path, + continue: Symbol("continue"), + }; + + controller = new CheckpointSummaryPageController( + new FormModel(formDef, {}), + mockPageDef + ); + }); + + describe("constructor", () => { + it("should initialize with default options when none provided", () => { + const controllerNoOptions = new CheckpointSummaryPageController( + new FormModel(mockModel.def, {}), + { ...mockPageDef, options: undefined } + ); + + expect(controllerNoOptions.options).to.equal({ + customText: {}, + }); + }); + }); + + describe("makePostRouteHandler", () => { + it("should return a function that redirects to the next page", async () => { + const handler = controller.makePostRouteHandler(); + const result = await handler(mockRequest, mockH); + + expect(result).to.be.a.string(); + expect(result).to.equal("/summary"); + }); + }); + + describe("summaryLists generation", () => { + it("should generate summaryLists based on rowsBySection and model.sections", () => { + // Mock data + const rowsBySection = { + section1: ["row1", "row2"], + section2: ["row3"], + }; + + const model = { + sections: [ + { name: "section1", title: "Section One", hideTitle: false }, + { name: "section2", title: "Section Two", hideTitle: true }, + { name: "section3", title: "Section Three", hideTitle: false }, + ], + }; + + // The function to test + const summaryLists = Object.entries(rowsBySection).map( + ([section, rows]) => { + const modelSection = model.sections.find( + (mSection) => mSection.name === section + ); + + return { + sectionTitle: !modelSection?.hideTitle ? modelSection?.title : "", + section, + rows, + }; + } + ); + + // Expected result + const expectedSummaryLists = [ + { + sectionTitle: "Section One", + section: "section1", + rows: ["row1", "row2"], + }, + { + sectionTitle: "", // Title hidden because `hideTitle` is true + section: "section2", + rows: ["row3"], + }, + ]; + + // Assertions + expect(summaryLists).to.equal(expectedSummaryLists); + }); + }); + + describe("formItemsToRowByPage", () => { + it("should transform form items to summary rows", () => { + const page = { + path: "/page1", + model: mockModel, + components: { + formItems: [], + }, + }; + + const component = { + name: "field1", + title: "Field 1", + type: "TextField", + options: { summaryTitle: "F1" }, + getDisplayStringFromState: (state) => state.field1, + }; + + const toRow = controller.formItemsToRowByPage({ + page, + sectionState: { field1: "test value" }, + fullState: {}, + }); + + const row = toRow(component); + + expect(row.key.text).to.equal("F1"); + expect(row.value.text).to.equal("test value"); + expect(row.actions.items[0].text).to.equal("Change"); + }); + }); +}); diff --git a/runner/test/cases/server/transforms/filterSections.test.js b/runner/test/cases/server/transforms/filterSections.test.js new file mode 100644 index 0000000000..f2f3676ed8 --- /dev/null +++ b/runner/test/cases/server/transforms/filterSections.test.js @@ -0,0 +1,121 @@ +import Lab from "@hapi/lab"; +import { expect } from "@hapi/code"; +const { before, test, suite, after } = (exports.lab = Lab.script()); + +import { filterSections } from "../../../../src/server/transforms/summaryDetails/filterSections"; + +suite("filterSections", () => { + const details = [ + { + items: [ + { + name: "id", + title: "ID", + label: "ID", + value: "123", + rawValue: "123", + url: "/startPage", + }, + ], + }, + { + name: "YourDetails", + title: "Your details", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage?returnTo=summary", + pageId: "/namePage", + }, + ], + }, + { + name: "Person1", + title: "Person 1", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage?returnTo=summary", + pageId: "/namePage", + }, + ], + }, + { + name: "Person2", + title: "Person 2", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage?returnTo=summary", + pageId: "/namePage", + inError: true, + }, + ], + }, + ]; + + test("filterSections correctly transforms", () => { + expect(filterSections(details)).to.equal([ + { + name: "YourDetails", + title: "Your details", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage?returnTo=summary", + pageId: "/namePage", + }, + ], + }, + { + name: "Person1", + title: "Person 1", + card: "/namePage?returnTo=summary", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage?returnTo=summary", + pageId: "/namePage", + }, + ], + }, + { + name: "Person2", + title: "Person 2", + card: "/namePage", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage?returnTo=summary", + pageId: "/namePage", + inError: true, + }, + ], + }, + ]); + }); +}); diff --git a/runner/test/cases/server/transforms/mergeRows.test.js b/runner/test/cases/server/transforms/mergeRows.test.js new file mode 100644 index 0000000000..e8688449ea --- /dev/null +++ b/runner/test/cases/server/transforms/mergeRows.test.js @@ -0,0 +1,70 @@ +import Lab from "@hapi/lab"; +import { expect } from "@hapi/code"; +const { before, test, suite, after } = (exports.lab = Lab.script()); + +import { mergeRows } from "../../../../src/server/transforms/summaryDetails/mergeRows"; + +suite("mergeRows", () => { + const details = [ + { + name: "Detail1", + title: "Detail 1", + items: [ + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage", + }, + { + name: "last_name", + title: "Last name", + label: "Last name", + value: "Bloggs", + rawValue: "Bloggs", + url: "/namePage", + }, + { + name: "dob", + title: "Date of birth", + label: "Date of birth", + value: "21/04/1994", + rawValue: "21/04/1994", + url: "/namePage", + }, + ], + }, + ]; + const fields = [ + { names: ["first_name", "last_name"], to: "Full name", joiner: " " }, + ]; + + test("mergeRows correctly transforms ", () => { + expect(mergeRows(details, fields)).to.equal([ + { + name: "Detail1", + title: "Detail 1", + items: [ + { + name: "full_name", + title: "Full name", + label: "Full name", + value: "Joe Bloggs", + rawValue: "Full name", + url: "/namePage", + }, + { + name: "dob", + title: "Date of birth", + label: "Date of birth", + value: "21/04/1994", + rawValue: "21/04/1994", + url: "/namePage", + }, + ], + }, + ]); + }); +}); diff --git a/runner/test/cases/server/transforms/removeRows.test.js b/runner/test/cases/server/transforms/removeRows.test.js new file mode 100644 index 0000000000..65d2794009 --- /dev/null +++ b/runner/test/cases/server/transforms/removeRows.test.js @@ -0,0 +1,94 @@ +import Lab from "@hapi/lab"; +import { expect } from "@hapi/code"; +const { before, test, suite, after } = (exports.lab = Lab.script()); + +import { removeRows } from "../../../../src/server/transforms/summaryDetails/removeRows"; + +suite("removeRows", () => { + const details = [ + { + name: "Detail1", + title: "Detail 1", + items: [ + { + name: "organisation_1", + title: "Which organisation do you work for?", + label: "Which organistation do you work for?", + value: "ORG 1", + rawValue: "ORG 1", + url: "/org1", + }, + { + name: "organisation_2", + title: "Which organisation do you work for?", + label: "Which organistation do you work for?", + value: "ORG 2", + rawValue: "ORG 2", + url: "/org2", + }, + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage", + }, + { + name: "last_name", + title: "Last name", + label: "Last name", + value: "Bloggs", + rawValue: "Bloggs", + url: "/namePage", + }, + { + name: "dob", + title: "Date of birth", + label: "Date of birth", + value: "21/04/1994", + rawValue: "21/04/1994", + url: "/namePage", + }, + ], + }, + ]; + const fields = [ + "organisation", "dob", + ]; + + test("removeRows correctly transforms ", () => { + expect(removeRows(details, fields)).to.equal([ + { + name: "Detail1", + title: "Detail 1", + items: [ + { + name: "organisation_2", + title: "Which organisation do you work for?", + label: "Which organistation do you work for?", + value: "ORG 2", + rawValue: "ORG 2", + url: "/org2", + }, + { + name: "first_name", + title: "First name", + label: "First name", + value: "Joe", + rawValue: "Joe", + url: "/namePage", + }, + { + name: "last_name", + title: "Last name", + label: "Last name", + value: "Bloggs", + rawValue: "Bloggs", + url: "/namePage", + }, + ], + }, + ]); + }); +}); diff --git a/runner/test/cases/server/upload.test.js b/runner/test/cases/server/upload.test.js index 61d2fa97a1..88246f34d9 100644 --- a/runner/test/cases/server/upload.test.js +++ b/runner/test/cases/server/upload.test.js @@ -150,7 +150,7 @@ suite("uploads", () => { const $ = cheerio.load(response.payload); expect($("[href='#file1']").text().trim()).to.contain( - 'The selected files must be a JPG, JPEG, PNG or PDF' + "The selected files must be a JPG, JPEG, PNG or PDF" ); }); diff --git a/runner/test/cases/server/utils/domain.test.ts b/runner/test/cases/server/utils/domain.test.ts new file mode 100644 index 0000000000..253d7cb926 --- /dev/null +++ b/runner/test/cases/server/utils/domain.test.ts @@ -0,0 +1,146 @@ +import * as Code from "@hapi/code"; +import * as Lab from "@hapi/lab"; +import { isAllowedDomain } from "server/utils/domain"; + +const { expect } = Code; +const lab = Lab.script(); +exports.lab = lab; +const { suite, test } = lab; + +suite("Empty whitelist: should return all emails as valid", () => { + test("Empty email with empty domain whitelist", () => { + const email: string = ""; + const domainList: string[] = []; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Invalid email with no '@' and empty domain whitelist", () => { + const email: string = "test"; + const domainList: string[] = []; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Valid email with empty domain whitelist", () => { + const email: string = "example@example.com"; + const domainList: string[] = []; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); +}); + +suite("Whitelist with a single domain", () => { + test("Valid email with leading/trailing whitespace", () => { + const email = " test@example.com "; + const domainList = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Valid email in domain whitelist", () => { + const email: string = "test@example.com"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Valid email with uppercase domain in address", () => { + const email: string = "test@ExAmPlE.com"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Valid email with uppercase domain in whitelist", () => { + const email: string = "test@example.com"; + const domainList: string[] = ["Example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Valid subdomain should match base domain", () => { + const email = "user@mail.example.com"; + const domainList = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Invalid email: no '@'", () => { + const email: string = "test"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: only '@'", () => { + const email: string = "@"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: missing local-part", () => { + const email: string = "@example.com"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: domain not in whitelist", () => { + const email: string = "test@gmail.com"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: domain does not exactly match whitelist", () => { + const email: string = "test@example.test.com"; + const domainList: string[] = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: domain ends with similar string", () => { + const email = "user@notexample.com"; + const domainList = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: multiple '@' symbols", () => { + const email = "test@me@example.com"; + const domainList = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: missing TLD", () => { + const email = "user@example"; + const domainList = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: domain is substring of whitelisted domain", () => { + const email = "user@ple.com"; + const domainList = ["example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); +}); + +suite("Whitelist with multiple domains", () => { + test("Valid email in one of the whitelisted domains", () => { + const email: string = "test@gmail.com"; + const domainList: string[] = ["example.com", "gmail.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Valid email with uppercase domain, mixed whitelist order", () => { + const email: string = "test@ExAmPlE.com"; + const domainList: string[] = ["gmail.com", "example.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(true); + }); + + test("Invalid email: no '@'", () => { + const email: string = "test"; + const domainList: string[] = ["example.com", "gmail.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: only '@'", () => { + const email: string = "@"; + const domainList: string[] = ["example.com", "gmail.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); + + test("Invalid email: missing local part", () => { + const email: string = "@example.com"; + const domainList: string[] = ["example.com", "gmail.com"]; + expect(isAllowedDomain(email, domainList)).to.equal(false); + }); +}); diff --git a/submitter/package.json b/submitter/package.json index 715936ac63..a7c96c738c 100644 --- a/submitter/package.json +++ b/submitter/package.json @@ -53,8 +53,8 @@ "jest": "^26.6.3", "jest-mock-extended": "^3.0.5", "nodemon": "^3.0.1", - "prisma": "5.22.0", - "typescript": "4.9.5" + "prisma": "^6.1.0", + "typescript": "^5.x" }, "pkg": { "assets": [ diff --git a/submitter/src/submission/services/webhookService.ts b/submitter/src/submission/services/webhookService.ts index 907f113af7..14068a227f 100644 --- a/submitter/src/submission/services/webhookService.ts +++ b/submitter/src/submission/services/webhookService.ts @@ -28,11 +28,13 @@ export class WebhookService { try { parsed = JSON.parse(data); } catch (e) { - this.logger.error(`Not submitting ${data}, ${e}`); + // Commented out due to potential for logging PII + // this.logger.error(`Not submitting ${data}, ${e}`); return { payload: { error: e.message } }; } - this.logger.info({ data: parsed }, `${method} to ${url}`); + // Commented out due to potential for logging PII + // this.logger.info({ data: parsed }, `${method} to ${url}`); try { const { payload } = await request(url, { @@ -47,7 +49,8 @@ export class WebhookService { if (e.isBoom) { return e.output; } - this.logger.error({ data }, e); + // Commented out due to potential for logging PII + // this.logger.error({ data }, e); return { payload: { error: e.message } }; } } diff --git a/utils/README.md b/utils/README.md new file mode 100644 index 0000000000..5018aa49f4 --- /dev/null +++ b/utils/README.md @@ -0,0 +1,47 @@ +# Utils Folder + +This folder contains utility scripts to support the release process. +Currently, it includes a script to remove non-production forms before deploying to production. + +### Why This Script Exists + +Before every release, we need to: + +- Create a feature branch from the v2 branch. +- Remove all non-production forms. +- Deploy the cleaned branch to production. + +This ensures that development teams can continue working on new forms without affecting production stability. + +### Script Details + +- **File**: cleanNonProdForms.js +- **Purpose**: Deletes all .json form files in the current directory except those listed as production-ready. + +The script uses Node.js to: + +- Scan the target directory. +- Remove any .json file not listed in the PROD_FORMS array. +- Log deleted and retained files. + +### How to Run + +Ensure you have Node.js installed. + +From the project root, run: + +``` +npm run clean:forms:nonprod +``` + +This will execute the cleanup script and remove non-production forms. + +Important Notes + +### ⚠️ Production Forms List: + +The script relies on the PROD_FORMS array inside cleanNonProdForms.js. +If you add a new production-ready form, update this list before running the script: + +Safety Tip: +Double-check the list before running the script to avoid deleting required forms. diff --git a/utils/cleanNonProdForms.js b/utils/cleanNonProdForms.js new file mode 100644 index 0000000000..ee5b4cdcea --- /dev/null +++ b/utils/cleanNonProdForms.js @@ -0,0 +1,65 @@ +const fs = require("fs"); +const path = require("path"); + +const TARGET_DIR = path.join(__dirname, "../runner/src/server/forms"); +const PROD_FORMS = [ + "ReportAnOutbreak.json", + "close-contact-feedback.json", + "close-contact-form-cca.json", + "close-contact-form-hpt.json", + "close-contact-form.json", + "close-contact-form-mers.json", + "close-contact-form-cca-mers.json", + "confirmation-timeout.json", + "feedback.json", + "kls-enquiries.json", + "kls-feedback.json", + "kls-magic-link.json", + "kls-training-magic-link.json", + "kls-training-request.json", + "magic-link.json", +]; + +function cleanNonProdForms() { + console.log("[INFO] Starting cleanup in:", TARGET_DIR); + + let deletedCount = 0; + let keptFiles = []; + + try { + const files = fs.readdirSync(TARGET_DIR); + console.log(`[INFO] Found ${files.length} files`); + + files.forEach((file) => { + const filePath = path.join(TARGET_DIR, file); + + if (!PROD_FORMS.includes(file) && file.endsWith(".json")) { + try { + fs.unlinkSync(filePath); + console.log(`[INFO]: ${file} deleted`); + deletedCount++; + } catch (error) { + console.error(`[ERROR] Failed to delete "${file}": ${error.message}`); + } + } else { + keptFiles.push(file); + } + }); + + console.log(`[INFO] Files not deleted:`); + console.table(keptFiles); + + console.log(`[DONE] Cleanup complete. Deleted ${deletedCount}`); + } catch (error) { + console.error(`[ERROR] Could not read directory: ${error.message}`); + process.exit(1); + } +} + +// Run cleanup only when this file is executed directly (e.g. `node cleanNonProdForms.js`). +// Prevents the function from running automatically when the module is imported in tests. +if (require.main === module) { + cleanNonProdForms(); +} + +module.exports = { cleanNonProdForms, TARGET_DIR, PROD_FORMS }; diff --git a/utils/cleanNonProdForms.test.js b/utils/cleanNonProdForms.test.js new file mode 100644 index 0000000000..80e946e053 --- /dev/null +++ b/utils/cleanNonProdForms.test.js @@ -0,0 +1,72 @@ +const fs = require("fs"); +const path = require("path"); +const { + cleanNonProdForms, + TARGET_DIR, + PROD_FORMS, +} = require("./cleanNonProdForms"); + +jest.mock("fs"); + +describe("cleanNonProdForms", () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + test("deletes non-production JSON files and keeps prod ones", () => { + const mockFiles = [ + "ReportAnOutbreak.json", // keep + "close-contact-feedback.json", // keep + "dev-test.json", // delete + "example.json", // delete + "notes.txt", // ignore (not json) + ]; + + fs.readdirSync.mockReturnValue(mockFiles); + + const unlinkMock = fs.unlinkSync.mockImplementation(() => {}); + + cleanNonProdForms(); + + // Expect delete called only for non-prod .json files + expect(unlinkMock).toHaveBeenCalledTimes(2); + expect(unlinkMock).toHaveBeenCalledWith( + path.join(TARGET_DIR, "dev-test.json") + ); + expect(unlinkMock).toHaveBeenCalledWith( + path.join(TARGET_DIR, "example.json") + ); + + // Verify prod files were NOT deleted + expect(unlinkMock).not.toHaveBeenCalledWith( + path.join(TARGET_DIR, "ReportAnOutbreak.json") + ); + expect(unlinkMock).not.toHaveBeenCalledWith( + path.join(TARGET_DIR, "close-contact-feedback.json") + ); + }); + + test("handles directory read error gracefully", () => { + const mockError = new Error("read error"); + + fs.readdirSync.mockImplementation(() => { + throw mockError; + }); + + const consoleSpy = jest + .spyOn(console, "error") + .mockImplementation(() => {}); + const mockExit = jest.spyOn(process, "exit").mockImplementation(() => {}); + + cleanNonProdForms(); + + expect(consoleSpy).toHaveBeenCalledWith( + `[ERROR] Could not read directory: ${mockError.message}` + ); + + expect(mockExit).toHaveBeenCalledWith(1); + + consoleSpy.mockRestore(); + mockExit.mockRestore(); + }); +}); diff --git a/yarn.lock b/yarn.lock index 31147eb098..0707c529b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -29,6 +29,23 @@ __metadata: languageName: node linkType: hard +"@azure/msal-common@npm:16.8.0": + version: 16.8.0 + resolution: "@azure/msal-common@npm:16.8.0" + checksum: 2b2044bd7d3658ebe4d49406e6429363522bf9803d92c99831443faa874747d092ad2a1086bf0ac0a0c796266484a6d81d98ad09ba105d534dd48028b15ea30a + languageName: node + linkType: hard + +"@azure/msal-node@npm:^5.2.1": + version: 5.2.4 + resolution: "@azure/msal-node@npm:5.2.4" + dependencies: + "@azure/msal-common": 16.8.0 + jsonwebtoken: ^9.0.0 + checksum: 5f10eee328dd7d4f4449bed6aaa7bc43ac698a2d57814527f06284f2d4a820819fff58cd5d7c90710967f59aef57b58ed9f01c856c5e7eb132a3268302e2dc9f + languageName: node + linkType: hard + "@babel/cli@npm:^7.23.3": version: 7.23.4 resolution: "@babel/cli@npm:7.23.4" @@ -1877,6 +1894,19 @@ __metadata: languageName: node linkType: hard +"@gerrit0/mini-shiki@npm:^3.23.0": + version: 3.23.0 + resolution: "@gerrit0/mini-shiki@npm:3.23.0" + dependencies: + "@shikijs/engine-oniguruma": ^3.23.0 + "@shikijs/langs": ^3.23.0 + "@shikijs/themes": ^3.23.0 + "@shikijs/types": ^3.23.0 + "@shikijs/vscode-textmate": ^10.0.2 + checksum: 197d54e0699f205ac9a7169bb3887c749bbc5d77a2bfc91ad4ace77ed6a1276feb281623713d2e6df5aed1946b1ff4cbacc1ed392d2a6d3e8abc8e381a75bb86 + languageName: node + linkType: hard + "@hapi/accept@npm:^5.0.1": version: 5.0.2 resolution: "@hapi/accept@npm:5.0.2" @@ -3667,61 +3697,164 @@ __metadata: languageName: node linkType: hard -"@prisma/client@npm:5.22.0": - version: 5.22.0 - resolution: "@prisma/client@npm:5.22.0" +"@prisma/client@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/client@npm:6.12.0" peerDependencies: prisma: "*" + typescript: ">=5.1.0" peerDependenciesMeta: prisma: optional: true - checksum: 2a4db1e631528644ad8e726f26fbbcd692fbf3483a872185797cc34ba2531d17288841d7fa753439da29937706d7cd515fa1fc06f01b9e375c2232e2943c169e + typescript: + optional: true + checksum: 3d6d9354b57872b58b97c01e3e90d1359d9dc47fd081f0db8ce81af0b3a1f5277678424c5a5a2f6a801ec0c87db3612da1e8be18913ee62ec54e6b4428eb6c96 + languageName: node + linkType: hard + +"@prisma/config@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/config@npm:6.12.0" + dependencies: + jiti: 2.4.2 + checksum: b06b8fb9f8f07e44dcba250e059551d0439c82b5c2957385d5132e9040e7e40e5bc7bc3620cc671092b880552ad6f7247ae76d8288851ab06c8d01bfba6c7dfc languageName: node linkType: hard -"@prisma/debug@npm:5.22.0": - version: 5.22.0 - resolution: "@prisma/debug@npm:5.22.0" - checksum: ee263d933c3ab92e93aee78771e5040a510316d96ce69c64cfd65d21e59646b9c5a047446ce7965651563d001150ef763485474bd43ca8a6544ab7ce604d2ffa +"@prisma/debug@npm:6.1.0": + version: 6.1.0 + resolution: "@prisma/debug@npm:6.1.0" + checksum: bf0ea217cae6c1cdbf1e90abe578cc104dd734741bad773c9a850a0b0e606982d46a0ebef7d77d0403b3a46a1745d498d40f5064a1c4697bccdc0de72fcaa763 languageName: node linkType: hard -"@prisma/engines-version@npm:5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2": - version: 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 - resolution: "@prisma/engines-version@npm:5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2" - checksum: 9ea0689474db5da01d14ec6b24b348c282ce7fc6874a15c7dc7910398a52ef44f67a10b24dee8e41386b4611bdbbc10679145cba5b092f7989cf0543bbf5b078 +"@prisma/debug@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/debug@npm:6.12.0" + checksum: eebf9aed967964f8187cc7b3df0205e25f99a2874163b09031a7283748f038d841a076809b1c593a01dc198d1736f562f11b06e66be01edbf1642a3a2f357174 languageName: node linkType: hard -"@prisma/engines@npm:5.22.0": - version: 5.22.0 - resolution: "@prisma/engines@npm:5.22.0" +"@prisma/engines-version@npm:6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959": + version: 6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959 + resolution: "@prisma/engines-version@npm:6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959" + checksum: d558cc390eb8ca1f07426bf06f67a6c8f9dc2ad15d4d49f613113cfd1355e9f389f89eb85807acdd031330824c80664247baefb2e280dff02a39d97e2172627c + languageName: node + linkType: hard + +"@prisma/engines-version@npm:6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc": + version: 6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc + resolution: "@prisma/engines-version@npm:6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc" + checksum: 108e213a2cc3f85cf11c74c8b17f16f89b36cfc1a2146f918c935da0b9f9f3b0b1c59cdb4edf30c81767182ab9de5730330105af25d8b9cb6eacf400be4f7dfd + languageName: node + linkType: hard + +"@prisma/engines@npm:6.1.0": + version: 6.1.0 + resolution: "@prisma/engines@npm:6.1.0" + dependencies: + "@prisma/debug": 6.1.0 + "@prisma/engines-version": 6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959 + "@prisma/fetch-engine": 6.1.0 + "@prisma/get-platform": 6.1.0 + checksum: 368e66a8ef8d045d0c88c09ae1e128a740bcb29e8111245137c24e4878e73a9342ec0b9a74dce6b5df8a5a3af618de681bd52e99c6406c5256ea5a64279ab623 + languageName: node + linkType: hard + +"@prisma/engines@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/engines@npm:6.12.0" dependencies: - "@prisma/debug": 5.22.0 - "@prisma/engines-version": 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 - "@prisma/fetch-engine": 5.22.0 - "@prisma/get-platform": 5.22.0 - checksum: b66d08f4291af401a1dc75f096bbd980383bf4334221e5dd6be67882a0a91661d994d4b80f94a683b13bbf9062412eb194263df2f7925d53d1e20bfc6c4ede73 + "@prisma/debug": 6.12.0 + "@prisma/engines-version": 6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc + "@prisma/fetch-engine": 6.12.0 + "@prisma/get-platform": 6.12.0 + checksum: ab52544ce07ca375f4dbda448952a9ae7a920f9aa0385a7a02a082a12392c20fa2a0e450951dd4255a9918ec92ef4acc87290993c3bb9fa2cd55c4600b6c8919 languageName: node linkType: hard -"@prisma/fetch-engine@npm:5.22.0": - version: 5.22.0 - resolution: "@prisma/fetch-engine@npm:5.22.0" +"@prisma/fetch-engine@npm:6.1.0": + version: 6.1.0 + resolution: "@prisma/fetch-engine@npm:6.1.0" + dependencies: + "@prisma/debug": 6.1.0 + "@prisma/engines-version": 6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959 + "@prisma/get-platform": 6.1.0 + checksum: e1f85b54cf99dca01f3303c1c4f0f7d62191a6b44c11dbd3fb4545217f277e268f1d8aa691d7449d7231d30937352212cc5ca78b8059d4ab71097d6b29c7091f + languageName: node + linkType: hard + +"@prisma/fetch-engine@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/fetch-engine@npm:6.12.0" + dependencies: + "@prisma/debug": 6.12.0 + "@prisma/engines-version": 6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc + "@prisma/get-platform": 6.12.0 + checksum: 16ebe12e4d9ae03defcc08fee43cc8f4cd29edf57032df1c88070576fb23dd99de3dbc10a6dea702c8e5ff24e57e99efc050a7c65821b1c1a4575eac64a19540 + languageName: node + linkType: hard + +"@prisma/get-platform@npm:6.1.0": + version: 6.1.0 + resolution: "@prisma/get-platform@npm:6.1.0" dependencies: - "@prisma/debug": 5.22.0 - "@prisma/engines-version": 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 - "@prisma/get-platform": 5.22.0 - checksum: d65def9fe4a86ef05041738d12cb730cc8b948379e11ac3e3fa2db08d5640a70467b623b4bb0d6d3f4da86c135f6c6da61867c1658eab430dd0e3939382d3a41 + "@prisma/debug": 6.1.0 + checksum: f849d7c71553d389352447e095a05094cfd4a4280f9479576c800def5ec182a33c33783ac5f2bb1e08d017dca7dab505da50cb3cdb9813b5ad7589b2561b5824 languageName: node linkType: hard -"@prisma/get-platform@npm:5.22.0": - version: 5.22.0 - resolution: "@prisma/get-platform@npm:5.22.0" +"@prisma/get-platform@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/get-platform@npm:6.12.0" dependencies: - "@prisma/debug": 5.22.0 - checksum: 6d1f47dc586560c3518dadcf1cccaa8d624d1268e5d74a12277cc6ecf7cb2f530ec34b8019faa2c22eb29243efe3733d3c9005ec36dc84cd766d2794fa7b0025 + "@prisma/debug": 6.12.0 + checksum: 64a9594088eb840fa10f3e42e3ef6428a136cb5736cb133824ce220216b5179352254e37e296568bf2afaa0db3eb8a600f120d9e91e08a1b18fb515474140112 + languageName: node + linkType: hard + +"@shikijs/engine-oniguruma@npm:^3.23.0": + version: 3.23.0 + resolution: "@shikijs/engine-oniguruma@npm:3.23.0" + dependencies: + "@shikijs/types": 3.23.0 + "@shikijs/vscode-textmate": ^10.0.2 + checksum: 5aa631ab41149241118262e28f2deb9d37c3384d32251ecef868cd71a03f5e6b85103c31ac331741ecb24734d20329487cba40a3af8bd22485b3f696770d6226 + languageName: node + linkType: hard + +"@shikijs/langs@npm:^3.23.0": + version: 3.23.0 + resolution: "@shikijs/langs@npm:3.23.0" + dependencies: + "@shikijs/types": 3.23.0 + checksum: 0b96f5c7c5760fad5f9be6250a9d2fcca4c9dc5f406c6c05bc620869b73467ab1bfd93e7c0ed7c0ad9d51e5b57238f73cfbcb5c6eb9ea064b4f38112dd490696 + languageName: node + linkType: hard + +"@shikijs/themes@npm:^3.23.0": + version: 3.23.0 + resolution: "@shikijs/themes@npm:3.23.0" + dependencies: + "@shikijs/types": 3.23.0 + checksum: 997ad314204386b59362c82004c43656af4d4190ee0811710f7bdce5b6387e30b449193fc6a3e0d1c72b0b09b1ec5a03d0aeb7edacb834bee133125edc2d714f + languageName: node + linkType: hard + +"@shikijs/types@npm:3.23.0, @shikijs/types@npm:^3.23.0": + version: 3.23.0 + resolution: "@shikijs/types@npm:3.23.0" + dependencies: + "@shikijs/vscode-textmate": ^10.0.2 + "@types/hast": ^3.0.4 + checksum: 261a2c0b815f640f89e8e312e3ed1044c8c693053ef2096966b5c682ff0fd0694099006e9b6c245971ada4bdb720f610ca393074f5e1ee74de6fc8b2b6f91ff2 + languageName: node + linkType: hard + +"@shikijs/vscode-textmate@npm:^10.0.2": + version: 10.0.2 + resolution: "@shikijs/vscode-textmate@npm:10.0.2" + checksum: e68f27a3dc1584d7414b8acafb9c177a2181eb0b06ef178d8609142f49d28d85fd10ab129affde40a45a7d9238997e457ce47931b3a3815980e2b98b2d26724c languageName: node linkType: hard @@ -4073,6 +4206,15 @@ __metadata: languageName: node linkType: hard +"@types/hast@npm:^3.0.4": + version: 3.0.4 + resolution: "@types/hast@npm:3.0.4" + dependencies: + "@types/unist": "*" + checksum: 7a973e8d16fcdf3936090fa2280f408fb2b6a4f13b42edeb5fbd614efe042b82eac68e298e556d50f6b4ad585a3a93c353e9c826feccdc77af59de8dd400d044 + languageName: node + linkType: hard + "@types/hoek@npm:^4.1.4": version: 4.1.7 resolution: "@types/hoek@npm:4.1.7" @@ -4401,6 +4543,13 @@ __metadata: languageName: node linkType: hard +"@types/unist@npm:*": + version: 3.0.3 + resolution: "@types/unist@npm:3.0.3" + checksum: 96e6453da9e075aaef1dc22482463898198acdc1eeb99b465e65e34303e2ec1e3b1ed4469a9118275ec284dc98019f63c3f5d49422f0e4ac707e5ab90fb3b71a + languageName: node + linkType: hard + "@types/url-parse@npm:^1.4.8": version: 1.4.11 resolution: "@types/url-parse@npm:1.4.11" @@ -4977,7 +5126,7 @@ __metadata: lcov-result-merger: ^3.1.0 lodash: ^4.17.21 mini-css-extract-plugin: ^0.11.2 - msw: ^1.3.2 + msw: ^1.3.5 nanoid: ^3.3.4 nodemon: ^2.0.20 nunjucks: ^3.2.3 @@ -4999,7 +5148,7 @@ __metadata: sinon: ^13.0.1 standard: 16.0.4 ts-node-dev: ^1.1.8 - typescript: 4.9.5 + typescript: ^5.x vision: 5.4.3 webpack: ^4.44.2 webpack-bundle-analyzer: ^4.3.0 @@ -5066,7 +5215,7 @@ __metadata: nunjucks: ^3.2.3 path: 0.12.7 ts-jest: ^29.1.1 - typescript: 4.9.5 + typescript: ^5.x wreck: 14.2.0 languageName: unknown linkType: soft @@ -5081,14 +5230,14 @@ __metadata: "@babel/eslint-plugin": ^7.22.10 "@babel/preset-env": ^7.23.3 "@babel/preset-typescript": ^7.23.3 - "@prisma/client": 5.22.0 + "@prisma/client": 6.12.0 "@types/node": ^20.4.6 babel-eslint: ^10.1.0 eslint: ^8.10.0 eslint-plugin-import: ^2.25.4 eslint-plugin-tsdoc: ^0.2.14 - prisma: 5.22.0 - typescript: 4.9.5 + prisma: 6.12.0 + typescript: ^5.x languageName: unknown linkType: soft @@ -5096,6 +5245,7 @@ __metadata: version: 0.0.0-use.local resolution: "@xgovformbuilder/runner@workspace:runner" dependencies: + "@azure/msal-node": ^5.2.1 "@babel/cli": ^7.23.3 "@babel/core": ^7.23.3 "@babel/eslint-parser": ^7.23.3 @@ -5176,13 +5326,13 @@ __metadata: nunjucks: ^3.2.3 pg-boss: ^10.1.3 pino: 8.15.1 - prisma: 5.22.0 + prisma: 6.12.0 resolve: ^1.19.0 sass: ^1.49.9 schmervice: ^1.6.0 sinon: ^13.0.1 tmp: ^0.2.1 - typescript: 4.9.5 + typescript: ^5.x url-parse: ^1.5.10 uuid: ^8.3.2 yar: 9.1.0 @@ -5220,9 +5370,9 @@ __metadata: jest-mock-extended: ^3.0.5 nodemon: ^3.0.1 pino: 8.15.1 - prisma: 5.22.0 + prisma: ^6.1.0 schmervice: ^1.6.0 - typescript: 4.9.5 + typescript: ^5.x languageName: unknown linkType: soft @@ -5552,13 +5702,6 @@ __metadata: languageName: node linkType: hard -"ansi-sequence-parser@npm:^1.1.0": - version: 1.1.1 - resolution: "ansi-sequence-parser@npm:1.1.1" - checksum: ead5b15c596e8e85ca02951a844366c6776769dcc9fd1bd3a0db11bb21364554822c6a439877fb599e7e1ffa0b5f039f1e5501423950457f3dcb2f480c30b188 - languageName: node - linkType: hard - "ansi-styles@npm:^3.2.0, ansi-styles@npm:^3.2.1": version: 3.2.1 resolution: "ansi-styles@npm:3.2.1" @@ -6311,6 +6454,13 @@ __metadata: languageName: node linkType: hard +"balanced-match@npm:^4.0.2": + version: 4.0.4 + resolution: "balanced-match@npm:4.0.4" + checksum: fb07bb66a0959c2843fc055838047e2a95ccebb837c519614afb067ebfdf2fa967ca8d712c35ced07f2cd26fc6f07964230b094891315ad74f11eba3d53178a0 + languageName: node + linkType: hard + "base64-js@npm:^1.0.2, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -6533,6 +6683,15 @@ __metadata: languageName: node linkType: hard +"brace-expansion@npm:^5.0.5": + version: 5.0.7 + resolution: "brace-expansion@npm:5.0.7" + dependencies: + balanced-match: ^4.0.2 + checksum: 5739c92d984dfb4b8460e46e52e2a75baa7364261f700f739e0925e9ce7414776d5eb0b10eb19bb10427c444c4114875e1ff1e829fe6a6c3fc490ca4294eb3a0 + languageName: node + linkType: hard + "braces@npm:2.3.1": version: 2.3.1 resolution: "braces@npm:2.3.1" @@ -6958,9 +7117,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001538, caniuse-lite@npm:^1.0.30001565": - version: 1.0.30001576 - resolution: "caniuse-lite@npm:1.0.30001576" - checksum: b8b332675fe703d5e57b02df5f100345f2a3796c537a42422f5bfc82d3256b8bad3f4e2788553656d2650006d13a4b5db99725e2a9462cc0c8035ba494ba1857 + version: 1.0.30001799 + resolution: "caniuse-lite@npm:1.0.30001799" + checksum: f2bc124c605b449bf0da14c6261dd13c7c808de3cd918c93ceb35b1bca9b3e69c1ff6dd7cdb73f0ce2b5c13e59e87b3eae85424980cf0ae5c3bedc692697809b languageName: node linkType: hard @@ -8624,8 +8783,8 @@ __metadata: lint-staged: ^10.4.2 magic-string: ^0.25.7 prettier: 2.1.2 - typedoc: ~0.23.17 - typescript: 4.9.5 + typedoc: ~0.28.x + typescript: ^5.x languageName: unknown linkType: soft @@ -9049,7 +9208,7 @@ __metadata: languageName: node linkType: hard -"entities@npm:^4.2.0, entities@npm:^4.4.0": +"entities@npm:^4.2.0, entities@npm:^4.4.0, entities@npm:^4.5.0": version: 4.5.0 resolution: "entities@npm:4.5.0" checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 @@ -14188,6 +14347,15 @@ __metadata: languageName: node linkType: hard +"jiti@npm:2.4.2": + version: 2.4.2 + resolution: "jiti@npm:2.4.2" + bin: + jiti: lib/jiti-cli.mjs + checksum: c6c30c7b6b293e9f26addfb332b63d964a9f143cdd2cf5e946dbe5143db89f7c1b50ad9223b77fb1f6ddb0b9c5ecef995fea024ecf7d2861d285d779cde66e1e + languageName: node + linkType: hard + "jju@npm:~1.4.0": version: 1.4.0 resolution: "jju@npm:1.4.0" @@ -14480,7 +14648,7 @@ __metadata: languageName: node linkType: hard -"jsonc-parser@npm:^3.0.0, jsonc-parser@npm:^3.2.0": +"jsonc-parser@npm:^3.0.0": version: 3.2.0 resolution: "jsonc-parser@npm:3.2.0" checksum: 946dd9a5f326b745aa326d48a7257e3f4a4b62c5e98ec8e49fa2bdd8d96cef7e6febf1399f5c7016114fd1f68a1c62c6138826d5d90bc650448e3cf0951c53c7 @@ -14732,6 +14900,15 @@ __metadata: languageName: node linkType: hard +"linkify-it@npm:^5.0.2": + version: 5.0.2 + resolution: "linkify-it@npm:5.0.2" + dependencies: + uc.micro: ^2.0.0 + checksum: 3ac965e7df2c8788dc5c4c3009aab745f0288dcbc8776ab5bf4317b106c7b7b84fd0f502565d81f9c07f61fa0f0a4150893a6af9d86c36af985aac115bb5c293 + languageName: node + linkType: hard + "lint-staged@npm:^10.4.2": version: 10.5.4 resolution: "lint-staged@npm:10.5.4" @@ -15212,12 +15389,19 @@ __metadata: languageName: node linkType: hard -"marked@npm:^4.2.12": - version: 4.3.0 - resolution: "marked@npm:4.3.0" +"markdown-it@npm:^14.1.1": + version: 14.3.0 + resolution: "markdown-it@npm:14.3.0" + dependencies: + argparse: ^2.0.1 + entities: ^4.5.0 + linkify-it: ^5.0.2 + mdurl: ^2.0.0 + punycode.js: ^2.3.1 + uc.micro: ^2.1.0 bin: - marked: bin/marked.js - checksum: 0db6817893952c3ec710eb9ceafb8468bf5ae38cb0f92b7b083baa13d70b19774674be04db5b817681fa7c5c6a088f61300815e4dd75a59696f4716ad69f6260 + markdown-it: bin/markdown-it.mjs + checksum: 738b14c8e34cade05e153bfcea4f3e669fa98e669e1373e505b6f2a384ce8146e25cc0449bd4675d4df52e12e46f85d5018a9f2fb3decee90fbb0aa526fb7383 languageName: node linkType: hard @@ -15249,6 +15433,13 @@ __metadata: languageName: node linkType: hard +"mdurl@npm:^2.0.0": + version: 2.0.0 + resolution: "mdurl@npm:2.0.0" + checksum: 880bc289ef668df0bb34c5b2b5aaa7b6ea755052108cdaf4a5e5968ad01cf27e74927334acc9ebcc50a8628b65272ae6b1fd51fae1330c130e261c0466e1a3b2 + languageName: node + linkType: hard + "media-typer@npm:0.3.0": version: 0.3.0 resolution: "media-typer@npm:0.3.0" @@ -15423,6 +15614,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^10.2.5": + version: 10.2.5 + resolution: "minimatch@npm:10.2.5" + dependencies: + brace-expansion: ^5.0.5 + checksum: 000423875fecbc7da1d74bf63c9081363a71291ef2588c376c45647ac004582cb5bc8cc09ef84420b26bfb490f4d0818d328e78569c6228e20d90271283f73ba + languageName: node + linkType: hard + "minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -15441,15 +15641,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^7.1.3": - version: 7.4.6 - resolution: "minimatch@npm:7.4.6" - dependencies: - brace-expansion: ^2.0.1 - checksum: 1a6c8d22618df9d2a88aabeef1de5622eb7b558e9f8010be791cb6b0fa6e102d39b11c28d75b855a1e377b12edc7db8ff12a99c20353441caa6a05e78deb5da9 - languageName: node - linkType: hard - "minimatch@npm:^9.0.1": version: 9.0.3 resolution: "minimatch@npm:9.0.3" @@ -15702,9 +15893,9 @@ __metadata: languageName: node linkType: hard -"msw@npm:^1.3.2": - version: 1.3.2 - resolution: "msw@npm:1.3.2" +"msw@npm:^1.3.5": + version: 1.3.5 + resolution: "msw@npm:1.3.5" dependencies: "@mswjs/cookies": ^0.2.2 "@mswjs/interceptors": ^0.17.10 @@ -15721,18 +15912,18 @@ __metadata: js-levenshtein: ^1.1.6 node-fetch: ^2.6.7 outvariant: ^1.4.0 - path-to-regexp: ^6.2.0 + path-to-regexp: ^6.3.0 strict-event-emitter: ^0.4.3 type-fest: ^2.19.0 yargs: ^17.3.1 peerDependencies: - typescript: ">= 4.4.x <= 5.2.x" + typescript: ">= 4.4.x" peerDependenciesMeta: typescript: optional: true bin: msw: cli/index.js - checksum: c2d4f7747f5806f0fd8d8cc3ca250ee1c2a7a6cd608de43f95bd072ba1fb13cdce0b52932ce9bf8f4a21b194d2815db535501e224ec8f7052593447fe1c0cb70 + checksum: 5e1d96d63c0ce07db94373b2315739abecb76dac32dcc6ce116c902ced3e61ef2b1c7ff87eed3627c93fe0588002717edab9c745ebdee29437ed0da4b3beb561 languageName: node linkType: hard @@ -16833,13 +17024,20 @@ __metadata: languageName: node linkType: hard -"path-to-regexp@npm:^6.2.0, path-to-regexp@npm:^6.2.1": +"path-to-regexp@npm:^6.2.1": version: 6.2.1 resolution: "path-to-regexp@npm:6.2.1" checksum: f0227af8284ea13300f4293ba111e3635142f976d4197f14d5ad1f124aebd9118783dd2e5f1fe16f7273743cc3dbeddfb7493f237bb27c10fdae07020cc9b698 languageName: node linkType: hard +"path-to-regexp@npm:^6.3.0": + version: 6.3.0 + resolution: "path-to-regexp@npm:6.3.0" + checksum: eca78602e6434a1b6799d511d375ec044e8d7e28f5a48aa5c28d57d8152fb52f3fc62fb1cfc5dfa2198e1f041c2a82ed14043d75740a2fe60e91b5089a153250 + languageName: node + linkType: hard + "path-type@npm:^3.0.0": version: 3.0.0 resolution: "path-type@npm:3.0.0" @@ -17440,18 +17638,35 @@ __metadata: languageName: node linkType: hard -"prisma@npm:5.22.0": - version: 5.22.0 - resolution: "prisma@npm:5.22.0" +"prisma@npm:6.12.0": + version: 6.12.0 + resolution: "prisma@npm:6.12.0" + dependencies: + "@prisma/config": 6.12.0 + "@prisma/engines": 6.12.0 + peerDependencies: + typescript: ">=5.1.0" + peerDependenciesMeta: + typescript: + optional: true + bin: + prisma: build/index.js + checksum: a8f18bfe55514048ceb2263467472032a0d0b8f2ac95510bc493c903efa57cf06dfa32bf5fdd16da360e11e86e207f1e24b258215a01efbcace4c45b39dd958c + languageName: node + linkType: hard + +"prisma@npm:^6.1.0": + version: 6.1.0 + resolution: "prisma@npm:6.1.0" dependencies: - "@prisma/engines": 5.22.0 + "@prisma/engines": 6.1.0 fsevents: 2.3.3 dependenciesMeta: fsevents: optional: true bin: prisma: build/index.js - checksum: 75a098b80f656f339ec5c89fe0c88e21b410c31eba77b84ad812cfc40cd78c1c26adcab757931427af26c10367d78773b97376747fd37feb99ee401115c85458 + checksum: 062a940927c60a4ffbdb48d36e301bffb5dcfaddcfa4d4b5ae2cb9854bbfd9c5c6fb3e74a0b7242a1d09c743c2ef817552a788c3ed73e85625373ca0eb6f606a languageName: node linkType: hard @@ -17657,6 +17872,13 @@ __metadata: languageName: node linkType: hard +"punycode.js@npm:^2.3.1": + version: 2.3.1 + resolution: "punycode.js@npm:2.3.1" + checksum: 13466d7ed5e8dacdab8c4cc03837e7dd14218a59a40eb14a837f1f53ca396e18ef2c4ee6d7766b8ed2fc391d6a3ac489eebf2de83b3596f5a54e86df4a251b72 + languageName: node + linkType: hard + "punycode@npm:1.3.2": version: 1.3.2 resolution: "punycode@npm:1.3.2" @@ -19176,18 +19398,6 @@ __metadata: languageName: node linkType: hard -"shiki@npm:^0.14.1": - version: 0.14.7 - resolution: "shiki@npm:0.14.7" - dependencies: - ansi-sequence-parser: ^1.1.0 - jsonc-parser: ^3.2.0 - vscode-oniguruma: ^1.7.0 - vscode-textmate: ^8.0.0 - checksum: 2aec3b3519df977c4391df9e1825cb496e9a4d7e11395f05a0da77e4fa2f7c3d9d6e6ee94029ac699533017f2b25637ee68f6d39f05f311535c2704d0329b520 - languageName: node - linkType: hard - "side-channel@npm:^1.0.4": version: 1.0.4 resolution: "side-channel@npm:1.0.4" @@ -20754,23 +20964,24 @@ __metadata: languageName: node linkType: hard -"typedoc@npm:~0.23.17": - version: 0.23.28 - resolution: "typedoc@npm:0.23.28" +"typedoc@npm:~0.28.x": + version: 0.28.19 + resolution: "typedoc@npm:0.28.19" dependencies: + "@gerrit0/mini-shiki": ^3.23.0 lunr: ^2.3.9 - marked: ^4.2.12 - minimatch: ^7.1.3 - shiki: ^0.14.1 + markdown-it: ^14.1.1 + minimatch: ^10.2.5 + yaml: ^2.8.3 peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x bin: typedoc: bin/typedoc - checksum: 40eb4e207aac1b734e09400cf03f543642cc7b11000895198dd5a0d3166315759ccf4ac30a2915153597c5c186101c72bac2f1fc12b428184a9274d3a0e44c5e + checksum: 2c5f8534567726d9ff89e5b9faeef08dbbc5411043b9f9237570ee7f21ebc8b45579ed0387845d1e95ab576b2bf421ceb0f56419a825f01664eec09b167d73d2 languageName: node linkType: hard -"typescript@npm:4.9.5, typescript@npm:^4.2.4": +"typescript@npm:^4.2.4": version: 4.9.5 resolution: "typescript@npm:4.9.5" bin: @@ -20780,7 +20991,17 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@4.9.5#~builtin, typescript@patch:typescript@^4.2.4#~builtin": +"typescript@npm:^5.x": + version: 5.9.3 + resolution: "typescript@npm:5.9.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 0d0ffb84f2cd072c3e164c79a2e5a1a1f4f168e84cb2882ff8967b92afe1def6c2a91f6838fb58b168428f9458c57a2ba06a6737711fdd87a256bbe83e9a217f + languageName: node + linkType: hard + +"typescript@patch:typescript@^4.2.4#~builtin": version: 4.9.5 resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=f456af" bin: @@ -20790,6 +21011,23 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@^5.x#~builtin": + version: 5.9.3 + resolution: "typescript@patch:typescript@npm%3A5.9.3#~builtin::version=5.9.3&hash=f456af" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 8bb8d86819ac86a498eada254cad7fb69c5f74778506c700c2a712daeaff21d3a6f51fd0d534fe16903cb010d1b74f89437a3d02d4d0ff5ca2ba9a4660de8497 + languageName: node + linkType: hard + +"uc.micro@npm:^2.0.0, uc.micro@npm:^2.1.0": + version: 2.1.0 + resolution: "uc.micro@npm:2.1.0" + checksum: 37197358242eb9afe367502d4638ac8c5838b78792ab218eafe48287b0ed28aaca268ec0392cc5729f6c90266744de32c06ae938549aee041fc93b0f9672d6b2 + languageName: node + linkType: hard + "uglify-js@npm:^3.1.4": version: 3.17.4 resolution: "uglify-js@npm:3.17.4" @@ -21352,20 +21590,6 @@ __metadata: languageName: node linkType: hard -"vscode-oniguruma@npm:^1.7.0": - version: 1.7.0 - resolution: "vscode-oniguruma@npm:1.7.0" - checksum: 53519d91d90593e6fb080260892e87d447e9b200c4964d766772b5053f5699066539d92100f77f1302c91e8fc5d9c772fbe40fe4c90f3d411a96d5a9b1e63f42 - languageName: node - linkType: hard - -"vscode-textmate@npm:^8.0.0": - version: 8.0.0 - resolution: "vscode-textmate@npm:8.0.0" - checksum: 127780dfea89559d70b8326df6ec344cfd701312dd7f3f591a718693812b7852c30b6715e3cfc8b3200a4e2515b4c96f0843c0eacc0a3020969b5de262c2a4bb - languageName: node - linkType: hard - "vscode-uri@npm:^3.0.3": version: 3.0.8 resolution: "vscode-uri@npm:3.0.8" @@ -22135,6 +22359,15 @@ __metadata: languageName: node linkType: hard +"yaml@npm:^2.8.3": + version: 2.9.0 + resolution: "yaml@npm:2.9.0" + bin: + yaml: bin.mjs + checksum: f0f74b349c126bb9acf649be1e7efaec5869b1567bdc047e43b176bcdd7730a9bc7ab8fc9c6b1c358e611fab0fe0a0d8933393f1af383a7dc0b4755a1d5f31f9 + languageName: node + linkType: hard + "yamlparser@npm:0.0.x": version: 0.0.2 resolution: "yamlparser@npm:0.0.2"