PageSourceSearch

https://moveoss.nl/content/themes/movenl/assets/js/register-DqpO63Cg.js

js moveoss.nl collected 2026-10-01 23:54:56 UTC 13,485 bytes, 19 lines download raw bytes

1import { i as authApiCall, d as settings, p as params } from './main-module-Dg7u5i1g.js';
2import { a as auth$1 } from './auth-BoPu1Kik.js';
3import { S as Swal } from './sweetalert2.esm.all-Cmp6ZwOu.js';
4import { l as loading, d as doneLoading } from './loading-CnaT4-R9.js';
5
6class authCall extends authApiCall{/**
7   * @param {FormData} formData
8   */async register(formData=new FormData()){return await this.postCall(`v1/web/auth/register`,formData);}}const auth=new authCall();
9
10const elements={page:document.querySelector('.js-register'),firstName:document.querySelector('.js-register .js-first-name'),lastName:document.querySelector('.js-register .js-last-name'),email:document.querySelector('.js-register .js-email'),gender:document.querySelectorAll('.js-register .js-gender'),password:document.querySelector('.js-register .js-password'),dateOfBirth:document.querySelector('.js-register .js-age'),country:document.querySelector('.js-register .js-country'),newsletter:document.querySelector('.js-register .js-newsletter'),privacy:document.querySelector('.js-register .js-privacy'),privacyDiv:document.querySelector('.js-register .js-privacy-div'),privacyParent:document.querySelector('.js-register .js-privacy-parent'),privacyParentDiv:document.querySelector('.js-register .js-privacy-parent-div'),parentInputs:document.querySelector('.js-register .js-parent-inputs'),parentFirstName:document.querySelector('.js-register .js-parent-first-name'),parentLastName:document.querySelector('.js-register .js-parent-last-name'),parentEmail:document.querySelector('.js-register .js-parent-email'),submitButton:document.querySelector('.js-register .js-submit'),registerText:document.querySelector('.js-register .js-register-text'),registerAfter:document.querySelector('.js-register .js-register-after'),resendButton:document.querySelector('.js-register .js-resend'),resendMessage:document.querySelector('.js-register .js-resend-message'),mailText:document.querySelector('.js-register .js-mail-text'),errors:{firstName:document.querySelector('.js-register .js-error[data-type="first_name"]'),lastName:document.querySelector('.js-register .js-error[data-type="last_name"]'),email:document.querySelector('.js-register .js-error[data-type="email"]'),password:document.querySelector('.js-register .js-error[data-type="password"]'),dateOfBirth:document.querySelector('.js-register .js-error[data-type="date_of_birth"]'),country:document.querySelector('.js-register .js-error[data-type="country"]'),newsletter:document.querySelector('.js-register .js-error[data-type="newsletter"]'),privacy:document.querySelector('.js-register .js-error[data-type="privacy"]'),privacyParent:document.querySelector('.js-register .js-error[data-type="privacy_parent"]'),parentFirstName:document.querySelector('.js-register .js-error[data-type="parent_first_name"]'),parentLastName:document.querySelector('.js-register .js-error[data-type="parent_last_name"]'),parentEmail:document.querySelector('.js-register .js-error[data-type="parent_email"]'),form:document.querySelector('.js-register .js-error[data-type="form"]')},text:{parentFirstName:document.querySelector('.js-register .js-parent-first-name-text'),parentLastName:document.querySelector('.js-register .js-parent-last-name-text'),firstName:document.querySelector('.js-register .js-first-name-text'),lastName:document.querySelector('.js-register .js-last-name-text')}};const defaultText={parentFirstName:'[Voornaam ouder/voogd]',parentLastName:'[Achternaam ouder/voogd]',firstName:'[Voornaam jongere]',lastName:'[Achternaam jongere]'};let userEmail=null;const AGE_LIMIT=17;// Eventlisteners
11elements.dateOfBirth.addEventListener('change',e=>handleAgeInput(e.target.value));elements.resendButton.addEventListener('click',async e=>{e.preventDefault();await resendVerification();});elements.firstName.addEventListener('input',e=>{elements.text.firstName.innerHTML=e.target.value.length>0?e.target.value:defaultText.firstName;});elements.lastName.addEventListener('input',e=>{elements.text.lastName.innerHTML=e.target.value.length>0?e.target.value:defaultText.lastName;});elements.parentFirstName.addEventListener('input',e=>{elements.text.parentFirstName.innerHTML=e.target.value.length>0?e.target.value:defaultText.parentFirstName;});elements.parentLastName.addEventListener('input',e=>{elements.text.parentLastName.innerHTML=e.target.value.length>0?e.target.value:defaultText.parentLastName;});elements.submitButton.addEventListener('click',e=>{e.preventDefault();register();});
11function init(){// If already logged in
12if(localStorage.getItem('api_token')){window.location.href='/profiel';}elements.text.parentLastName.innerHTML=defaultText.parentLastName;elements.text.parentFirstName.innerHTML=defaultText.parentFirstName;elements.text.firstName.innerHTML=defaultText.firstName;elements.text.lastName.innerHTML=defaultText.lastName;// Set default nationality to NL
13if(elements.country){elements.country.value='NL';}// Check for autofill params
14const queryString=window.location.search.substring(1);try{if(!queryString)return;let decoded='';if(queryString.includes('=')){const topLevelParams=params.getAll();if(topLevelParams.data){decoded=atob(topLevelParams.data);}else {decoded=atob(queryString);}}else {decoded=atob(queryString);}const autofillParams=new URLSearchParams(decoded);if(autofillParams.has('Firstname')){elements.firstName.value=autofillParams.get('Firstname');elements.firstName.dispatchEvent(new Event('input'));}if(autofillParams.has('Lastname')){elements.lastName.value=autofillParams.get('Lastname');elements.lastName.dispatchEvent(new Event('input'));}if(autofillParams.has('Email')){elements.email.value=autofillParams.get('Email');elements.email.readOnly=true;elements.email.classList.add('cursor-default');}if(autofillParams.has('Nationality')){elements.country.value=autofillParams.get('Nationality');}if(autofillParams.has('DOB')){elements.dateOfBirth.value=autofillParams.get('DOB');handleAgeInput(elements.dateOfBirth.value);}if(autofillParams.has('Gender')){const gender=autofillParams.get('Gender').toUpperCase();let genderValue='';if(gender==='M')genderValue='male';if(gender==='V'||gender==='F')genderValue='female';if(gender==='A'||gender==='O')genderValue='other';if(genderValue){const radio=Array.from(elements.gender).find(r=>r.value===genderValue);if(radio)radio.checked=true;}}if(autofillParams.has('Parent_Firstname')){elements.parentFirstName.value=autofillParams.get('Parent_Firstname');elements.parentFirstName.dispatchEvent(new Event('input'));}if(autofillParams.has('Parent_Lastname')){elements.parentLastName.value=autofillParams.get('Parent_Lastname');elements.parentLastName.dispatchEvent(new Event('input'));}if(autofillParams.has('Parent_Email')){elements.parentEmail.value=autofillParams.get('Parent_Email');elements.parentEmail.readOnly=true;elements.email.classList.add('cursor-default');}}catch(e){console.error('Failed to decode or parse registration parameters',e);}}// Form-data
15function getFormData(){var _Array$from$find,_elements$firstName,_elements$lastName,_elements$email,_elements$password,_elements$dateOfBirth,_elements$country,_elements$newsletter,_elements$privacy,_elements$privacyPare,_elements$parentFirst,_elements$parentLastN,_elements$parentEmail;const genderValue=((_Array$from$find=Array.from(elements.gender||[]).find(r=>r.checked))===null||_Array$from$find===void 0?void 0:_Array$from$find.value)||'';return {firstName:((_elements$firstName=elements.firstName)===null||_elements$firstName===void 0||(_elements$firstName=_elements$firstName.value)===null||_elements$firstName===void 0?void 0:_elements$firstName.trim())||'',lastName:((_elements$lastName=elements.lastName)===null||_elements$lastName===void 0||(_elements$lastName=_elements$lastName.value)===null||_elements$lastName===void 0?void 0:_elements$lastName.trim())||'',email:((_elements$email=elements.email)===null||_elements$email===void 0||(_elements$email=_elements$email.value)===null||_elements$email===void 0?void 0:_elements$email.trim())||'',gender:genderValue,password:((_elements$password=elements.password)===null||_elements$password===void 0?void 0:_elements$password.value)||'',dateOfBirth:((_elements$dateOfBirth=elements.dateOfBirth)===null||_elements$dateOfBirth===void 0?void 0:_elements$dateOfBirth.value)||'',country:((_elements$country=elements.country)===null||_elements$country===void 0?void 0:_elements$country.value)||'',newsletter:!!((_elements$newsletter=elements.newsletter)!==null&&_elements$newsletter!==void 0&&_elements$newsletter.checked),privacyAdult:!!((_elements$privacy=elements.privacy)!==null&&_elements$privacy!==void 0&&_elements$privacy.checked),privacyParent:!!((_elements$privacyPare=elements.privacyParent)!==null&&_elements$privacyPare!==void 0&&_elements$privacyPare.checked),parentFirstName:((_elements$parentFirst=elements.parentFirstName)===null||_elements$parentFirst===void 0||(_elements$parentFirst=_elements$parentFirst.value)===null||_elements$parentFirst===void 0?void 0:_elements$parentFirst.trim())||null,parentLastName:((_elements$parentLastN=elements.parentLastName)===null||_elements$parentLastN===void 0||(_elements$parentLastN=_elements$parentLastN.value)===null||_elements$parentLastN===void 0?void 0:_elements$parentLastN.trim())||null,parentEmail:((_elements$parentEmail=elements.parentEmail)===null||_elements$parentEmail===void 0||(_elements$parentEmail=_elements$parentEmail.value)===null||_elements$parentEmail===void 0?void 0:_elements$parentEmail.trim())||null};}function calculateAge(dob){const birth=new Date(dob);const today=new Date();let age=today.getFullYear()-birth.getFullYear();const m=today.getMonth()-birth.getMonth();if(m<0||m===0&&today.getDate()<birth.getDate())age--;return age;}function setInputError(input,errorMsgEl,msg){if(msg){input.classList.add('border-error');input.setAttribute('aria-invalid','true');
15if(errorMsgEl){errorMsgEl.textContent=msg;errorMsgEl.style.display='block';}}else {input.classList.remove('border-error');input.removeAttribute('aria-invalid');if(errorMsgEl)errorMsgEl.style.display='none';}}function displayErrors(errors){if(errors.email)setInputError(elements.email,elements.errors.email,errors.email);if(errors.password)setInputError(elements.password,elements.errors.password,errors.password);if(errors.date_of_birth)setInputError(elements.dateOfBirth,elements.errors.dateOfBirth,errors.date_of_birth);if(errors.first_name)setInputError(elements.firstName,elements.errors.firstName,errors.first_name);if(errors.last_name)setInputError(elements.lastName,elements.errors.lastName,errors.last_name);}function updateDisplay(email){elements.registerText.style.display='none';elements.registerAfter.style.display='block';elements.mailText.innerHTML=`We hebben een e-mail gestuurd naar: ${email}`;localStorage.setItem('newsletter','true');document.querySelector('.js-register').scrollIntoView({behavior:'smooth'});userEmail=email;}function checkAgeAndParentDetails(data){if(!data.dateOfBirth){return true;}const age=calculateAge(data.dateOfBirth);if(age<AGE_LIMIT){if(!data.parentFirstName||!data.parentLastName||!data.parentEmail){Swal.fire({icon:'error',text:'Vul de gegevens van de ouder/voogd in.'});return false;}}return true;}// Register functie
16async function register(){const form=document.querySelector('.js-form');const isValid=form.checkValidity();loading();if(!isValid){doneLoading();form.reportValidity();return;}const data=getFormData();const privacyAdultActive=!elements.privacyDiv.classList.contains('hidden');if(privacyAdultActive&&!data.privacyAdult){doneLoading();Swal.fire({text:'Je moet de algemene voorwaarden en het privacybeleid hebben gelezen en geaccepteerd.'});return;}else if(!privacyAdultActive&&!data.privacyParent){doneLoading();Swal.fire({text:'Je ouder/voogd moet akkoord gaan met de algemene voorwaarden en het privacybeleid.'});return;}if(!checkAgeAndParentDetails(data)){doneLoading();return;}try{const response=await auth.register({first_name:data.firstName,last_name:data.lastName,email:data.email,gender:data.gender,password:data.password,date_of_birth:data.dateOfBirth,country:data.country,newsletter:data.newsletter,terms:1,app:settings.moveSlug,parent_first_name:data.parentFirstName,parent_last_name:data.parentLastName,parent_email:data.parentEmail});if(!response.user){if(response.errors){displayErrors(response.errors);}else if(response.message){Swal.fire({text:response.message});}else {throw new Error();}}else if(response.user){if(data.newsletter)localStorage.setItem('newsletter','true');updateDisplay(response.user.email);}}catch(err){Swal.fire({text:'Er ging iets fout. Probeer het later nog eens of neem contact met ons op.'});}doneLoading();}// Resend-verification
17async function resendVerification(){loading();try{const response=await auth$1.resendEmail({email:userEmail,app:settings.moveSlug});if(response.user){elements.resendButton.disabled=true;elements.resendMessage.style.display='block';}else {Swal.fire({text:'Er ging iets fout. Probeer het later nog eens of neem contact met ons op.'});}}catch(err){console.error(err);}doneLoading();}function handleAgeInput(dob){const age=calculateAge(dob);if(age<AGE_LIMIT){elements.privacyDiv.classList.add('hidden');elements.privacyParentDiv.classList.remove('hidden');elements.parentInputs.classList.remove('hidden');}else {elements.privacyDiv.classList.remove('hidden');elements.privacyParentDiv.classList.add('hidden');elements.parentInputs.classList.add('hidden');}}init();
18
19export { resendVerification };

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.