1/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 2(function(Drupal,drupalSettings,once){function getPageReturnDestination(){return window.location.pathname+window.location.search+(window.location.hash||'');}function appendQueryParam(path,key,value){if(!path||!key||value===undefined||value===null||value==='')return path;try{var url=new URL(path,window.location.origin);url.searchParams.set(key,value);return url.pathname+url.search+url.hash;}catch(e){var separator=path.indexOf('?')>=0?'&':'?';return path+separator+encodeURIComponent(key)+'='+encodeURIComponent(value);}}function parkBrowseHashFromDestination(destination){if(!destination)return destination;try{var url=new URL(destination,window.location.origin);if(url.hash&&url.hash.indexOf('/browse/')>=0){try{window.sessionStorage.setItem('iziRewardedAds:deferredDeepLink',url.hash);}catch(ePark){}url.hash='';return url.pathname+url.search;}}catch(e){}return destination;}function isModalWrapper(wrapper){return wrapper.hasAttribute('data-izi-smart-auth-modal');}function shouldStayInModal(wrapper){var settings=drupalSettings.iziSmartAuth||{};return isModalWrapper(wrapper)&&settings.modalMode===true;}function handleAuthSuccess(wrapper,result){if(result&&result.status==='confirmation_required')return false;if(shouldStayInModal(wrapper)){document.dispatchEvent(new CustomEvent('iziSmartAuthModalSuccess',{detail:result||{}}));return true;}if(result&&result.redirect_url){window.location.assign(result.redirect_url);return true;}return false;}function postJson(url,payload){return fetch(url,{method:'POST',headers:{'Content-Type':'application/json','X-Requested-With':'XMLHttpRequest'},body:JSON.stringify(payload)}).then(function(response){var contentType=response.headers.get('content-type')||'';if(contentType.indexOf('application/json')!==-1)return response.json();return response.text().then(function(){if(response.redirected&&response.url)return {success:true,redirect_url:response.url};throw new Error('Unexpected non-JSON response.');});});}Drupal.behaviors.iziSmartAuth={attach:function(context){once('izi-smart-auth','[data-izi-smart-auth]',context).forEach(function(wrapper){var endpoints=drupalSettings.iziSmartAuth||{};var state={email:'',password:'',destination:wrapper.getAttribute('data-destination')||''};var localTasks=document.querySelector('.block-local-tasks-block');if(localTasks)localTasks.style.display='none';var primaryTabs=document.querySelector('.tabs.primary');if(primaryTabs)primaryTabs.style.display='none';var path=window.location.pathname||'';var isLegacyAuth=/\/user\/(register|password)\/?$/.test(path);if(isLegacyAuth){var newPath=path.replace(/\/user\/(register|password)\/?$/,'/user/login');window.location.replace(newPath+(window.location.search||''));return;}var forms={email:wrapper.querySelector('[data-step="email"]'),signin:wrapper.querySelector('[data-step="signin"]'),signup:wrapper.querySelector('[data-step="signup"]'),confirm:wrapper.querySelector('[data-step="confirm"]'),reset:wrapper.querySelector('[data-step="reset"]')};var message=wrapper.querySelector('[data-auth-message]');var emailTargets=wrapper.querySelectorAll('[data-auth-email]');var forgotPasswordButton=wrapper.querySelector('[data-action="forgot-password"]');var strengthIndicators=wrapper.querySelectorAll('[data-password-strength-for]');var socialDivider=wrapper.querySelector('.izi-smart-auth__divider');var socialBlock=wrapper.querySelector('.izi-smart-auth__socials');function setStep(step){Object.keys(forms).forEach(function(key){if(forms[key])forms[key].hidden=key!==step;});emailTargets.forEach(function(target){target.textContent=state.email;});var showSocial=step==='email';if(socialDivider)socialDivider.hidden=!showSocial;if(socialBlock)socialBlock.hidden=!showSocial;}function setMessage(text,type){if(!text){message.hidden=true;message.textContent='';message.classList.remove('is-error','is-success');return;}message.hidden=false;message.textContent=text;message.classList.remove('is-error','is-success');message.classList.add(type==='success'?'is-success':'is-error');}
2function setPending(form,pending){Array.prototype.forEach.call(form.querySelectorAll('button'),function(button){button.disabled=pending;});}function evaluatePasswordStrength(password){var hasUpper=/[A-Z]/.test(password);var hasLower=/[a-z]/.test(password);var hasDigit=/[0-9]/.test(password);var hasSymbol=/[^A-Za-z0-9]/.test(password);var score=0;if(password.length>=8)score+=1;if(hasUpper)score+=1;if(hasLower)score+=1;if(hasDigit)score+=1;if(hasSymbol)score+=1;if(!password)return {label:'',cls:''};if(score<=2)return {label:Drupal.t('Weak password'),cls:'is-weak'};if(score<=4)return {label:Drupal.t('Medium password'),cls:'is-medium'};return {label:Drupal.t('Strong password'),cls:'is-strong'};}function bindStrengthIndicator(inputId){var input=wrapper.querySelector('#'+inputId);var indicator=wrapper.querySelector('[data-password-strength-for="'+inputId+'"]');if(!input||!indicator)return;var update=function(){var result=evaluatePasswordStrength(input.value||'');indicator.textContent=result.label;indicator.classList.remove('is-weak','is-medium','is-strong');if(result.cls)indicator.classList.add(result.cls);};input.addEventListener('input',update);update();}wrapper.querySelectorAll('[data-action="back"]').forEach(function(button){button.addEventListener('click',function(){setMessage('','');if(!forms.reset.hidden){setStep('signin');return;}if(!forms.confirm.hidden){setStep('signup');return;}setStep('email');});});if(forgotPasswordButton)forgotPasswordButton.addEventListener('click',function(){setPending(forms.signin,true);setMessage('','');postJson(endpoints.forgotPasswordUrl,{email:state.email}).then(function(result){if(!result.success){setMessage(result.message||Drupal.t('Unable to start password reset.'),'error');return;}setMessage(result.message||Drupal.t('Please check your email for the reset code.'),'success');setStep('reset');}).catch(function(){setMessage(Drupal.t('Something went wrong. Please try again.'),'error');}).finally(function(){setPending(forms.signin,false);});});bindStrengthIndicator('izi-smart-auth-signup-password');bindStrengthIndicator('izi-smart-auth-reset-password');var googleLink=wrapper.querySelector('#google-login-link');if(googleLink)googleLink.addEventListener('click',function(event){event.preventDefault();var openidForm=wrapper.querySelector('#openid-connect-login-form');var destination=state.destination||wrapper.getAttribute('data-destination')||getPageReturnDestination();var resume=wrapper.getAttribute('data-izi-auth-resume')||'';if(resume==='tour_purchase'||resume==='purchase'||resume==='premium'||resume==='gate'||resume==='creator_adfree'||resume==='creator_adfree_list')destination=parkBrowseHashFromDestination(destination);if(resume==='tour_purchase')destination=appendQueryParam(destination,'izi_tour_purchase_resume','1');else if(resume==='purchase')destination=appendQueryParam(destination,'izi_rewarded_resume','purchase');else if(resume==='creator_adfree')destination=appendQueryParam(destination,'izi_creator_adfree_resume','subscribe');else if(resume==='creator_adfree_list')destination=appendQueryParam(destination,'izi_creator_adfree_resume','list');else{if(resume==='premium'||resume==='gate')destination=appendQueryParam(destination,'izi_rewarded_resume',resume);}if(openidForm&&destination){var loginPath=openidForm.getAttribute('action')||'/user/login';try{var loginUrl=new URL(loginPath,window.location.origin);loginUrl.searchParams.set('destination',destination);openidForm.setAttribute('action',loginUrl.pathname+loginUrl.search);}catch(e){openidForm.setAttribute('action','/user/login?destination='+encodeURIComponent(destination));}}var googleSubmit=wrapper.querySelector('#edit-openid-connect-client-google-login');if(googleSubmit)googleSubmit.click();});var appleLink=wrapper.querySelector('.apple-login-link');if(appleLink)appleLink.addEventListener('click',function(event){var resume=wrapper.getAttribute('data-izi-auth-resume')||'';var href=appleLink.getAttribute('href')||'';if(!href||!resume)return;var destination=state.destination||wrapper.getAttribute('data-destination')||getPageReturnDestination();if(resume==='tour_purchase'||resume==='purchase'||resume==='premium'||resume==='gate'||resume==='creator_adfree'||resume==='creator_adfree_list')destination=parkBrowseHashFromDestination(destination);if(resume==='tour_purchase')destination=appendQueryParam(destination,'izi_tour_purchase_resume','1');else if(resume==='purchase')destination=appendQueryParam(destination,'izi_rewarded_resume','purchase');else if(resume==='creator_adfree')destination=appendQueryParam(destination,'izi_creator_adfree_resume','subscribe');else if(resume==='creator_adfree_list')destination=appendQueryParam(destination,'izi_creator_adfree_resume','list');else if(resume==='premium'||resume==='gate')destination=appendQueryParam(destination,'izi_rewarded_resume',resume);else return;event.preventDefault();try{var appleUrl=new URL(href,window.location.origin);appleUrl.searchParams.set('destination',destination);window.location.assign(appleUrl.toString());}catch(eApple){window.location.assign(href);}});forms.email.addEventListener('submit',function(event){event.preventDefault();setPending(forms.email,true);setMessage('','');state.email=forms.email.querySelector('[name="email"]').value.trim().toLowerCase();
2postJson(endpoints.checkEmailUrl,{email:state.email}).then(function(result){if(!result.success){setMessage(result.message||Drupal.t('Unable to continue.'),'error');return;}setStep(result.exists?'signin':'signup');}).catch(function(){setMessage(Drupal.t('Something went wrong. Please try again.'),'error');}).finally(function(){setPending(forms.email,false);});});forms.signin.addEventListener('submit',function(event){event.preventDefault();setPending(forms.signin,true);setMessage('','');postJson(endpoints.signInUrl,{email:state.email,password:forms.signin.querySelector('[name="password"]').value,destination:state.destination}).then(function(result){if(result.success&&handleAuthSuccess(wrapper,result))return;if(result.status==='confirmation_required'){state.password=forms.signin.querySelector('[name="password"]').value;setMessage(result.message||Drupal.t('Please confirm your account.'),'success');setStep('confirm');return;}setMessage(result.message||Drupal.t('Unable to sign in.'),'error');}).catch(function(){setMessage(Drupal.t('Something went wrong. Please try again.'),'error');}).finally(function(){setPending(forms.signin,false);});});forms.signup.addEventListener('submit',function(event){event.preventDefault();setPending(forms.signup,true);setMessage('','');state.password=forms.signup.querySelector('[name="password"]').value;postJson(endpoints.signUpUrl,{email:state.email,password:state.password,destination:state.destination}).then(function(result){if(result.success&&result.status==='confirmation_required'){setMessage(result.message||Drupal.t('Please check your email for the confirmation code.'),'success');setStep('confirm');return;}if(result.success&&handleAuthSuccess(wrapper,result))return;setMessage(result.message||Drupal.t('Unable to create account.'),'error');}).catch(function(){setMessage(Drupal.t('Something went wrong. Please try again.'),'error');}).finally(function(){setPending(forms.signup,false);});});forms.confirm.addEventListener('submit',function(event){event.preventDefault();setPending(forms.confirm,true);setMessage('','');postJson(endpoints.confirmUrl,{email:state.email,password:state.password,confirmation_code:forms.confirm.querySelector('[name="confirmation_code"]').value,destination:state.destination}).then(function(result){if(result.success&&handleAuthSuccess(wrapper,result))return;setMessage(result.message||Drupal.t('Unable to confirm account.'),'error');}).catch(function(){setMessage(Drupal.t('Something went wrong. Please try again.'),'error');}).finally(function(){setPending(forms.confirm,false);});});forms.reset.addEventListener('submit',function(event){event.preventDefault();setPending(forms.reset,true);setMessage('','');state.password=forms.reset.querySelector('[name="password"]').value;postJson(endpoints.resetPasswordUrl,{email:state.email,confirmation_code:forms.reset.querySelector('[name="confirmation_code"]').value,password:state.password,destination:state.destination}).then(function(result){if(result.success&&handleAuthSuccess(wrapper,result))return;setMessage(result.message||Drupal.t('Unable to reset password.'),'error');}).catch(function(){setMessage(Drupal.t('Something went wrong. Please try again.'),'error');}).finally(function(){setPending(forms.reset,false);});});setStep('email');});}};})(Drupal,drupalSettings,once);;
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.