{
  "version": 3,
  "sources": ["/cdn/shop/t/17/assets/dc-lead-capture.js?x=13293"],
  "sourcesContent": ["/* DentalCanvas: no form goes nowhere.\n   1) Every Shopify form (form_type customer or contact) also sends a copy to the GHL inbound webhook\n      (workflow \"DC Website - Shopify forms to GHL\": create contact, tag dc-lead + dc-site-form, alert Mustafa).\n      sendBeacon survives the page navigating away on submit; the Shopify submit itself is untouched.\n   2) window.dcLead(kind) publishes the custom pixel event dc_lead, which the \"Meta main ad account\" custom pixel\n      forwards to Meta as Lead. Pixels run in Shopify's sandbox, so window.fbq does not exist on the page: use this.\n      It fires after a successful Shopify submit (?customer_posted / ?contact_posted) and on the freebie thanks pages. */\n(function () {\n  'use strict';\n  if (window.dcLead) return;\n  var HOOK = 'https://services.leadconnectorhq.com/hooks/yEmskY9TGLpPuO59Avbf/webhook-trigger/443190c5-ba41-49fa-a01d-feaf5ff8f21f';\n\n  function sget(k) { try { return window.sessionStorage.getItem(k); } catch (e) { return null; } }\n  function sset(k, v) { try { if (v == null) window.sessionStorage.removeItem(k); else window.sessionStorage.setItem(k, v); } catch (e) {} }\n  function lget(k) { try { return window.localStorage.getItem(k); } catch (e) { return null; } }\n  function lset(k, v) { try { window.localStorage.setItem(k, v); } catch (e) {} }\n  /* Remember the ad on every page (dc-lx.js does this only on the launch pages), same keys and format. */\n  (function () {\n    var q; try { q = new URLSearchParams(window.location.search); } catch (e) { return; }\n    var c = (q.get('c') || '').replace(/[^A-Za-z0-9_-]/g, '').slice(0, 24), u = {}, any = false;\n    ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'].forEach(function (k) {\n      var v = (q.get(k) || '').replace(/[^A-Za-z0-9 _.:|+-]/g, '').slice(0, 100); if (v) { u[k] = v; any = true; }\n    });\n    if (c) { sset('dc_c', c); lset('dc_c', c); }\n    if (any || c) { var j = JSON.stringify(u); sset('dc_utm', j); lset('dc_utm', j); }\n  })();\n  function adCode() { return (sget('dc_c') || lget('dc_c') || '').replace(/[^A-Za-z0-9_-]/g, '').slice(0, 24); }\n  function utms() { try { return JSON.parse(sget('dc_utm') || lget('dc_utm') || '{}') || {}; } catch (e) { return {}; } }\n\n  /* Shopify.analytics can appear a moment after this script runs, so retry briefly. */\n  function publish(name, payload) {\n    var tries = 0;\n    (function go() {\n      try {\n        if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {\n          window.Shopify.analytics.publish(name, payload); return;\n        }\n      } catch (e) { return; }\n      if (++tries < 40) setTimeout(go, 250);\n    })();\n  }\n\n  /* One Lead per kind per page per session, so a refresh of a thanks page doesn't count twice. */\n  window.dcLead = function (kind, extra) {\n    kind = String(kind || 'lead').replace(/[^a-z0-9_-]/gi, '').slice(0, 40) || 'lead';\n    var key = 'dc_lead_fired:' + kind + ':' + window.location.pathname;\n    if (sget(key)) return;\n    sset(key, '1');\n    var p = { kind: kind, page: window.location.pathname };\n    var c = adCode(); if (c) p.code = c;\n    if (extra) for (var k in extra) if (Object.prototype.hasOwnProperty.call(extra, k)) p[k] = extra[k];\n    publish('dc_lead', p);\n  };\n\n  function kindOf(form) {\n    var id = form.id || '';\n    if (id === 'ContactFooter' || /newsletter/.test(form.className || '')) return 'newsletter';\n    if (id === 'of-form') return 'offer';\n    if (form.dataset && form.dataset.kind) return form.dataset.kind;\n    if (id === 'mk-form') return 'owner-application';\n    if (id === 'dc-email-form') return 'watch-email';\n    if (id === 'dc-demo-form') return 'watch-demo';\n    if (id === 'ContactForm') return /demo/.test(window.location.pathname) ? 'demo-request' : 'contact';\n    if (/QuickContact/.test(id)) return 'workflow-teardown';\n    var ft = form.querySelector('input[name=\"form_type\"]');\n    return ft ? ft.value : 'form';\n  }\n\n  var MAP = { email: 'email', name: 'full_name', phone: 'phone', practice: 'practice', 'practice name': 'practice',\n    role: 'role', 'your role': 'role', body: 'message', tags: 'shopify_tags',\n    'doctor name': 'doctor_name', 'doctor email': 'doctor_email', 'doctor mobile': 'doctor_phone', owner: 'owner_status' };\n\n  document.addEventListener('submit', function (e) {\n    var form = e.target;\n    if (!form || form.tagName !== 'FORM') return;\n    var ft = form.querySelector('input[name=\"form_type\"]');\n    if (!ft || (ft.value !== 'customer' && ft.value !== 'contact')) return;\n    if (typeof form.checkValidity === 'function' && !form.checkValidity()) return;\n\n    var kind = kindOf(form), d = { kind: kind, form: form.id || ft.value, form_type: ft.value,\n      page: window.location.pathname, page_title: document.title.slice(0, 120) }, extras = [];\n    Array.prototype.forEach.call(form.elements, function (el) {\n      if (!el.name || el.disabled || /^(form_type|utf8|return_to|commit|marketing_consent)$/.test(el.name)) return;\n      if ((el.type === 'checkbox' || el.type === 'radio') && !el.checked) return;\n      var v = String(el.value || '').trim().slice(0, 1000); if (!v) return;\n      var m = /^contact\\[(.+)\\]$/.exec(el.name), label = m ? m[1] : el.name, key = MAP[label.toLowerCase()];\n      if (key) d[key] = d[key] ? d[key] + ', ' + v : v; else extras.push(label + ': ' + v);\n    });\n    if (!d.email) return;\n    if (d.full_name) { var n = d.full_name.split(/\\s+/); d.first_name = n[0]; d.last_name = n.slice(1).join(' '); }\n    if (extras.length) d.fields = extras.join(' | ').slice(0, 2000);\n    var c = adCode(); if (c) d.ad_code = c;\n    var u = utms(); ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content'].forEach(function (k) { if (u[k]) d[k] = u[k]; });\n\n    var body = new URLSearchParams(); Object.keys(d).forEach(function (k) { body.append(k, d[k]); });\n    var sent = false;\n    try { sent = !!(navigator.sendBeacon && navigator.sendBeacon(HOOK, body)); } catch (err) {}\n    if (!sent) { try { fetch(HOOK, { method: 'POST', body: body, keepalive: true, mode: 'no-cors' }); } catch (err) {} }\n    sset('dc_lead_pending', kind);\n  }, false);\n\n  /* Send an extra lead (e.g. a doctor invited by a team member) straight to the GHL webhook. */\n  window.dcSendLead = function (d, hook) {\n    d = d || {}; if (!d.email) return false;\n    d.page = d.page || window.location.pathname;\n    if (d.full_name && !d.first_name) { var n = String(d.full_name).replace(/^dr\\.?\\s+/i, '').split(/\\s+/); d.first_name = n[0]; d.last_name = n.slice(1).join(' '); }\n    var c = adCode(); if (c) d.ad_code = c;\n    var u = utms(); ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content'].forEach(function (k) { if (u[k] && !d[k]) d[k] = u[k]; });\n    var body = new URLSearchParams(); Object.keys(d).forEach(function (k) { if (d[k] != null && d[k] !== '') body.append(k, String(d[k]).slice(0, 2000)); });\n    var url = hook || HOOK, sent = false; try { sent = !!(navigator.sendBeacon && navigator.sendBeacon(url, body)); } catch (e) {}\n    if (!sent) { try { fetch(url, { method: 'POST', body: body, keepalive: true, mode: 'no-cors' }); } catch (e) {} }\n    return true;\n  };\n\n  /* Back from a Shopify submit: count the Lead once. */\n  if (/[?&](customer|contact)_posted=true/.test(window.location.search)) {\n    var pending = sget('dc_lead_pending');\n    if (pending) { sset('dc_lead_pending', null); window.dcLead(pending); }\n  }\n})();\n"],
  "mappings": "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",
  "names": []
}
