1(function () { 2 "use strict"; 3 4 window.dataLayer = window.dataLayer || []; 5 6 function push(eventName, details) { 7 window.dataLayer.push(Object.assign({ 8 event: eventName, 9 page_path: window.location.pathname, 10 page_title: document.title 11 }, details || {})); 12 } 13 14 document.addEventListener("click", function (event) { 15 var link = event.target.closest("a"); 16 if (!link) return; 17 18 var href = link.getAttribute("href") || ""; 19 var label = (link.textContent || link.getAttribute("aria-label") || "").trim().slice(0, 100); 20 21 if (href.indexOf("wa.me/") !== -1) { 22 push("whatsapp_click", { link_text: label }); 23 } else if (href.indexOf("tel:") === 0) { 24 push("phone_click", { link_text: label }); 25 } else if (href.indexOf("mailto:") === 0 || href.indexOf("mail.google.com/mail") !== -1) { 26 push("email_click", { link_text: label }); 27 } else if (link.classList.contains("btn") || link.classList.contains("nav-cta")) { 28 push("consultation_cta_click", { link_text: label, link_url: href.slice(0, 180) }); 29 } 30 }); 31 32 document.addEventListener("focusin", function (event) { 33 var form = event.target.closest("form"); 34 if (!form || form.dataset.analyticsStarted === "true") return; 35 form.dataset.analyticsStarted = "true"; 36 push("lead_form_start", { 37 form_name: form.getAttribute("name") || form.querySelector('[name="form_source"]')?.value || "website_form" 38 }); 39 }); 40 41 document.addEventListener("submit", function (event) { 42 var form = event.target.closest("form"); 43 if (!form) return; 44 push("lead_form_submit", { 45 form_name: form.getAttribute("name") || form.querySelector('[name="form_source"]')?.value || "website_form" 46 }); 47 }); 48})();
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.