PageSourceSearch

https://cdn0070.qrcodechimp.com/view/common/js/emailVerification.js?v=1789022947a_k6

js qrcodechimp.com collected 2026-09-24 08:42:57 UTC 22,724 bytes, 62 lines download raw bytes

1const EmailVerification={_verified_email_list:[],_email_from:"",_fetch_in_progress:!1,addOptionRendered:!1,countdownInterval:null,sectionRequireOTPVerification:["support_email","white_label_merchandise_setting"],listener:function(){var lastSearchTerm="";$(document).on("keyup",".select2-search__field",function(){lastSearchTerm=$(this).val()}),$(document).off("select2:select",".select_multiple_emails").on("select2:select",".select_multiple_emails",function(e){const selectElementID=$(this).attr("id"),emailSelectBox=$("#"+selectElementID),selectedOptionId=e.params.data.id,currentValues=(emailSelectBox.val()||[]).filter(v=>v!=="__add__"),selectedEmailsCount=currentValues.length,max_allowed_emails=EmailVerification.getMaxEmailLimit(selectElementID),supportEmail=selectElementID==="support_email";if(selectElementID==="emails"&&$(this).attr("data-selected",currentValues.join(",")||""),selectedOptionId==="__add__"){const cleanedValues=(emailSelectBox.val()||[]).filter(v=>v!=="__add__");emailSelectBox.val(cleanedValues).trigger("change"),EmailVerification._email_from=emailSelectBox.attr("data-email_from")||"",page=="folders"&&$("#save-folder-notifications-modal").modal("hide"),EmailVerification.showAddEmailPopup(lastSearchTerm).then(response2=>{if(!response2){EmailVerification.setTermsAndCondtionsData(supportEmail);return}const newEmail=response2.email;if(response2.data==1||response2.data==2){if(EmailVerification.addEmailToSelect(emailSelectBox,newEmail,currentValues,selectedEmailsCount,max_allowed_emails,selectedOptionId,supportEmail)){let successMsg=response2.data==1?getClaimFlowTxt("Email added Successfully"):getClaimFlowTxt("We’ve sent a verification link to this email. Once the recipient verifies it, they’ll start receiving notifications.");EmailVerification.showSuccessPopup(successMsg,newEmail,supportEmail)}return}newEmail&&(showCountDown(response2),verifyNewEmailPopup(!1,newEmail,"verify_email_select","send_support_code_btn",supportEmail,emailSelectBox).then(result=>{result&&EmailVerification.addEmailToSelect(emailSelectBox,newEmail,currentValues,selectedEmailsCount,max_allowed_emails,selectedOptionId,supportEmail)&&EmailVerification.showSuccessPopup(getClaimFlowTxt("Email Verified Successfully"),newEmail,supportEmail)}))}),lastSearchTerm="";return}max_allowed_emails!==-1&&max_allowed_emails<selectedEmailsCount&&EmailVerification.showLimitError(emailSelectBox,currentValues,selectedOptionId,supportEmail)}),$(document).on("click",".send_verification_link_many",function(e){let email_list=trim(document.querySelector('textarea[name="email_list"]').value);if(empty(email_list)){SwalPopup.showSingleButtonPopup({title:"Empty Data",text:"No emails to be added.",icon:"error"});return}EmailVerification.showEmailVerifyPopup(email_list)}),$(document).on("click",".resend_verification_link",function(e){e.preventDefault(),$.post("//"+__api_domain+"/user/services/api",{cmd:"sendEmailVerificationLinkById",email_verification_id:$(this).data("emver_id")},function(response2){let errorCode=extractDataFromArray(response2,["errorCode"],-1);errorCode==1?SwalPopup.showSingleButtonPopup({text:"A verification link was recently sent to this email ID. Please try again in a few minutes.",icon:"error",confirmButtonText:"Close"},result=>{}):errorCode==2?SwalPopup.showSingleButtonPopup({html:"This email address has reached the maximum verification attempt limit. Please contact support at [email protected] for assistance.",icon:"error",confirmButtonText:"Close"},result=>{}):SwalPopup.showSingleButtonPopup({title:"Success",text:"Email verification link sent successfully.",icon:"success",confirmButtonText:"OK"},result=>{result.isConfirmed&&location.reload()})})}),$(document).on("click",".delete_email",function(e){e.preventDefault(),Swal.fire({title:"Delete Email ID",icon:"warning",html:"Are you sure you want to delete this email ID?<br>Once deleted, it will no longer receive any notification emails.",showCancelButton:!0,confirmButtonText:"Delete",reverseButtons:!0}).then(result=>{result.isConfirmed&&$.post("//"+__api_domain+"/user/services/api",{cmd:"deleteEmailVerificationRecById",email_verification_id:$(this).data("emver_id")},function(response2){extractDataFromArray(response2,["data"],{})&&SwalPopup.showSingleButtonPopup({title:"Success",text:"Email ID deleted successfully.",icon:"success",confirmButtonText:"OK"},result2=>{result2.isConfirmed&&location.reload()})})})})}
1,setTermsAndCondtionsData:function(supportEmail,newEmail=""){if(supportEmail&&typeof ComponentLists!="undefined"){let data=ComponentLists.form._term_policy_store_data;ComponentLists.form._term_policy=data,ComponentLists.form.getTermsAndCondtions();let supportEmail2=Array.isArray(data.support_email)?data.support_email:[data.support_email];$(".swal_form input[name=support_email_label]").val(data.support_email_label),$(".swal_form input[name=accept_terms]").prop("checked",data.accept_terms),$(".swal_form select[name=support_email]").val(supportEmail2).trigger("change"),$(".swal_form input[name=terms_heading]").val(data.terms_heading),$(".swal_form input[name=terms_link]").val(data.terms_link),$(".swal_form textarea[name=terms_desc]").val(data.terms_desc),$(".swal_form input[name=terms_selected]").filter(`[value="${data.terms_selected}"]`).prop("checked",!0),$(".swal_form input[name=privacy_heading]").val(data.privacy_heading),$(".swal_form input[name=privacy_link]").val(data.privacy_link),$(".swal_form textarea[name=privacy_desc]").val(data.privacy_desc),$(".swal_form input[name=privacy_selected]").filter(`[value="${data.privacy_selected}"]`).prop("checked",!0)}},fetchAllEmails:function(checkEmailList=!0){return new Promise((resolve,reject)=>{if(this._fetch_in_progress){const checkInterval=setInterval(()=>{this._fetch_in_progress||(clearInterval(checkInterval),resolve())},100);return}if(checkEmailList&&this._verified_email_list.length>0){this._fetch_in_progress=!1,resolve(this._verified_email_list);return}this._fetch_in_progress=!0,$.get("//"+__api_domain+"/user/services/api",{cmd:"fetchAllEmails"},response2=>{empty(response2)||(this._verified_email_list=response2.data||[]),this._fetch_in_progress=!1,resolve(this._verified_email_list)}).fail(()=>{this._fetch_in_progress=!1,reject("Failed to fetch verified emails")})})},renderEmailOptions:function(selectedEmails,emailSelectElement){if(this._verified_email_list.length===0&&this.fetchAllEmails(()=>{this.renderEmailOptions(selectedEmails,emailSelectElement)}),typeof selectedEmails=="string"&&(selectedEmails=selectedEmails.split(",").map(e=>e.trim()).filter(e=>e)),!emailSelectElement||!emailSelectElement.length){console.warn("Select element not found");return}emailSelectElement.empty();const addedSet=new Set;[...selectedEmails,...this._verified_email_list].forEach(email=>{const trimmed=email.trim(),lower=trimmed.toLowerCase();trimmed&&!addedSet.has(lower)&&(emailSelectElement.append(new Option(trimmed,trimmed)),addedSet.add(lower))}),emailSelectElement.append(new Option(getClaimFlowTxt("+ Add New Email"),"__add__")),selectedEmails.length>0&&emailSelectElement.val(selectedEmails).trigger("change"),this.initEmailOptionsSelect2(emailSelectElement)},extractEmailsOption:function(selectElementID="",selectedEmails=[]){this.fetchAllEmails().then(()=>{if(selectElementID){const $select=$("#"+selectElementID);this.renderEmailOptions(selectedEmails,$select),this.initEmailOptionsSelect2($select);return}typeof QRPageComponents.components!="undefined"&&QRPageComponents.components.forEach((component,index)=>{if(component.component==="form"||component.component==="smart_review"){let selectId="emailSelect_"+index,$select=$("#"+selectId),email_list=extractDataFromArray(component,["form_emails"],[]);this.renderEmailOptions(email_list,$select),this.initEmailOptionsSelect2($select),selectId="approvalEmail_"+index,$select=$("#"+selectId),email_list=extractDataFromArray(component,["form_integration","landing_page","approval_emails"],[]),this.renderEmailOptions(email_list,$select),this.initEmailOptionsSelect2($select)}});const $emailSelect=$("#emails"),scanEmails=extractDataFromArray(__savedQrCodeParams,["page_setting","email_on_scan","emails"],[]);$emailSelect.length&&(this.renderEmailOptions(scanEmails,$emailSelect),this.initEmailOptionsSelect2($emailSelect))})},initEmailOptionsSelect2:function(emailSelectElem){emailSelectElem.select2({placeholder:getClaimFlowTxt("Type or Select Email"),closeOnSelect:!0,matcher:this.matchCustom,sorter:data=>data.sort((a,b)=>a.id==="__add__"?-1:b.id==="__add__"?1:0),templateSelection:e=>e.text||e.id,tags:!0,language:{noResults:function(){return getClaimFlowTxt("+ Add New Email")}},escapeMarkup:function(markup){return markup},createTag:function(params){return $.trim(params.term)===""?null:{id:"__add__",text:getClaimFlowTxt("+ Add New Email"),newTag:!0}},templateResult:function(data){return data.id==="__add__"?EmailVerification.addOptionRendered?null:(EmailVerification.addOptionRendered=!0,$('<span style="color: green;"> '+data.text+"</span>")):(EmailVerification.addOptionRendered=!1,data.text)}})},matchCustom:function(params,data){if($.trim(params.term)==="")return data;if(typeof data.text=="undefined")return null;if(data.text.indexOf(params.term)>-1){var modifiedData=$.extend({},data,!0);return modifiedData}
1return null},initializeEmailSelect:function($selectElement){if(!$selectElement||!$selectElement.length)return;const dataSelectedRaw=$selectElement.attr("data-selected");let selectedEmails=[];try{selectedEmails=empty(dataSelectedRaw)?"":JSON.parse(dataSelectedRaw)}catch(e){console.warn("Invalid JSON in data-selected:",$selectElement)}this.fetchAllEmails().then(()=>{this.renderEmailOptions(selectedEmails,$selectElement)}).catch(err=>{console.error("Failed to load verified emails:",err)})},showEmailVerifyPopup:function(emails2){const inputEmails=getCleanedEmailArray(emails2);if(extractDataFromArray(inputEmails,["invalid"],[]).length){SwalPopup.showSingleButtonPopup({title:"Error",text:"Invalid Email ID(s) entered. Please review and try again.",icon:"error",confirmButtonText:"OK"},result=>{});return}let unverifiedEmails=extractDataFromArray(inputEmails,["valid"],[]);if(unverifiedEmails.length>0){let data=[];unverifiedEmails.map(email=>{data.push({email,_from:"recipient"})}),$.post("//"+__api_domain+"/user/services/api",{cmd:"sendEmailVerificationLinkToMany",emails:data,_for:"recipient"},function(response2){let data2=extractDataFromArray(response2,["data"],{});Swal.fire({title:'<div class="mb-4">Email Verification Summary</div>',html:`
2                        <div style="max-height:600px; overflow-y:auto; text-align:left;">
3                            ${EmailVerification.buildEmailSectionsHtml(data2)}
4                        </div>
5                    `,width:600,confirmButtonText:"OK",customClass:{confirmButton:"swal-custom-close"}}).then(res=>{location.reload()})});return}else SwalPopup.showSingleButtonPopup({title:"Already Verified",text:"These email IDs are already verified.",icon:"success"})},getEmailVerifyHtml:function(unverifiedEmails){let validEmailRow="",is_disable=unverifiedEmails.length==0,error_msg=disable_cls="";is_disable&&(error_msg="No unverified emails present.",disable_cls="disabled"),unverifiedEmails.forEach(email=>{validEmailRow+='<div class="px-0 mb-1">'+extractDataFromArray(email,["email"],"")+"</div>"});var html=`
6         <div class="container sharingContainerN" style="text-align: left; margin:auto; margin-bottom: 20px; border: solid 1px var(--light-color); padding-top: 20px; border-radius: 16px;">
7            <div class="row">
8               <div class="col-md-12">
9                  <div class="mb-1">
10                     Please verify the following email ID(s) to receive notification alerts such as email on scans and form submissions.
11                  </div>
12                  <div class="mb-1">
13                     Click <span class="font-weight-bold">“Send Verification Email” </span>to send a secure email with the verification link to all unverified IDs.
14                  </div>
15               </div>
16            </div>
17            <div class="row">
18                <div class="col-md-12">
19                    <div class="limit_reached p-2 my-3">`+validEmailRow+`</div>
20                </div>
21            </div>
22         </div>
23         `;return html}
23,extractUnverifiedEmails:function(validEmails,verifiedEmails){const valid=Array.isArray(validEmails)?validEmails:[],verified=Array.isArray(verifiedEmails)?verifiedEmails:[],verifiedSet_local=new Set(verified.map(e=>e.toLowerCase()));return validEmails.filter(email=>!verifiedSet_local.has(email.toLowerCase())).map(email=>({email,_from:"recipient"}))},showAddEmailPopup:function(lastSearchTerm=""){return new Promise((resolve,reject)=>{let sectionRequireOTPVerification=EmailVerification.sectionRequireOTPVerification.includes(EmailVerification._email_from);Swal.fire({title:getClaimFlowTxt("Add New Email Address"),html:`
24                <div class="text-left">
25                <div class="mr-2 mb-2 font-weight-semibold">`+getClaimFlowTxt("Email Address")+`</div>
26                <div>
27                    <input type="email" class="form-control" id="va_email_id" value="`+lastSearchTerm+`">
28                </div>
29                <div>
30                    <span class="text-muted font-14 font-weight-normal">
31                    `+getClaimFlowTxt(sectionRequireOTPVerification?"An OTP will be sent to the new email address. It must be verified before the email is added.":"A verification link will be sent to this email. Notifications will only be delivered after email is verified.")+`
32                    </span>
33                </div>
34                </div>`,showCancelButton:!0,cancelButtonText:getClaimFlowTxt("Cancel"),confirmButtonText:getClaimFlowTxt("Add"),reverseButtons:!0,showLoaderOnConfirm:!0,preConfirm:async()=>{let email=$("#va_email_id").val();if(email=email.toLowerCase(),empty(email))return Swal.showValidationMessage(getClaimFlowTxt("Email cannot be empty!")),!1;if(!isValidEmailAddress(email))return Swal.showValidationMessage(getClaimFlowTxt("Email is not valid")),!1;if(!isEmpty(EmailVerification._email_from)&&sectionRequireOTPVerification){let success=await EmailVerification.sendEmailVerificationCode(email);return{email,data:success.data}}else{let success=await EmailVerification.triggerEmailVerificationLink(email);return{email,data:success.data}}}}).then(result=>{result.isConfirmed&&result.value?resolve(result.value):resolve(null)}).catch(err=>{reject(err)})})},sendEmailVerificationCode:function(email){return new Promise((resolve,reject)=>{$.post("//"+__api_domain+"/user/services/api",{cmd:"sendEmailVerificationCode",email,email_from:EmailVerification._email_from},function(response2){response2.errorCode>1?(Swal.showValidationMessage(getClaimFlowTxt(response2.errorMsg)),resolve(!1)):(Swal.clickConfirm(),resolve(response2))}).fail(()=>{Swal.showValidationMessage("Server error. Please try again."),reject("AJAX failed")})})},triggerEmailVerificationLink:function(email){return new Promise((resolve,reject)=>{$.post("//"+__api_domain+"/user/services/api",{cmd:"triggerEmailVerificationLink",email,email_from:EmailVerification._email_from},function(response2){response2.errorCode>0?(Swal.showValidationMessage(getClaimFlowTxt(response2.errorMsg)),resolve(!1)):(Swal.clickConfirm(),resolve(response2))}).fail(()=>{Swal.showValidationMessage("Server error. Please try again."),reject("AJAX failed")})})},getMaxEmailLimit:function(_from=""){let max_allowed_emails=-1,_v=parseInt(extractDataFromArray(user_info,["_v"],1)),user_plan=extractDataFromArray(user_info,["plan_info","plan"],"FR"),plan_info=extractDataFromArray(__plan_info,[user_plan],{});switch(_from){case"support_email":max_allowed_emails=1;break;case"emails":_v>2&&(max_allowed_emails=extractDataFromArray(plan_info,["EMAIL_COUNT_ON_SCAN"],0),_v>3&&user_plan=="FR"&&extractDataFromArray(__template_categories,[page,"email_on_scan_v2_limit_allowed"],!0)&&(max_allowed_emails=0));break;default:break}return max_allowed_emails},showLimitError:function(emailSelectBox,currentValues,selectedOptionId,supportEmail){const cleaned=currentValues.filter(v=>v!==selectedOptionId);emailSelectBox.val(cleaned).trigger("change");const msg=supportEmail?"You can add only one support email ID. Please remove the existing email to update.":null;supportEmail?SwalPopup.showSingleButtonPopup({title:"",icon:"error",text:getClaimFlowTxt(msg),confirmButtonText:getClaimFlowTxt("Close"),didClose
34:()=>{typeof ComponentLists!="undefined"&&(ComponentLists.form._term_policy_store_data.support_email=cleaned,ComponentLists.form.getTermsAndCondtions())}}):isSharedPage()?PlanPopup.showEmailScanUpgradePopupForSharedPage():PlanPopup.showEmailScanUpgradePopup()},addEmailToSelect:function(emailSelectBox,newEmail,currentValues,selectedEmailsCount,max_allowed_emails,selectedOptionId,supportEmail){if($(".select_multiple_emails").find(`option[value="${newEmail}"]`).length===0&&$(".select_multiple_emails").find("option:first").before(new Option(newEmail,newEmail)),max_allowed_emails===-1||selectedEmailsCount<max_allowed_emails){if(!currentValues.includes(newEmail)){let verified_emails=this._verified_email_list;this._verified_email_list=[newEmail,...verified_emails],emailSelectBox.val([...currentValues,newEmail]).trigger("change")}return!0}else return EmailVerification.showLimitError(emailSelectBox,currentValues,selectedOptionId,supportEmail),!1},showSuccessPopup:function(msg,newEmail,supportEmail){SwalPopup.showSingleButtonPopup({title:"",icon:"success",text:msg,confirmButtonText:getClaimFlowTxt("Close"),didClose:()=>{supportEmail?(typeof ComponentLists!="undefined"&&(ComponentLists.form._term_policy_store_data.support_email=[newEmail]),EmailVerification.setTermsAndCondtionsData(supportEmail,newEmail)):page=="folders"&&$("#save-folder-notifications-modal").modal("show")}})},buildEmailSectionsHtml:function(data){let sectionsHtml="";const sectionMap={link_sent_emails:{title:"Verification Links Sent",desc:"Verification link has been sent to these email IDs."},duplicate_request_emails:{title:"Sent Recently — Try Again Later",desc:"Verification links were sent to these email IDs a few minutes ago. You can resend again later."},verified_emails:{title:"Verified Emails",desc:"These email IDs are successfully verified."},max_limit_reached_emails:{title:"Verification Attempt Limit Reached",desc:"These email IDs reached verification attempt limit. Please contact support for assistance."},invalid_emails:{title:"Invalid Email IDs",desc:"These email IDs are not valid and cannot be verified"}};return Object.keys(sectionMap).forEach(key=>{let emails2=data[key]||[];emails2.length>0&&(sectionsHtml+=`<div class="email-section">
35                    <h4>${sectionMap[key].title}</h4>
36                    <p class="mb-0">${sectionMap[key].desc}</p>
37                    <div class="email-data-list">
38                        ${emails2.map(email=>`<div class="border-bottom py-2" style="color:var(--secondary-color)">${email}</div>`).join("")}
39                    </div>
40                </div>`)}),sectionsHtml||"<p>No email data available</p>"}},EmailVerificationStatus={_qrTemplateName:"",_templateId:"",_unverifiedEmails:[],getUnverifiedEmailsMap:function(){let unverifiedEmailsMap=[];return this._unverifiedEmails!=[]&&this._unverifiedEmails.forEach(email=>{unverifiedEmailsMap.push({email,_from:"bulk"})}),unverifiedEmailsMap},showPopup:function(selectedData,type="qr"){EmailVerificationStatus._qrTemplateName=extractDataFromArray(selectedData,["name"],[]),EmailVerificationStatus._templateId=extractDataFromArray(selectedData,["_id"],[]),$.post("//"+__api_domain+"/user/services/api",{cmd:"getUnverifiedEmails",id:EmailVerificationStatus._templateId,type},function(responseVal){response=parseResponseData(responseVal,1);let data=extractDataFromArray(response,["data"],{});if(data.emails.length>0){EmailVerificationStatus._unverifiedEmails=extractDataFromArray(data,["emails"],[]);var html=EmailVerificationStatus.getEmailVerifyHtml(),title="Resend Verification Link";if(html!=""){Swal.fire({title,html,width:700,showCancelButton:!0,showConfirmButton:!0,reverseButtons:!0,confirmButtonText:"Resend Verification Link",willOpen:function(){},preConfirm:function(){ShareQrCode.saveSharedDataInServer()}}).then(result=>{if(result.isConfirmed){const unverifiedEmailsMap=EmailVerificationStatus.getUnverifiedEmailsMap();let displayLabel={solution_name:EmailVerificationStatus._qrTemplateName};$.post("//"+__api_domain+"/user/services/api",{cmd:"sendEmailVerificationLinkToMany",emails:unverifiedEmailsMap,_for:"bulk",display_label:displayLabel},function(response2){let data2=extractDataFromArray(response2,["data"],{});Swal.fire({title:"Email Verification Summary",html:`
41                                            <div style="max-height:600px; overflow-y:auto; text-align:left;">
42                                                ${EmailVerification.buildEmailSectionsHtml(data2)}
43                                            </div>
44                                        `,width:600,confirmButtonText:"OK",customClass:{confirmButton:"swal-custom-close"}})})}});return}}else SwalPopup.showSingleButtonPopup({title:"Error",text:"No email ID records were found to resend verification link.",icon:"error"})})},getEmailVerifyHtml:function(data){let rowEmails="";emails=EmailVerificationStatus._unverifiedEmails;let is_disable=extractDataFromArray(data,["email_count"],0)>=3,error_msg=disable_cls="";is_disable&&(error_msg="You have reached max limit of send verification link, please contact support.",disable_cls="disabled"),emails.forEac
44h(email=>{rowEmails+='<div class="px-0 mb-1">'+email+"</div>"});var html=`
45            <div class="container sharingContainerN" style="text-align: left; margin:auto; margin-bottom: 20px; border: solid 1px var(--light-color); padding-top: 20px; border-radius: 16px;">
46                <div class="row">
47                    <div class="col-md-12">
48                        <div class="mb-1">
49                            Please verify the following email ID(s) to receive notification alerts such as email on scans and form submissions.
50                        </div>
51                        <div class="mb-1">
52                            Click <span class="font-weight-bold">Resend Verification Email </span>to send a secure email with the verification link to all unverified IDs.
53                        </div>
54                    </div>
55                </div>
56                <div class="row">
57                    <div class="col-md-12">
58                        <div class="limit_reached p-2 my-3">`+rowEmails+`</div>
59                    </div>
60                </div>
61            </div>
62        `;return html}};

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.