{
  "version": 3,
  "sources": ["/cdn/shop/t/9/assets/sv-capacity-picker.js?revision=20261015-0130"],
  "sourcesContent": ["if (!customElements.get('sv-capacity-picker')) {\ncustomElements.define('sv-capacity-picker', class extends HTMLElement {\nconnectedCallback() {\n  if (this.ready) return;\n  const root = this.closest('.sv-mp');\n  const form = root.querySelector('.sv-mp__form');\n  const select = form && form.querySelector('[name=\"id\"]');\n  const offers = [...root.querySelectorAll('.sv-mp__opt')];\n  if (!select || !offers.length) return;\n  this.ready = true;\n  const money = cents => new Intl.NumberFormat('fr-FR', {style:'currency', currency:this.dataset.currency || 'EUR'}).format(cents / 100);\n  const originals = offers.map(offer => ({\n    title:offer.querySelector('.sv-mp__otxt').innerHTML,\n    price:offer.querySelector('.sv-mp__oprice').innerHTML,\n    badge:offer.querySelector('.sv-mp__obadge') && offer.querySelector('.sv-mp__obadge').textContent\n  }));\n  const copyNodes = [...root.querySelectorAll('.sv-mp__title,.sv-mp__desc,.sv-mp__feat,.sv-mp__accb,.sv-mp__sinfo strong')];\n  const textSnapshots = [];\n  copyNodes.forEach(container => {\n    const walker = document.createTreeWalker(container, NodeFilter.SHOW_TEXT);\n    let node;\n    while ((node = walker.nextNode())) textSnapshots.push([node, node.textContent]);\n  });\n  const unitNote = (title, total, quantity, capacity) => {\n    const note = document.createElement('small');\n    note.className = 'sv-mp__unit';\n    if (quantity !== 2) return;\n    const bundle = root.querySelector('.sv-mp__bundle');\n    const text = bundle?.getAttribute(capacity === 2000 ? 'data-offer-two-2to' : 'data-offer-two-1to') || '';\n    if (!text.trim()) return;\n    note.textContent = text;\n    title.appendChild(note);\n  };\n  const giftCopies = ['.sv-mp__gift-heading','.sv-mp__extra-key','.sv-mp__gift-total'].map(selector => {const element=root.querySelector(selector);return [element,element?.textContent];});\n  const sync = () => {\n    const radio = this.querySelector('input:checked');\n    if (!radio) return;\n    const isTwo = radio.dataset.capacity === '2 To';\n    select.value = radio.value;\n    giftCopies.forEach(([element,text])=>{if(element)element.textContent=text;});\n    const unit = isTwo ? 4499 : 3499;\n    const base = isTwo ? 11998 : 5999;\n    const totals = [unit, unit * 2 - 499, unit * 3 - 1498];\n    offers.forEach((offer,index) => {\n      const title = offer.querySelector('.sv-mp__otxt');\n      const price = offer.querySelector('.sv-mp__oprice');\n      const badge = offer.querySelector('.sv-mp__obadge');\n      if (!isTwo) {\n        title.innerHTML = originals[index].title;\n        price.innerHTML = originals[index].price;\n        if (badge) { badge.textContent = originals[index].badge; badge.hidden = false; }\n        unitNote(title, [3499,5500,7500][index], index + 1, 1000);\n        return;\n      }\n      title.replaceChildren();\n      const strong = document.createElement('strong');\n      strong.textContent = (index + 1) + 'x SAUVEO (2 To) + Adaptateur';\n      title.appendChild(strong);\n      if (base * (index + 1) > totals[index]) {\n        const small = document.createElement('small');\n        small.textContent = '\u00C9CONOMISEZ ' + money(base * (index + 1) - totals[index]);\n        title.appendChild(small);\n      }\n      unitNote(title, totals[index], index + 1, 2000);\n      price.replaceChildren();\n      const total = document.createElement('strong');\n      total.textContent = money(totals[index]);\n      price.appendChild(total);\n      if (base * (index + 1) > totals[index]) {\n        const compare = document.createElement('s');\n        compare.textContent = money(base * (index + 1));\n        price.appendChild(compare);\n      }\n      if (badge) {\n        badge.hidden = false;\n        badge.textContent = index > 0 ? originals[index].badge : '-' + Math.round((1 - totals[index] / (base * (index + 1))) * 100) + ' %';\n      }\n    });\n    textSnapshots.forEach(([node, text]) => {\n      node.textContent = isTwo ? text.replace(/1000\\s*(GO|GB)/gi,'2000 $1').replace(/1\\s*TO\\b/gi,'2 To') : text;\n    });\n    const btn = root.querySelector('.sv-mp__atc');\n    btn.disabled = radio.dataset.available !== 'true';\n    const chosen = offers.find(o => o.querySelector('input').checked);\n    const quantity = chosen ? Number(chosen.querySelector('input').value) : 1;\n    const stickyPrice = root.querySelector('.sv-mp__sinfo > span');\n    if (stickyPrice) stickyPrice.textContent = money(isTwo ? (totals[quantity-1] || unit * quantity) : ([3499,5500,7500][quantity-1] || unit * quantity));\n    const url = new URL(location.href);\n    url.searchParams.set('variant', radio.value);\n    history.replaceState(history.state,'',url);\n    select.dispatchEvent(new Event('change',{bubbles:true}));\n  };\n  this.addEventListener('change',sync);\n  offers.forEach(offer => offer.querySelector('input').addEventListener('change',sync));\n  sync();\n}\n});\n}\n"],
  "mappings": "AAAK,eAAe,IAAI,oBAAoB,GAC5C,eAAe,OAAO,qBAAsB,cAAc,WAAY,CACtE,mBAAoB,CAClB,GAAI,KAAK,MAAO,OAChB,MAAM,KAAO,KAAK,QAAQ,QAAQ,EAC5B,KAAO,KAAK,cAAc,cAAc,EACxC,OAAS,MAAQ,KAAK,cAAc,aAAa,EACjD,OAAS,CAAC,GAAG,KAAK,iBAAiB,aAAa,CAAC,EACvD,GAAI,CAAC,QAAU,CAAC,OAAO,OAAQ,OAC/B,KAAK,MAAQ,GACb,MAAM,MAAQ,OAAS,IAAI,KAAK,aAAa,QAAS,CAAC,MAAM,WAAY,SAAS,KAAK,QAAQ,UAAY,KAAK,CAAC,EAAE,OAAO,MAAQ,GAAG,EAC/H,UAAY,OAAO,IAAI,QAAU,CACrC,MAAM,MAAM,cAAc,cAAc,EAAE,UAC1C,MAAM,MAAM,cAAc,gBAAgB,EAAE,UAC5C,MAAM,MAAM,cAAc,gBAAgB,GAAK,MAAM,cAAc,gBAAgB,EAAE,WACvF,EAAE,EACI,UAAY,CAAC,GAAG,KAAK,iBAAiB,2EAA2E,CAAC,EAClH,cAAgB,CAAC,EACvB,UAAU,QAAQ,WAAa,CAC7B,MAAM,OAAS,SAAS,iBAAiB,UAAW,WAAW,SAAS,EACxE,IAAI,KACJ,KAAQ,KAAO,OAAO,SAAS,GAAI,cAAc,KAAK,CAAC,KAAM,KAAK,WAAW,CAAC,CAChF,CAAC,EACD,MAAM,SAAW,CAAC,MAAO,MAAO,SAAU,WAAa,CACrD,MAAM,KAAO,SAAS,cAAc,OAAO,EAE3C,GADA,KAAK,UAAY,cACb,WAAa,EAAG,OAEpB,MAAM,KADS,KAAK,cAAc,gBAAgB,GAC7B,aAAa,WAAa,IAAO,qBAAuB,oBAAoB,GAAK,GACjG,KAAK,KAAK,IACf,KAAK,YAAc,KACnB,MAAM,YAAY,IAAI,EACxB,EACM,WAAa,CAAC,uBAAuB,oBAAoB,oBAAoB,EAAE,IAAI,UAAY,CAAC,MAAM,QAAQ,KAAK,cAAc,QAAQ,EAAE,MAAO,CAAC,QAAQ,SAAS,WAAW,CAAE,CAAC,EAClL,KAAO,IAAM,CACjB,MAAM,MAAQ,KAAK,cAAc,eAAe,EAChD,GAAI,CAAC,MAAO,OACZ,MAAM,MAAQ,MAAM,QAAQ,WAAa,OACzC,OAAO,MAAQ,MAAM,MACrB,WAAW,QAAQ,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAI,UAAQ,QAAQ,YAAY,KAAK,CAAC,EAC3E,MAAM,KAAO,MAAQ,KAAO,KACtB,KAAO,MAAQ,MAAQ,KACvB,OAAS,CAAC,KAAM,KAAO,EAAI,IAAK,KAAO,EAAI,IAAI,EACrD,OAAO,QAAQ,CAAC,MAAM,QAAU,CAC9B,MAAM,MAAQ,MAAM,cAAc,cAAc,EAC1C,MAAQ,MAAM,cAAc,gBAAgB,EAC5C,MAAQ,MAAM,cAAc,gBAAgB,EAClD,GAAI,CAAC,MAAO,CACV,MAAM,UAAY,UAAU,KAAK,EAAE,MACnC,MAAM,UAAY,UAAU,KAAK,EAAE,MAC/B,QAAS,MAAM,YAAc,UAAU,KAAK,EAAE,MAAO,MAAM,OAAS,IACxE,SAAS,MAAO,CAAC,KAAK,KAAK,IAAI,EAAE,KAAK,EAAG,MAAQ,EAAG,GAAI,EACxD,MACF,CACA,MAAM,gBAAgB,EACtB,MAAM,OAAS,SAAS,cAAc,QAAQ,EAG9C,GAFA,OAAO,YAAe,MAAQ,EAAK,+BACnC,MAAM,YAAY,MAAM,EACpB,MAAQ,MAAQ,GAAK,OAAO,KAAK,EAAG,CACtC,MAAM,MAAQ,SAAS,cAAc,OAAO,EAC5C,MAAM,YAAc,iBAAgB,MAAM,MAAQ,MAAQ,GAAK,OAAO,KAAK,CAAC,EAC5E,MAAM,YAAY,KAAK,CACzB,CACA,SAAS,MAAO,OAAO,KAAK,EAAG,MAAQ,EAAG,GAAI,EAC9C,MAAM,gBAAgB,EACtB,MAAM,MAAQ,SAAS,cAAc,QAAQ,EAG7C,GAFA,MAAM,YAAc,MAAM,OAAO,KAAK,CAAC,EACvC,MAAM,YAAY,KAAK,EACnB,MAAQ,MAAQ,GAAK,OAAO,KAAK,EAAG,CACtC,MAAM,QAAU,SAAS,cAAc,GAAG,EAC1C,QAAQ,YAAc,MAAM,MAAQ,MAAQ,EAAE,EAC9C,MAAM,YAAY,OAAO,CAC3B,CACI,QACF,MAAM,OAAS,GACf,MAAM,YAAc,MAAQ,EAAI,UAAU,KAAK,EAAE,MAAQ,IAAM,KAAK,OAAO,EAAI,OAAO,KAAK,GAAK,MAAQ,MAAQ,KAAO,GAAG,EAAI,KAElI,CAAC,EACD,cAAc,QAAQ,CAAC,CAAC,KAAM,IAAI,IAAM,CACtC,KAAK,YAAc,MAAQ,KAAK,QAAQ,mBAAmB,SAAS,EAAE,QAAQ,aAAa,MAAM,EAAI,IACvG,CAAC,EACD,MAAM,IAAM,KAAK,cAAc,aAAa,EAC5C,IAAI,SAAW,MAAM,QAAQ,YAAc,OAC3C,MAAM,OAAS,OAAO,KAAK,GAAK,EAAE,cAAc,OAAO,EAAE,OAAO,EAC1D,SAAW,OAAS,OAAO,OAAO,cAAc,OAAO,EAAE,KAAK,EAAI,EAClE,YAAc,KAAK,cAAc,sBAAsB,EACzD,cAAa,YAAY,YAAc,MAAM,MAAS,OAAO,SAAS,CAAC,GAAK,KAAO,SAAa,CAAC,KAAK,KAAK,IAAI,EAAE,SAAS,CAAC,GAAK,KAAO,QAAS,GACpJ,MAAM,IAAM,IAAI,IAAI,SAAS,IAAI,EACjC,IAAI,aAAa,IAAI,UAAW,MAAM,KAAK,EAC3C,QAAQ,aAAa,QAAQ,MAAM,GAAG,GAAG,EACzC,OAAO,cAAc,IAAI,MAAM,SAAS,CAAC,QAAQ,EAAI,CAAC,CAAC,CACzD,EACA,KAAK,iBAAiB,SAAS,IAAI,EACnC,OAAO,QAAQ,OAAS,MAAM,cAAc,OAAO,EAAE,iBAAiB,SAAS,IAAI,CAAC,EACpF,KAAK,CACP,CACA,CAAC",
  "names": []
}
