{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/8j2Vdav77cdmSU0MsibL/XT1gMWFYqhFmfbxYr9Qb/siteMetadata.js"],
  "sourcesContent": ["// Generated by Framer (5b26096)\nexport default function metadata(params,activeLocale){return{customHTMLHeadEnd:'<!-- Upfunnels pixel -->\\n<script>\\n(function() {\\n  var ownerId = \"664650c624eafdb581d0bd77\";\\n  var urlParams = new URLSearchParams(window.location.search);\\n  var isPreview = urlParams.has(\"preview\") && urlParams.get(\"preview\") === \"true\";\\n\\n  if (!isPreview) {\\n    function getCookie(name) {\\n      var match = document.cookie.match(new RegExp(\"(^| )\" + name + \"=([^;]+)\"));\\n      if (match) return match[2];\\n    }\\n\\n    function isLeadRefField(name) {\\n      if (!name) return false;\\n      name = name.toLowerCase();\\n      if (name === \"leadref\") return true;\\n      if (name.includes(\"[\") && name.includes(\"]\")) {\\n        var fieldMatch = name.match(/[(.*?)]/);\\n        if (fieldMatch && fieldMatch[1]) {\\n          var fieldName = fieldMatch[1].toLowerCase();\\n          return fieldName === \"leadref\";\\n        }\\n      }\\n      return false;\\n    }\\n\\n    function findLeadRefInput(form) {\\n      var inputs = form.getElementsByTagName(\"input\");\\n      return Array.from(inputs).find((input) => isLeadRefField(input.name));\\n    }\\n\\n    function getOriginalLeadRefCase(form) {\\n      var inputs = form.getElementsByTagName(\"input\");\\n      for (var input of inputs) {\\n        if (isLeadRefField(input.name)) {\\n          if (input.name.includes(\"[\")) {\\n            var match = input.name.match(/[(.*?)]/);\\n            if (match) return match[1];\\n          }\\n          return input.name;\\n        }\\n      }\\n\\n      var groups = form.querySelectorAll(\\'[class*=\"field-group-\"]\\');\\n      for (var group of groups) {\\n        var classes = Array.from(group.classList);\\n        var leadRefClass = classes.find(cls =>\\n          cls.toLowerCase().includes(\"leadref\") ||\\n          cls.toLowerCase().includes(\"lead-ref\") ||\\n          cls.toLowerCase().includes(\"lead_ref\")\\n        );\\n        if (leadRefClass) {\\n          var match = leadRefClass.match(/field-group-(.*)/i);\\n          if (match) return match[1];\\n        }\\n      }\\n      return \"leadRef\";\\n    }\\n\\n    function getOrCreateLeadRefInput(form) {\\n      var existingLeadRef = findLeadRefInput(form);\\n      var cookieLeadRef = getCookie(\"leadRef\") || Math.random().toString(36).substring(2);\\n\\n      if (existingLeadRef) {\\n        existingLeadRef.value = cookieLeadRef;\\n        return existingLeadRef;\\n      } else {\\n        var isElementorForm = form.classList.contains(\"elementor-form\");\\n        var hiddenInput = document.createElement(\"input\");\\n        hiddenInput.type = \"hidden\";\\n        var leadRefName = getOriginalLeadRefCase(form);\\n\\n        if (isElementorForm) {\\n          hiddenInput.name = \"form_fields[\" + leadRefName + \"]\";\\n          hiddenInput.className = \"elementor-field elementor-size-sm elementor-field-textual\";\\n          hiddenInput.id = \"form-field-\" + leadRefName.toLowerCase();\\n        } else {\\n          hiddenInput.name = leadRefName;\\n        }\\n\\n        hiddenInput.value = cookieLeadRef;\\n\\n        if (isElementorForm) {\\n          var wrapper = document.createElement(\"div\");\\n          var fieldGroupClass = \"elementor-field-group-\" + leadRefName.toLowerCase();\\n          wrapper.className = \"elementor-field-type-hidden elementor-field-group elementor-column \" +\\n                            fieldGroupClass + \" elementor-col-100\";\\n          wrapper.appendChild(hiddenInput);\\n\\n          var submitWrapper = form.querySelector(\".e-form__buttons\") ||\\n                            form.querySelector(\".elementor-form-fields-wrapper\").lastElementChild;\\n\\n          if (submitWrapper) {\\n            submitWrapper.parentNode.insertBefore(wrapper, submitWrapper);\\n          } else {\\n            form.querySelector(\".elementor-form-fields-wrapper\").appendChild(wrapper);\\n          }\\n        } else {\\n          form.appendChild(hiddenInput);\\n        }\\n        return hiddenInput;\\n      }\\n    }\\n\\n    function setupFormObserver() {\\n      processAllForms();\\n      var observer = new MutationObserver(function(mutations) {\\n        mutations.forEach(function(mutation) {\\n          mutation.addedNodes.forEach(function(node) {\\n            if (node.nodeName === \"FORM\") {\\n              getOrCreateLeadRefInput(node);\\n            } else if (node.getElementsByTagName) {\\n              var forms = node.getElementsByTagName(\"form\");\\n              Array.from(forms).forEach(function(form) {\\n                getOrCreateLeadRefInput(form);\\n              });\\n            }\\n          });\\n        });\\n      });\\n\\n      observer.observe(document.body, {\\n        childList: true,\\n        subtree: true\\n      });\\n    }\\n\\n    function processAllForms() {\\n      var forms = document.getElementsByTagName(\"form\");\\n      Array.from(forms).forEach(function(form) {\\n        getOrCreateLeadRefInput(form);\\n      });\\n    }\\n\\n    var leadRef = getCookie(\"leadRef\") || Math.random().toString(36).substring(2);\\n    document.cookie = \"leadRef=\" + leadRef + \";path=/;\";\\n    var apiUrl = \"https://api.upfunnels.com\";\\n    var fullPath = window.location.href;\\n    var body = { leadRef: leadRef, fullPath: fullPath };\\n    var debugBody = { fullPath: fullPath };\\n    var utm_campaign = urlParams.get(\\'utm_campaign\\') || null;\\n    var utm_source = urlParams.get(\\'utm_source\\') || null;\\n    var utm_medium = urlParams.get(\\'utm_medium\\') || null;\\n\\n\\n    setInterval(function() {\\n      safeSendData(apiUrl + \"/leads/external/\" + leadRef, { fullPath: fullPath, utm_campaign: utm_campaign, utm_source: utm_source, utm_medium: utm_medium }, \"PATCH\")\\n      .catch(console.error);\\n    }, 3000);\\n\\n    function safeSendData(url, data, method = \"POST\") {\\n      const sanitizedUrl = url.replace(/:+$/, \"\");\\n      console.log(\"Attempting to send data to:\", sanitizedUrl);\\n      console.log(\"Data:\", data);\\n\\n      return fetch(sanitizedUrl, {\\n        method: method,\\n        body: JSON.stringify(data),\\n        headers: {\\n          \"Content-Type\": \"application/json\"\\n        },\\n        keepalive: true,\\n        mode: \"cors\"\\n      })\\n      .then((response) => {\\n        console.log(\"Response:\", response);\\n        return response.json();\\n      })\\n      .catch((error) => {\\n        console.error(\"Error in safeSendData:\", error);\\n        throw error;\\n      });\\n    }\\n\\n    safeSendData(apiUrl + \"/leads/external/\" + leadRef,  { fullPath: fullPath, utm_campaign: utm_campaign, utm_source: utm_source, utm_medium: utm_medium }, \"PATCH\");\\n    safeSendData(apiUrl + \"/page/debug\", debugBody);\\n    safeSendData(apiUrl + \"/visits/total\", body);\\n    safeSendData(apiUrl + \"/visits/unique\", body).catch(function(error) {\\n      if (error.response && error.response.status === 409) {\\n        console.log(error);\\n      }\\n    });\\n\\n    setInterval(function() {\\n      fetch(apiUrl + \"/visits/total\", {\\n        method: \"POST\",\\n        body: JSON.stringify(body),\\n        headers: { \"Content-Type\": \"application/json\" }\\n      }).catch(console.error);\\n    }, 2 * 60 * 60 * 1000);\\n\\n    if (document.readyState === \"loading\") {\\n      document.addEventListener(\"DOMContentLoaded\", setupFormObserver);\\n    } else {\\n      setupFormObserver();\\n    }\\n  }\\n})();\\n</script>\\n<!-- Upfunnels pixel -->',description:\"Made with \u2764\uFE0F by Inesgot\\xe1veis\",favicon:\"https://framerusercontent.com/assets/Y401gaG3pXnP98eAVYt2M1VYUU.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/muPutEygZlVuMxgLmpTLL9IzJ4.png\",title:\"Up Funnels\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "AACe,SAARA,EAA0BC,EAAOC,EAAa,CAAC,MAAM,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA4/N,YAAY,4CAAkC,QAAQ,sEAAsE,OAAO,0BAA0B,YAAY,sEAAsE,MAAM,YAAY,CAAE",
  "names": ["metadata", "params", "activeLocale"]
}
