{
  "version": 3,
  "sources": ["/cdn/shop/t/12/assets/nineheat-landing-v2.js?nh=lp2-v8-20260816"],
  "sourcesContent": ["/* nineheat-landing-v2.js \u2014 nh-landing-v2.1-20260816\n   LP \u00AB masterclass \u00BB : bundles 3 tiers multi-tailles, value stack dynamique, d\u00E9mo 3 niveaux.\n   Scop\u00E9 sur [data-nh-landing=\"ville-v2\"].\n   Architecture : l'UI g\u00E9n\u00E9rique (galerie, d\u00E9mo, ancres, reveal, sticky) s'initialise AVANT\n   et ind\u00E9pendamment de la logique d'offre \u2014 un \u00E9chec de donn\u00E9es ne rend jamais la page inerte. */\n(function () {\n  'use strict';\n\n  /* Racine g\u00E9n\u00E9rique : toutes les LP persona de la famille v2 partagent ce fichier. */\n  var root = document.querySelector('main.nh-lp2[data-nh-landing]');\n  if (!root) return;\n\n  function money(cents) {\n    return (cents / 100).toFixed(2).replace('.', ',') + '\u20AC';\n  }\n\n  /* ================= UI G\u00C9N\u00C9RIQUE (ind\u00E9pendante des donn\u00E9es) ================= */\n\n  /* ----- Reveal (le CSS est gat\u00E9 sur html.nh-js + animation de secours \u00E0 2s) ----- */\n  if ('IntersectionObserver' in window) {\n    var revealObserver = new IntersectionObserver(function (entries) {\n      entries.forEach(function (entry) {\n        if (entry.isIntersecting) {\n          entry.target.classList.add('is-in');\n          revealObserver.unobserve(entry.target);\n        }\n      });\n    }, { rootMargin: '0px 0px -8% 0px' });\n    root.querySelectorAll('[data-reveal]').forEach(function (node) { revealObserver.observe(node); });\n  } else {\n    root.querySelectorAll('[data-reveal]').forEach(function (node) { node.classList.add('is-in'); });\n  }\n\n  /* ----- Galerie slider (scroll-snap) ----- */\n  (function () {\n    var track = root.querySelector('[data-nh-lp2-gallery]');\n    if (!track) return;\n    var slides = Array.prototype.slice.call(track.children);\n    var dotsWrap = root.querySelector('[data-nh-lp2-gallery-dots]');\n    var thumbs = Array.prototype.slice.call(root.querySelectorAll('[data-nh-lp2-gallery-thumbs] .nh-lp2__gallery-thumb'));\n    if (slides.length < 2) { if (dotsWrap) dotsWrap.hidden = true; return; }\n\n    var dots = [];\n    if (dotsWrap) {\n      slides.forEach(function (_, index) {\n        var dot = document.createElement('button');\n        dot.type = 'button';\n        dot.setAttribute('aria-label', 'Photo ' + (index + 1));\n        if (index === 0) dot.classList.add('is-active');\n        dot.addEventListener('click', function () { goTo(index); });\n        dotsWrap.appendChild(dot);\n        dots.push(dot);\n      });\n    }\n\n    function goTo(index) {\n      track.scrollTo({ left: index * track.clientWidth, behavior: 'smooth' });\n    }\n\n    function setActive(index) {\n      dots.forEach(function (dot, i) { dot.classList.toggle('is-active', i === index); });\n      thumbs.forEach(function (thumb, i) { thumb.classList.toggle('is-active', i === index); });\n    }\n\n    thumbs.forEach(function (thumb, index) {\n      thumb.addEventListener('click', function () { goTo(index); });\n    });\n\n    var ticking = false;\n    track.addEventListener('scroll', function () {\n      if (ticking) return;\n      ticking = true;\n      window.requestAnimationFrame(function () {\n        ticking = false;\n        var index = Math.round(track.scrollLeft / Math.max(track.clientWidth, 1));\n        setActive(Math.min(Math.max(index, 0), slides.length - 1));\n      });\n    }, { passive: true });\n\n    track.addEventListener('keydown', function (event) {\n      var index = Math.round(track.scrollLeft / Math.max(track.clientWidth, 1));\n      if (event.key === 'ArrowRight') { event.preventDefault(); goTo(Math.min(index + 1, slides.length - 1)); }\n      if (event.key === 'ArrowLeft') { event.preventDefault(); goTo(Math.max(index - 1, 0)); }\n    });\n  })();\n\n  /* ----- D\u00E9mo 3 niveaux ----- */\n  (function () {\n    var levels = {\n      doux: {\n        title: 'Niveau doux \u2014 25 \u00B0C de chauffe',\n        text: 'Une chaleur de fond discr\u00E8te pour les trajets et les longues journ\u00E9es. C\u2019est le niveau qui tient le plus longtemps avec la batterie 20 000 mAh offerte.',\n        meta: '12 h \u00B7 chauffe \u00E0 25 \u00B0C',\n        bar: 100, heat: 0.35\n      },\n      moyen: {\n        title: 'Niveau moyen \u2014 35 \u00B0C de chauffe',\n        text: 'Le bon r\u00E9glage quand vous restez statique : quai, sortie d\u2019\u00E9cole, terrasse. La chaleur compense ce que votre corps ne produit plus \u00E0 l\u2019arr\u00EAt.',\n        meta: '10 h \u00B7 chauffe \u00E0 35 \u00B0C',\n        bar: 83, heat: 0.68\n      },\n      fort: {\n        title: 'Niveau fort \u2014 45 \u00B0C de chauffe',\n        text: 'Mont\u00E9e rapide pour les soirs de grand froid et les retours tardifs. \u00C0 utiliser par s\u00E9quences, puis redescendre en doux une fois la bulle de chaleur install\u00E9e.',\n        meta: '8 h \u00B7 chauffe \u00E0 45 \u00B0C',\n        bar: 67, heat: 1\n      }\n    };\n    var hot = root.querySelector('[data-demo-hot]');\n    var title = root.querySelector('[data-demo-title]');\n    var text = root.querySelector('[data-demo-text]');\n    var meta = root.querySelector('[data-demo-meta]');\n    var bar = root.querySelector('[data-demo-bar]');\n    var tabs = Array.prototype.slice.call(root.querySelectorAll('[data-demo-level]'));\n    tabs.forEach(function (tab) {\n      tab.setAttribute('aria-pressed', tab.classList.contains('is-active') ? 'true' : 'false');\n      tab.addEventListener('click', function () {\n        var level = levels[tab.getAttribute('data-demo-level')];\n        if (!level) return;\n        tabs.forEach(function (other) {\n          var active = other === tab;\n          other.classList.toggle('is-active', active);\n          other.setAttribute('aria-pressed', active ? 'true' : 'false');\n        });\n        if (hot) hot.style.opacity = String(level.heat);\n        if (title) title.textContent = level.title;\n        if (text) text.textContent = level.text;\n        if (meta) meta.textContent = level.meta;\n        if (bar) bar.style.width = level.bar + '%';\n      });\n    });\n  })();\n\n  /* ----- Ancres ----- */\n  root.querySelectorAll('[data-nh-lp2-scroll]').forEach(function (trigger) {\n    trigger.addEventListener('click', function (event) {\n      var target = document.getElementById(trigger.getAttribute('data-nh-lp2-scroll'));\n      if (!target) return;\n      event.preventDefault();\n      target.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    });\n  });\n\n  /* ----- Sticky (inert synchronis\u00E9 pour l'accessibilit\u00E9) ----- */\n  (function () {\n    var sticky = root.querySelector('[data-nh-lp2-sticky]');\n    var buySection = document.getElementById('nh-lp2-buy');\n    if (!sticky || !buySection || !('IntersectionObserver' in window)) return;\n    var buyVisible = false;\n    var pastHero = false;\n    var hero = root.querySelector('[data-nh-lp2-hero-cta]');\n    var refresh = function () {\n      var visible = pastHero && !buyVisible;\n      sticky.classList.toggle('is-visible', visible);\n      sticky.toggleAttribute('inert', !visible);\n    };\n    new IntersectionObserver(function (entries) {\n      buyVisible = entries[0].isIntersecting;\n      refresh();\n    }, { rootMargin: '0px 0px -18% 0px' }).observe(buySection);\n    if (hero) {\n      new IntersectionObserver(function (entries) {\n        pastHero = !entries[0].isIntersecting;\n        refresh();\n      }).observe(hero);\n    } else {\n      pastHero = true;\n      refresh();\n    }\n  })();\n\n  /* ================= LOGIQUE D'OFFRE (d\u00E9pend des donn\u00E9es) ================= */\n\n  var data = null;\n  var dataNode = root.querySelector('[data-nh-lp2-data]');\n  if (dataNode) {\n    try { data = JSON.parse(dataNode.textContent); } catch (err) { data = null; }\n  }\n  if (!data || !data.variants || !data.variants.length) return;\n  var productLabel = String(data.product_label || 'Celsius 21');\n\n  /* Cadeaux : on ne garde que ceux qui existent et sont disponibles \u2014 un cadeau\n     manquant ne doit jamais bloquer la vente ni \u00EAtre promis \u00E0 l'\u00E9cran. */\n  data.tiers.forEach(function (tier) {\n    tier.gifts = tier.gifts.filter(function (g) {\n      return Number(g.variant_id) > 0 && g.available !== false;\n    });\n  });\n\n  var form = root.querySelector('[data-nh-lp2-form]');\n  var optionSelects = Array.prototype.slice.call(root.querySelectorAll('[data-nh-lp2-option]'));\n  var idInput = root.querySelector('[data-nh-lp2-variant-id]');\n  var atcButton = root.querySelector('[data-nh-lp2-atc]');\n  var atcLabel = root.querySelector('[data-nh-lp2-atc-label]');\n  var atcPrefix = (atcLabel && atcLabel.textContent.split(' \u2014 ')[0].trim()) || 'Ajouter mon pack';\n  var atcSub = root.querySelector('[data-nh-lp2-atc-sub]');\n  var msgNode = root.querySelector('[data-nh-lp2-msg]');\n  var priceNode = root.querySelector('[data-price]');\n  var compareNode = root.querySelector('[data-compare-price]');\n  var saveNode = root.querySelector('[data-save-amount]');\n  var stickyPrice = root.querySelector('[data-nh-lp2-sticky-price]');\n  var extraWrap = root.querySelector('[data-nh-lp2-extra]');\n  var extraRows = root.querySelector('[data-nh-lp2-extra-rows]');\n\n  function findVariant(values) {\n    for (var i = 0; i < data.variants.length; i += 1) {\n      var v = data.variants[i];\n      var match = true;\n      for (var j = 0; j < values.length; j += 1) {\n        if (v.options[j] !== values[j]) { match = false; break; }\n      }\n      if (match) return v;\n    }\n    return null;\n  }\n\n  function mainValues() {\n    return optionSelects.map(function (s) { return s.value; });\n  }\n\n  function selectedTier() {\n    var input = root.querySelector('input[name=\"nh_lp2_tier\"]:checked');\n    var qty = input ? Number(input.value) : 1;\n    return data.tiers.filter(function (t) { return t.qty === qty; })[0] || data.tiers[0];\n  }\n\n  /* ----- Vestes suppl\u00E9mentaires (tailles/coloris diff\u00E9rents pour les packs 2 et 3) ----- */\n  function extraSelectValues() {\n    if (!extraRows) return [];\n    return Array.prototype.slice.call(extraRows.querySelectorAll('[data-extra-jacket]')).map(function (row) {\n      return Array.prototype.slice.call(row.querySelectorAll('select')).map(function (s) { return s.value; });\n    });\n  }\n\n  function rebuildExtraRows() {\n    if (!extraWrap || !extraRows) return;\n    var tier = selectedTier();\n    var needed = tier.qty - 1;\n    var current = extraRows.querySelectorAll('[data-extra-jacket]').length;\n    if (needed === current) { extraWrap.hidden = needed === 0; return; }\n\n    var previous = extraSelectValues();\n    extraRows.innerHTML = '';\n    var base = mainValues();\n    for (var n = 0; n < needed; n += 1) {\n      var row = document.createElement('div');\n      row.className = 'nh-lp2__extra-row';\n      row.setAttribute('data-extra-jacket', String(n + 2));\n      var label = document.createElement('span');\n      label.className = 'nh-lp2__extra-label';\n      label.textContent = 'Veste ' + (n + 2);\n      row.appendChild(label);\n      optionSelects.forEach(function (source, optIndex) {\n        var select = document.createElement('select');\n        select.setAttribute('aria-label', (source.previousElementSibling ? '' : '') + 'Veste ' + (n + 2));\n        Array.prototype.slice.call(source.options).forEach(function (option) {\n          var clone = document.createElement('option');\n          clone.value = option.value;\n          clone.textContent = option.textContent;\n          select.appendChild(clone);\n        });\n        var remembered = previous[n] && previous[n][optIndex];\n        select.value = remembered || base[optIndex];\n        select.addEventListener('change', refreshOffer);\n        row.appendChild(select);\n      });\n      extraRows.appendChild(row);\n    }\n    extraWrap.hidden = needed === 0;\n  }\n\n  function selectedVariants() {\n    var tier = selectedTier();\n    var list = [];\n    var main = findVariant(mainValues());\n    list.push({ variant: main, label: 'Veste 1', values: mainValues() });\n    if (tier.qty > 1) {\n      extraSelectValues().forEach(function (values, index) {\n        list.push({ variant: findVariant(values), label: 'Veste ' + (index + 2), values: values });\n      });\n      while (list.length < tier.qty) list.push({ variant: main, label: 'Veste ' + (list.length + 1), values: mainValues() });\n    }\n    return list;\n  }\n\n  /* ----- Prix + value stack ----- */\n  function refreshOffer() {\n    var tier = selectedTier();\n    var chosen = selectedVariants();\n    var allFound = chosen.every(function (c) { return c.variant; });\n    var allAvailable = allFound && chosen.every(function (c) { return c.variant.available; });\n\n    var fallbackUnit = data.variants[0].price;\n    var payTotal = 0;\n    var jacketValue = 0;\n    chosen.forEach(function (c) {\n      var v = c.variant;\n      payTotal += v ? v.price : fallbackUnit;\n      jacketValue += v && v.compare_at_price > 0 ? v.compare_at_price : (v ? v.price : fallbackUnit);\n    });\n    var giftsValue = tier.gifts.reduce(function (sum, g) { return sum + g.value * g.qty; }, 0);\n    var stackTotal = jacketValue + giftsValue;\n    var unit = chosen[0].variant ? chosen[0].variant.price : fallbackUnit;\n    var unitCompare = chosen[0].variant && chosen[0].variant.compare_at_price > 0 ? chosen[0].variant.compare_at_price : unit;\n\n    root.querySelectorAll('[data-tier-price]').forEach(function (node) {\n      var qty = Number(node.getAttribute('data-tier-price'));\n      node.textContent = money(unit * qty);\n    });\n    root.querySelectorAll('[data-tier-compare]').forEach(function (node) {\n      var qty = Number(node.getAttribute('data-tier-compare'));\n      var t = data.tiers.filter(function (x) { return x.qty === qty; })[0];\n      var gv = t ? t.gifts.reduce(function (s, g) { return s + g.value * g.qty; }, 0) : 0;\n      node.textContent = money(unitCompare * qty + gv);\n    });\n    root.querySelectorAll('[data-tier-gift-value]').forEach(function (node) {\n      var qty = Number(node.getAttribute('data-tier-gift-value'));\n      var t = data.tiers.filter(function (x) { return x.qty === qty; })[0];\n      var gv = t ? t.gifts.reduce(function (s, g) { return s + g.value * g.qty; }, 0) : 0;\n      node.textContent = money(gv) + ' offerts';\n    });\n    root.querySelectorAll('[data-tier-unit]').forEach(function (node) {\n      node.textContent = 'soit ' + money(unit) + '/' + ((node.textContent.split('/')[1] || 'veste').trim() || 'veste');\n    });\n\n    var stackList = root.querySelector('[data-nh-lp2-stack-list]');\n    if (stackList) {\n      var rows = [];\n      rows.push('<li><strong>' + tier.qty + '\u00D7 ' + productLabel + '</strong><span><s>' + money(jacketValue) + '</s> ' + money(payTotal) + '</span></li>');\n      tier.gifts.forEach(function (g) {\n        rows.push('<li><strong>' + g.qty + '\u00D7 ' + g.label + '</strong><span><s>' + money(g.value * g.qty) + '</s> <em>' + g.offered + '</em></span></li>');\n      });\n      rows.push('<li><strong>Livraison suivie</strong><span><em>Offerte</em></span></li>');\n      stackList.innerHTML = rows.join('');\n    }\n    var stackTotalNode = root.querySelector('[data-nh-lp2-stack-total]');\n    if (stackTotalNode) {\n      stackTotalNode.innerHTML = '<s>' + money(stackTotal) + '</s><strong>' + money(payTotal) + '</strong>';\n    }\n\n    if (priceNode) priceNode.textContent = money(payTotal);\n    if (compareNode) compareNode.textContent = money(stackTotal);\n    if (saveNode) saveNode.textContent = 'Vous \u00E9conomisez ' + money(stackTotal - payTotal);\n    if (stickyPrice) stickyPrice.innerHTML = money(payTotal) + ' <s>' + money(stackTotal) + '</s>';\n    if (idInput && chosen[0].variant) idInput.value = chosen[0].variant.id;\n\n    if (atcButton) {\n      atcButton.disabled = !allAvailable;\n      if (atcLabel) {\n        if (allAvailable) {\n          atcLabel.textContent = atcPrefix + ' \u2014 ' + money(payTotal);\n        } else {\n          var missing = chosen.filter(function (c) { return !c.variant || !c.variant.available; })[0];\n          atcLabel.textContent = missing\n            ? 'Indisponible : ' + missing.label + ' (' + missing.values.join(' / ') + ')'\n            : 'Combinaison indisponible';\n        }\n      }\n      if (atcSub) {\n        atcSub.textContent = allAvailable\n          ? (money(giftsValue) + ' de cadeaux inclus \u00B7 ' + (data.deadline_text || ('Jusqu\u2019au ' + (data.deadline || 'fin de l\u2019offre'))))\n          : 'Choisissez une autre combinaison';\n      }\n    }\n  }\n\n  /* ----- Galerie par couleur : le template peut fournir data.gallery = {Couleur: [urls]}\n     et data.color_option_index ; les slides et miniatures suivent alors la couleur choisie. ----- */\n  function syncGalleryColor() {\n    if (!data.gallery || typeof data.color_option_index !== 'number') return;\n    var select = optionSelects[data.color_option_index];\n    if (!select) return;\n    var set = data.gallery[select.value];\n    if (!set || !set.length) return;\n    var slideImgs = root.querySelectorAll('[data-nh-lp2-gallery] .nh-lp2__gallery-slide img');\n    var thumbImgs = root.querySelectorAll('[data-nh-lp2-gallery-thumbs] .nh-lp2__gallery-thumb img');\n    slideImgs.forEach(function (img, i) {\n      if (!set[i]) return;\n      img.removeAttribute('srcset');\n      img.removeAttribute('sizes');\n      img.src = set[i];\n    });\n    thumbImgs.forEach(function (img, i) {\n      if (!set[i]) return;\n      img.removeAttribute('srcset');\n      img.removeAttribute('sizes');\n      img.src = set[i];\n    });\n  }\n\n  optionSelects.forEach(function (s) {\n    s.addEventListener('change', function () {\n      refreshOffer();\n      syncGalleryColor();\n    });\n  });\n  syncGalleryColor();\n\n  root.querySelectorAll('input[name=\"nh_lp2_tier\"]').forEach(function (input) {\n    input.addEventListener('change', function () {\n      root.querySelectorAll('[data-nh-lp2-tier]').forEach(function (label) {\n        label.classList.toggle('is-selected', label.contains(input) && input.checked);\n      });\n      rebuildExtraRows();\n      refreshOffer();\n    });\n  });\n\n  try {\n    rebuildExtraRows();\n    refreshOffer();\n  } catch (err) { /* la page reste utilisable : le fallback natif du formulaire prend le relais */ }\n\n  /* ----- Submit : vestes agr\u00E9g\u00E9es + cadeaux, retry sans cadeaux sur 422 ----- */\n  function giftItems(tier, bundleId) {\n    return tier.gifts.map(function (g) {\n      return {\n        id: Number(g.variant_id),\n        quantity: Number(g.qty),\n        properties: {\n          _nh_gift: 'true',\n          _nh_bundle_id: bundleId,\n          _nh_gift_label: g.qty + '\u00D7 ' + g.label + ' ' + g.offered.toLowerCase()\n        }\n      };\n    });\n  }\n\n  function jacketItems(chosen, bundleId, tierQty) {\n    var byId = {};\n    chosen.forEach(function (c) {\n      if (!c.variant) return;\n      if (!byId[c.variant.id]) {\n        byId[c.variant.id] = {\n          id: Number(c.variant.id),\n          quantity: 0,\n          properties: { _nh_bundle_id: bundleId, _nh_bundle_tier: String(tierQty) }\n        };\n      }\n      byId[c.variant.id].quantity += 1;\n      if (chosen.length > 1) {\n        byId[c.variant.id].properties['_nh_' + c.label.toLowerCase().replace(' ', '_')] = c.values.join(' / ');\n      }\n    });\n    return Object.keys(byId).map(function (key) { return byId[key]; });\n  }\n\n  function postItems(items) {\n    return fetch('/cart/add.js', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json', Accept: 'application/json' },\n      body: JSON.stringify({ items: items })\n    }).then(function (response) {\n      return response.json().then(function (payload) {\n        return { ok: response.ok, status: response.status, payload: payload };\n      });\n    });\n  }\n\n  if (form) {\n    form.addEventListener('submit', function (event) {\n      event.preventDefault();\n      if (!atcButton || atcButton.disabled || form.dataset.nhSubmitting === 'true') return;\n\n      var tier = selectedTier();\n      var chosen = selectedVariants();\n      if (!chosen.every(function (c) { return c.variant; })) return;\n\n      var bundleId = 'nh-lp2-' + Date.now().toString(36) + '-' + Math.random().toString(36).slice(2, 8);\n      var jackets = jacketItems(chosen, bundleId, tier.qty);\n      var items = jackets.concat(giftItems(tier, bundleId));\n\n      form.dataset.nhSubmitting = 'true';\n      atcButton.disabled = true;\n      var previous = atcLabel ? atcLabel.textContent : '';\n      if (atcLabel) atcLabel.textContent = 'Ajout du pack\u2026';\n      if (msgNode) msgNode.classList.remove('is-visible');\n\n      function succeed(resource, note) {\n        if (atcLabel) atcLabel.textContent = 'Pack ajout\u00E9 \u2713';\n        atcButton.classList.add('is-added');\n        if (note && msgNode) {\n          msgNode.textContent = note;\n          msgNode.classList.add('is-visible');\n        }\n        document.dispatchEvent(new CustomEvent('cart:update', {\n          bubbles: true,\n          detail: {\n            resource: resource || null,\n            sourceId: form.id || 'nh-lp2-form',\n            data: { source: '9heat-bundle-form', action: 'add', openDrawer: true, itemCount: tier.qty }\n          }\n        }));\n        window.setTimeout(function () {\n          atcButton.classList.remove('is-added');\n          atcButton.disabled = false;\n          refreshOffer();\n        }, 2600);\n      }\n\n      function failed(message) {\n        if (atcLabel) atcLabel.textContent = previous;\n        atcButton.disabled = false;\n        if (msgNode) {\n          msgNode.textContent = message || 'Impossible d\u2019ajouter ce pack. R\u00E9essayez.';\n          msgNode.classList.add('is-visible');\n        }\n      }\n\n      postItems(items)\n        .then(function (result) {\n          if (result.ok) { succeed(result.payload); return null; }\n          if (result.status === 422 && items.length > jackets.length) {\n            return postItems(jackets).then(function (retry) {\n              if (retry.ok) {\n                succeed(retry.payload, 'Pack ajout\u00E9 \u2014 un cadeau est momentan\u00E9ment indisponible, notre \u00E9quipe l\u2019ajoutera \u00E0 votre commande si possible.');\n              } else {\n                failed(retry.payload.description || retry.payload.message);\n              }\n            });\n          }\n          failed(result.payload.description || result.payload.message);\n          return null;\n        })\n        .catch(function () { failed('Connexion interrompue. V\u00E9rifiez votre r\u00E9seau et r\u00E9essayez.'); })\n        .finally(function () { delete form.dataset.nhSubmitting; });\n    });\n  }\n})();\n"],
  "mappings": "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",
  "names": []
}
