{
  "version": 3,
  "sources": ["/cdn/shop/t/57/assets/gm-menu.js?x=1794517366318"],
  "sourcesContent": ["/* Granata Music \u2013 desktop mega menu (pairs with assets/gm-menu.css and sections/gm-menu-data.liquid).\n   - Top menus open on hover (with a short intent delay) as well as on click, and close when the\n     pointer leaves them. Touch screens keep the theme's click behaviour.\n   - Ink column of categories on the left; hovering one shows its collections on the right as large\n     photo cards with product counts. Photos and counts come from sections/gm-menu-data.liquid,\n     fetched once per visit, and a category's photos load only when it's shown.\n   - Links that aren't collections (a page, a plan) get an icon card.\n   - A search box filters every collection in the menu; Enter opens the first match.\n   - Keyboard: arrows move through categories and cards, Escape closes (theme). */\n(function () {\n  var mq = window.matchMedia('(min-width: 990px)');\n  var canHover = window.matchMedia('(hover: hover) and (pointer: fine)');\n  var themeId = (window.Shopify && Shopify.theme && Shopify.theme.id) || '';\n  var KEY = 'gmm-data-v3-' + themeId;\n  var ROOT = (window.Shopify && Shopify.routes && Shopify.routes.root) || '/';\n  var DATA = null, loading = null;\n  var ICON = {\n    shield: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3 4.5 6v5.5c0 4.6 3.2 8.1 7.5 9.5 4.3-1.4 7.5-4.9 7.5-9.5V6L12 3Z\"/><path d=\"m9 12 2 2 4-4\"/></svg>',\n    page: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M7 3h7l5 5v13H7z\"/><path d=\"M14 3v5h5\"/><path d=\"M10 13h6M10 17h6\"/></svg>'\n  };\n\n  function txt(el) {\n    if (!el) return '';\n    var one = el.querySelector('.btn-text:not(.btn-duplicate)'); // the theme doubles menu labels for its hover animation\n    return ((one || el).textContent || '').replace(/\\s+/g, ' ').trim();\n  }\n  function keyOf(href) {\n    try { return new URL(href, location.origin).pathname.replace(/\\/$/, '').toLowerCase(); } catch (e) { return ''; }\n  }\n  function realHref(a) {\n    var h = a && a.getAttribute('href');\n    return h && h !== '#' && h.indexOf('javascript:') !== 0 ? a.href : '';\n  }\n  function plural(n, one, many) { return n + ' ' + (n === 1 ? one : many); }\n  function el(tag, cls, text) {\n    var e = document.createElement(tag);\n    if (cls) e.className = cls;\n    if (text != null) e.textContent = text;\n    return e;\n  }\n\n  /* ---------- photos + counts ---------- */\n  function load() {\n    if (DATA || loading) return loading;\n    try {\n      var c = sessionStorage.getItem(KEY);\n      if (c) { DATA = JSON.parse(c); apply(); return (loading = Promise.resolve()); }\n    } catch (e) {}\n    loading = fetch(ROOT + '?sections=gm-menu-data', { credentials: 'same-origin' })\n      .then(function (r) { return r.json(); })\n      .then(function (j) {\n        var m = (j['gm-menu-data'] || '').match(/data-gmm-data>([\\s\\S]*?)<\\/script>/);\n        if (!m) return;\n        DATA = {};\n        JSON.parse(m[1]).slice(1).forEach(function (r) { DATA[keyOf(r[0])] = { i: r[1], n: r[2] }; });\n        try { sessionStorage.setItem(KEY, JSON.stringify(DATA)); } catch (e) {}\n        apply();\n      })\n      .catch(function () { loading = null; });\n    return loading;\n  }\n  function info(href) { return DATA && DATA[keyOf(href)]; }\n  function setThumb(box, src) {\n    if (!src || !box || box.querySelector('img') || box.dataset.loading) return;\n    box.dataset.loading = '1';\n    var im = new Image(), retried = false;\n    im.alt = ''; im.decoding = 'async';\n    im.crossOrigin = 'anonymous'; // lets us look at the corners below (Shopify's image CDN allows it)\n    im.onerror = function () { if (!retried) { retried = true; im.removeAttribute('crossorigin'); im.src = src + ''; } };\n    im.onload = function () {\n      // Product shots on a white background sit on the warm backdrop; store photos fill the card.\n      var cutout = false;\n      try {\n        var cv = document.createElement('canvas'); cv.width = cv.height = 10;\n        var cx = cv.getContext('2d'); cx.drawImage(im, 0, 0, 10, 10);\n        var px = cx.getImageData(0, 0, 10, 10).data, white = 0;\n        [0, 9, 90, 99].forEach(function (i) { var o = i * 4; if (px[o] > 232 && px[o + 1] > 232 && px[o + 2] > 232) white++; });\n        cutout = white >= 3;\n      } catch (e) { cutout = im.naturalWidth <= im.naturalHeight * 1.2; }\n      box.classList.add(cutout ? 'is-cutout' : 'is-photo');\n      box.textContent = ''; box.appendChild(im); box.classList.add('has-img');\n      delete box.dataset.loading;\n    };\n    im.src = src;\n  }\n  function fillTile(a, withImg) {\n    var d = info(a.href);\n    var th = a.querySelector('.gmm-thumb');\n    if (!d) {\n      // not a collection (a page, a plan): show an icon instead of a photo\n      if (DATA && th && !th.classList.contains('is-icon')) {\n        var name = a.getAttribute('data-gmm-name') || '';\n        th.innerHTML = /protect|plan|warranty|care|insur/.test(name) ? ICON.shield : ICON.page;\n        th.classList.add('is-icon');\n      }\n      return;\n    }\n    var n = a.querySelector('.gmm-n');\n    if (n && d.n > 0 && !n.textContent) n.textContent = plural(d.n, 'product', 'products');\n    if (withImg) setThumb(th, d.i);\n  }\n  function fillPane(d) {\n    if (DATA) d.querySelectorAll('a.gmm-tile').forEach(function (a) { fillTile(a, true); });\n  }\n  function apply() {\n    if (!DATA) return;\n    document.querySelectorAll('.header__navigation a.gmm-tile').forEach(function (a) { fillTile(a, false); });\n    document.querySelectorAll('.header__navigation details.gmm-on, .header__navigation .gmm-results').forEach(fillPane);\n  }\n\n  /* ---------- building blocks ---------- */\n  function makeTile(a, i) {\n    if (a.classList.contains('gmm-tile')) return;\n    var name = txt(a);\n    a.textContent = '';\n    a.classList.add('gmm-tile');\n    a.setAttribute('data-gmm-name', name.toLowerCase());\n    a.style.setProperty('--i', i);\n    var th = el('span', 'gmm-thumb', (name.replace(/^[^A-Za-z0-9]+/, '').charAt(0) || '\u2022').toUpperCase());\n    th.setAttribute('aria-hidden', 'true');\n    var tx = el('span', 'gmm-txt');\n    tx.appendChild(el('span', 'gmm-name', name));\n    tx.appendChild(el('span', 'gmm-n'));\n    a.appendChild(th); a.appendChild(tx);\n    if (DATA) fillTile(a, false);\n  }\n\n  function activate(top, d) {\n    // a closed <details> doesn't lay out its contents, so the shown pane's <details> is opened too\n    top.querySelectorAll('details[level=\"child\"].gmm-on').forEach(function (x) {\n      if (x === d) return;\n      x.classList.remove('gmm-on');\n      var s = x.querySelector(':scope > summary'); if (s) s.setAttribute('aria-expanded', 'false');\n      // keep it laid out until its fade-out finishes\n      setTimeout(function () { if (!x.classList.contains('gmm-on')) x.removeAttribute('open'); }, 260);\n    });\n    if (!d.classList.contains('gmm-on')) {\n      d.setAttribute('open', '');\n      void d.offsetWidth; // let the pane lay out before it fades in\n      d.classList.add('gmm-on');\n      var ds = d.querySelector(':scope > summary'); if (ds) ds.setAttribute('aria-expanded', 'true');\n      var pane = d.querySelector(':scope > .dropdown > .dropdown__container');\n      if (pane) pane.scrollTop = 0;\n    }\n    fillPane(d);\n  }\n\n  function place(top) {\n    var header = top.closest('.header');\n    if (header) document.documentElement.style.setProperty('--gmm-top', Math.round(header.getBoundingClientRect().bottom) + 'px');\n    var drop = top.querySelector(':scope > .dropdown');\n    var sum = top.querySelector(':scope > summary');\n    if (drop && sum) {\n      var x = sum.getBoundingClientRect().left - drop.getBoundingClientRect().left;\n      drop.style.setProperty('--gmm-x', Math.max(12, Math.round(x)) + 'px');\n    }\n  }\n\n  /* ---------- hover to open / leave to close (top level) ---------- */\n  var hoverOpen = { timer: null, closeTimer: null, current: null };\n  function setupHover(top) {\n    var sum = top.querySelector(':scope > summary');\n    if (!sum) return;\n    function openNow() {\n      if (top.open) return;\n      document.querySelectorAll('.header__navigation details[level=\"top\"][open]').forEach(function (o) { if (o !== top) o.open = false; });\n      top.open = true; // the theme's own open setter: animates and registers the outside-click close\n    }\n    sum.addEventListener('mouseenter', function () {\n      if (!mq.matches || !canHover.matches) return;\n      clearTimeout(hoverOpen.closeTimer);\n      clearTimeout(hoverOpen.timer);\n      var other = document.querySelector('.header__navigation details[level=\"top\"][open]');\n      hoverOpen.timer = setTimeout(openNow, other && other !== top ? 40 : 140);\n    });\n    sum.addEventListener('mouseleave', function () { clearTimeout(hoverOpen.timer); });\n    top.addEventListener('mouseleave', function () {\n      if (!mq.matches || !canHover.matches || !top.open) return;\n      clearTimeout(hoverOpen.closeTimer);\n      hoverOpen.closeTimer = setTimeout(function () {\n        if (top.open && !top.matches(':hover') && !top.contains(document.activeElement)) top.open = false;\n      }, 320);\n    });\n    top.addEventListener('mouseenter', function () { clearTimeout(hoverOpen.closeTimer); });\n    // a click on an already-open menu (opened by hover) keeps it open rather than closing it\n    sum.addEventListener('click', function (e) {\n      if (mq.matches && canHover.matches && top.open) { e.preventDefault(); e.stopImmediatePropagation(); }\n    }, true);\n  }\n\n  /* ---------- search inside a menu ---------- */\n  function mark(name, q) {\n    var i = name.toLowerCase().indexOf(q);\n    if (i < 0) return document.createTextNode(name);\n    var f = document.createDocumentFragment();\n    f.appendChild(document.createTextNode(name.slice(0, i)));\n    f.appendChild(el('mark', null, name.slice(i, i + q.length)));\n    f.appendChild(document.createTextNode(name.slice(i + q.length)));\n    return f;\n  }\n  function addSearch(top, cont, nav, topLabel) {\n    var li = el('li', 'gmm-search-li');\n    var box = el('label', 'gmm-search');\n    box.innerHTML = '<svg viewBox=\"0 0 24 24\" width=\"17\" height=\"17\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"11\" cy=\"11\" r=\"7\"/><path d=\"m20 20-3.5-3.5\"/></svg>';\n    var input = el('input');\n    input.type = 'search';\n    input.autocomplete = 'off';\n    input.spellcheck = false;\n    input.placeholder = 'Find a collection\u2026';\n    input.setAttribute('aria-label', 'Search ' + topLabel);\n    box.appendChild(input);\n    li.appendChild(box);\n    nav.insertBefore(li, nav.firstChild);\n\n    var res = el('div', 'gmm-results');\n    res.setAttribute('aria-live', 'polite');\n    cont.appendChild(res);\n\n    function run() {\n      var q = input.value.trim().toLowerCase();\n      cont.classList.toggle('gmm-searching', !!q);\n      res.textContent = '';\n      if (!q) return;\n      var words = q.split(/\\s+/), seen = {}, hits = [];\n      top.querySelectorAll('details[level=\"child\"] a.gmm-tile').forEach(function (a) {\n        var hay = a.getAttribute('data-gmm-name') + ' ' + (a.getAttribute('data-gmm-cat') || '');\n        var k = keyOf(a.href);\n        if (seen[k]) return;\n        if (words.every(function (w) { return hay.indexOf(w) !== -1; })) { seen[k] = 1; hits.push(a); }\n      });\n      // names that start with the query first, then names that contain it, then category matches\n      function rank(a) { var n = a.getAttribute('data-gmm-name'); return n.indexOf(q) === 0 ? 0 : n.indexOf(q) > 0 ? 1 : 2; }\n      hits.sort(function (a, b) { return rank(a) - rank(b); });\n      var head = el('div', 'gmm-head');\n      var hb = el('div');\n      hb.appendChild(el('p', 'gmm-kick', 'Search ' + topLabel));\n      var t = el('p', 'gmm-title', hits.length ? 'Results for \u201C' + input.value.trim() + '\u201D' : 'Nothing in this menu for \u201C' + input.value.trim() + '\u201D');\n      if (hits.length) t.appendChild(el('span', 'gmm-count', plural(hits.length, 'match', 'matches')));\n      hb.appendChild(t); head.appendChild(hb);\n      var all = el('a', 'gmm-all');\n      all.href = ROOT + 'search?q=' + encodeURIComponent(input.value.trim());\n      all.innerHTML = 'Search all products <span aria-hidden=\"true\">&rarr;</span>';\n      head.appendChild(all);\n      res.appendChild(head);\n      if (hits.length) {\n        var grid = el('div', 'gmm-rgrid');\n        hits.slice(0, 60).forEach(function (a, i) {\n          var c = a.cloneNode(true);\n          c.style.setProperty('--i', i);\n          var th = c.querySelector('.gmm-thumb'); if (th) delete th.dataset.loading;\n          var nm = c.querySelector('.gmm-name'); if (nm) { nm.textContent = ''; nm.appendChild(mark(txt(a.querySelector('.gmm-name')) || a.getAttribute('data-gmm-name'), q)); }\n          var cat = a.getAttribute('data-gmm-catname');\n          if (cat) { var n = c.querySelector('.gmm-n'); if (n) n.textContent = (n.textContent ? n.textContent + ' \u00B7 ' : '') + 'in ' + cat; }\n          grid.appendChild(c);\n          fillTile(c, true);\n        });\n        res.appendChild(grid);\n      }\n    }\n    input.addEventListener('input', run);\n    input.addEventListener('keydown', function (e) {\n      if (e.key === 'Enter') {\n        e.preventDefault();\n        var first = res.querySelector('a.gmm-tile') || res.querySelector('a.gmm-all');\n        if (first) window.location.href = first.href;\n      } else if (e.key === 'Escape' && input.value) {\n        e.stopPropagation();\n        input.value = ''; run();\n      } else if (e.key === 'ArrowDown') {\n        e.preventDefault();\n        var s = (input.value ? res.querySelector('a.gmm-tile') : null) || top.querySelector('details[level=\"child\"] > summary');\n        if (s) s.focus();\n      }\n    });\n    top.addEventListener('toggle', function () { if (!top.open && input.value) { input.value = ''; run(); } });\n  }\n\n  /* ---------- keyboard inside a pane ---------- */\n  function paneKeys(e) {\n    var a = e.target.closest && e.target.closest('a.gmm-tile');\n    if (!a || !mq.matches) return;\n    var grid = a.parentElement.closest('.dropdown__nav, .gmm-rgrid');\n    if (!grid) return;\n    var tiles = Array.prototype.slice.call(grid.querySelectorAll('a.gmm-tile'));\n    var i = tiles.indexOf(a);\n    var cols = Math.max(1, Math.round(grid.clientWidth / a.offsetWidth));\n    var to = null;\n    if (e.key === 'ArrowRight') to = tiles[i + 1];\n    else if (e.key === 'ArrowLeft') to = tiles[i - 1];\n    else if (e.key === 'ArrowDown') to = tiles[i + cols];\n    else if (e.key === 'ArrowUp') {\n      to = tiles[i - cols];\n      if (!to) { var d = a.closest('details[level=\"child\"]'); to = d ? d.querySelector(':scope > summary') : a.closest('.dropdown__container').querySelector('.gmm-search input'); }\n    }\n    if (to) { e.preventDefault(); to.focus(); }\n  }\n\n  /* ---------- set up one top-level menu ---------- */\n  function setup(top) {\n    if (top.dataset.gmm) return;\n    top.dataset.gmm = '1';\n    setupHover(top);\n    var cont = top.querySelector(':scope > .dropdown > .dropdown__container');\n    var nav = cont && cont.querySelector(':scope > .dropdown__nav');\n    if (!nav) return;\n    var topLabel = txt(top.querySelector(':scope > summary'));\n    nav.setAttribute('data-gmm-title', topLabel);\n    var kids = nav.querySelectorAll(':scope > li > details[level=\"child\"]');\n\n    top.addEventListener('toggle', function () {\n      if (!top.open || !mq.matches) return;\n      place(top);\n      load();\n      if (kids.length && !top.querySelector('details[level=\"child\"].gmm-on')) activate(top, kids[0]);\n    });\n    if (!kids.length) return;\n    cont.addEventListener('keydown', paneKeys);\n\n    kids.forEach(function (d) {\n      var sum = d.querySelector(':scope > summary');\n      var a = sum && sum.querySelector('a');\n      var name = a ? txt(a) : txt(sum);\n      var href = realHref(a);\n      var pane = d.querySelector(':scope > .dropdown > .dropdown__container');\n      var list = pane && pane.querySelector(':scope > .dropdown__nav');\n\n      if (pane && list && !pane.querySelector('.gmm-head')) {\n        var links = list.querySelectorAll(':scope > li > p > a');\n        links.forEach(function (x, i) { makeTile(x, i); x.setAttribute('data-gmm-cat', name.toLowerCase()); x.setAttribute('data-gmm-catname', name); });\n\n        var head = el('div', 'gmm-head');\n        var box = el('div');\n        box.appendChild(el('p', 'gmm-kick', topLabel));\n        var title = el('p', 'gmm-title', name);\n        if (links.length) title.appendChild(el('span', 'gmm-count', plural(links.length, 'collection', 'collections')));\n        box.appendChild(title); head.appendChild(box);\n\n        var body = el('div', 'gmm-body');\n        pane.insertBefore(head, list);\n        pane.insertBefore(body, list);\n        body.appendChild(list);\n\n        if (href) {\n          var all = el('a', 'gmm-all');\n          all.href = href;\n          all.innerHTML = 'Shop all <span aria-hidden=\"true\">&rarr;</span>';\n          all.setAttribute('aria-label', 'Shop all ' + name);\n          head.appendChild(all);\n        }\n\n        if (sum && links.length) {\n          var c = el('span', 'gmm-c', String(links.length));\n          c.setAttribute('aria-hidden', 'true');\n          sum.appendChild(c);\n        }\n      }\n\n      if (!sum) return;\n      var timer;\n      sum.addEventListener('mouseenter', function (e) {\n        if (!mq.matches) return;\n        clearTimeout(timer);\n        fillPane(d); // start loading this category's photos right away\n        // moving right toward the open pane? wait a little longer so passing over other rows doesn't switch\n        timer = setTimeout(function () { activate(top, d); }, e.movementX > 1 ? 220 : 70);\n      });\n      sum.addEventListener('mouseleave', function () { clearTimeout(timer); });\n      sum.addEventListener('focus', function () { if (mq.matches) activate(top, d); });\n      sum.addEventListener('click', function (e) {\n        if (!mq.matches) return;\n        e.preventDefault();\n        e.stopImmediatePropagation();\n        if (d.classList.contains('gmm-on') && href) window.location.href = href;\n        else activate(top, d);\n      }, true);\n      sum.addEventListener('keydown', function (e) {\n        if (!mq.matches) return;\n        var all = Array.prototype.slice.call(kids).map(function (k) { return k.querySelector(':scope > summary'); });\n        var i = all.indexOf(sum);\n        if (e.key === 'ArrowDown' && all[i + 1]) { e.preventDefault(); all[i + 1].focus(); }\n        else if (e.key === 'ArrowUp') {\n          e.preventDefault();\n          if (all[i - 1]) all[i - 1].focus();\n          else { var inp = top.querySelector('.gmm-search input'); if (inp) inp.focus(); }\n        } else if (e.key === 'ArrowRight') {\n          var first = d.querySelector('a.gmm-tile');\n          if (first) { e.preventDefault(); activate(top, d); first.focus(); }\n        }\n      });\n    });\n\n    addSearch(top, cont, nav, topLabel);\n  }\n\n  function init() {\n    var navs = document.querySelectorAll('.header__navigation');\n    navs.forEach(function (n) {\n      n.querySelectorAll('details[level=\"top\"]').forEach(setup);\n      // fetch photos as soon as the shopper heads for the menu\n      n.addEventListener('pointerenter', function () { if (mq.matches) load(); }, { once: true });\n      n.addEventListener('focusin', function () { if (mq.matches) load(); }, { once: true });\n    });\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init);\n  else init();\n})();\n"],
  "mappings": "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",
  "names": ["el", "all"]
}
