{
  "version": 3,
  "sources": ["/cdn/shop/t/117/assets/custom.js?x=1790001093575"],
  "sourcesContent": ["/*\n* Broadcast Theme\n*\n* Use this file to add custom Javascript to Broadcast.  Keeping your custom\n* Javascript in this fill will make it easier to update Broadcast. In order\n* to use this file you will need to open layout/theme.liquid and uncomment\n* the custom.js script import line near the bottom of the file.\n*/\n\n\n(function() {\n  // Add custom code below this line\n\n  /* ========================================================================\n     EXAU CUSTOM 2026-09-01 \u2014 product page waitlist link\n\n     Broadcast's built-in \"Sold Out - Notify Me When It's Available\" button\n     opens a popup that posts through Shopify's CONTACT form. Each signup\n     emails hello@ and builds no list \u2014 nothing segmentable, nothing\n     automatable. It is hidden by assets/exau-custom.css.\n\n     This replaces it with a link to /pages/waitlist, so a sold-out product\n     page offers the same path as a sold-out card in the product grid:\n       /pages/waitlist -> Flodesk form 68ac8394a306098dd1ca5218\n                       -> segment \"Waitlist harvest 2025\"\n\n     FIX 2026-09-01 (second pass): Broadcast renders\n     .product-soldout-notification on EVERY product page, in stock or not \u2014\n     it simply hides it when the product is available. The first version of\n     this script injected on all of them, so Turi (in stock) showed\n     \"Notify me when it's back\" underneath its Add to Cart button. We now\n     check the product's own buy block for a usable Add to cart first, and\n     skip injection when one exists. The check is scoped to .product__submit\n     so upsell and related-product buttons elsewhere on the page can't\n     suppress a genuine sold-out link.\n\n     Kept in custom.js on purpose: this file survived the 6.2.0 -> 8.1.1\n     upgrade byte-identical, so it does not need re-applying after a theme\n     update (the one line loading it in layout/theme.liquid does).\n     ======================================================================== */\n\n  var EXAU_WAITLIST_URL = '/pages/waitlist';\n  var EXAU_WAITLIST_LABEL = \"Notify me when it's back\";\n\n  function exauProductIsBuyable(holder) {\n    var submit = holder.closest ? holder.closest('.product__submit') : null;\n    if (!submit) return false;\n    return !!submit.querySelector('[data-add-to-cart]:not([disabled])');\n  }\n\n  function exauAddWaitlistLink() {\n    var holders = document.querySelectorAll('.product-soldout-notification');\n\n    for (var i = 0; i < holders.length; i++) {\n      var holder = holders[i];\n      if (holder.dataset.exauWaitlist) continue;\n\n      // In stock \u2014 leave it alone. Not marked as processed, so if a variant\n      // change makes it sold out later this runs again and injects then.\n      if (exauProductIsBuyable(holder)) continue;\n\n      holder.dataset.exauWaitlist = '1';\n\n      var wrap = document.createElement('div');\n      wrap.className = 'product-item__waitlist exau-pdp-waitlist';\n\n      var link = document.createElement('a');\n      link.href = EXAU_WAITLIST_URL;\n      link.className = 'btn btn--large product-item__waitlist__btn';\n      link.textContent = EXAU_WAITLIST_LABEL;\n\n      wrap.appendChild(link);\n      holder.parentNode.insertBefore(wrap, holder);\n    }\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', exauAddWaitlistLink);\n  } else {\n    exauAddWaitlistLink();\n  }\n\n  // Re-run if the theme swaps product content in (variant / sibling changes).\n  document.addEventListener('shopify:section:load', exauAddWaitlistLink);\n  document.addEventListener('variant:change', exauAddWaitlistLink);\n\n  // ^^ Keep your scripts inside this IIFE function call to \n  // avoid leaking your variables into the global scope.\n})();\n\n/* EXAU 2026-09-21 GA4: Flodesk blocks GA4 form_submit, so send waitlist_signup when a Flodesk form shows its success state (class fd-has-success). Once per form per page. Reverse: delete the next line. */\n(function(){var sent={};function chk(){document.querySelectorAll('form[class*=\"fd-has-success\"]').forEach(function(f){var a=f.getAttribute('action')||'';var m=a.match(/forms\\/([a-z0-9]+)/);var id=m?m[1]:'unknown';if(sent[id])return;sent[id]=1;if(typeof gtag==='function'){gtag('event','waitlist_signup',{form_id:id,form_destination:a,send_to:'G-Y23H25VF42'});}});}new MutationObserver(chk).observe(document.documentElement,{subtree:true,attributes:true,attributeFilter:['class'],childList:true});})();"],
  "mappings": "CAUC,UAAW,CA+BV,IAAI,kBAAoB,kBACpB,oBAAsB,2BAE1B,SAAS,qBAAqB,OAAQ,CACpC,IAAI,OAAS,OAAO,QAAU,OAAO,QAAQ,kBAAkB,EAAI,KACnE,OAAK,OACE,CAAC,CAAC,OAAO,cAAc,oCAAoC,EAD9C,EAEtB,CAEA,SAAS,qBAAsB,CAG7B,QAFI,QAAU,SAAS,iBAAiB,+BAA+B,EAE9D,EAAI,EAAG,EAAI,QAAQ,OAAQ,IAAK,CACvC,IAAI,OAAS,QAAQ,CAAC,EACtB,GAAI,QAAO,QAAQ,cAIf,sBAAqB,MAAM,EAE/B,QAAO,QAAQ,aAAe,IAE9B,IAAI,KAAO,SAAS,cAAc,KAAK,EACvC,KAAK,UAAY,2CAEjB,IAAI,KAAO,SAAS,cAAc,GAAG,EACrC,KAAK,KAAO,kBACZ,KAAK,UAAY,6CACjB,KAAK,YAAc,oBAEnB,KAAK,YAAY,IAAI,EACrB,OAAO,WAAW,aAAa,KAAM,MAAM,EAC7C,CACF,CAEI,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoB,mBAAmB,EAEjE,oBAAoB,EAItB,SAAS,iBAAiB,uBAAwB,mBAAmB,EACrE,SAAS,iBAAiB,iBAAkB,mBAAmB,CAIjE,GAAG,GAGF,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,SAAS,KAAK,CAAC,SAAS,iBAAiB,+BAA+B,EAAE,QAAQ,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,aAAa,QAAQ,GAAG,GAAO,EAAE,EAAE,MAAM,oBAAoB,EAAM,GAAG,EAAE,EAAE,CAAC,EAAE,UAAa,KAAK,EAAE,IAAS,KAAK,EAAE,EAAE,EAAK,OAAO,MAAO,YAAY,KAAK,QAAQ,kBAAkB,CAAC,QAAQ,GAAG,iBAAiB,EAAE,QAAQ,cAAc,CAAC,EAAG,CAAC,CAAE,CAAC,IAAI,iBAAiB,GAAG,EAAE,QAAQ,SAAS,gBAAgB,CAAC,QAAQ,GAAK,WAAW,GAAK,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAI,CAAC,CAAE,GAAG",
  "names": []
}
