{
  "version": 3,
  "sources": ["/cdn/shop/t/1064/assets/nt-oo-modal.js?auto=format%2Ccompress"],
  "sourcesContent": ["/* ============================================================================\n   Ordering Options modal controller \u2014 window.NTOO (one per page).\n   Markup: snippets/nt-oo-modal.liquid (rendered by any host; the first\n   connected root is used). Hosts call:\n     NTOO.open({ file, title, thumb, catalog, query, hrefFor })\n       file     design file URL \u2014 default hrefs are /products/<handle>?file=<url>\n       title    header name (default: the file's basename, or \"Your design\")\n       thumb    header image URL (default: file)\n       thumbs   [urls] for a multi open \u2014 the header shows up to three as a\n                stack plus a \"+N\" chip instead of the single thumb\n       catalog  'bysize' (default) | 'gangsheet'  \u2014 which category set shows\n       multi    number of designs when the host carries several (>1): cards\n                marked data-nt-oo-multi stay live (their PDPs take a\n                my_designs_selection hand-off); the rest stay visible but\n                greyed and inert with a note that they take one design at a\n                time (Owen 2026-09-18); the heading reads \"Order these designs\"\n       query    extra query params { key: value } appended to every href\n       hrefFor  function(handle, variant) \u2192 full href (overrides the default)\n       exclude  [handles] \u2014 cards for these products are left out; a host whose\n                own primary button already orders one (alv2's Order as DTF /\n                UV DTF, 2026-09-29) passes it so the modal shows the others\n       gsb      { path, add: [{k,n}], returnTo } \u2014 arms the \"Gang sheets\" cards\n                (data-gsb-type) with the builder deep link\n                <path>?add=<JSON>&type=<film>&return=<returnTo>; without it\n                those cards (and so the category) do not show\n     NTOO.current() \u2192 the opts of the open modal (null when closed); NTOO.isOpen()\n   Compat entry points (no host code needed):\n     - a click on any [data-nt-oo-file=\"<url>\"] element (tools, design library)\n     - the 'aip-oo:open' document event { detail: { imageUrl } } (AI page)\n   ========================================================================== */\n(function () {\n  'use strict';\n  if (window.NTOO) return;\n\n  var lastFocus = null;\n  var current = null;\n\n  /* Hosts render the modal wherever they live \u2014 inside a members-portal pane,\n     a design-tools pane, a picker dialog. Those containers get display:none\n     when another pane is active, and a position:fixed modal inside a hidden\n     ancestor paints nothing. So the root we use is PROMOTED to document.body\n     the first time it is needed (kept there for every later open); extra\n     copies rendered by other hosts stay hidden and unused. */\n  function root() {\n    var promoted = document.querySelector('body > .nt-oo[data-nt-oo]');\n    if (promoted) return promoted;\n    var all = document.querySelectorAll('.nt-oo[data-nt-oo]');\n    for (var i = 0; i < all.length; i++) {\n      if (!document.contains(all[i])) continue;\n      document.body.appendChild(all[i]);\n      return all[i];\n    }\n    return null;\n  }\n\n  function basename(url) {\n    try { return decodeURIComponent(String(url || '').split('?')[0].split('#')[0].split('/').pop() || ''); } catch (e) { return String(url || '').split('/').pop() || ''; }\n  }\n\n  function defaultHref(handle, variant, opts) {\n    var q = [];\n    if (variant) q.push('variant=' + encodeURIComponent(variant));\n    if (opts.file) q.push('file=' + encodeURIComponent(opts.file));\n    if (opts.query) Object.keys(opts.query).forEach(function (k) {\n      if (opts.query[k] === '' || opts.query[k] == null) return;\n      q.push(encodeURIComponent(k) + '=' + encodeURIComponent(opts.query[k]));\n    });\n    try {\n      var pv = new URLSearchParams(window.location.search).get('preview_theme_id');\n      if (pv) q.push('preview_theme_id=' + encodeURIComponent(pv));\n    } catch (e) {}\n    return '/products/' + handle + (q.length ? '?' + q.join('&') : '');\n  }\n\n  /* Gang Sheet Builder deep link (contract: builder PR #612 + members-portal\n     contract doc). `add` goes through searchParams so it is encoded exactly\n     once; `return` must be path-only; `type` is the builder's transferTypes id. */\n  function gsbHref(type, gsb) {\n    var url = new URL(gsb.path || '/apps/ninja-gang-sheet', window.location.origin);\n    url.searchParams.set('add', JSON.stringify(gsb.add || []));\n    if (type) url.searchParams.set('type', type);\n    if (gsb.returnTo && /^\\/(?!\\/)/.test(gsb.returnTo)) url.searchParams.set('return', gsb.returnTo);\n    try {\n      var pv = new URLSearchParams(window.location.search).get('preview_theme_id');\n      if (pv) url.searchParams.set('preview_theme_id', pv);\n    } catch (e) {}\n    return url.pathname + url.search;\n  }\n\n  /* Per-category card counts (shown cards only); a category with nothing to\n     show hides, one whose cards are all single-design-only in a multi open is\n     dimmed. Returns the first category still LIVE (falls back to the first\n     showing). */\n  function counts(r) {\n    var first = null, firstShown = null;\n    r.querySelectorAll('.nt-oo__cat').forEach(function (btn) {\n      if (btn.hidden) return;\n      var panel = r.querySelector('.nt-oo__panel[data-nt-oo-cat=\"' + btn.getAttribute('data-nt-oo-cat') + '\"]');\n      var shown = panel ? panel.querySelectorAll('.nt-oo-card:not([hidden])') : [];\n      var live = panel ? panel.querySelectorAll('.nt-oo-card:not([hidden]):not([data-nt-oo-single])').length : 0;\n      var c = btn.querySelector('.nt-oo__count');\n      if (c) c.textContent = String(shown.length);\n      if (!shown.length) { btn.hidden = true; return; }\n      btn.toggleAttribute('data-nt-oo-dim', !live);\n      if (!firstShown) firstShown = btn.getAttribute('data-nt-oo-cat');\n      if (live && !first) first = btn.getAttribute('data-nt-oo-cat');\n    });\n    return first || firstShown;\n  }\n\n  /* The one-design-at-a-time note under a panel's subtitle: created on first\n     need, shown only while that panel has single-only cards in a multi open. */\n  var SINGLE_NOTE = 'These products support one design at a time. Select a single design to continue.';\n  function singleNote(panel, show) {\n    var note = panel.querySelector('.nt-oo__panel-note');\n    if (!note && !show) return;\n    if (!note) {\n      note = document.createElement('p');\n      note.className = 'nt-oo__panel-note';\n      /* Owen 2026-09-18 style pass: dark pill with a blue \"!\" badge */\n      var badge = document.createElement('span');\n      badge.className = 'nt-oo__panel-note-badge';\n      badge.setAttribute('aria-hidden', 'true');\n      badge.textContent = '!';\n      var text = document.createElement('span');\n      text.className = 'nt-oo__panel-note-text';\n      text.textContent = SINGLE_NOTE;\n      note.appendChild(badge);\n      note.appendChild(text);\n      var sub = panel.querySelector('.nt-oo__panel-sub');\n      if (sub) sub.insertAdjacentElement('afterend', note); else panel.insertBefore(note, panel.firstChild);\n    }\n    note.hidden = !show;\n  }\n\n  function select(r, cat) {\n    r.querySelectorAll('.nt-oo__cat').forEach(function (btn) {\n      btn.setAttribute('aria-selected', btn.getAttribute('data-nt-oo-cat') === cat ? 'true' : 'false');\n    });\n    r.querySelectorAll('.nt-oo__panel').forEach(function (p) {\n      p.hidden = p.getAttribute('data-nt-oo-cat') !== cat;\n    });\n    var main = r.querySelector('.nt-oo__main');\n    if (main) main.scrollTop = 0;\n  }\n\n  function open(opts) {\n    var r = root();\n    if (!r) return false;\n    opts = opts || {};\n    current = opts;\n    var catalog = opts.catalog === 'gangsheet' ? 'gangsheet' : 'bysize';\n    var multi = Number(opts.multi) > 1;\n\n    /* header */\n    /* the heading is static (\"Order this design\") \u2014 Justin 2026-09-10: no file name in the header.\n       opts.title is kept only as the thumbnail's alt text. Several designs: \"Order these designs\". */\n    var title = opts.title || basename(opts.file) || 'Your design';\n    var heading = r.querySelector('.nt-oo__title');\n    if (heading) heading.textContent = multi ? 'Order these designs' : 'Order this design';\n    var thumb = r.querySelector('.nt-oo__thumb');\n    var img = thumb && thumb.querySelector('img');\n    var src = opts.thumb || opts.file || '';\n    if (thumb) {\n      thumb.classList.toggle('is-empty', !src);\n      if (img) {\n        img.onerror = function () { thumb.classList.add('is-empty'); };\n        img.onload = function () { thumb.classList.remove('is-empty'); };\n        if (src) img.src = src; else img.removeAttribute('src');\n        img.alt = title;\n      }\n    }\n    /* Several designs (Owen 2026-09-18): the header shows the selection as a\n       stack \u2014 up to three tiles and a dark \"+N\" chip, the selection bar's\n       own idiom \u2014 in place of the single thumb. Built once, refilled per open. */\n    var thumbs = Array.isArray(opts.thumbs) ? opts.thumbs.filter(Boolean) : [];\n    var stack = r.querySelector('.nt-oo__thumbs');\n    if (multi && thumbs.length > 1) {\n      if (!stack) {\n        stack = document.createElement('div');\n        stack.className = 'nt-oo__thumbs';\n        stack.setAttribute('aria-hidden', 'true');\n        if (thumb) thumb.insertAdjacentElement('afterend', stack); else r.querySelector('.nt-oo__head').prepend(stack);\n      }\n      var shown = thumbs.slice(0, 3), more = thumbs.length - shown.length;\n      while (stack.firstChild) stack.removeChild(stack.firstChild);\n      shown.forEach(function (u) {\n        var tile = document.createElement('span');\n        tile.className = 'nt-oo__stack-tile';\n        var im = document.createElement('img');\n        im.src = String(u);\n        im.alt = '';\n        tile.appendChild(im);\n        stack.appendChild(tile);\n      });\n      if (more > 0) {\n        var chip = document.createElement('span');\n        chip.className = 'nt-oo__stack-more';\n        chip.textContent = '+' + more;\n        stack.appendChild(chip);\n      }\n      stack.hidden = false;\n      if (thumb) thumb.hidden = true;\n    } else {\n      if (stack) stack.hidden = true;\n      if (thumb) thumb.hidden = false;\n    }\n\n    /* arm every card; the shown catalogue's images stop being lazy so the\n       grid does not open as grey boxes. Multi mode: cards whose PDP takes one\n       design stay visible but greyed and inert (data-nt-oo-single), and their\n       panel gets the explanation. */\n    var gsb = opts.gsb && Array.isArray(opts.gsb.add) && opts.gsb.add.length ? opts.gsb : null;\n    var exclude = Array.isArray(opts.exclude) ? opts.exclude : [];\n    r.querySelectorAll('.nt-oo-card').forEach(function (card) {\n      var handle = card.getAttribute('data-handle') || '';\n      var variant = card.getAttribute('data-variant') || '';\n      var gsbType = card.getAttribute('data-gsb-type');\n      var single = multi && !card.hasAttribute('data-nt-oo-multi');\n      card.hidden = (!!gsbType && !gsb) || (!!handle && exclude.indexOf(handle) > -1);\n      card.toggleAttribute('data-nt-oo-single', single);\n      if (single) card.setAttribute('aria-disabled', 'true'); else card.removeAttribute('aria-disabled');\n      card.tabIndex = single ? -1 : 0;\n      if (single) card.removeAttribute('href');\n      else if (gsbType) card.href = gsb ? gsbHref(gsbType, gsb) : '#';\n      else card.href = typeof opts.hrefFor === 'function' ? opts.hrefFor(handle, variant) : defaultHref(handle, variant, opts);\n      var panel = card.closest('.nt-oo__panel');\n      if (!card.hidden && panel && (panel.getAttribute('data-nt-oo-catalog') || 'bysize') === catalog) {\n        var im = card.querySelector('img');\n        if (im && im.loading === 'lazy') im.loading = 'eager';\n      }\n    });\n    r.querySelectorAll('.nt-oo__panel').forEach(function (panel) {\n      singleNote(panel, !!panel.querySelector('.nt-oo-card[data-nt-oo-single]:not([hidden])'));\n    });\n\n    /* categories of this catalog (that still have cards); first one selected */\n    r.querySelectorAll('.nt-oo__cat').forEach(function (btn) {\n      btn.hidden = (btn.getAttribute('data-nt-oo-catalog') || 'bysize') !== catalog;\n    });\n    select(r, counts(r));\n\n    lastFocus = document.activeElement;\n    r.hidden = false;\n    document.documentElement.classList.add('nt-oo-open');\n    document.documentElement.style.overflow = 'hidden';\n    var close = r.querySelector('.nt-oo__close');\n    try { if (close) close.focus({ preventScroll: true }); } catch (e) {}\n    return true;\n  }\n\n  function close() {\n    var r = root();\n    if (r) r.hidden = true;\n    current = null;\n    document.documentElement.classList.remove('nt-oo-open');\n    document.documentElement.style.overflow = '';\n    try { if (lastFocus && lastFocus.focus) lastFocus.focus({ preventScroll: true }); } catch (e) {}\n    lastFocus = null;\n  }\n\n  document.addEventListener('click', function (e) {\n    var t = e.target;\n    if (!t || !t.closest) return;\n    var r = t.closest('.nt-oo[data-nt-oo]');\n    if (r) {\n      var cat = t.closest('.nt-oo__cat');\n      if (cat) { select(r, cat.getAttribute('data-nt-oo-cat')); return; }\n      if (t.closest('.nt-oo-card[data-nt-oo-single]')) { e.preventDefault(); return; }\n      if (t.closest('.nt-oo__close') || t.classList.contains('nt-oo__backdrop')) { e.preventDefault(); close(); }\n      return;\n    }\n    /* compat: tools + design library arm buttons with the design file */\n    var arm = t.closest('[data-nt-oo-file]');\n    if (arm) {\n      e.preventDefault();\n      e.stopPropagation();\n      var file = arm.getAttribute('data-nt-oo-file') || '';\n      var extra = arm.getAttribute('data-nt-oo-query') || '';\n      var query = {};\n      if (extra) extra.split('&').forEach(function (kv) { var p = kv.split('='); if (p[0]) query[decodeURIComponent(p[0])] = decodeURIComponent(p[1] || ''); });\n      open({ file: file, title: arm.getAttribute('data-nt-oo-title') || '', thumb: arm.getAttribute('data-nt-oo-thumb') || '', query: query });\n    }\n  }, true);\n\n  document.addEventListener('keydown', function (e) {\n    if (e.key === 'Escape' && current) { e.preventDefault(); e.stopPropagation(); close(); }\n  });\n\n  /* AI page (ai-chat-sandbox.js selection bar) */\n  document.addEventListener('aip-oo:open', function (e) {\n    var url = e && e.detail && e.detail.imageUrl;\n    if (url) open({ file: url, thumb: url, title: 'Your AI design' });\n  });\n\n  window.NTOO = {\n    open: open, close: close,\n    select: function (cat) { var r = root(); if (r) select(r, cat); },\n    current: function () { return current; },\n    isOpen: function () { return !!current; }\n  };\n})();\n"],
  "mappings": "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",
  "names": ["close"]
}
