{
  "version": 3,
  "sources": ["/cdn/shop/t/39/assets/preorder-custom.js?n=1790024673"],
  "sourcesContent": ["/*\r\n  ============================================================\r\n  RV PREORDER BLOCK \u2014 ATC + ACCORDION + CROSS-SELL JS\r\n  ============================================================\r\n  ADD INSIDE the existing <script> tag at the bottom of\r\n  instant-eGMzjDAjx3AwSlJp-black-friday__5_.liquid\r\n\r\n  WHY OWN ATC NEEDED:\r\n  The preorder button uses id=\"rv-po-atc\" \u2014 intentionally\r\n  different from \"rv-add-to-cart\" \u2014 so rv-custom1.js\r\n  updateATC() and the MutationObserver never touch it.\r\n\r\n  Cart add uses /cart/add.js directly, then opens the drawer\r\n  the same way rv-custom1.js does (cart-drawer-pull-rv click\r\n  + cart:refresh event).\r\n\r\n  COVERS:\r\n  1. Reserve button \u2192 /cart/add.js \u2192 open cart drawer\r\n  2. Accordion open/close toggle\r\n  3. White Edition cross-sell navigation\r\n  ============================================================\r\n*/\r\n\r\n(function () {\r\n  'use strict';\r\n\r\n  /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n     1. ATC BUTTON \u2014 /cart/add.js\r\n     Rendered in BOTH states via Liquid.\r\n       data-state=\"preorder\" \u2192 preorder product + _preorder properties\r\n       data-state=\"instock\"  \u2192 current product, no extra properties\r\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\r\n  function rvInitAtc() {\r\n    var btn = document.getElementById('rv-po-atc');\r\n    if (!btn || btn.dataset.rvAtcReady === 'true') return;\r\n    btn.dataset.rvAtcReady = 'true';\r\n\r\n    var variantId = btn.getAttribute('data-variant-id');\r\n    var state     = btn.getAttribute('data-state');\r\n    if (!variantId) return;\r\n\r\n    btn.addEventListener('click', function () {\r\n      btn.disabled = true;\r\n      btn.classList.add('rv-po-loading');\r\n\r\n      var item = {\r\n        id: parseInt(variantId, 10),\r\n        quantity: 1\r\n      };\r\n      if (state === 'preorder') {\r\n        item.properties = { _preorder: true, DeliveryType: 'Preorder' };\r\n      }\r\n\r\n      fetch('/cart/add.js', {\r\n        method: 'POST',\r\n        headers: { 'Content-Type': 'application/json' },\r\n        body: JSON.stringify({ items: [item] })\r\n      })\r\n      .then(function (r) { return r.json(); })\r\n      .then(function () {\r\n        /* Open cart drawer \u2014 same methods rv-custom1.js uses */\r\n        var drawerPull = document.querySelector('.cart-drawer-pull-rv');\r\n        if (drawerPull) drawerPull.click();\r\n        document.dispatchEvent(new CustomEvent('cart:refresh'));\r\n        document.dispatchEvent(new CustomEvent('cart:updated'));\r\n      })\r\n      .catch(function () {\r\n        /* Fallback: direct cart page */\r\n        window.location.href = '/cart/' + variantId + ':1';\r\n      })\r\n      .finally(function () {\r\n        btn.disabled = false;\r\n        btn.classList.remove('rv-po-loading');\r\n      });\r\n    });\r\n\r\n    console.log('[RV ATC] ready \u2014 state:', state, 'variant:', variantId);\r\n  }\r\n\r\n  /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n     2. ACCORDION TOGGLE\r\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\r\n  function rvInitAccordions() {\r\n    document.querySelectorAll('[data-rv-acc]').forEach(function (btn) {\r\n      if (btn.dataset.rvAccReady === 'true') return;\r\n      btn.dataset.rvAccReady = 'true';\r\n\r\n      btn.addEventListener('click', function () {\r\n        var itemId = btn.getAttribute('data-rv-acc');\r\n        var item   = document.getElementById(itemId);\r\n        var body   = document.getElementById(itemId + '-body');\r\n        if (!item || !body) return;\r\n\r\n        var isOpen = item.classList.contains('rv-po-acc-open');\r\n        if (isOpen) {\r\n          item.classList.remove('rv-po-acc-open');\r\n          body.style.maxHeight = '0';\r\n          body.style.opacity   = '0';\r\n          body.style.overflow  = 'hidden';\r\n          btn.setAttribute('aria-expanded', 'false');\r\n        } else {\r\n          item.classList.add('rv-po-acc-open');\r\n          body.style.overflow  = 'hidden';\r\n          body.style.maxHeight = body.scrollHeight + 'px';\r\n          body.style.opacity   = '1';\r\n          btn.setAttribute('aria-expanded', 'true');\r\n          setTimeout(function () {\r\n            if (item.classList.contains('rv-po-acc-open')) body.style.maxHeight = '600px';\r\n          }, 320);\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n     3. CROSS-SELL \u2014 now a plain <a href> in Liquid\r\n        (rv_cross_sell_product.url resolved server-side),\r\n        no JS needed for navigation.\r\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\r\n\r\n  /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n     BOOT\r\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\r\n  function rvBoot() {\r\n    rvInitAtc();\r\n    rvInitAccordions();\r\n  }\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', rvBoot);\r\n  } else {\r\n    rvBoot();\r\n  }\r\n\r\n})();"],
  "mappings": "CAuBC,UAAY,CACX,aAQA,SAAS,WAAY,CACnB,IAAI,IAAM,SAAS,eAAe,WAAW,EAC7C,GAAI,GAAC,KAAO,IAAI,QAAQ,aAAe,QACvC,KAAI,QAAQ,WAAa,OAEzB,IAAI,UAAY,IAAI,aAAa,iBAAiB,EAC9C,MAAY,IAAI,aAAa,YAAY,EACxC,YAEL,IAAI,iBAAiB,QAAS,UAAY,CACxC,IAAI,SAAW,GACf,IAAI,UAAU,IAAI,eAAe,EAEjC,IAAI,KAAO,CACT,GAAI,SAAS,UAAW,EAAE,EAC1B,SAAU,CACZ,EACI,QAAU,aACZ,KAAK,WAAa,CAAE,UAAW,GAAM,aAAc,UAAW,GAGhE,MAAM,eAAgB,CACpB,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAU,CAAE,MAAO,CAAC,IAAI,CAAE,CAAC,CACxC,CAAC,EACA,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,KAAK,CAAG,CAAC,EACtC,KAAK,UAAY,CAEhB,IAAI,WAAa,SAAS,cAAc,sBAAsB,EAC1D,YAAY,WAAW,MAAM,EACjC,SAAS,cAAc,IAAI,YAAY,cAAc,CAAC,EACtD,SAAS,cAAc,IAAI,YAAY,cAAc,CAAC,CACxD,CAAC,EACA,MAAM,UAAY,CAEjB,OAAO,SAAS,KAAO,SAAW,UAAY,IAChD,CAAC,EACA,QAAQ,UAAY,CACnB,IAAI,SAAW,GACf,IAAI,UAAU,OAAO,eAAe,CACtC,CAAC,CACH,CAAC,EAED,QAAQ,IAAI,+BAA2B,MAAO,WAAY,SAAS,GACrE,CAKA,SAAS,kBAAmB,CAC1B,SAAS,iBAAiB,eAAe,EAAE,QAAQ,SAAU,IAAK,CAC5D,IAAI,QAAQ,aAAe,SAC/B,IAAI,QAAQ,WAAa,OAEzB,IAAI,iBAAiB,QAAS,UAAY,CACxC,IAAI,OAAS,IAAI,aAAa,aAAa,EACvC,KAAS,SAAS,eAAe,MAAM,EACvC,KAAS,SAAS,eAAe,OAAS,OAAO,EACrD,GAAI,GAAC,MAAQ,CAAC,MAEd,KAAI,OAAS,KAAK,UAAU,SAAS,gBAAgB,EACjD,QACF,KAAK,UAAU,OAAO,gBAAgB,EACtC,KAAK,MAAM,UAAY,IACvB,KAAK,MAAM,QAAY,IACvB,KAAK,MAAM,SAAY,SACvB,IAAI,aAAa,gBAAiB,OAAO,IAEzC,KAAK,UAAU,IAAI,gBAAgB,EACnC,KAAK,MAAM,SAAY,SACvB,KAAK,MAAM,UAAY,KAAK,aAAe,KAC3C,KAAK,MAAM,QAAY,IACvB,IAAI,aAAa,gBAAiB,MAAM,EACxC,WAAW,UAAY,CACjB,KAAK,UAAU,SAAS,gBAAgB,IAAG,KAAK,MAAM,UAAY,QACxE,EAAG,GAAG,GAEV,CAAC,EACH,CAAC,CACH,CAWA,SAAS,QAAS,CAChB,UAAU,EACV,iBAAiB,CACnB,CAEI,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoB,MAAM,EAEpD,OAAO,CAGX,GAAG",
  "names": []
}
