{
  "version": 3,
  "sources": ["/cdn/shop/t/76/assets/alien-pdp.js?x=1793946427711"],
  "sourcesContent": ["/* alien-pdp: pagina prodotto comune */\n(() => {\n  const root = document.getElementById('rz8');\n  if (!root || root.dataset.ready) return;\n  root.dataset.ready = '1';\n  const $ = s => root.querySelector(s), $$ = s => [...root.querySelectorAll(s)];\n  const route = (window.Shopify && Shopify.routes && Shopify.routes.root) || '/';\n  const jp = id => { try { return JSON.parse(document.getElementById(id).textContent); } catch (e) { return null; } };\n  const T = jp('pdp-i18n') || {};\n  const data = jp('pdp-data');\n  if (!data || !data.solo) return;\n  const fmt = c => { try { return new Intl.NumberFormat(document.documentElement.lang || 'en', { style: 'currency', currency: data.currency, maximumFractionDigits: c % 100 ? undefined : 0 }).format(c / 100); } catch (e) { return null; } };\n  const st = (el, state, val) => { if (!el) return; el.querySelectorAll('[data-st]').forEach(x => x.hidden = x.dataset.st !== state); if (val !== undefined) el.querySelectorAll('[data-v]').forEach(x => x.textContent = val); };\n  const show = (el, on) => { if (el) el.hidden = !on; };\n  const emit = (action, extra) => { try { if (window.Shopify?.customerPrivacy?.analyticsProcessingAllowed() !== true) return; if (window.Shopify?.analytics?.publish) Promise.resolve(Shopify.analytics.publish('alienation:pdp_' + action, Object.assign({ product_id: String(data.product_id), experience: data.experience }, extra || {}))).catch(() => {}); } catch (e) {} };\n\n  // gallery\n  const track = $('#rz8-track'), slides = track ? [...track.children] : [], count = $('#rz8-count'), thumbs = $$('#rz8-dots button');\n  const idx = () => Math.min(slides.length - 1, Math.abs(Math.round(track.scrollLeft / (track.clientWidth || 1))));\n  if (slides.length > 1) {\n  thumbs.forEach(b => b.onclick = () => track.scrollTo({ left: slides[+b.dataset.slide].offsetLeft, behavior: 'smooth' }));\n  track.addEventListener('scroll', () => requestAnimationFrame(() => { const i = idx(); if (count) count.textContent = (i + 1) + ' / ' + slides.length; thumbs.forEach((b, j) => b.setAttribute('aria-current', j === i)); }), { passive: true });\n  $$('[data-gal]').forEach(b => b.onclick = () => { const n = (idx() + +b.dataset.gal + slides.length) % slides.length; track.scrollTo({ left: slides[n].offsetLeft, behavior: 'smooth' }); });\n  }\n\n  // format (solo / pack) + size\n  const opts = $$('#rz8-fmt .opt'), sizes = $('#rz8-sizes'), err = $('#rz8-err'), chosen = $('#rz8-chosen'), stock = $('#rz8-stock'), msg = $('#rz8-msg'), addBtn = $('#rz8-add');\n  const dockSizes = $('#rz8-dock-sizes'), dockLabel = $('#rz8-dock-label'), sheet = $('#rz8-sheet'), dockSel = $('#rz8-dock-sel'), dockAdd = $('#rz8-dock-add'), dockStock = $('#rz8-dock-stock'), dockPrice = $('#rz8-dock-price');\n  sizes.querySelectorAll('.sz').forEach(b => { const c = b.cloneNode(true); c.tabIndex = -1; dockSizes.appendChild(c); });\n  const setSheet = open => { sheet.hidden = !open; dockSel.setAttribute('aria-expanded', open); };\n  dockSel.onclick = () => setSheet(sheet.hidden);\n  let key = 'solo', size = null, busy = false;\n  const cur = () => data[key], v = () => size && cur().variants[size];\n  function paint() {\n    const f = cur();\n    $$('.sz').forEach(b => {\n      const x = f.variants[b.dataset.size], out = !x || !x.ok, cnt = x && x.stock > 0 ? x.stock : 99, small = b.querySelector('small');\n      b.setAttribute('aria-disabled', out); if (out) b.removeAttribute('aria-pressed'); else b.setAttribute('aria-pressed', b.dataset.size === size);\n      small.className = ''; st(small, out ? 'out' : cnt === 1 ? 'last' : cnt <= 3 ? 'low' : '', out ? undefined : String(cnt));\n      if (!out && cnt <= 3) small.className = cnt === 1 ? 'low last' : 'low';\n    });\n    if (size && (!f.variants[size] || !f.variants[size].ok)) size = null;\n    chosen.textContent = size || T.choose;\n    const price = fmt(f.price), soldOut = !Object.values(f.variants).some(y => y && y.ok);\n    if (soldOut) { [addBtn, dockAdd].forEach(b => { b.disabled = true; st(b, 'soldout'); }); }\n    else { if (!busy) [addBtn, dockAdd].forEach(b => b.disabled = false); st(addBtn, key); st(dockAdd, size ? key : key + '-n'); }\n    if (price) dockPrice.textContent = price;\n    if (!size) st(dockSel, 'none'); else if (key === 'solo') st(dockSel, 'solo', size); else { st(dockSel, 'pack', size); dockSel.querySelector('[data-pk]').textContent = (cur().short || ''); }\n    dockSel.classList.toggle('picked', !!size);\n    if (size) st(dockLabel, 'val', size); else st(dockLabel, 'none');\n    const x = v();\n    if (!x) { stock.textContent = ''; return; }\n    stock.textContent = ''; stock.classList.remove('ok'); stock.classList.toggle('last', x.stock === 1);\n  }\n  function pick(k) { if (!data[k]) return; key = k; const _u = document.getElementById('bt-up'); if (_u) _u.hidden = true; opts.forEach(o => o.setAttribute('aria-checked', o.dataset.key === k)); show(err, false); show(msg, false); paint(); emit('format_select', { format: k }); }\n  opts.forEach(o => o.onclick = () => pick(o.dataset.key));\n  [sizes, dockSizes].forEach(g => g.addEventListener('click', e => { const b = e.target.closest('.sz'); if (!b || b.getAttribute('aria-disabled') === 'true') return; size = b.dataset.size; sizes.classList.remove('err'); dockSizes.classList.remove('err'); show(err, false); setSheet(false); paint(); emit('size_select', { size, format: key }); }));\n  $$('[data-pick]').forEach(b => { if (!data[b.dataset.pick]) { b.hidden = true; return; } b.onclick = () => { pick(b.dataset.pick); const f = $('#rz8-fmt'); if (f) f.scrollIntoView({ behavior: 'smooth', block: 'center' }); }; });\n  paint();\n\n  async function add(fromDock) {\n    if (busy || addBtn.disabled) return;\n    const x = v();\n    if (!x) { show(err, true); if (fromDock) { setSheet(true); dockSizes.classList.add('err'); return; } sizes.classList.add('err'); sizes.scrollIntoView({ behavior: 'smooth', block: 'center' }); return; }\n    busy = true; const btns = [addBtn, dockAdd]; btns.forEach(b => { b.disabled = true; st(b, 'busy'); });\n    try {\n      const r = await fetch(route + 'cart/add.js', { method: 'POST', credentials: 'same-origin', __ac: true, headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ items: [{ id: x.id, quantity: 1 }] }) });\n      const res = await r.json(); if (!r.ok) throw Error(typeof res.description === 'string' ? res.description : T.fail);\n      btns.forEach(b => st(b, 'done'));\n      st(msg, 'added'); show(msg, true); if (fromDock) show(dockStock, true);\n      emit('add_to_cart', { format: key, size, variant_id: String(x.id) });\n      if (key === 'solo') offerUpgrade(res.items && res.items[0] && res.items[0].key);\n      document.dispatchEvent(new CustomEvent('product:added', { detail: { variant: { id: x.id }, variantId: x.id, quantity: 1 } }));\n    } catch (e) { st(msg, 'fail'); show(msg, true); }\n    finally { setTimeout(() => { busy = false; btns.forEach(b => b.disabled = false); paint(); }, 1600); }\n  }\n\n  // after adding the single tee: offer the cheapest pack available in the same size\n  const TH = data.th || {};\n  const up = $('#bt-up');\n  let upKey = null, lineKey = null, upSize = null;\n  function offerUpgrade(k) {\n    upSize = size; lineKey = k;\n    upKey = (data.upsell || []).find(p => data[p] && data[p].variants[upSize] && data[p].variants[upSize].ok);\n    if (!upKey || !lineKey) return;\n    const f = data[upKey];\n    $('#bt-up-th').innerHTML = (f.tees || []).filter(t => TH[t]).map(t => '<i><img src=\"' + TH[t] + '\" alt=\"\"></i>').join('');\n    st($('#bt-up-title'), upKey, upSize);\n    st($('#bt-up-sub'), upKey);\n    st($('#bt-up-go'), upKey);\n    up.hidden = false; show(msg, false);\n    emit('upsell_view', { pack: upKey, size: upSize });\n  }\n  if ($('#bt-up-no')) $('#bt-up-no').onclick = () => { up.hidden = true; st(msg, 'added'); show(msg, true); };\n  if ($('#bt-up-go')) $('#bt-up-go').onclick = async () => {\n    const go = $('#bt-up-go'); go.disabled = true; st(go, 'wait');\n    try {\n      const pv = data[upKey].variants[upSize];\n      const c = await fetch(route + 'cart.js', { credentials: 'same-origin', headers: { Accept: 'application/json' } }).then(r => r.json());\n      const ln = (c.items || []).find(i => i.key === lineKey);\n      const r1 = ln ? await fetch(route + 'cart/change.js', { method: 'POST', credentials: 'same-origin', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ id: lineKey, quantity: Math.max(0, ln.quantity - 1) }) }) : { ok: true };\n      if (!r1.ok) throw Error('change');\n      const r2 = await fetch(route + 'cart/add.js', { method: 'POST', credentials: 'same-origin', __ac: true, headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ items: [{ id: pv.id, quantity: 1 }] }) });\n      if (!r2.ok) throw Error('add');\n      up.hidden = true; pick(upKey);\n      st(msg, 'added'); show(msg, true);\n      emit('upsell_accept', { pack: upKey, size: upSize });\n      document.dispatchEvent(new CustomEvent('product:added', { detail: { variant: { id: pv.id }, variantId: pv.id, quantity: 1 } }));\n    } catch (e) { st(go, upKey); st(msg, 'fail'); show(msg, true); }\n    finally { go.disabled = false; }\n  };\n\n\n  addBtn.onclick = () => add(false); dockAdd.onclick = () => add(true);\n\n  // sticky dock\n  const sticky = $('#rz8-sticky'); let shown = null;\n  const overlayOpen = () => {\n    const h = document.documentElement, bd = document.body;\n    if ([h, bd].some(el => getComputedStyle(el).overflow === 'hidden' || getComputedStyle(el).position === 'fixed')) return true;\n    if (document.querySelector('#sidebar-cart[aria-hidden=\"false\"], .Drawer[aria-hidden=\"false\"]')) return true;\n    let el = document.elementFromPoint(innerWidth / 2, innerHeight / 2);\n    while (el && el !== bd) { if (sticky.contains(el) || root.contains(el)) return false; if (getComputedStyle(el).position === 'fixed') return true; el = el.parentElement; }\n    return false;\n  };\n  let lastVis = null; const sync = force => { const r = addBtn.getBoundingClientRect(), vis = r.bottom < 0 || r.top > innerHeight; if (!force && vis === lastVis) return; lastVis = vis; const on = vis && !overlayOpen(); if (on === shown) return; shown = on; sticky.classList.toggle('show', on); sticky.setAttribute('aria-hidden', !on); sticky.querySelectorAll('button').forEach(b => b.tabIndex = on ? 0 : -1); };\n  let qd = false; const q = () => { if (qd) return; qd = true; requestAnimationFrame(() => { qd = false; sync(true); }); };\n  const mo = new MutationObserver(q);\n  [document.documentElement, document.body].forEach(el => mo.observe(el, { attributes: true, attributeFilter: ['class', 'style'] }));\n  mo.observe(document.body, { subtree: true, attributes: true, attributeFilter: ['aria-hidden', 'open'] });\n  let sq = false; addEventListener('scroll', () => { if (sq) return; sq = true; requestAnimationFrame(() => { sq = false; sync(); }); }, { passive: true }); let rw = innerWidth; addEventListener('resize', () => { if (innerWidth !== rw) { rw = innerWidth; sync(true); } }); sync(true);\n\n  // pack carousel dots\n  const rail = $('#bt-rail'), dots = $('#bt-dots');\n  if (rail && dots) { const n = rail.children.length; dots.innerHTML = '<i></i>'.repeat(n); const ds = [...dots.children]; const upd = () => { const w = rail.firstElementChild.offsetWidth + 12, i = Math.round(rail.scrollLeft / w); ds.forEach((d, j) => d.classList.toggle('on', j === i)); }; rail.addEventListener('scroll', () => requestAnimationFrame(upd), { passive: true }); upd(); }\n\n  // size chart\n  const chart = document.getElementById('rz8-chart');\n  if (chart) { $$('[data-open-chart]').forEach(b => b.onclick = () => chart.showModal()); chart.querySelector('[data-close]').onclick = () => chart.close(); chart.addEventListener('click', e => { if (e.target === chart) chart.close(); }); }\n})();\n\n/* Video delle sezioni: avvio/pausa automatici li gestisce SOLO assets/alien-video.js.\n   Qui restano i tasti dell'utente (pausa/play e audio). */\n(() => {\n  function initVideoButtons() {\n    const T = JSON.parse((document.getElementById('pdp-i18n') || {}).textContent || '{}');\n    const root = document.getElementById('rz8');\n    if (!root || root.dataset.videoReady) return;\n    root.dataset.videoReady = '1';\n    root.querySelectorAll('video[data-auto]').forEach(video => {\n      const wrap = video.parentElement;\n      const toggle = wrap.querySelector('[data-toggle]');\n      const sound = wrap.querySelector('[data-sound]');\n      const sync = () => {\n        if (toggle) { toggle.textContent = video.paused ? '\u25B6' : '\u275A\u275A'; toggle.setAttribute('aria-label', video.paused ? T.play : T.pause); }\n        if (sound) { sound.textContent = video.muted ? '\uD83D\uDD07' : '\uD83D\uDD0A'; sound.setAttribute('aria-label', video.muted ? T.sound_on : T.sound_off); }\n      };\n      ['playing', 'pause', 'volumechange'].forEach(ev => video.addEventListener(ev, sync));\n      if (toggle) toggle.addEventListener('click', e => {\n        e.preventDefault(); e.stopPropagation();\n        if (video.paused) { delete video.dataset.userPaused; const p = video.play(); if (p && p.catch) p.catch(() => {}); }\n        else { video.dataset.userPaused = '1'; video.pause(); }\n      });\n      if (sound) sound.addEventListener('click', e => {\n        e.preventDefault();\n        video.muted = !video.muted;\n        if (video.muted) delete video.dataset.userSound; else video.dataset.userSound = '1';\n        delete video.dataset.userPaused;\n        const p = video.play(); if (p && p.catch) p.catch(() => {});\n      });\n      sync();\n    });\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', initVideoButtons, { once: true });\n  else initVideoButtons();\n})();\n\n/* \"Solo X in magazzino\" dell'app scorte: tiene numero e stile dell'app, traduce solo le parole */\n(() => {\n  const box = document.getElementById('hey-low-stock');\n  const T = JSON.parse((document.getElementById('pdp-i18n') || {}).textContent || '{}');\n  if (!box || !T.stock || (document.documentElement.lang || 'it').slice(0, 2) === 'it') return;\n  const [pre, post] = T.stock.split('{n}');\n  const hasWords = n => n.nodeType === 3 && /[^\\d\\s.,:\u00B7\u2022\u25CF!]/.test(n.nodeValue);\n  let busy = false;\n  const fix = () => {\n    if (busy || !box.textContent.trim()) return;\n    const m = box.textContent.match(/\\d+/); if (!m) return;\n    busy = true;\n    const walk = document.createTreeWalker(box, NodeFilter.SHOW_ELEMENT);\n    let numEl = null;\n    while (walk.nextNode()) { const e = walk.currentNode; if (e.children.length === 0 && /^\\s*\\d+\\s*$/.test(e.textContent)) { numEl = e; break; } }\n    if (box.dataset.tr === box.textContent) { busy = false; return; }\n    const tw = document.createTreeWalker(box, NodeFilter.SHOW_TEXT), texts = [];\n    while (tw.nextNode()) texts.push(tw.currentNode);\n    if (numEl) {\n      texts.filter(t => !numEl.contains(t) && hasWords(t)).forEach(t => t.remove());\n      numEl.parentNode.insertBefore(document.createTextNode(pre), numEl);\n      numEl.parentNode.insertBefore(document.createTextNode(post), numEl.nextSibling);\n    } else {\n      const host = texts.find(t => /\\d/.test(t.nodeValue));\n      if (host) { host.nodeValue = pre + m[0] + post; texts.filter(t => t !== host && hasWords(t)).forEach(t => t.remove()); }\n    }\n    box.dataset.tr = box.textContent;\n    busy = false;\n  };\n  new MutationObserver(() => { if (!busy) setTimeout(fix, 0); }).observe(box, { childList: true, subtree: true, characterData: true });\n  fix();\n  /* l'app a volte scrive fuori da #hey-low-stock: cerca \"Solo N in magazzino\" ovunque nella pagina */\n  const fixAny = () => {\n    document.querySelectorAll('#rz8 div, #rz8 p, #rz8 span').forEach(el => {\n      if (el === box || box.contains(el) || el.dataset.tr === el.textContent) return;\n      const t = el.textContent;\n      if (!/\\bSolo\\s*\\d+\\s*in\\s*magazzino/i.test(t) || t.length > 60) return;\n      if ([...el.children].some(ch => /magazzino/i.test(ch.textContent) && /\\d/.test(ch.textContent) && ch.textContent.length < t.length)) return;\n      const n = t.match(/\\d+/)[0], tw = document.createTreeWalker(el, NodeFilter.SHOW_TEXT), texts = [];\n      while (tw.nextNode()) texts.push(tw.currentNode);\n      const host = texts.find(x => /\\d/.test(x.nodeValue));\n      host.nodeValue = host.nodeValue.replace(/Solo\\s*/i, '').replace(/\\d+/, pre + n);\n      texts.filter(x => x !== host && /magazzino/i.test(x.nodeValue)).forEach(x => x.nodeValue = x.nodeValue.replace(/\\s*in\\s*magazzino/i, post));\n      texts.filter(x => x !== host && /^\\s*Solo\\s*$/i.test(x.nodeValue)).forEach(x => x.remove());\n      el.dataset.tr = el.textContent;\n    });\n  };\n  let fxT = 0; new MutationObserver(ms => { if (!ms.some(m => [...m.addedNodes].some(n => /magazzino/i.test(n.textContent || \"\")))) return; clearTimeout(fxT); fxT = setTimeout(fixAny, 150); }).observe(document.getElementById('rz8') || document.body, { childList: true, subtree: true });\n  fixAny();\n})();\n\n/* Extra comuni: cursore spento/acceso (#sd-cmp) e \"Scegli la tua taglia \u2191\" ([data-jump-size]) */\n(() => {\n  const root = document.getElementById('rz8'); if (!root) return;\n  root.querySelectorAll('.cmp').forEach(cmp => { const r = cmp.querySelector('input[type=range]'); if (r) { const set = () => cmp.style.setProperty('--x', r.value + '%'); r.addEventListener('input', set); set(); } });\n  const target = root.querySelector('#rz8-sizes') || root.querySelector('#rz8-add');\n  root.querySelectorAll('[data-jump-size]').forEach(b => b.addEventListener('click', () => target && target.scrollIntoView({ behavior: 'smooth', block: 'center' })));\n  /* soglie spedizione in euro \u2192 valuta del mercato (Shopify.currency.rate) */\n  const cur = (window.Shopify && Shopify.currency) || {}, rate = +cur.rate;\n  if (cur.active && cur.active !== 'EUR' && rate > 0) root.querySelectorAll('[data-eur]').forEach(el => {\n    const [c, label] = el.dataset.eur.split('|'), v = Math.ceil(+c * rate / 100);\n    let s; try { s = new Intl.NumberFormat(document.documentElement.lang || 'en', { style: 'currency', currency: cur.active, maximumFractionDigits: 0 }).format(v); } catch (e) { return; }\n    const tw = document.createTreeWalker(el, NodeFilter.SHOW_TEXT);\n    while (tw.nextNode()) if (tw.currentNode.nodeValue.includes(label)) tw.currentNode.nodeValue = tw.currentNode.nodeValue.replace(label, s);\n  });\n})();\n\n/* Calcolatore taglia (Retro Zip): regole nel JSON #pdp-calc */\n(() => {\n  const cfg = document.getElementById('pdp-calc'); if (!cfg) return;\n  const { rules, between } = JSON.parse(cfg.textContent);\n  const root = document.getElementById('rz8'), $ = s => root.querySelector(s);\n  const st = (el, s, v) => { el.querySelectorAll('[data-st]').forEach(x => x.hidden = x.dataset.st !== s); if (v !== undefined) el.querySelectorAll('[data-v]').forEach(x => x.textContent = v); };\n  const ops = { '<': (a, b) => a < b, '<=': (a, b) => a <= b, '>': (a, b) => a > b, '>=': (a, b) => a >= b, '=': (a, b) => a === b };\n  const w = $('#rz8-w'), h = $('#rz8-h'), res = $('#rz8-res'), use = $('#rz8-use'), sizes = $('#rz8-sizes');\n  const order = [...sizes.querySelectorAll('.sz')].map(b => b.dataset.size);\n  let advice = null;\n  function calculate() {\n    const wv = parseFloat(w.value), hv = parseFloat(h.value);\n    if (w.dataset.touched === '1') $('#rz8-wv').textContent = wv + ' kg';\n    if (h.dataset.touched === '1') $('#rz8-hv').textContent = hv + ' cm';\n    res.hidden = false;\n    if (w.dataset.touched !== '1' || h.dataset.touched !== '1') { st(res, 'none'); use.hidden = true; advice = null; return; }\n    const pick = (a, b) => (rules.find(r => r.if.every(([i, op, n]) => ops[op]([a, b][i], n))) || {}).size || null;\n    const ww = Math.min(Math.max(Math.round(wv), 40), 100), hh = Math.min(Math.max(Math.round(hv), 140), 190);\n    advice = pick(ww, hh) || pick(ww + 1, hh) || pick(ww - 1, hh) || (ww < 50 ? order[0] : order[order.length - 1]);\n    const near = [pick(ww - 2, hh), pick(ww + 2, hh)].filter(x => x && x !== advice).sort((a, b) => order.indexOf(a) - order.indexOf(b));\n    st(res, 'ok', advice);\n    const pair = near.length ? [advice, near[near.length - 1]].sort((a, b) => order.indexOf(a) - order.indexOf(b)) : null;\n    $('#rz8-alt').textContent = pair ? between.replace('{a}', pair[0]).replace(/\\{b\\}/g, pair[1]) : '';\n    const b = sizes.querySelector('[data-size=\"' + advice + '\"]'), out = !b || b.getAttribute('aria-disabled') === 'true';\n    use.hidden = false; use.disabled = out; st(use, out ? 'out' : 'ok', advice);\n  }\n  [w, h].forEach(el => el.addEventListener('input', () => { el.dataset.touched = '1'; calculate(); }));\n  use.addEventListener('click', () => { const b = advice && sizes.querySelector('[data-size=\"' + advice + '\"]'); if (b) { b.click(); sizes.scrollIntoView({ behavior: 'smooth', block: 'center' }); } });\n  root.querySelectorAll('[data-jump-size]').forEach(b => b.addEventListener('click', () => { $('#rz8-calc').open = true; calculate(); }));\n})();\n\n/* Taglia unica: seleziona da sola l'unica variante */\n(() => {\n  const s = document.querySelectorAll('#rz8-sizes .sz');\n  if (s.length === 1 && document.getElementById('rz8-sizes').hidden) s[0].click();\n})();\n"],
  "mappings": "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",
  "names": ["x", "el", "b"]
}
