{
  "version": 3,
  "sources": ["/cdn/shop/t/45/assets/intervine-monster-2000-landing.js?monster_2000_js=3"],
  "sourcesContent": ["(() => {\n  const page = document.querySelector(\"[data-monster-2000-page]\");\n  if (!page) return;\n\n  const reducedMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n  const forms = page.querySelectorAll(\"[data-monster-add-form]\");\n  const sticky = page.querySelector(\"[data-monster-sticky]\");\n  const hero = page.querySelector(\"[data-monster-hero]\");\n  const buyBox = page.querySelector(\"[data-monster-buy-box]\");\n  const status = page.querySelector(\"[data-monster-status]\");\n  const lightbox = page.querySelector(\"[data-monster-lightbox]\");\n  const lightboxImage = lightbox?.querySelector(\"[data-monster-lightbox-image]\");\n  const lightboxClose = lightbox?.querySelector(\"[data-monster-lightbox-close]\");\n  let lastZoomTrigger = null;\n  let lightboxCloseTimer = null;\n\n  const setStatus = (message, tone = \"neutral\") => {\n    if (!status) return;\n    status.textContent = message;\n    status.dataset.tone = tone;\n  };\n\n  const setCartCount = (count) => {\n    document.querySelectorAll(\"[data-header-cart-count], #ivpCartCount\").forEach((node) => {\n      node.textContent = count;\n    });\n  };\n\n  const openCartDrawer = (button) => {\n    if (\n      window.PXUTheme &&\n      window.PXUTheme.cartDrawer &&\n      typeof window.PXUTheme.cartDrawer.loadDrawer === \"function\"\n    ) {\n      window.PXUTheme.cartDrawer.loadDrawer(true, button || null);\n      return true;\n    }\n\n    const trigger = document.querySelector(\n      '[data-action=\"open-drawer\"][data-drawer=\"cart\"], .js-drawer-open-cart, #cart-icon-bubble, a[href$=\"/cart\"].cart-link'\n    );\n    if (trigger) {\n      trigger.click();\n      return true;\n    }\n\n    document.dispatchEvent(new CustomEvent(\"cart:refresh\"));\n    return false;\n  };\n\n  const addToCart = async (form) => {\n    const button = form.querySelector(\"button[type='submit']\");\n    const variantId = form.querySelector(\"input[name='id']\")?.value;\n    const quantity = Number(form.querySelector(\"input[name='quantity']\")?.value || \"1\");\n    if (!button || !variantId || !quantity) return;\n\n    const original = button.dataset.originalLabel || button.textContent;\n    button.dataset.originalLabel = original;\n    button.disabled = true;\n    button.classList.add(\"is-loading\");\n    button.textContent = \"Adding\";\n    setStatus(\"Adding Monster 2000 to cart.\");\n\n    try {\n      const addResponse = await fetch(\"/cart/add.js\", {\n        method: \"POST\",\n        headers: { \"Content-Type\": \"application/json\" },\n        body: JSON.stringify({ items: [{ id: variantId, quantity }] })\n      });\n      if (!addResponse.ok) throw new Error(\"Add to cart failed\");\n\n      const cartResponse = await fetch(\"/cart.js\");\n      const cart = await cartResponse.json();\n      setCartCount(cart.item_count);\n      button.classList.add(\"is-added\");\n      button.textContent = quantity > 1 ? \"Two added\" : \"Added\";\n      setStatus(quantity > 1 ? \"Two Monster 2000 lanterns are in your cart.\" : \"Monster 2000 is in your cart.\", \"success\");\n      openCartDrawer(button);\n      window.setTimeout(() => {\n        button.classList.remove(\"is-added\");\n        button.textContent = original;\n      }, 2200);\n    } catch (error) {\n      setStatus(\"Could not add to cart. Sending you to the cart page.\", \"error\");\n      form.submit();\n    } finally {\n      button.classList.remove(\"is-loading\");\n      button.disabled = false;\n    }\n  };\n\n  forms.forEach((form) => {\n    form.addEventListener(\"submit\", (event) => {\n      event.preventDefault();\n      addToCart(form);\n    });\n  });\n\n  page.querySelectorAll(\"[data-faq-toggle]\").forEach((button) => {\n    button.addEventListener(\"click\", () => {\n      const item = button.closest(\"[data-faq-item]\");\n      const panel = item ? item.querySelector(\"[data-faq-panel]\") : null;\n      const isOpen = button.getAttribute(\"aria-expanded\") === \"true\";\n      if (!item || !panel) return;\n\n      item.classList.toggle(\"is-open\", !isOpen);\n      button.setAttribute(\"aria-expanded\", String(!isOpen));\n      panel.style.maxHeight = isOpen ? null : `${panel.scrollHeight}px`;\n    });\n  });\n\n  if (lightbox && lightboxImage && lightboxClose) {\n    const closeLightbox = () => {\n      if (lightbox.hidden || lightboxCloseTimer) return;\n      lightbox.classList.remove(\"is-open\");\n      document.body.classList.remove(\"monster-lightbox-open\");\n      lightboxCloseTimer = window.setTimeout(() => {\n        lightbox.hidden = true;\n        lightboxImage.removeAttribute(\"src\");\n        lightboxImage.alt = \"\";\n        lastZoomTrigger?.focus();\n        lightboxCloseTimer = null;\n      }, 180);\n    };\n\n    page.querySelectorAll(\"[data-monster-zoom]\").forEach((button) => {\n      button.addEventListener(\"click\", () => {\n        const sourceImage = button.querySelector(\"img\");\n        if (!sourceImage) return;\n\n        if (lightboxCloseTimer) {\n          window.clearTimeout(lightboxCloseTimer);\n          lightboxCloseTimer = null;\n        }\n        lastZoomTrigger = button;\n        lightboxImage.src = sourceImage.currentSrc || sourceImage.src;\n        lightboxImage.alt = sourceImage.alt;\n        lightboxImage.width = sourceImage.naturalWidth || Number(sourceImage.getAttribute(\"width\")) || 1600;\n        lightboxImage.height = sourceImage.naturalHeight || Number(sourceImage.getAttribute(\"height\")) || 1600;\n        lightbox.hidden = false;\n        document.body.classList.add(\"monster-lightbox-open\");\n        window.requestAnimationFrame(() => {\n          lightbox.classList.add(\"is-open\");\n          lightboxClose.focus();\n        });\n      });\n    });\n\n    lightboxClose.addEventListener(\"click\", closeLightbox);\n    lightbox.addEventListener(\"click\", (event) => {\n      if (event.target === lightbox) closeLightbox();\n    });\n    document.addEventListener(\"keydown\", (event) => {\n      if (lightbox.hidden) return;\n      if (event.key === \"Escape\") closeLightbox();\n      if (event.key === \"Tab\") {\n        event.preventDefault();\n        lightboxClose.focus();\n      }\n    });\n  }\n\n  if (!reducedMotion && \"IntersectionObserver\" in window) {\n    const revealObserver = new IntersectionObserver(\n      (entries) => {\n        entries.forEach((entry) => {\n          if (!entry.isIntersecting) return;\n          entry.target.classList.add(\"is-visible\");\n          revealObserver.unobserve(entry.target);\n        });\n      },\n      { threshold: 0.14, rootMargin: \"0px 0px -80px 0px\" }\n    );\n    page.querySelectorAll(\"[data-reveal]\").forEach((node) => revealObserver.observe(node));\n  } else {\n    page.querySelectorAll(\"[data-reveal]\").forEach((node) => node.classList.add(\"is-visible\"));\n  }\n\n  if (sticky) {\n    const syncSticky = () => {\n      const heroBottom = hero ? hero.getBoundingClientRect().bottom : -1;\n      const buyRect = buyBox ? buyBox.getBoundingClientRect() : null;\n      const buyVisible = buyRect ? buyRect.top < window.innerHeight && buyRect.bottom > 0 : false;\n      sticky.classList.toggle(\"is-visible\", heroBottom < 80 && !buyVisible);\n    };\n\n    window.addEventListener(\"scroll\", syncSticky, { passive: true });\n    window.addEventListener(\"resize\", syncSticky);\n    syncSticky();\n  }\n})();\n"],
  "mappings": "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",
  "names": []
}
