{
  "version": 3,
  "sources": ["/cdn/shop/t/69/assets/tnf-ab-powercrunch-hero.js?cb=20260625a"],
  "sourcesContent": ["/* TNF A/B test \u2014 Power Crunch card hero image (CTR test). Built 2026-06-25.\n   A (control) = current 11-flavour collage (theme default, no swap).\n   B (test)    = single Red Velvet bar in wrapper.\n   Sticky 50/50 cohort in localStorage. Tracks impression + click to GA4 via dataLayer\n   (event tnf_ab_pc_hero \u2192 GTM tnf_.* trigger). Scope: all listing placements site-wide. */\n(function () {\n  \"use strict\";\n  var HANDLE = \"power-crunch-protein-bar-individual\";\n  var IMG_B = \"https://cdn.shopify.com/s/files/1/1603/2381/files/Power_Crunch_Protein_Bar_1_bar_-_Top_Nutrition_and_Fitness-5402214.png\";\n  var KEY = \"tnf_ab_pc_hero\";\n\n  // sticky cohort\n  var cohort;\n  try { cohort = localStorage.getItem(KEY); } catch (e) {}\n  if (cohort !== \"A\" && cohort !== \"B\") {\n    cohort = Math.random() < 0.5 ? \"A\" : \"B\";\n    try { localStorage.setItem(KEY, cohort); } catch (e) {}\n  }\n\n  function srcsetB() {\n    return [200, 300, 400, 600, 800, 1000].map(function (w) { return IMG_B + \"?width=\" + w + \" \" + w + \"w\"; }).join(\", \");\n  }\n  function swapCard(card) {\n    var imgs = card.querySelectorAll(\".product-item__image-wrapper img\");\n    for (var i = 0; i < imgs.length; i++) {\n      var im = imgs[i];\n      im.removeAttribute(\"data-src\"); im.removeAttribute(\"data-srcset\"); im.removeAttribute(\"data-widths\");\n      im.src = IMG_B + \"?width=600\";\n      if (im.getAttribute(\"srcset\") !== null) im.srcset = srcsetB();\n    }\n  }\n\n  var impFired = false;\n  function push(action) {\n    // distinct event name per arm+action so GA4 shows 4 countable events:\n    // tnf_ab_pc_hero_a_impression / _a_click / _b_impression / _b_click  (CTR = click / impression per arm)\n    var ev = \"tnf_ab_pc_hero_\" + cohort.toLowerCase() + \"_\" + action;\n    window.dataLayer = window.dataLayer || [];\n    window.dataLayer.push({ event: ev, ab_test: \"power_crunch_hero\", ab_variant: cohort, ab_action: action });\n  }\n  function observeImpression(card) {\n    if (impFired) return;\n    if (!(\"IntersectionObserver\" in window)) { impFired = true; push(\"impression\"); return; }\n    var io = new IntersectionObserver(function (entries) {\n      for (var i = 0; i < entries.length; i++) {\n        if (entries[i].isIntersecting && !impFired) { impFired = true; push(\"impression\"); io.disconnect(); }\n      }\n    }, { threshold: 0.5 });\n    io.observe(card);\n  }\n\n  function apply() {\n    var cards = document.querySelectorAll('.product-item[data-product-handle=\"' + HANDLE + '\"]');\n    for (var i = 0; i < cards.length; i++) {\n      var card = cards[i];\n      if (card.getAttribute(\"data-tnf-ab-done\")) continue;\n      card.setAttribute(\"data-tnf-ab-done\", \"1\");\n      card.setAttribute(\"data-tnf-ab-pc\", cohort);\n      if (cohort === \"B\") swapCard(card);\n      observeImpression(card);\n      card.addEventListener(\"click\", function () { push(\"click\"); }, true);\n    }\n  }\n\n  if (document.readyState !== \"loading\") apply(); else document.addEventListener(\"DOMContentLoaded\", apply);\n  // re-apply for cards injected later (personalization, infinite scroll), debounced\n  var t;\n  try {\n    var mo = new MutationObserver(function () { clearTimeout(t); t = setTimeout(apply, 150); });\n    mo.observe(document.documentElement, { childList: true, subtree: true });\n  } catch (e) {}\n  setTimeout(apply, 1000); setTimeout(apply, 2500);\n})();\n"],
  "mappings": "CAKC,UAAY,CACX,aACA,IAAI,OAAS,sCACT,MAAQ,2HACR,IAAM,iBAGN,OACJ,GAAI,CAAE,OAAS,aAAa,QAAQ,GAAG,CAAG,OAAS,EAAG,CAAC,CACvD,GAAI,SAAW,KAAO,SAAW,IAAK,CACpC,OAAS,KAAK,OAAO,EAAI,GAAM,IAAM,IACrC,GAAI,CAAE,aAAa,QAAQ,IAAK,MAAM,CAAG,OAAS,EAAG,CAAC,CACxD,CAEA,SAAS,SAAU,CACjB,MAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAE,IAAI,SAAU,EAAG,CAAE,OAAO,MAAQ,UAAY,EAAI,IAAM,EAAI,GAAK,CAAC,EAAE,KAAK,IAAI,CACtH,CACA,SAAS,SAAS,KAAM,CAEtB,QADI,KAAO,KAAK,iBAAiB,kCAAkC,EAC1D,EAAI,EAAG,EAAI,KAAK,OAAQ,IAAK,CACpC,IAAI,GAAK,KAAK,CAAC,EACf,GAAG,gBAAgB,UAAU,EAAG,GAAG,gBAAgB,aAAa,EAAG,GAAG,gBAAgB,aAAa,EACnG,GAAG,IAAM,MAAQ,aACb,GAAG,aAAa,QAAQ,IAAM,OAAM,GAAG,OAAS,QAAQ,EAC9D,CACF,CAEA,IAAI,SAAW,GACf,SAAS,KAAK,OAAQ,CAGpB,IAAI,GAAK,kBAAoB,OAAO,YAAY,EAAI,IAAM,OAC1D,OAAO,UAAY,OAAO,WAAa,CAAC,EACxC,OAAO,UAAU,KAAK,CAAE,MAAO,GAAI,QAAS,oBAAqB,WAAY,OAAQ,UAAW,MAAO,CAAC,CAC1G,CACA,SAAS,kBAAkB,KAAM,CAC/B,GAAI,UACJ,IAAI,EAAE,yBAA0B,QAAS,CAAE,SAAW,GAAM,KAAK,YAAY,EAAG,MAAQ,CACxF,IAAI,GAAK,IAAI,qBAAqB,SAAU,QAAS,CACnD,QAAS,EAAI,EAAG,EAAI,QAAQ,OAAQ,IAC9B,QAAQ,CAAC,EAAE,gBAAkB,CAAC,WAAY,SAAW,GAAM,KAAK,YAAY,EAAG,GAAG,WAAW,EAErG,EAAG,CAAE,UAAW,EAAI,CAAC,EACrB,GAAG,QAAQ,IAAI,EACjB,CAEA,SAAS,OAAQ,CAEf,QADI,MAAQ,SAAS,iBAAiB,sCAAwC,OAAS,IAAI,EAClF,EAAI,EAAG,EAAI,MAAM,OAAQ,IAAK,CACrC,IAAI,KAAO,MAAM,CAAC,EACd,KAAK,aAAa,kBAAkB,IACxC,KAAK,aAAa,mBAAoB,GAAG,EACzC,KAAK,aAAa,iBAAkB,MAAM,EACtC,SAAW,KAAK,SAAS,IAAI,EACjC,kBAAkB,IAAI,EACtB,KAAK,iBAAiB,QAAS,UAAY,CAAE,KAAK,OAAO,CAAG,EAAG,EAAI,EACrE,CACF,CAEI,SAAS,aAAe,UAAW,MAAM,EAAQ,SAAS,iBAAiB,mBAAoB,KAAK,EAExG,IAAI,EACJ,GAAI,CACF,IAAI,GAAK,IAAI,iBAAiB,UAAY,CAAE,aAAa,CAAC,EAAG,EAAI,WAAW,MAAO,GAAG,CAAG,CAAC,EAC1F,GAAG,QAAQ,SAAS,gBAAiB,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,CACzE,OAAS,EAAG,CAAC,CACb,WAAW,MAAO,GAAI,EAAG,WAAW,MAAO,IAAI,CACjD,GAAG",
  "names": []
}
