1const config=JSON.parse(document.getElementById('dotdigital-email-capture-config').textContent);const layoutsIdentifiers=config.layout_identifiers;const currentLayoutType=layoutsIdentifiers.hasOwnProperty(config.layout)?config.layout:'default';const postEmailCapture=async(url,email)=>{await fetch(url,{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded','X-Requested-With':'XMLHttpRequest'},body:`email=${encodeURIComponent(email)}&form_key=${encodeURIComponent(config.form_key)}`}).catch(error=>console.error('Error:',error));} 2const capture=async(element,layoutType)=>{if(!/^([+\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/.test(element.value)){return;} 3if(config.layout_postable.includes(layoutType)){await postEmailCapture(config.capture_url,element.value);} 4if(window.ddg&&typeof window.ddg.identify==='function'){window.ddg.identify({'email':element.value});}} 5const emailCapture=async(event)=>{for(const layoutType of[currentLayoutType,'default']){if(!layoutsIdentifiers[layoutType])continue;for(const field of layoutsIdentifiers[layoutType]){if(event.target.matches(field)){await capture(event.target,layoutType);return;}}}} 6document.addEventListener("blur",(event)=>emailCapture(event),{once:false,capture:true});
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.