{
  "version": 3,
  "sources": ["/cdn/shop/t/11/assets/advcoti-rd1013.js?local=1"],
  "sourcesContent": ["/* ==========================================================================\n   assets/advcoti-rd1013.js. NEW FILE, worker advcoti-redesign-1013 (13 Oct 2026).\n   Two small jobs on the ADV-COTI dark section (snippets/advcoti-lv-lander.liquid):\n   1. MODE SWITCH. The first with / without slider carries a Highlight / Outline\n      switch. The before picture (tube alone) stays; only the after picture and\n      its alt change. The slider itself is driven by assets/advcoti-lander.js.\n   2. CALLOUT LINES. In the \"Fits your PVS-14 / And PVS-31\" block every line\n      starts ON its card's edge and ends ON the named part of the picture. The\n      part is stored as a fraction of the picture's own pixels (data-rd-anchor)\n      and mapped through object-fit: contain, so it lands on the same metal at\n      every width. Recomputed on load, picture load, resize and scroll.\n   NO EM DASHES OR EN DASHES ANYWHERE IN THIS FILE.\n   ========================================================================== */\n(function () {\n  \"use strict\";\n  var ROOT = document.getElementById(\"no-advcoti\");\n  if (!ROOT) return;\n\n  /* ------------------------------------------------------------ 1. mode switch */\n  function initMode() {\n    var box = ROOT.querySelector(\"[data-rd-mode]\");\n    if (!box) return;\n    var img = ROOT.querySelector(\"[data-rd-with]\");\n    var note = box.querySelector(\"[data-rd-mode-note]\");\n    var chip = ROOT.querySelector(\"[data-rd-mode-chip]\");\n    var btns = box.querySelectorAll(\"[data-rd-mode-btn]\");\n    if (!img || !btns.length) return;\n    var pre = new Image(); pre.src = img.getAttribute(\"data-src-outline\");\n    function set(mode) {\n      for (var i = 0; i < btns.length; i++) {\n        btns[i].setAttribute(\"aria-pressed\", btns[i].getAttribute(\"data-rd-mode-btn\") === mode ? \"true\" : \"false\");\n      }\n      var src = img.getAttribute(\"data-src-\" + mode), alt = img.getAttribute(\"data-alt-\" + mode);\n      if (src && img.getAttribute(\"src\") !== src) img.setAttribute(\"src\", src);\n      if (alt) img.setAttribute(\"alt\", alt);\n      if (note) note.textContent = note.getAttribute(\"data-note-\" + mode) || \"\";\n      if (chip) chip.textContent = mode === \"outline\" ? \"Outline mode\" : \"Highlight mode\";\n      box.setAttribute(\"data-rd-mode\", mode);\n    }\n    for (var i = 0; i < btns.length; i++) {\n      btns[i].addEventListener(\"click\", function (e) { set(e.currentTarget.getAttribute(\"data-rd-mode-btn\")); });\n    }\n    set(\"highlight\");\n  }\n\n  /* ------------------------------------------------------------ 2. callout lines */\n  function drawnBox(img) {\n    var r = img.getBoundingClientRect();\n    var nw = img.naturalWidth, nh = img.naturalHeight;\n    if (!nw || !nh || !r.width || !r.height) return null;\n    var k = Math.min(r.width / nw, r.height / nh);\n    var dw = nw * k, dh = nh * k;\n    return { left: r.left + (r.width - dw) / 2, top: r.top + (r.height - dh) / 2, width: dw, height: dh };\n  }\n  function initCallout() {\n    var sec = ROOT.querySelector(\"[data-rd-callout]\");\n    if (!sec) return;\n    var pairs = [\"14\", \"31\"].map(function (k) {\n      return {\n        k: k,\n        img: sec.querySelector('[data-rd-fig=\"' + k + '\"] img'),\n        card: sec.querySelector('[data-rd-card=\"' + k + '\"]'),\n        title: sec.querySelector('[data-rd-card=\"' + k + '\"] [data-rd-title]'),\n        path: sec.querySelector('[data-rd-line=\"' + k + '\"]'),\n        dot: sec.querySelector('[data-rd-dot=\"' + k + '\"]')\n      };\n    });\n    var svg = sec.querySelector(\"[data-rd-lines]\");\n    function update() {\n      var s = sec.getBoundingClientRect();\n      if (svg) { svg.setAttribute(\"width\", String(s.width)); svg.setAttribute(\"height\", String(s.height)); svg.setAttribute(\"viewBox\", \"0 0 \" + s.width + \" \" + s.height); }\n      var wide = window.matchMedia(\"(min-width: 1024px)\").matches;\n      pairs.forEach(function (p) {\n        if (!p.img || !p.card || !p.path) return;\n        var b = drawnBox(p.img);\n        if (!b) { p.path.setAttribute(\"d\", \"\"); if (p.dot) p.dot.style.display = \"none\"; return; }\n        var a = String(p.img.getAttribute(\"data-rd-anchor\") || \"0.5,0.5\").split(\",\");\n        var ax = b.left + parseFloat(a[0]) * b.width - s.left;\n        var ay = b.top + parseFloat(a[1]) * b.height - s.top;\n        var c = p.card.getBoundingClientRect();\n        var t = p.title ? p.title.getBoundingClientRect() : c;\n        var sx, sy;\n        if (wide) {\n          /* the card edge that faces the picture, at the title row */\n          sx = (p.k === \"14\" ? c.left : c.right) - s.left;\n          sy = t.top + t.height / 2 - s.top;\n        } else {\n          /* phones: the picture sits above its card, so the line leaves the card's top edge */\n          sx = c.left + Math.min(36, c.width / 4) - s.left;\n          sy = c.top - s.top;\n        }\n        p.path.setAttribute(\"d\", \"M \" + sx.toFixed(1) + \" \" + sy.toFixed(1) + \" L \" + ax.toFixed(1) + \" \" + ay.toFixed(1));\n        p.path.setAttribute(\"data-start\", sx.toFixed(1) + \",\" + sy.toFixed(1));\n        p.path.setAttribute(\"data-end\", ax.toFixed(1) + \",\" + ay.toFixed(1));\n        if (p.dot) { p.dot.style.display = \"block\"; p.dot.style.transform = \"translate3d(\" + ax.toFixed(1) + \"px,\" + ay.toFixed(1) + \"px,0) translate(-50%,-50%)\"; }\n      });\n    }\n    var pending = false;\n    function schedule() { if (pending) return; pending = true; requestAnimationFrame(function () { pending = false; update(); }); }\n    pairs.forEach(function (p) { if (p.img && !p.img.complete) p.img.addEventListener(\"load\", schedule); });\n    window.addEventListener(\"resize\", schedule);\n    window.addEventListener(\"scroll\", schedule, { passive: true });\n    window.addEventListener(\"load\", schedule);\n    if (window.ResizeObserver) { try { new ResizeObserver(schedule).observe(sec); } catch (e) { /* resize event covers it */ } }\n    if (document.fonts && document.fonts.ready) document.fonts.ready.then(schedule);\n    update();\n    sec.__rdUpdate = update;\n  }\n\n  function boot() { initMode(); initCallout(); }\n  if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", boot); else boot();\n})();\n"],
  "mappings": "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",
  "names": ["i"]
}
