<div class="registration-sign-and-declaration registration_hide">
    <div class="title">
        <div class="registration-form-title">
            Please read the following statement and declaration:
        </div>
    </div>
    <div class="registration-error registration-server-error registration_hide" role="alert">
        <span class="registration-error-message">sitecore api error</span>
    </div>

    <div class="registration-terms-container">
        <p>
            Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
        </p>
        <p>
            labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </p>
        <div class="registration-checkbox-container1">
            <label class="checkbox checkbox--secondary">
                <span class="label">Yes</span>
                <input type="checkbox" name="faPolicy1">
                <span class="checkmark-container">
                    <span class="checkmark"></span>
                </span>
            </label>
            <label class="checkbox checkbox--secondary">
                <span class="label">No</span>
                <input type="checkbox" name="faPolicy1">
                <span class="checkmark-container">
                    <span class="checkmark"></span>
                </span>
            </label>
            <div class="registration-error registration-server-error registration_hide" role="alert">
                <span class="registration-error-message">sitecore api error</span>
            </div>
        </div>
        <p>
            Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
        </p>
        <p>
            labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </p>
        <div class="registration-checkbox-container2">
            <label class="checkbox checkbox--secondary">
                <span class="label">Yes</span>
                <input type="checkbox" name="faPolicy1">
                <span class="checkmark-container">
                    <span class="checkmark"></span>
                </span>
            </label>
            <label class="checkbox checkbox--secondary">
                <span class="label">No</span>
                <input type="checkbox" name="faPolicy1">
                <span class="checkmark-container">
                    <span class="checkmark"></span>
                </span>
            </label>
            <div class="registration-error registration-server-error registration_hide" role="alert">
                <span class="registration-error-message">sitecore api error</span>
            </div>
        </div>
    </div>
    <div class="registration-sign-and-declaration__next">
        <a href="/" class="cta cta--r-disabled ">
            <p>Next</p>
        </a>

    </div>
</div>

No notes defined.

{
  "title": {
    "copy": "Please read the following statement and declaration:"
  },
  "next": {
    "copy": "Next"
  },
  "para1": {
    "copy": " labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
  },
  "para2": {
    "copy": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam."
  },
  "checkbox1": {
    "copy": "Yes",
    "name": "faPolicy1"
  },
  "checkbox2": {
    "copy": "No",
    "name": "faPolicy1"
  },
  "checkbox3": {
    "copy": "Yes",
    "name": "faPolicy1"
  },
  "checkbox4": {
    "copy": "No",
    "name": "faPolicy1"
  }
}
  • Content:
    import {
      hideServerError,
      showServerError,
    } from '../../registration-server-error/registration-server-error';
    import {
      currentPage,
      nevigateToNext,
      onComponentVisible,
      showStep,
    } from '../../registrationUtility';
    import {
      POST,
      signAndDeclarationPath,
      signAndDeclarationPayload,
    } from '../../service';
    
    export default currentElement => {
      const containerCheckboxes1 = document.querySelectorAll(
        `.registration-checkbox-container1 input[type="checkbox"]`
      );
      const containerCheckboxes2 = document.querySelectorAll(
        '.registration-checkbox-container2 input[type="checkbox"]'
      );
    
      if (containerCheckboxes1.length >= 2) {
        containerCheckboxes1[0].id = 'yesCheckbox1';
        containerCheckboxes1[1].id = 'noCheckbox1';
      }
    
      if (containerCheckboxes2.length >= 2) {
        containerCheckboxes2[0].id = 'yesCheckbox2';
        containerCheckboxes2[1].id = 'noCheckbox2';
      }
    
      onComponentVisible(currentElement, () => {
        hideServerError(currentElement);
        currentPage.page = currentElement;
        showStep('07');
      });
    
      const yesCheckboxOne = document.querySelector(
        '.registration-checkbox-container1 input[id="yesCheckbox1"]'
      );
      // eslint-disable-next-line no-unused-vars
      const noCheckboxOne = document.querySelector(
        '.registration-checkbox-container1 input[id="noCheckbox1"]'
      );
      const yesCheckboxTwo = document.querySelector(
        '.registration-checkbox-container2 input[id="yesCheckbox2"]'
      );
      // eslint-disable-next-line no-unused-vars
      const noCheckboxTwo = document.querySelector(
        '.registration-checkbox-container2 input[id="noCheckbox2"]'
      );
    
      const applyCheckboxBehaviour = (containerSelector, nextButtonSelector) => {
        const checkboxes = document.querySelectorAll(
          `${containerSelector} input[type="checkbox"]`
        );
    
        const swapBtn = () => {
          const container1Checkboxes = document.querySelectorAll(
            `.registration-checkbox-container1 input[type="checkbox"]`
          );
          const container2Checkboxes = document.querySelectorAll(
            '.registration-checkbox-container2 input[type="checkbox"]'
          );
          const isAnyCheckedInContainer1 = Array.from(container1Checkboxes).some(
            checkbox => checkbox.checked
          );
          const isAnyCheckedInContainer2 = Array.from(container2Checkboxes).some(
            checkbox => checkbox.checked
          );
          const targetElement = document.querySelector(nextButtonSelector);
    
          if (targetElement) {
            if (isAnyCheckedInContainer1 && isAnyCheckedInContainer2) {
              targetElement.classList.add('cta--r-primary');
              targetElement.classList.remove('cta--r-disabled');
            } else {
              targetElement.classList.remove('cta--r-primary');
              targetElement.classList.add('cta--r-disabled');
            }
          }
        };
    
        checkboxes.forEach(checkbox => {
          checkbox.addEventListener('change', event => {
            if (event.target.checked) {
              checkboxes.forEach(cb => {
                if (cb !== event.target) {
                  // eslint-disable-next-line no-param-reassign
                  cb.checked = false;
                }
              });
            }
            swapBtn();
          });
        });
        swapBtn();
      };
    
      const nextBtn = currentElement.querySelector(
        '.registration-sign-and-declaration__next .cta'
      );
    
      if (nextBtn) {
        nextBtn.addEventListener(
          'click',
          async event => {
            event.preventDefault();
            if (nextBtn.classList.contains('cta--r-primary')) {
              const res = await POST(signAndDeclarationPath, {
                ...signAndDeclarationPayload,
                Convicted: yesCheckboxOne.checked,
                Banned: yesCheckboxTwo.checked,
              });
    
              if (res.success) {
                nevigateToNext(currentElement);
              } else {
                showServerError(currentElement, res.error);
              }
            }
          },
          false
        );
      }
    
      if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', () => {
          applyCheckboxBehaviour(
            '.registration-checkbox-container1',
            '.registration-sign-and-declaration__next .cta--r-primary, .registration-sign-and-declaration__next .cta--r-disabled'
          );
          applyCheckboxBehaviour(
            '.registration-checkbox-container2',
            '.registration-sign-and-declaration__next .cta--r-primary, .registration-sign-and-declaration__next .cta--r-disabled'
          );
        });
      } else {
        applyCheckboxBehaviour(
          '.registration-checkbox-container1',
          '.registration-sign-and-declaration__next .cta--r-primary, .registration-sign-and-declaration__next .cta--r-disabled'
        );
        applyCheckboxBehaviour(
          '.registration-checkbox-container2',
          '.registration-sign-and-declaration__next .cta--r-primary, .registration-sign-and-declaration__next .cta--r-disabled'
        );
      }
    };
    
  • URL: /components/raw/registration-sign-and-declaration/registration-sign-and-declaration.js
  • Filesystem Path: src/library/modules/registration/registration-self/registration-sign-and-declaration/registration-sign-and-declaration.js
  • Size: 4.8 KB
  • Content:
    .registration-sign-and-declaration {
      $cta-container-mt: 40px;
      $cta-gap: 16px;
      $body-mt: 24px;
    
      .registration-terms-container {
        margin-top: $body-mt;
      }
    
      &__next {
        margin-top: $cta-container-mt;
    
        .cta--r-secondary,
        .cta--r-primary {
          min-height: 44px;
          font-size: 16px;
        }
      }
    
      .para-container {
        height: 387px;
        background-color: #d9d9d91a;
        overflow-y: auto;
        border-radius: 2px;
        margin-top: 24px;
    
        p {
          font-size: 14px;
        }
      }
    
      .registration-terms-container p {
        margin-bottom: 24px;
      }
    
      .registration-checkbox-container {
        margin-top: 24px;
      }
    }
    
  • URL: /components/raw/registration-sign-and-declaration/registration-sign-and-declaration.scss
  • Filesystem Path: src/library/modules/registration/registration-self/registration-sign-and-declaration/registration-sign-and-declaration.scss
  • Size: 631 Bytes
<div class="registration-sign-and-declaration registration_hide">
  <div class="title">
    {{render '@registration-form-title' title}}
  </div>
  {{!-- adding error --}}
  {{render '@registration-server-error'}}

  {{#> @registration-terms-container}}
  <p>
    {{para2.copy}}
  </p>
  <p>
    {{para1.copy}}
  </p>
  <div class="registration-checkbox-container1">
    {{render '@checkbox--secondary' checkbox1 merge="true"}}
    {{render '@checkbox--secondary' checkbox2 merge="true"}}
    {{render '@registration-server-error'}}
  </div>
  <p>
    {{para2.copy}}
  </p>
  <p>
    {{para1.copy}}
  </p>
  <div class="registration-checkbox-container2">
    {{render '@checkbox--secondary' checkbox3 merge="true"}}
    {{render '@checkbox--secondary' checkbox4 merge="true"}}
    {{render '@registration-server-error'}}
  </div>
  {{/ @registration-terms-container}}
  <div class="registration-sign-and-declaration__next">
    {{render '@cta--r-disabled' next merge="true"}}
  </div>
</div>