{
  "version": 3,
  "sources": ["/cdn/shop/t/54/assets/mossriver-ga4-custom-events-v6.js?x=1788884659"],
  "sourcesContent": ["/* mossriver-ga4-custom-events-v2\n * Standard page views and commerce events stay owned by Shopify's Google app.\n * This bridge only makes custom experiment events deliverable to GA4.\n */\n(function () {\n  'use strict';\n  if (window.__mossriverGa4CustomEventsV2) return;\n  window.__mossriverGa4CustomEventsV2 = true;\n  window.dataLayer = window.dataLayer || [];\n  var active = false;\n\n  // 2026-10-30 INTERNAL-TRAFFIC MARKER.\n  // Visiting any page with ?mr_internal=1 stores a long-lived flag (localStorage\n  // + 2-year cookie). While set, every gtag event/config (ours AND Shopify's, since\n  // they share window.gtag) carries traffic_type=internal (GA4's built-in internal\n  // traffic parameter) and mr_internal=1. ?mr_internal=0 clears it.\n  var INTERNAL = (function () {\n    var on = false;\n    try {\n      var mark = new URLSearchParams(location.search).get('mr_internal');\n      if (mark === '1') {\n        try { localStorage.setItem('mr_internal', '1'); } catch (e1) {}\n        try { document.cookie = 'mr_internal=1; max-age=63072000; path=/; SameSite=Lax'; } catch (e2) {}\n      } else if (mark === '0') {\n        try { localStorage.removeItem('mr_internal'); } catch (e3) {}\n        try { document.cookie = 'mr_internal=; max-age=0; path=/; SameSite=Lax'; } catch (e4) {}\n        return false;\n      }\n      try { if (localStorage.getItem('mr_internal') === '1') on = true; } catch (e5) {}\n      if (!on && /(?:^|; )mr_internal=1(?:;|$)/.test(document.cookie)) on = true;\n    } catch (e) {}\n    return on;\n  })();\n  var INTERNAL_PARAMS = {traffic_type: 'internal', mr_internal: '1'};\n  window.__mossriverInternalTraffic = INTERNAL;\n  function pushArgs() { window.dataLayer.push(arguments); }\n\n  // 2026-10-29: live article CTAs use mossriver_2026_order_landing (also seo48h/v4_discovery).\n  // Map them onto the SEO experiment so namespaced events enter the GA4 catalog.\n  var ARTICLE_PDP_CAMPAIGNS = {\n    'exp_20260808_article_pdp': 'mossriver-exp-20260808-article-pdp',\n    'mossriver_2026_order_landing': 'mossriver-exp-20260808-article-pdp',\n    'mossriver_2026_seo48h': 'mossriver-exp-20260808-article-pdp',\n    'mossriver_2026_v4_discovery': 'mossriver-exp-20260808-article-pdp'\n  };\n  function isArticlePdpCampaign(campaign) {\n    return !!(campaign && ARTICLE_PDP_CAMPAIGNS[campaign]);\n  }\n  function articlePdpExperimentId(campaign) {\n    return ARTICLE_PDP_CAMPAIGNS[campaign] || '';\n  }\n  function canonicalArticlePdpCampaign(campaign) {\n    return isArticlePdpCampaign(campaign) ? 'exp_20260808_article_pdp' : campaign;\n  }\n\n  function measurementLedger() {\n    var ledger = [];\n    try { ledger = JSON.parse(sessionStorage.getItem('mossriver_measurement_ledger') || '[]'); } catch (e) {}\n    return Array.isArray(ledger) ? ledger : [];\n  }\n\n  function recordMeasurementEvent(name, params) {\n    var a = params || {};\n    var ledger = measurementLedger();\n    ledger.push({\n      sequence: ledger.length + 1,\n      event_name: name,\n      measurement_run_id: a.moss_measurement_run_id || '',\n      experiment_id: a.moss_experiment_id || '',\n      campaign: a.moss_campaign || '',\n      event_id: a.moss_event_id || '',\n      path: location.pathname,\n      at: new Date().toISOString()\n    });\n    try { sessionStorage.setItem('mossriver_measurement_ledger', JSON.stringify(ledger)); } catch (e) {}\n  }\n\n  function renderMeasurementReceipt() {\n    var q = new URLSearchParams(location.search);\n    if (q.get('moss_measurement_receipt') !== '1') return;\n    var runId = q.get('moss_measurement_run_id') || '';\n    var events = measurementLedger().filter(function (item) { return !runId || item.measurement_run_id === runId; });\n    var counts = {};\n    events.forEach(function (item) { counts[item.event_name] = (counts[item.event_name] || 0) + 1; });\n    var payload = {schema: 'mossriver.browser-measurement-receipt/v1', measurement_run_id: runId, page_path: location.pathname, event_counts: counts, events: events};\n    var pre = document.getElementById('mossriver-measurement-receipt');\n    if (!pre) { pre = document.createElement('pre'); pre.id = 'mossriver-measurement-receipt'; pre.setAttribute('data-mossriver-receipt', 'v1'); pre.style.cssText = 'white-space:pre-wrap;background:#fff;color:#111;padding:16px;margin:16px;font:12px monospace;position:relative;z-index:2147483647;'; document.body.appendChild(pre); }\n    pre.textContent = JSON.stringify(payload, null, 2);\n  }\n\n  function analyticsAllowed() {\n    var privacy = window.Shopify && window.Shopify.customerPrivacy;\n    if (!privacy) return true;\n    var decision;\n    if (typeof privacy.analyticsProcessingAllowed === 'function') decision = privacy.analyticsProcessingAllowed();\n    else if (typeof privacy.userCanBeTracked === 'function') decision = privacy.userCanBeTracked();\n    // The consent API can return undefined while it is still loading. Only an\n    // explicit false blocks, keeping parity with the storefront GA tag.\n    return decision !== false;\n  }\n\n  var upstreamGtag = window.gtag;\n  var articleClickKeys = {};\n  var nativeViewItemSeen = false;\n  function normalizeArticleClick(params) {\n    var a = Object.assign({}, params || {});\n    var context = typeof attribution === 'function' ? attribution() : {};\n    a.moss_measurement_run_id = a.moss_measurement_run_id || context.run_id || '';\n    a.moss_experiment_id = a.moss_experiment_id || a.funnel_id || articlePdpExperimentId(a.moss_campaign || a.campaign || (context && context.campaign) || '');\n    a.moss_campaign = a.moss_campaign || a.campaign || context.campaign || '';\n    a.moss_source = a.moss_source || context.source || 'unknown';\n    a.destination_path = a.destination_path || location.pathname;\n    a.moss_event_id = a.moss_event_id || (a.moss_measurement_run_id || 'live') + ':article_pdp_click:' + Date.now();\n    return a;\n  }\n  function recordArticleClick(params) {\n    var a = normalizeArticleClick(params);\n    var context = typeof attribution === 'function' ? attribution() : {};\n    var key = [a.moss_measurement_run_id || context.run_id || '', a.destination_path || location.pathname, a.campaign || context.campaign || ''].join('|');\n    if (articleClickKeys[key]) return false;\n    articleClickKeys[key] = true;\n    recordMeasurementEvent('article_pdp_click', a);\n    return true;\n  }\n  function sendArticleClickBeacon(params) {\n    // Enriched collect beacon/fetch \u2014 used when upstream gtag is missing OR\n    // when unload may kill the library transport before flush (article CTA).\n    try {\n      var cookie = document.cookie.match(/(?:^|; )_ga=GA\\d+\\.\\d+\\.(\\d+\\.\\d+)/);\n      var clientId = cookie ? cookie[1] : (window.crypto && crypto.randomUUID ? crypto.randomUUID() : String(Date.now()));\n      var sid = '';\n      try {\n        var sidCookie = document.cookie.match(/(?:^|; )_ga_8VWWZKPJQ7=([^;]*)/);\n        if (sidCookie) {\n          var sidParts = decodeURIComponent(sidCookie[1]).split('.');\n          if (sidParts.length >= 3) sid = String(sidParts[2]).replace(/^s/, '').split('$')[0];\n        }\n      } catch (e2) {}\n      var gcs = '';\n      try {\n        var privacy = window.Shopify && window.Shopify.customerPrivacy;\n        if (privacy && typeof privacy.analyticsProcessingAllowed === 'function') {\n          gcs = privacy.analyticsProcessingAllowed() !== false ? 'G111' : 'G100';\n        }\n      } catch (e3) {}\n      var body = new URLSearchParams();\n      body.set('en', 'article_pdp_click');\n      if (INTERNAL) { body.set('ep.traffic_type', 'internal'); body.set('ep.mr_internal', '1'); }\n      Object.keys(params || {}).forEach(function (key) {\n        if (key === 'event_callback' || key === 'event_timeout' || params[key] === undefined || params[key] === '') return;\n        body.set('ep.' + key, String(params[key]));\n      });\n      var qs = 'v=2&tid=G-8VWWZKPJQ7&cid=' + encodeURIComponent(clientId) + '&dl=' + encodeURIComponent(location.href);\n      if (sid) qs += '&sid=' + encodeURIComponent(sid);\n      if (gcs) qs += '&gcs=' + encodeURIComponent(gcs);\n      var endpoint = 'https://www.google-analytics.com/g/collect?' + qs;\n      if (navigator.sendBeacon && navigator.sendBeacon(endpoint, body)) return true;\n      if (window.fetch) { window.fetch(endpoint, {method: 'POST', body: body, keepalive: true, mode: 'no-cors'}); return true; }\n    } catch (e) {}\n    return false;\n  }\n  function sendArticleClickToUpstream(params) {\n    // Prefer upstream gtag library transport (same shape as landed moss_map).\n    // Always also queue enriched beacon on unload-sensitive article clicks \u2014\n    // upstream \"success\" alone was observed with zero g/collect (2026-10-29).\n    var delivered = false;\n    try {\n      if (typeof upstreamGtag === 'function' && upstreamGtag !== bridgeGtag) {\n        upstreamGtag.call(window, 'event', 'article_pdp_click', params);\n        delivered = true;\n      } else if (typeof upstreamGtag !== 'function' || upstreamGtag === bridgeGtag) {\n        window.dataLayer.push(['event', 'article_pdp_click', params]);\n      }\n    } catch (e) {}\n    var beaconed = false;\n    try { beaconed = sendArticleClickBeacon(params); } catch (e2) {}\n    return delivered || beaconed;\n  }\n  function bridgeGtag() {\n    if (INTERNAL && (arguments[0] === 'event' || arguments[0] === 'config') && arguments.length >= 2) {\n      var internalArgs = Array.prototype.slice.call(arguments);\n      internalArgs[2] = Object.assign({}, internalArgs[2] || {}, INTERNAL_PARAMS);\n      return bridgeGtagInner.apply(window, internalArgs);\n    }\n    return bridgeGtagInner.apply(window, arguments);\n  }\n  function bridgeGtagInner() {\n    if (arguments[0] === 'event' && !active) return;\n    if (arguments[0] === 'event' && arguments[1] === 'view_item') nativeViewItemSeen = true;\n    if (arguments[0] === 'event' && arguments[1] === 'article_pdp_click' && arguments[2]) {\n      arguments[2] = normalizeArticleClick(arguments[2]);\n      if (!recordArticleClick(arguments[2])) return;\n      // Prefer upstream gtag (inside sendArticleClickToUpstream). Enriched\n      // sendBeacon is last-resort only when upstream is unavailable.\n      sendArticleClickToUpstream(arguments[2]);\n      return;\n    }\n    if (typeof upstreamGtag === 'function') return upstreamGtag.apply(window, arguments);\n    pushArgs.apply(window, arguments);\n  }\n  // Shopify/Google app code can replace window.gtag after this asset loads.\n  // Keep the bridge as the stable public function while forwarding to the\n  // latest implementation, so ledger and GA4 delivery cannot diverge merely\n  // because of script-load order.\n  try {\n    Object.defineProperty(window, 'gtag', {\n      configurable: true,\n      get: function () { return bridgeGtag; },\n      set: function (next) { if (next !== bridgeGtag) upstreamGtag = next; }\n    });\n  } catch (e) {\n    window.gtag = bridgeGtag;\n  }\n  if (INTERNAL) { try { window.gtag('set', INTERNAL_PARAMS); } catch (e) {} }\n\n  document.addEventListener('click', function (event) {\n    if (!event.target || !event.target.closest) return;\n    if (!/^\\/blogs\\/articles\\//.test(location.pathname)) return;\n    var link = event.target.closest('a[href*=\"utm_campaign=\"],a[href*=\"moss_campaign=\"]');\n    if (!link) return;\n    if (event.defaultPrevented || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;\n    var url = new URL(link.href, window.location.origin);\n    var campaign = url.searchParams.get('moss_campaign') || url.searchParams.get('utm_campaign') || '';\n    var runId = url.searchParams.get('moss_measurement_run_id') || url.searchParams.get('measurement_run_id') || '';\n    // Hold navigation for known article\u2192PDP campaigns even without a\n    // measurement run id \u2014 organic CTAs (order_landing) must still emit\n    // article_pdp_click before unload.\n    if (!isArticlePdpCampaign(campaign)) return;\n    // Only product/collection destinations count as article\u2192PDP.\n    if (!/^\\/(products|collections)\\//.test(url.pathname || '')) return;\n    // Do NOT require `active` here. Consent/start can lag past first CTA\n    // click; gating on active previously dropped article_pdp_click while\n    // the browser navigated away (2026-10-29 browse proof).\n    if (!active) {\n      try { start(); } catch (e) {}\n    }\n    if (!analyticsAllowed()) return;\n    var source = url.searchParams.get('moss_source') || url.searchParams.get('utm_source') || 'unknown';\n    event.preventDefault();\n    var navigated = false;\n    function continueNavigation() {\n      if (navigated) return;\n      navigated = true;\n      window.location.assign(url.href);\n    }\n    var effectiveRun = runId || 'live';\n    var clickParams = normalizeArticleClick({\n      moss_measurement_run_id: effectiveRun,\n      moss_experiment_id: articlePdpExperimentId(campaign),\n      moss_campaign: campaign,\n      campaign: campaign,\n      destination_path: url.pathname,\n      moss_event_id: effectiveRun + ':article_pdp_click:' + Date.now(),\n      moss_source: source,\n      event_callback: continueNavigation,\n      event_timeout: 1500\n    });\n    // Deliver via upstream path directly so a still-inactive bridgeGtag\n    // active-gate cannot swallow the hit.\n    try { recordArticleClick(clickParams); } catch (e) {}\n    try { sendArticleClickToUpstream(clickParams); } catch (e) {}\n    // Navigation unloads the document immediately. Prefer GA's callback, with\n    // a bounded fallback so a blocked analytics endpoint cannot strand users.\n    window.setTimeout(continueNavigation, 1800);\n  }, true);\n\n  function start() {\n    if (active || !analyticsAllowed()) return;\n    active = true;\n    if (!document.querySelector('script[data-mossriver-ga4-custom-events]')) {\n      var tag = document.createElement('script');\n      tag.async = true;\n      tag.src = 'https://www.googletagmanager.com/gtag/js?id=G-8VWWZKPJQ7';\n      tag.setAttribute('data-mossriver-ga4-custom-events', 'v2');\n      document.head.appendChild(tag);\n    }\n    window.gtag('js', new Date());\n    window.gtag('config', 'G-8VWWZKPJQ7', {send_page_view: false});\n    propagateAttributionLinks();\n    if (/^\\/blogs\\/articles\\//.test(location.pathname)) syncArticleCampaignCartAttribute();\n    if (!window.__mossriverAttributionObserver) {\n      window.__mossriverAttributionObserver = new MutationObserver(function () { propagateAttributionLinks(); });\n      window.__mossriverAttributionObserver.observe(document.documentElement, {childList: true, subtree: true});\n    }\n  }\n\n  function loadPrivacyThenStart() {\n    if (window.Shopify && typeof window.Shopify.loadFeatures === 'function') {\n      window.Shopify.loadFeatures(\n        [{name: 'consent-tracking-api', version: '0.1'}],\n        function () { start(); }\n      );\n      // Article templates may expose loadFeatures without ever invoking the\n      // callback. Do not let that stall the measurement bridge indefinitely;\n      // start() still applies the consent checks and is idempotent.\n      setTimeout(start, 1500);\n    } else {\n      start();\n    }\n  }\n\n  document.addEventListener('visitorConsentCollected', start, false);\n  document.addEventListener('trackingConsentAccepted', start, false);\n    loadPrivacyThenStart();\n\n  function attribution() {\n    var q = new URLSearchParams(location.search);\n    var saved = {};\n    try { saved = JSON.parse(sessionStorage.getItem('mossriver_funnel_context') || '{}'); } catch (e) {}\n    var source = q.get('moss_source') || q.get('utm_source') || saved.source || 'direct';\n    var campaign = q.get('moss_campaign') || q.get('utm_campaign') || saved.campaign || '';\n    var content = q.get('moss_content') || q.get('utm_content') || saved.content || '';\n    var runId = q.get('moss_measurement_run_id') || q.get('measurement_run_id') || saved.run_id || '';\n    if (q.get('moss_campaign') || q.get('utm_campaign')) {\n      try { sessionStorage.setItem('mossriver_funnel_context', JSON.stringify({source: source, campaign: campaign, content: content, run_id: runId})); } catch (e) {}\n    }\n    return {\n      source: source,\n      campaign: campaign,\n      content: content,\n      run_id: runId\n    };\n  }\n\n  var mossCampaignAttrInflight = false;\n  function syncArticleCampaignCartAttribute() {\n    var a = attribution();\n    if (!a || !isArticlePdpCampaign(a.campaign)) return;\n    if (mossCampaignAttrInflight) return;\n    mossCampaignAttrInflight = true;\n    fetch('/cart.js', {credentials: 'same-origin', headers: {Accept: 'application/json'}, keepalive: true})\n      .then(function (response) { return response && response.ok ? response.json() : null; })\n      .then(function (cart) {\n        if (!cart) { mossCampaignAttrInflight = false; return; }\n        var attrs = {};\n        var existing = cart.attributes;\n        if (existing && typeof existing === 'object') {\n          Object.keys(existing).forEach(function (key) {\n            if (existing[key] != null) attrs[key] = existing[key];\n          });\n        }\n        if (attrs.moss_campaign === 'exp_20260808_article_pdp'\n            && attrs.moss_experiment_id === 'mossriver-exp-20260808-article-pdp') {\n          mossCampaignAttrInflight = false;\n          return;\n        }\n        // Canonical campaign so thank-you purchase readback maps onto\n        // mossriver_exp_article_pdp_* even when surface CTA was order_landing.\n        attrs.moss_campaign = 'exp_20260808_article_pdp';\n        attrs.moss_experiment_id = articlePdpExperimentId(a.campaign);\n        attrs.moss_surface_campaign = a.campaign || '';\n        if (a.run_id) attrs.moss_measurement_run_id = a.run_id;\n        if (a.source) attrs.moss_source = a.source;\n        if (a.content) attrs.moss_content = a.content;\n        return fetch('/cart/update.js', {\n          method: 'POST',\n          credentials: 'same-origin',\n          keepalive: true,\n          headers: {'Content-Type': 'application/json', 'Accept': 'application/json'},\n          body: JSON.stringify({attributes: attrs})\n        }).then(function () { mossCampaignAttrInflight = false; }, function () { mossCampaignAttrInflight = false; });\n      })\n      .catch(function () { mossCampaignAttrInflight = false; });\n  }\n\n  function propagateAttributionLinks() {\n    var a = attribution();\n    if (!a.campaign) return;\n    // Organic article-pdp CTAs often have no measurement run id; still stamp\n    // moss_campaign so PDP commerce rename can fire.\n    if (!a.run_id && !isArticlePdpCampaign(a.campaign)) return;\n    document.querySelectorAll('a[href]').forEach(function (link) {\n      var raw = link.getAttribute('href') || '';\n      if (!raw || raw.charAt(0) === '#' || raw.indexOf('javascript:') === 0) return;\n      var url;\n      try { url = new URL(raw, window.location.origin); } catch (e) { return; }\n      if (url.origin !== window.location.origin) return;\n      if (!/^\\/(?:products|collections|cart|checkout)(?:\\/|$)/.test(url.pathname)) return;\n      url.searchParams.set('moss_source', a.source);\n      url.searchParams.set('moss_campaign', a.campaign);\n      if (a.content) url.searchParams.set('moss_content', a.content);\n      if (a.run_id) url.searchParams.set('moss_measurement_run_id', a.run_id);\n      link.setAttribute('href', url.pathname + (url.search ? url.search : '') + (url.hash || ''));\n    });\n  }\n\n  function emit(name, params) {\n    if (!active || !analyticsAllowed()) return;\n    recordMeasurementEvent(name, params || {});\n    // Plain gtag library transport (match landed moss_map_incentive_opt_in).\n    // Do not force transport_type:beacon \u2014 wire table showed beacon-tagged\n    // custom events dropped while plain gtag custom events landed.\n    window.gtag('event', name, Object.assign({}, params || {}));\n  }\n\n  var emittedEventKeys = {};\n  function emitCommerceEvent(name, params, campaign, dedupeKey) {\n    var key = dedupeKey || name;\n    if (emittedEventKeys[key]) return false;\n    emittedEventKeys[key] = true;\n    var a = attribution();\n    var effectiveCampaign = campaign || a.campaign || '';\n    var eventParams = Object.assign({\n      moss_measurement_run_id: a.run_id,\n      moss_experiment_id: articlePdpExperimentId(effectiveCampaign) || undefined,\n      moss_event_id: (a.run_id || 'live') + ':' + name + ':' + Date.now() + ':' + Math.random().toString(36).slice(2, 8)\n    }, params || {});\n    // Shopify's Google channel already owns the standard view_item event.\n    // Record it for the same-session receipt, but do not send a second\n    // standard hit from this bridge.\n    if (name === 'view_item') {\n      recordMeasurementEvent(name, eventParams);\n      if (!nativeViewItemSeen) window.gtag('event', name, Object.assign({}, eventParams));\n    }\n    else emit(name, eventParams);\n    var experimentEvents = {\n      'exp_20260808_article_pdp': {\n        'view_item': 'mossriver_exp_article_pdp_view_item',\n        'add_to_cart': 'mossriver_exp_article_pdp_add_to_cart',\n        'begin_checkout': 'mossriver_exp_article_pdp_begin_checkout',\n        'purchase': 'mossriver_exp_article_pdp_purchase'\n      }\n    };\n    var mapped = experimentEvents[canonicalArticlePdpCampaign(effectiveCampaign)]\n      && experimentEvents[canonicalArticlePdpCampaign(effectiveCampaign)][name];\n    if (mapped) emit(mapped, eventParams);\n    return true;\n  }\n\n  function emitAddToCartOnce(form, meta, product, campaign) {\n    if (!form || form.dataset.mossriverAddTracked === '1') return;\n    form.dataset.mossriverAddTracked = '1';\n    var a = attribution();\n    emitCommerceEvent('add_to_cart', {currency: (meta.currency || 'USD'), moss_source: a.source, moss_campaign: a.campaign, items: [{item_id: String(product.id), item_name: product.handle}]}, campaign, 'add_to_cart:' + String(product.id));\n    setTimeout(function() { delete form.dataset.mossriverAddTracked; }, 1500);\n  }\n\n  function installCommerceReadback() {\n    var meta = window.ShopifyAnalytics && window.ShopifyAnalytics.meta;\n    var product = meta && meta.product;\n    if (!product || !product.id || window.__mossriverViewItemV2) return false;\n    window.__mossriverViewItemV2 = true;\n    var selected = product.variants && product.variants[0];\n    var a = attribution();\n    var viewItemPayload = {\n      currency: (meta.currency || 'USD'),\n      value: selected ? Number(selected.price || 0) / 100 : undefined,\n      items: [{item_id: String(product.id), item_name: selected ? selected.name : product.handle, item_variant: selected ? String(selected.id) : undefined}],\n      moss_source: a.source, moss_campaign: a.campaign, moss_content: a.content\n    };\n    // Shopify's native analytics script can load after the theme asset. Delay\n    // only this first event so the namespaced experiment event is not lost.\n    setTimeout(function() { emitCommerceEvent('view_item', viewItemPayload, a.campaign, 'view_item:' + String(product.id)); }, 2500);\n    document.addEventListener('submit', function(event) {\n      var form = event.target;\n      if (!form || !form.action || form.action.indexOf('/cart/add') === -1) return;\n      emitAddToCartOnce(form, {currency: (meta.currency || 'USD')}, product, a.campaign);\n    }, true);\n    document.addEventListener('click', function(event) {\n      var target = event.target.closest && event.target.closest('button[type=\"submit\"],input[type=\"submit\"]');\n      if (!target) return;\n      var form = target.form || target.closest('form');\n      if (!form || !/\\/cart\\/add/.test(form.action || '')) return;\n      emitAddToCartOnce(form, {currency: (meta.currency || 'USD')}, product, a.campaign);\n    }, true);\n    document.addEventListener('click', function(event) {\n      var link = event.target.closest && event.target.closest('a[href*=\"/checkout\"]');\n      if (link) {\n        syncArticleCampaignCartAttribute();\n        emitCommerceEvent('begin_checkout', {currency: (meta.currency || 'USD'), moss_source: a.source, moss_campaign: a.campaign, items: [{item_id: String(product.id), item_name: product.handle}]}, a.campaign, 'begin_checkout');\n      }\n    }, true);\n    return true;\n  }\n\n  function installCommerceWhenReady(attempt) {\n    if (installCommerceReadback()) return;\n    if (attempt < 60) setTimeout(function() { installCommerceWhenReady(attempt + 1); }, 250);\n  }\n\n  function installCheckoutReadback() {\n    if (window.__mossriverCheckoutReadbackV2) return;\n    window.__mossriverCheckoutReadbackV2 = true;\n    var a = attribution();\n    function checkoutPayload() {\n      return {moss_source: a.source, moss_campaign: a.campaign, moss_content: a.content};\n    }\n    document.addEventListener('click', function(event) {\n      var target = event.target.closest && event.target.closest('a,button');\n      if (target && (/\\/checkout/.test(target.href || '') || /check\\s*out/i.test(target.textContent || ''))) {\n        syncArticleCampaignCartAttribute();\n        emitCommerceEvent('begin_checkout', checkoutPayload(), a.campaign, 'begin_checkout');\n      }\n    }, true);\n    document.addEventListener('submit', function(event) {\n      var form = event.target;\n      if (form && /\\/checkout/.test(form.action || '')) {\n        syncArticleCampaignCartAttribute();\n        emitCommerceEvent('begin_checkout', checkoutPayload(), a.campaign, 'begin_checkout');\n      }\n    }, true);\n  }\n\n  function installPurchaseReadback() {\n    if (window.__mossriverPurchaseReadbackV2) return;\n    window.__mossriverPurchaseReadbackV2 = true;\n    function firePurchase(campaign, attrs) {\n      try {\n        var checkout = (window.Shopify && Shopify.checkout) ? Shopify.checkout : null;\n        var value = 0;\n        var currency = 'USD';\n        var tx = '';\n        if (checkout) {\n          value = Number(checkout.total_price || checkout.totalPrice || 0);\n          if (value > 1000) value = value / 100;\n          currency = checkout.currency || currency;\n          tx = String(checkout.order_id || checkout.orderId || checkout.token || '');\n        }\n        var camp = (attrs && attrs.moss_campaign) || campaign || '';\n        if (!isArticlePdpCampaign(camp) && camp !== 'exp_20260808_article_pdp') {\n          if (!(attrs && attrs.moss_experiment_id === 'mossriver-exp-20260808-article-pdp')) return;\n          camp = 'exp_20260808_article_pdp';\n        }\n        emitCommerceEvent('purchase', {\n          currency: currency,\n          value: value || 0,\n          transaction_id: tx\n        }, camp, 'purchase');\n      } catch (e) {}\n    }\n    try {\n      var path = location.pathname || '';\n      var onThankYou = /thank_you|\\/checkouts\\/.+\\/thank|\\/orders\\//.test(path)\n        || !!(window.Shopify && Shopify.Checkout && Shopify.Checkout.step === 'thank_you');\n      if (!onThankYou && !(window.Shopify && Shopify.checkout)) return;\n      var a = attribution();\n      if (window.fetch) {\n        fetch('/cart.js', { credentials: 'same-origin' })\n          .then(function (r) { return r.json(); })\n          .then(function (cart) {\n            firePurchase(a.campaign, (cart && cart.attributes) || {});\n          })\n          .catch(function () { firePurchase(a.campaign, {}); });\n      } else {\n        firePurchase(a.campaign, {});\n      }\n    } catch (e) {}\n  }\n\n  document.addEventListener('DOMContentLoaded', function() {\n    setTimeout(function() { installCommerceWhenReady(0); }, 0);\n    setTimeout(installCheckoutReadback, 0);\n    setTimeout(installPurchaseReadback, 0);\n    setTimeout(renderMeasurementReceipt, 50);\n  });\n  setTimeout(renderMeasurementReceipt, 2500);\n}());\n"],
  "mappings": "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",
  "names": []
}
