{
  "version": 3,
  "sources": ["/cdn/shop/t/67/assets/sig-drop.js?cb=28704"],
  "sourcesContent": ["/* Signature Series drop pages (sections/sig-*.liquid).\n   One controller for the whole page: phase (pre \u2192 live \u2192 soldout), every countdown, the dot-matrix board, boxes left,\n   the list signup, the claim button and the phone sticky bar. Config comes from <script data-sig-config> in sig-scoreboard. */\n(function () {\n  if (window.__sigDrop) { window.__sigDrop.bind(); return; }\n  var cfgEl = document.querySelector('[data-sig-config]'); if (!cfgEl) return;\n  var C; try { C = JSON.parse(cfgEl.textContent); } catch (e) { return; }\n  var DROP = new Date(C.drop).getTime(); if (isNaN(DROP)) DROP = (+C.dropS || 0) * 1000;\n  var S = { phase: C.phase, left: +C.left, variant: C.variant ? String(C.variant) : '', price: C.price || '', has: !!C.has, joined: false, busy: false };\n  var isMain = !!(window.Shopify && Shopify.theme && Shopify.theme.role === 'main');\n  var qs = new URLSearchParams(location.search), over = C.over || 'auto', simLeft = null;\n  // QA helpers, never on the published theme: ?sig_phase=pre|live|soldout, ?sig_left=4, ?sig_in=10, ?sig_kl=KEY:LIST\n  if (!isMain) {\n    if (/^(pre|live|soldout)$/.test(qs.get('sig_phase') || '')) over = qs.get('sig_phase');\n    if (qs.get('sig_left') !== null && qs.get('sig_left') !== '') simLeft = Math.max(0, Math.min(C.edition, +qs.get('sig_left') || 0));\n    if (qs.get('sig_at')) { var t = new Date(qs.get('sig_at')).getTime(); if (!isNaN(t)) DROP = t; }\n    if (qs.get('sig_in')) DROP = Date.now() + (+qs.get('sig_in') || 0) * 1000;\n    if (/^(live|soldout)$/.test(qs.get('sig_zero') || '')) C.atZero = qs.get('sig_zero');   // ?sig_zero=live|soldout\n    if (qs.get('sig_kl')) { var kq = qs.get('sig_kl').split(':'); C.kl = kq[0]; C.klList = kq[1] || ''; }   // ?sig_kl=KEY:LIST\n  }\n  var LS = 'onside-drop-v1';\n  function $$(q, r) { return [].slice.call((r || document).querySelectorAll(q)); }\n  function pad(n) { n = Math.max(0, Math.floor(n)); return (n < 10 ? '0' : '') + n; }\n  function store(v) { try { var o = JSON.parse(localStorage.getItem(LS) || '{}'); if (v) { o[C.key] = v; localStorage.setItem(LS, JSON.stringify(o)); } return o[C.key] || null; } catch (e) { return null; } }\n\n  // 5\u00D77 dot glyphs\n  var G = {\n    0: '01110100011000110001100011000101110', 1: '00100011000010000100001000010001110', 2: '01110100010000100010001000100011111',\n    3: '01110100010000100110000011000101110', 4: '00010001100101010010111110001000010', 5: '11111100001111000001000011000101110',\n    6: '00110010001000011110100011000101110', 7: '11111000010001000100010000100001000', 8: '01110100011000101110100011000101110',\n    9: '01110100011000101111000010001001100'\n  };\n  function glyph(el, ch) {\n    if (el.__ch === ch) return; el.__ch = ch;\n    var m = G[ch] || '', dots = el.children;\n    if (dots.length !== 35) { var h = ''; for (var i = 0; i < 35; i++) h += '<i></i>'; el.innerHTML = h; dots = el.children; }\n    for (var k = 0; k < 35; k++) dots[k].className = m.charAt(k) === '1' ? 'on' : '';\n  }\n\n  function calcPhase(now) {\n    if (over !== 'auto') return over;\n    if (now < DROP) return 'pre';\n    if (S.finale) return 'pre';                   // the zero-hold + scramble is playing: the board stays on the clock\n    if (C.atZero !== 'live') return 'soldout';   // default: the countdown goes straight to sold out, no buy button\n    if (!S.has) return 'pre';            // no box product picked yet: stay on the list signup\n    return S.left > 0 ? 'live' : 'soldout';\n  }\n  function leftNow() {\n    if (simLeft !== null) return simLeft;\n    if (over === 'soldout') return 0;\n    if (over === 'live' && S.left <= 0) return C.edition;\n    return Math.max(0, Math.min(C.edition, S.left));\n  }\n\n  var T = C.t || {}, E = null;\n  function collect() {\n    E = { roots: $$('.sig'), label: $$('[data-sig-label]'), compact: $$('[data-sig-count=\"compact\"]'), colon: $$('[data-sig-count=\"colon\"]'),\n      clock: $$('[data-sig-clock] [data-sig-g]'), leftG: $$('[data-sig-leftboard] [data-sig-g]'), left: $$('[data-sig-left]'), left2: $$('[data-sig-left2]'),\n      pips: $$('[data-sig-pips]'), price: $$('[data-sig-price]'), claim: $$('[data-sig-claim]') };\n  }\n  function txt(list, v) { for (var i = 0; i < list.length; i++) if (list[i].__v !== v) { list[i].__v = v; list[i].textContent = v; } }\n  function paint() {\n    if (!E) collect();\n    var now = Date.now();\n    if (S.armed && !S.finaleDone && over === 'auto' && C.atZero !== 'live' && now >= DROP) startFinale();\n    var ph = calcPhase(now), left = ph === 'pre' ? C.edition : (ph === 'soldout' ? 0 : leftNow());\n    var ms = Math.max(0, DROP - now), sec = Math.floor(ms / 1000);\n    var d = Math.min(99, Math.floor(sec / 86400)), h = Math.floor(sec % 86400 / 3600), m = Math.floor(sec % 3600 / 60), s = sec % 60;\n    var opening = over === 'auto' && now >= DROP && !S.has && C.atZero === 'live';\n    if (ph !== S.shown) {\n      S.shown = ph;\n      E.roots.forEach(function (r) { r.setAttribute('data-sig-phase', ph); });\n      document.documentElement.setAttribute('data-sig-phase', ph);\n    }\n    txt(E.label, ph === 'pre' ? (opening ? T.opening : C.labPre) : (ph === 'live' ? C.labLive : C.labOver));\n    txt(E.compact, ph === 'pre' ? pad(d) + 'D ' + pad(h) + 'H ' + pad(m) + 'M ' + pad(s) + 'S' : (ph === 'live' ? left + ' ' + T.ofLeft : T.allClaimed));\n    txt(E.colon, ph === 'pre' ? pad(d) + ':' + pad(h) + ':' + pad(m) + ':' + pad(s) : pad(left) + ' / ' + pad(C.edition));\n    var l2 = pad(left);\n    if (ph === 'pre') { if (!S.scramble) { var digits = pad(d) + pad(h) + pad(m) + pad(s); for (var a = 0; a < E.clock.length; a++) glyph(E.clock[a], digits.charAt(a % 8)); } }\n    else for (var b2 = 0; b2 < E.leftG.length; b2++) glyph(E.leftG[b2], l2.charAt(b2 % 2));\n    if (S.drain != null) left = S.drain;            // finale: the box count drains with the pips\n    txt(E.left, String(left)); txt(E.left2, l2);\n    if (S.pipN !== left) { S.pipN = left; E.pips.forEach(function (p) { [].forEach.call(p.children, function (i, k) { i.className = k < left ? 'on' : ''; }); }); }\n    txt(E.price, S.price || T.priceTbc);\n    var dis = S.busy || !S.variant; if (S.dis !== dis) { S.dis = dis; E.claim.forEach(function (b) { b.disabled = dis; }); }\n    // clock hit zero on an open page: get the real stock straight away\n    if (over === 'auto' && C.atZero === 'live' && now >= DROP && !S.zeroed) { S.zeroed = true; refresh(); }\n    return ph;\n  }\n\n  // ---- the finale: what an open page does when the clock hits zero (straight-to-sold-out mode) ----\n  // hold on 00:00:00:00 \u2192 the board scrambles while the ten pips drain \u2192 the sold-out board and product card reveal.\n  var HOLD = 1500, SCRAMBLE = 1150;\n  function startFinale() {\n    S.finaleDone = true;\n    var sb = document.querySelector('.sig-sb'), reduce = window.matchMedia && matchMedia('(prefers-reduced-motion: reduce)').matches;\n    if (!sb || reduce) return;                     // no board, or the visitor asked for no motion: flip straight over\n    S.finale = true;\n    document.documentElement.classList.add('sig-zero');\n    sb.classList.add('is-zero');                   // 1. the hold: zeros pulse, colons stop\n    setTimeout(function () {\n      sb.classList.remove('is-zero'); sb.classList.add('is-wipe');   // 2. scramble + light sweep + pips drain\n      S.scramble = true; S.drain = C.edition;\n      var t0 = Date.now(), frame = 0;\n      (function tick() {\n        var k = (Date.now() - t0) / SCRAMBLE; if (k >= 1) return;\n        if (frame++ % 3 === 0) for (var a = 0; a < E.clock.length; a++) { E.clock[a].__ch = null; glyph(E.clock[a], String(Math.floor(Math.random() * 10))); }\n        var want = Math.max(0, C.edition - Math.ceil(k * (C.edition + 1)));\n        if (want !== S.drain) { S.drain = want; paint(); }\n        requestAnimationFrame(tick);\n      })();\n      setTimeout(function () {\n        S.scramble = false; S.drain = null; S.finale = false;\n        sb.classList.remove('is-wipe');\n        $$('.sig').forEach(function (r) { r.classList.add('is-reveal'); });   // 3. the reveal\n        paint();\n        setTimeout(function () { $$('.sig').forEach(function (r) { r.classList.remove('is-reveal'); }); document.documentElement.classList.remove('sig-zero'); }, 2600);\n      }, SCRAMBLE);\n    }, HOLD);\n  }\n\n  // ---- fresh stock from the server (Section Rendering API on the scoreboard section) ----\n  var lastPoll = 0;\n  function refresh() {\n    if (!C.section || simLeft !== null) return Promise.resolve();\n    lastPoll = Date.now();\n    var u = new URL(location.href); u.hash = '';\n    ['sig_phase', 'sig_left', 'sig_at', 'sig_in'].forEach(function (k) { u.searchParams.delete(k); });\n    u.searchParams.set('section_id', C.section); u.searchParams.set('_t', Date.now());\n    return fetch(u.toString(), { credentials: 'same-origin', cache: 'no-store' }).then(function (r) { if (!r.ok) throw 0; return r.text(); }).then(function (html) {\n      var doc = new DOMParser().parseFromString(html, 'text/html'), el = doc.querySelector('[data-sig-stock]'); if (!el) return;\n      S.left = +el.getAttribute('data-left') || 0; S.has = el.getAttribute('data-has') === '1';\n      S.variant = el.getAttribute('data-variant') || ''; S.price = el.getAttribute('data-price') || '';\n      paint();\n    }).catch(function () {});\n  }\n  function pollTick() {\n    if (over !== 'auto' || C.atZero !== 'live' || document.hidden) return;   // nothing to poll when the drop skips the live phase\n    var now = Date.now(); if (now < DROP - 90000) return;                 // nothing to check until 90s before the drop\n    var age = now - lastPoll, ph = S.shown;\n    var every = ph === 'live' ? 12000 : (now - DROP < 15 * 60000 ? 15000 : 120000);\n    if (age >= every) refresh();\n  }\n\n  // ---- cart ----\n  function openCart() {\n    if (typeof window.__onsideCartRefresh === 'function') { window.__onsideCartRefresh(true); return; }\n    var o = document.querySelector('[data-cart-open]'); if (o) o.click(); else location.href = '/cart';\n  }\n  function claim() {\n    if (S.busy || !S.variant) return;\n    S.busy = true; paint();\n    $$('[data-sig-claim-l]').forEach(function (l) { l.__t = l.innerHTML; l.textContent = T.adding; });\n    var id = +S.variant;\n    fetch('/cart.js', { cache: 'no-store', headers: { Accept: 'application/json' } }).then(function (r) { return r.json(); }).catch(function () { return { items: [] }; })\n      .then(function (cart) {\n        if ((cart.items || []).some(function (i) { return i.variant_id === id; })) return 'have';\n        return fetch('/cart/add.js', { method: 'POST', cache: 'no-store', headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, body: JSON.stringify({ items: [{ id: id, quantity: 1 }] }) })\n          .then(function (r) { if (!r.ok) throw new Error('add ' + r.status); return 'added'; });\n      })\n      .then(function () { openCart(); })\n      .catch(function () { return refresh().then(function () { if (calcPhase(Date.now()) === 'live') location.href = '/cart'; }); })\n      .then(function () { S.busy = false; $$('[data-sig-claim-l]').forEach(function (l) { if (l.__t) l.innerHTML = l.__t; }); E = null; paint(); });\n  }\n\n  // ---- list signup ----\n  // a number we couldn't read as E.164 is still kept on the profile as typed\n  function e164(v) { v = (v || '').trim(); if (!v) return ''; var plus = v.charAt(0) === '+', dg = v.replace(/\\D/g, ''); if (plus) return dg.length >= 8 && dg.length <= 15 ? '+' + dg : null; if (dg.length === 10) return '+1' + dg; if (dg.length === 11 && dg.charAt(0) === '1') return '+' + dg; return null; }\n  // ---- capture: straight into Klaviyo's client API. No form post, no reload, no captcha. ----\n  function klPost(path, body, rev) { return fetch('https://a.klaviyo.com/client/' + path + '/?company_id=' + encodeURIComponent(C.kl), { method: 'POST', headers: { 'Content-Type': 'application/json', revision: rev || '2024-10-15' }, body: JSON.stringify(body) }).then(function (r) { if (!r.ok) throw new Error('kl ' + r.status); }); }\n  function klProfile(email, phone, rawPhone) {\n    var props = { 'Signature Drop': C.scent, 'Signature Drop Source': 'signature-drop-01', 'Signature Drop Tags': C.tags, 'Signature Drop SMS Opt-in': !!rawPhone };\n    if (rawPhone && !phone) props['Signature Drop Phone'] = rawPhone;\n    var a = { email: email, properties: props }; if (phone) a.phone_number = phone;\n    return { type: 'profile', attributes: a };\n  }\n  function viaKlaviyo(email, phone) {\n    // 1. the profile (email, number, which drop) and 2. a \"Joined Signature Drop List\" event to trigger flows and segments\n    function core(ph) {\n      return Promise.all([\n        klPost('profiles', { data: klProfile(email, ph, phone) }),\n        klPost('events', { data: { type: 'event', attributes: { properties: { scent: C.scent, drop: 'signature-drop-01', sms_opt_in: !!phone, page: location.pathname }, metric: { data: { type: 'metric', attributes: { name: 'Joined Signature Drop List' } } }, profile: { data: { type: 'profile', attributes: ph ? { email: email, phone_number: ph } : { email: email } } } } } })\n      ]);\n    }\n    return core(phone).catch(function () { if (!phone) throw 0; return core(''); }).then(function () {\n      // 3. marketing consent (email, and SMS when a number was given). Klaviyo only accepts this against a list.\n      if (!C.klList) return;\n      function sub(ph) { var at = { email: email, subscriptions: { email: { marketing: { consent: 'SUBSCRIBED' } } } }; if (ph) { at.phone_number = ph; at.subscriptions.sms = { marketing: { consent: 'SUBSCRIBED' } }; }\n        return klPost('subscriptions', { data: { type: 'subscription', attributes: { custom_source: 'Signature Drop 01 \u00B7 ' + C.scent, profile: { data: { type: 'profile', attributes: at } } }, relationships: { list: { data: { type: 'list', id: C.klList } } } } }, '2025-07-15'); }\n      return sub(phone).catch(function () { return phone ? sub('') : null; }).catch(function () {});\n    });\n  }\n  function save(form, email, phone) { if (!C.kl) return Promise.reject(new Error('no klaviyo key')); return viaKlaviyo(email, phone); }\n  function showJoined(sms, focusIn) {\n    S.joined = true;\n    $$('.sig-form').forEach(function (f) { f.hidden = true; });\n    $$('[data-sig-joined]').forEach(function (j) { j.hidden = false; var l = j.querySelector('[data-sig-joined-l]'); if (l) l.textContent = sms ? T.joinedSms : T.joinedEmail; });\n    $$('[data-sig-join-l]').forEach(function (l) { l.textContent = T.onList; });\n    if (focusIn) { var j = focusIn.closest('.sig').querySelector('[data-sig-joined]'); if (j) j.focus({ preventScroll: true }); }\n  }\n  function onSubmit(e) {\n    var form = e.target.closest('.sig-form'); if (!form) return;\n    e.preventDefault(); if (form.__busy) return;\n    var em = form.querySelector('[name=\"contact[email]\"]'), ph = form.querySelector('[data-sig-phone]'), err = form.querySelector('[data-sig-err]'), go = form.querySelector('[type=submit]'), gl = go.querySelector('[data-sig-go-l]') || go;\n    var email = (em.value || '').trim(), phone = ph ? e164(ph.value) : '';\n    em.setAttribute('aria-invalid', 'false'); if (ph) ph.setAttribute('aria-invalid', 'false'); err.hidden = true;\n    if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$/.test(email)) { em.setAttribute('aria-invalid', 'true'); err.textContent = T.errEmail; err.hidden = false; em.focus(); return; }\n    if (phone === null) { ph.setAttribute('aria-invalid', 'true'); err.textContent = T.errPhone; err.hidden = false; ph.focus(); return; }\n    form.__busy = true; go.disabled = true; var keep = gl.innerHTML; gl.textContent = T.saving;\n    save(form, email, phone)\n      .then(function () { var sms = !!(phone && C.klList); store({ ok: 1, sms: sms ? 1 : 0, t: Date.now() }); showJoined(sms, form); })   // only promise a text when SMS consent was actually recorded (needs a list)\n      .catch(function () { err.textContent = T.errSend; err.hidden = false; })\n      .then(function () { form.__busy = false; go.disabled = false; gl.innerHTML = keep; });\n  }\n\n  // ---- gallery ----\n  function bindGallery(g) {\n    if (g.__sig) return; g.__sig = true;\n    var strip = g.querySelector('[data-sig-strip]'), prev = g.querySelector('[data-sig-prev]'), next = g.querySelector('[data-sig-next]'); if (!strip) return;\n    function step() { var c = strip.querySelector('.sig-gl__card'); return c ? c.getBoundingClientRect().width + 10 : strip.clientWidth * .8; }\n    function sync() { var max = strip.scrollWidth - strip.clientWidth - 2; if (prev) prev.disabled = strip.scrollLeft <= 2; if (next) next.disabled = strip.scrollLeft >= max; }\n    if (prev) prev.addEventListener('click', function () { strip.scrollBy({ left: -step(), behavior: 'smooth' }); });\n    if (next) next.addEventListener('click', function () { strip.scrollBy({ left: step(), behavior: 'smooth' }); });\n    strip.addEventListener('scroll', sync, { passive: true }); window.addEventListener('resize', sync); sync();\n  }\n\n  // ---- sticky bar (phones): on once the list block has scrolled away above, off again near the footer ----\n  function bindBar() {\n    var bar = document.querySelector('[data-sig-bar]'), zone = document.querySelector('[data-sig-listzone]'); if (!bar || !zone || bar.__sig) return; bar.__sig = true;\n    var foot = document.querySelector('.shopify-section-group-footer-group') || document.querySelector('footer'), tick = false;\n    function sync() {\n      tick = false;\n      var past = zone.getBoundingClientRect().bottom < 80, nearFoot = foot ? foot.getBoundingClientRect().top < window.innerHeight * 0.9 : false, on = past && !nearFoot;\n      if (bar.classList.contains('is-on') !== on) { bar.classList.toggle('is-on', on); bar.setAttribute('aria-hidden', on ? 'false' : 'true'); }\n    }\n    function req() { if (!tick) { tick = true; requestAnimationFrame(sync); } }\n    window.addEventListener('scroll', req, { passive: true }); window.addEventListener('resize', req); sync();\n  }\n\n  function toJoin(e) {\n    var zone = document.getElementById('join'); if (!zone) return;\n    if (e) e.preventDefault();\n    var target = document.querySelector('[data-sig-listzone]') || zone;\n    var y = target.getBoundingClientRect().top + window.scrollY - (window.innerWidth < 900 ? 130 : 40);\n    window.scrollTo({ top: Math.max(0, y), behavior: 'smooth' });\n    var em = zone.querySelector('.sig-form:not([hidden]) [name=\"contact[email]\"]');\n    if (em && S.shown !== 'live') setTimeout(function () { try { em.focus({ preventScroll: true }); } catch (x) {} }, 650);\n  }\n\n  function bindBoard() {\n    var sb = document.querySelector('.sig-sb'); if (!sb || sb.__io || !('IntersectionObserver' in window)) return; sb.__io = true;\n    new IntersectionObserver(function (es) { sb.classList.toggle('is-off', !es[0].isIntersecting); }, { rootMargin: '120px 0px' }).observe(sb.querySelector('.sig-board') || sb);\n  }\n  function bind() {\n    E = null; S.pipN = null; S.dis = null;\n    bindBoard();\n    $$('[data-sig-gallery]').forEach(bindGallery);\n    bindBar();\n    var st = store(); if (st && st.ok) showJoined(!!st.sms);\n    paint();\n  }\n  document.addEventListener('submit', onSubmit);\n  document.addEventListener('click', function (e) {\n    var c = e.target.closest('[data-sig-claim]'); if (c) { e.preventDefault(); if (S.shown === 'live') claim(); return; }\n    var j = e.target.closest('[data-sig-join]'); if (j) toJoin(e);\n  });\n  document.addEventListener('shopify:section:load', function () { bind(); });\n  document.addEventListener('visibilitychange', function () { if (!document.hidden) { paint(); pollTick(); } });\n  window.__sigDrop = { bind: bind, refresh: refresh, state: S };\n  bind();\n  S.armed = Date.now() < DROP;   // the finale only plays for visitors who were here for the countdown\n  (function loop() { if (!document.hidden) { paint(); pollTick(); } setTimeout(loop, 1000 - (Date.now() % 1000) + 5); })();\n})();\n"],
  "mappings": "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",
  "names": ["j"]
}
