{
  "version": 3,
  "sources": ["/cdn/shop/t/148/assets/custom-number-onimg.js?cb=593658283"],
  "sourcesContent": ["var inputf = document.querySelector(\"#embroidery-field\");\nvar displayd = document.querySelectorAll(\".text-div\");\nvar txtdiv = document.querySelectorAll(\".text-div-m\");\n\n// Top-level so both the tap handler and input listener can call it\nfunction killPulse() {\n  document.querySelectorAll('.text-div').forEach(function(el) {\n    el.classList.add('has-input');\n  });\n  sessionStorage.setItem('cn-pulse-seen', '1');\n}\nvar colorsinp = document.querySelectorAll(\".col-i\");\nvar outcolorsinp = document.querySelectorAll(\".out-c\");\nvar nocustmbtn = document.querySelector(\"#no-emb-btn\");\nvar isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\nvar isHidden;\nif (isSafari) {\n  txtdiv.forEach(function (ele) {\n    ele.style.fontWeight = \"700\";\n  });\n}\nconst mediaQuery = window.matchMedia(\"(max-width:750px)\");\nfunction handleMediaQueryChange(event) {\n  if (event.matches) {\n    document.addEventListener(\"DOMContentLoaded\", function () {\n      sliderbtns();\n    });\n  }\n}\nhandleMediaQueryChange(mediaQuery);\n\ncolorsinp.forEach(function (element) {\n  element.addEventListener(\"click\", function () {\n    var colorvalue = element.nextElementSibling.style.backgroundColor;\n    console.log(colorvalue);\n    txtdiv.forEach(function (ele) {\n      ele.style.color = colorvalue;\n    });\n  });\n});\n\noutcolorsinp.forEach(function (element) {\n  element.addEventListener(\"click\", function () {\n    var outvalue = element.nextElementSibling.style.backgroundColor;\n\n    txtdiv.forEach(function (ele) {\n      ele.style.webkitTextStrokeColor = outvalue;\n      if (isSafari) ele.style.fontWeight = \"700\";\n    });\n  });\n});\n\nif (inputf) {\n  inputf.addEventListener(\"input\", function (e) {\n    showdiv();\n    if (inputf.value.trim().length > 0) killPulse();\n  });\n}\nif (nocustmbtn){\n\nnocustmbtn.addEventListener(\"click\", function () {\n  if (isHidden) {\n    displayd.forEach(function (ele) {\n      ele.style.display = \"block\";\n    });\n\n    isHidden = false;\n  } else {\n    displayd.forEach(function (ele) {\n      ele.style.display = \"none\";\n    });\n\n    txtdiv.forEach(function (ele) {\n      ele.style.webkitTextStrokeColor = \"black\";\n      //   ele.style.textShadow=`2px 0px black, -2px 0px black,\n      //         1px -2px black, 2px -2px black,\n      //         2px 2px black, -2px 2px black,\n      //         -2px -2px black`;\n      ele.style.color = \"black\";\n    });\n\n    isHidden = true;\n  }\n});\n  \n}\n\n// var allthumbs=document.querySelectorAll(\".Color_name_ofoption\");\n// allthumbs.forEach(function(element){\n//   element.addEventListener('click',function () {\n//     var attvalue=element.getAttribute(\"data-alt\");\n//     if (attvalue == \"main-img\"){\n//        displayd.style.display = 'none';\n//       setTimeout(function() {\n//     displayd.style.display = 'block';\n//      },500);\n//     }\n//     else{\n//        displayd.style.display = 'none';\n//     };\n\n//   });\n// });\n\nvar swatches = document.querySelectorAll(\".Color_name_ofoption\");\nswatches.forEach(function (element) {\n  element.addEventListener(\"click\", function () {\n    displayd.forEach(function (el) {\n      el.style.display = \"none\";\n    });\n\n    if (\n      document.getElementById(\"embroidery-switch\") &&\n      document.getElementById(\"embroidery-switch\").checked\n    ) {\n      displayd.forEach(function (ele) {\n        setTimeout(function () {\n          ele.style.display = \"block\";\n        }, 500);\n      });\n    }\n    if (element.dataset.ls_img_url) {\n      document.querySelectorAll(\".gallery_switcher img\").forEach((switcher) => {\n        switcher.src = element.dataset.ls_img_url;\n        if (element.dataset.ls_img_id)\n          switcher.parentElement.dataset.img_id = element.dataset.ls_img_id;\n        console.log(switcher.parentElement.dataset.img_id);\n      });\n    }\n  });\n  // element.addEventListener('mouseenter',e=>{\n  //   e.currentTarget.querySelector('label').click();\n  // })\n});\n\nfunction sliderbtns() {\n  var sliderbtns = document.querySelectorAll(\".slick-arrow\");\n\n  sliderbtns.forEach(function (element) {\n    element.addEventListener(\"click\", function (e) {\n      e.preventDefault();\n\n      checkmainclass();\n    });\n  });\n}\n\nfunction checkmainclass() {\n  var mainthumbs = document.querySelector(\n    \".swatch-color-main .slick-slide.slick-active\"\n  );\n  if (mainthumbs != null) {\n    var nextthumb = mainthumbs.nextElementSibling.getAttribute(\n      \"attached-to-variant\"\n    );\n\n    console.log(nextthumb);\n    if (nextthumb == \"true\") {\n      displayd.forEach(function (ele) {\n        ele.style.display = \"none\";\n      });\n\n      setTimeout(function () {\n        displayd.forEach(function (ele) {\n          ele.style.display = \"block\";\n        });\n      }, 500);\n    } else {\n      displayd.forEach(function (ele) {\n        ele.style.display = \"none\";\n      });\n    }\n  } else {\n    var mainthumbs = document.querySelector(\".slick-slide.slick-current\");\nif (!mainthumbs) return; // slick hasn't initialized yet\nvar nextthumb = mainthumbs.getAttribute(\"attached-to-variant\");\nconsole.log(nextthumb);\n\n    if (nextthumb == \"true\") {\n      displayd.forEach(function (ele) {\n        ele.style.display = \"none\";\n      });\n      setTimeout(function () {\n        displayd.forEach(function (ele) {\n          ele.style.display = \"block\";\n        });\n      }, 500);\n    } else {\n      if (window.innerWidth < 750) {\n        displayd.forEach(function (ele) {\n          ele.style.display = \"none\";\n        });\n      }\n    }\n  }\n}\n\n// function showdiv() {\n//   var imgValue = txtdiv[0].innerText;\n//   var inputValue = inputf.value.trim();\n  \n//   // Replace \"+\" with \"\u2020\"\n//   if (inputValue.includes(\"+\")) {\n//     inputValue = inputValue.replace(/\\+/g, \"\u2020\");\n//   }\n//   console.log(inputValue);\n\n//   // Get special symbols from body data attribute\n//   var specialSymbols = $(\"body\").data(\"special-symbols\") || \"\";\n  \n//   // Include \"\u2020\" as a special symbol\n//   specialSymbols += \"\u2020\"; \n//   var escapedSymbols = specialSymbols.replace(/[-\\/\\\\^$.*+?()[\\]{}|]/g, \"\\\\$&\");\n  \n//   // Regex for special characters only\n//   var onlySpecialChars = new RegExp(`^[${escapedSymbols}]+$`).test(inputValue);\n  \n//   // Regex for alphanumeric characters only\n//   var onlyLetters = /^[A-Z0-9]+$/.test(inputValue.toUpperCase());\n  \n//   // Regex for letters/numbers with special symbols intermixed\n//   var lettersWithSpecial = new RegExp(`^[A-Z0-9${escapedSymbols}]+$`, 'i').test(inputValue);\n\n//   if (onlySpecialChars || lettersWithSpecial || onlyLetters) {\n//     var valinp = inputValue.toUpperCase();\n//     txtdiv.forEach(function (ele) {\n//       ele.innerText = valinp;\n//     });\n//   } else {\n//     txtdiv.forEach(function (ele) {\n//       console.log(\"value\", imgValue);\n//       if (inputValue !== \"\") {\n//         ele.innerText = imgValue;\n//       } else {\n//         ele.innerText = \"\";\n//       }\n//       ele.style.fontFamily = \"\";\n//     });\n//   }\n// }\nfunction showdiv() {\n  if (!txtdiv || !txtdiv.length) return;\n\n  const imgValue = txtdiv[0].innerText;\n  const allowEmoji = inputf.dataset.emoji === \"true\";\n  console.log(\"allow\", allowEmoji);\n\n  let inputValue = (inputf.value || \"\").trim();\n\n  // Replace \"+\" with \"\u2020\"\n  inputValue = inputValue.replace(/\\+/g, \"\u2020\");\n\n  const emojiRegex = /[\\p{Emoji_Presentation}\\p{Extended_Pictographic}]/gu;\n  let isEmoji = false;\n  if (allowEmoji) {\n    // Build allowed-character class from theme setting (body[data-special-symbols])\n    let specialSymbols = $(\"body\").data(\"special-symbols\") || \"\";\n    specialSymbols += \"\u2020$\";\n    const escapedSymbols = specialSymbols.replace(/[-\\/\\\\^$.*+?()[\\]{}|]/g, \"\\\\$&\");\n    inputValue = inputValue.replace(\n      new RegExp(`[^A-Za-z0-9${escapedSymbols}\\\\p{Emoji_Presentation}\\\\p{Extended_Pictographic}\\\\p{Regional_Indicator}\\\\u200D\\\\uFE0F\\\\uFE0E]`, 'gu'),\n      ''\n    );\n   isEmoji = /[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}]/u.test(inputValue);\n  console.log(inputValue);\n    \n  } else {\n    let specialSymbols = $(\"body\").data(\"special-symbols\") || \"\";\n    specialSymbols += \"\u2020\";\n\n    const escapedSymbols = specialSymbols.replace(/[-\\/\\\\^$.*+?()[\\]{}|]/g, \"\\\\$&\");\n\n    const onlySpecialChars = new RegExp(`^[${escapedSymbols}]+$`).test(inputValue);\n    const onlyLetters = /^[A-Z0-9]+$/i.test(inputValue);\n    const lettersWithSpecial = new RegExp(`^[A-Z0-9${escapedSymbols}]+$`, 'i').test(inputValue);\n\n    if (!(onlySpecialChars || lettersWithSpecial || onlyLetters)) {\n      restoreFallback(imgValue, inputValue);\n      return;\n    }\n  }\n  let valinp = '';\n  if (!isEmoji){\n   valinp = inputValue.toUpperCase();\n   console.log(\"emoji\",isEmoji );\n  }\n  else{\n   valinp = inputValue;\n  }\n\n  // Cap to 1 grapheme for emoji, 2 chars for plain alphanumeric (matches input field's own cap)\n  let isEmojiValue = /[\\p{Extended_Pictographic}\\p{Regional_Indicator}]/u.test(valinp);\n  if (isEmojiValue) {\n    try {\n      const seg = new Intl.Segmenter(undefined, { granularity: \"grapheme\" });\n      const graphemes = [...seg.segment(valinp)];\n      if (graphemes.length > 1) valinp = graphemes[0].segment;\n    } catch (e) {}\n  } else if (valinp.length > 2) {\n    valinp = valinp.slice(0, 2);\n  }\n\n  inputf.value = valinp;\n  txtdiv.forEach(ele => {\n    ele.innerText = valinp;\n    if (isEmoji){\n    ele.classList.add('noto-color-emoji-regular');\n    inputf.setAttribute('readonly', true);\n    }\n    else{\n      ele.classList.remove('noto-color-emoji-regular');\n      inputf.removeAttribute('readonly');\n    }\n  });\n}\n\n\nfunction restoreFallback(imgValue, inputValue) {\n  txtdiv.forEach(ele => {\n    if (inputValue !== \"\") {\n      ele.innerText = imgValue;\n    } else {\n      ele.innerText = \"\";\n    }\n    ele.style.fontFamily = \"\";\n  });\n}\n\n/* Tap the number on the sleeve \u2192 focus field (keyboard opens) then scroll into view */\n(function() {\n  function bindTapToField() {\n    var field = document.getElementById('embroidery-field');\n    if (!field) return;\n\n    // If already tapped this session, kill pulse immediately on load\n    if (sessionStorage.getItem('cn-pulse-seen')) killPulse();\n\n    document.querySelectorAll('.text-div').forEach(function(el) {\n      el.addEventListener('click', function() {\n        // Kill pulse immediately and permanently for this session\n        killPulse();\n        // focus() MUST be synchronous inside the tap gesture or mobile won't open keyboard\n        field.focus();\n        // Scroll after \u2014 keyboard is already opening\n        field.scrollIntoView({ behavior: 'smooth', block: 'center' });\n      });\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', bindTapToField);\n  } else {\n    bindTapToField();\n  }\n})();\n\n/* Move title/stars/price under image column on desktop.\n   Skipped on jacket PDP \u2014 jacket renders cst-desk-view above\n   .product-single__meta in Liquid and shouldn't be moved. */\n(function moveTitleUnderImages() {\n  function doMove() {\n    // Jacket PDP: do not move \u2014 Liquid already places cst-desk-view correctly.\n    if (window.location.pathname.indexOf('custom-numbered-varsity-jacket') !== -1) return;\n    if (window.innerWidth >= 750) {\n      var deskView = document.getElementById('cst-desk-view');\n      var imgCol = document.querySelector('.product-single__media-group');\n      if (deskView && imgCol && deskView.parentElement !== imgCol) {\n        imgCol.appendChild(deskView);\n      }\n    }\n  }\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', doMove);\n  } else {\n    doMove();\n  }\n})();\n\n/* Mobile pinned Add-to-Cart bar with a 30% mini-mockup.\n   Appears on mobile (<=750px) only when the embroidery field has a value AND the\n   real ATC button has scrolled ABOVE the viewport; hides otherwise / when the\n   side cart is open. Adds to cart by clicking the real button so existing\n   validation (theme.js) and the side-cart submit flow (side-cart.js) both run. */\n(function cnPinnedAtcBar() {\n  var SCALE = 0.396; // mock size relative to the main mockup (fills the tray height); +10% to enlarge the mini-mockup and grow the bar\n\n  function init() {\n    var fieldEl = document.querySelector('#embroidery-field');\n    var realBtn = document.querySelector('form.product-form .product-form__cart-submit');\n    if (!fieldEl || !realBtn) return;\n\n    // The visible mockup is the mobile slider on phones (`.mobile-slider-main`,\n    // which carries `cstm-wrap` so the `.text-div` number overlay positions\n    // against it); the desktop `.product-media-right-one` is display:none on\n    // mobile. Prefer whichever is actually visible.\n    function getVisibleMock() {\n      var nodes = document.querySelectorAll('.mobile-slider-main, .product-media-right-one');\n      for (var i = 0; i < nodes.length; i++) {\n        if (nodes[i].offsetParent !== null && nodes[i].getBoundingClientRect().width > 0) {\n          return nodes[i];\n        }\n      }\n      return null;\n    }\n\n    var liveMock = getVisibleMock() || document.querySelector('.mobile-slider-main');\n    if (!liveMock) return;\n\n    var mediaQuery = window.matchMedia('(max-width:750px)');\n    var sideCart = document.querySelector('.side-cart');\n    var bar = null, mockWrap = null, built = false, aboveView = false, suppressed = false;\n    var pricingSlot = null, pricingEl = null, pricingHome = null, placeholder = null, lastSig = '';\n\n    function sideCartOpen() {\n      return !!(sideCart && sideCart.classList.contains('open'));\n    }\n\n    /* Desktop version of the bar (sleeve PDP only \u2014 keyed off the desktop hero\n       section being present): identical behavior/conditions to mobile, but the\n       bar overlays the RIGHT buy column instead of spanning the viewport. */\n    function desktopBar() {\n      return !mediaQuery.matches && !!document.querySelector('.cn-pdp-hero-desktop-section');\n    }\n\n    function shouldShow() {\n      return (mediaQuery.matches || desktopBar()) &&\n        fieldEl.value.trim().length > 0 &&\n        aboveView &&\n        !suppressed &&\n        !sideCartOpen();\n    }\n\n    // Moir\u00E9 fix for the DESKTOP mini: the clone's product photo (~400-800px\n    // source) is CSS-transform-scaled ~0.36x in one GPU pass, which aliases\n    // the knit texture into moir\u00E9. Same cure as the fit gallery: resample\n    // through a high-quality canvas in halving steps down to ~2x the final\n    // device size, so the browser's last step is a clean 2x. Results cached\n    // per source URL; a fresh crossOrigin probe avoids tainting the canvas.\n    var _rsCache = {};\n    function resampleMiniImg(imgEl, targetDeviceW) {\n      var src = imgEl.currentSrc || imgEl.src;\n      if (!src || src.indexOf('data:') === 0) return;\n      var key = src + '|' + targetDeviceW;\n      if (_rsCache[key]) { imgEl.src = _rsCache[key]; return; }\n      var probe = new Image();\n      probe.crossOrigin = 'anonymous';\n      probe.onload = function () {\n        try {\n          var sw = probe.naturalWidth, sh = probe.naturalHeight;\n          if (!sw || sw <= targetDeviceW * 1.25) return;\n          var srcC = probe;\n          while (sw / 2 > targetDeviceW) {\n            var c = document.createElement('canvas');\n            c.width = Math.round(sw / 2); c.height = Math.round(sh / 2);\n            var ctx = c.getContext('2d');\n            ctx.imageSmoothingEnabled = true; ctx.imageSmoothingQuality = 'high';\n            ctx.drawImage(srcC, 0, 0, c.width, c.height);\n            srcC = c; sw = c.width; sh = c.height;\n          }\n          var out = document.createElement('canvas');\n          out.width = targetDeviceW; out.height = Math.round(sh * targetDeviceW / sw);\n          var octx = out.getContext('2d');\n          octx.imageSmoothingEnabled = true; octx.imageSmoothingQuality = 'high';\n          // Sub-pixel low-pass on the final draw: the knit texture's period is\n          // ~1-2 device px at this size, so a 0.75px gaussian removes the\n          // frequency that beats against the pixel grid (= the moir\u00E9) while\n          // band edges stay sharp. No-op where ctx.filter is unsupported.\n          try { octx.filter = 'blur(0.75px)'; } catch (e) {}\n          octx.drawImage(srcC, 0, 0, out.width, out.height);\n          try { octx.filter = 'none'; } catch (e) {}\n          var url = out.toDataURL('image/jpeg', 0.92);\n          _rsCache[key] = url;\n          if (imgEl.isConnected) imgEl.src = url;\n        } catch (e) {}   // tainted/decode error \u2192 original stays\n      };\n      probe.src = src;\n    }\n\n    // A lightweight fingerprint of what the mini actually shows \u2014 the typed number\n    // and the active slide image. Used to skip needless re-clones (anti-flicker).\n    function mockSig() {\n      var td = liveMock.querySelector('.text-div');\n      var num = td ? (td.textContent || '').trim() : '';\n      var img = liveMock.querySelector('.slick-current img, .slick-active img, img');\n      var src = img ? (img.currentSrc || img.src || '') : '';\n      return num + '|' + src;\n    }\n\n    // Re-clone the live mockup (image slider + number overlay) into the mini\n    // wrapper and scale it to SCALE. Re-cloning (vs. syncing pieces) keeps the\n    // slick slider's current slide + the overlay's exact styling in step.\n    function rebuildMock() {\n      if (!mockWrap) return false;\n      var src = getVisibleMock();\n      if (src) liveMock = src;\n      var rect = liveMock.getBoundingClientRect();\n      if (!rect.width || !rect.height) return false;\n\n      var clone = liveMock.cloneNode(true);\n      clone.removeAttribute('id');\n      clone.querySelectorAll('[id]').forEach(function (el) { el.removeAttribute('id'); });\n      // Keep only the product image slider + number overlay; drop loaders and\n      // all the slider chrome (PHOTOS switcher, lifestyle gallery + thumbs,\n      // wristband decoration) so the mini is a clean mockup.\n      clone.querySelectorAll(\n        '.sleeve-loader, .sleeve-loader-img, .gallery_switcher, ' +\n        '.lifeStyle_slider_main, .lifeStyle_slider_thumbs, .main__image__right'\n      ).forEach(function (el) { el.remove(); });\n\n      // The band-color picker is a horizontal slick strip: cloned and scaled, its\n      // frozen track transform drifts a few px and bleeds the neighbouring colour\n      // slide into the narrow mini, clipping the band on the right. Collapse the\n      // clone's slider to just the single colour currently shown in the live\n      // mockup, pinned to fill the frame \u2014 no track, no bleed. Scoped to the\n      // wristband (`.wristbandmain`); the sleeve's mini is left exactly as-is.\n      if (document.querySelector('.wristbandmain')) {\n        var liveWrap = liveMock.querySelector('.mobile-slider-wrapper');\n        var cloneWrap = clone.querySelector('.mobile-slider-wrapper');\n        if (liveWrap && cloneWrap) {\n          var listLeft = liveWrap.getBoundingClientRect().left;\n          var shownSrc = '';\n          liveWrap.querySelectorAll('.mobile-slider-image img').forEach(function (im) {\n            var r = im.getBoundingClientRect();\n            if (r.width > 1 && Math.abs(r.left - listLeft) < 6) shownSrc = im.currentSrc || im.src;\n          });\n          if (!shownSrc) {\n            var firstImg = liveWrap.querySelector('.mobile-slider-image img');\n            if (firstImg) shownSrc = firstImg.currentSrc || firstImg.src;\n          }\n          if (shownSrc) {\n            cloneWrap.innerHTML =\n              '<img src=\"' + shownSrc + '\" alt=\"\" ' +\n              'style=\"display:block;width:100%;height:100%;object-fit:contain;\">';\n            cloneWrap.style.visibility = 'visible';\n            cloneWrap.style.opacity = '1';\n          }\n        }\n      }\n\n      // The wristband PDP crops its main mockup to the band \u2014 it hides the top\n      // 20% of the slider (clip-path on `.mobile-slider-wrapper`) so only the\n      // bottom 80% (the band + number) shows. That crop is scoped to\n      // `.cn-bb-left`, so the clone (which lives under `.wristbandmain`) doesn't\n      // inherit it and would otherwise render the full uncropped strip, blowing\n      // out of the mini tray. Mirror the crop here: shift the clone up by the\n      // hidden top portion and shorten the tray to the visible band height.\n      var cropTop = document.querySelector('.wristbandmain') ? 0.20 : 0;\n      var isWristDesk = !mediaQuery.matches && !!document.querySelector('.cn-pdp-hero-desktop-wrist-section');\n      var scale, offsetY, frameH;\n      if (mediaQuery.matches) {\n        scale = SCALE;\n        offsetY = -(rect.height * scale * cropTop);\n        frameH = rect.height * scale * (1 - cropTop);\n      } else if (isWristDesk) {\n        // WRISTBAND desktop only: ZOOM 1.215x into the band, centered on the\n        // image midpoint and CLAMPED to the edges so the full band always\n        // shows. The zoom keeps the downsample ratio friendly (no moir\u00E9).\n        frameH = 182;\n        scale = (frameH / (rect.height * (1 - cropTop))) * 1.215;\n        var scaledH = rect.height * scale;\n        var idealTop = scaledH * 0.5 - frameH / 2;\n        idealTop = Math.max(0, Math.min(idealTop, scaledH - frameH));\n        offsetY = -idealTop;\n      } else {\n        // SLEEVE desktop: the QA'd original \u2014 full mock fitted to 182px.\n        scale = Math.min(SCALE, 182 / rect.height);\n        offsetY = -(rect.height * scale * cropTop);\n        frameH = rect.height * scale * (1 - cropTop);\n      }\n      clone.style.position = 'absolute';\n      clone.style.top = offsetY + 'px';\n      clone.style.left = '0';\n      clone.style.margin = '0';\n      clone.style.width = rect.width + 'px';\n      clone.style.height = rect.height + 'px';\n      clone.style.transformOrigin = 'top left';\n      clone.style.transform = 'scale(' + scale + ')';\n\n      mockWrap.style.width = (rect.width * scale) + 'px';\n      mockWrap.style.height = frameH + 'px';\n      // WRISTBAND desktop mini only: 4px of air between the band image and the\n      // tray's left edge (was flush, per Mike Jul 9)\n      mockWrap.style.marginLeft = isWristDesk ? '4px' : '';\n      mockWrap.innerHTML = '';\n      mockWrap.appendChild(clone);\n      // WRISTBAND desktop mini only: kill the transform-downscale moir\u00E9\n      // (the sleeve tray stays exactly as QA'd \u2014 no resample). Resample to the\n      // EXACT device-pixel size the img renders at \u2014 a 2x target still left the\n      // browser one 2:1 GPU downscale, which re-aliased the knit into moir\u00E9.\n      if (isWristDesk) {\n        var targetW = Math.max(96, Math.round(rect.width * scale * (window.devicePixelRatio || 1)));\n        clone.querySelectorAll('img').forEach(function (im) { resampleMiniImg(im, targetW); });\n      }\n      lastSig = mockSig();\n      return true;\n    }\n\n    function buildBar() {\n      if (built || document.querySelector('.cn-pinned-bar')) return;\n      built = true;\n\n      bar = document.createElement('div');\n      bar.className = 'cn-pinned-bar';\n      // Wristband overlay CSS is scoped to `.wristbandmain .text-div`; carry the\n      // class on the bar root so the cloned overlay keeps its position.\n      if (document.querySelector('.wristbandmain')) bar.classList.add('wristbandmain');\n\n      mockWrap = document.createElement('div');\n      mockWrap.className = 'cn-pinned-mock';\n\n      var btn = document.createElement('button');\n      btn.type = 'button';\n      btn.className = 'btn cn-pinned-atc';\n      var lbl = realBtn.querySelector('[data-add-to-cart-text]');\n      function syncBtnLabel() {\n        btn.textContent = ((lbl ? lbl.textContent : realBtn.textContent) || '').trim() || 'Add to Cart';\n      }\n      syncBtnLabel();\n      // live-sync: the real label now carries the dynamic total (\"Add to\n      // Cart - $57.58\") and changes with pack selection \u2014 mirror every change.\n      if (lbl && 'MutationObserver' in window) {\n        new MutationObserver(syncBtnLabel).observe(lbl, { childList: true, characterData: true, subtree: true });\n      }\n      btn.addEventListener('click', function () { realBtn.click(); });\n\n      // Right column: the Single/Pair pricing cards (relocated from the PDP) sit\n      // above the ATC button.\n      var right = document.createElement('div');\n      right.className = 'cn-pinned-right';\n      pricingSlot = document.createElement('div');\n      pricingSlot.className = 'cn-pinned-pricing';\n      right.appendChild(pricingSlot);\n      right.appendChild(btn);\n\n      bar.appendChild(mockWrap);\n      bar.appendChild(right);\n      document.body.appendChild(bar);\n\n      rebuildMock();\n    }\n\n    // Move the REAL pricing widget (the Single/Pair cards) into the bar \u2014 we move,\n    // not clone, so its bound click handlers and live discount updates (which target\n    // unique element IDs) keep working. It is restored to its PDP spot when the bar\n    // hides. Skipped where the widget is absent or hidden (e.g. the jacket PDP).\n    function movePricingToBar() {\n      if (!pricingSlot) return;\n      if (!pricingEl) {\n        var el = document.querySelector('.tst-pricing-options');\n        if (!el || el.offsetParent === null) return; // absent or hidden \u2014 leave the bar card-less\n        pricingEl = el;\n        pricingHome = { parent: el.parentNode, next: el.nextSibling };\n        placeholder = document.createElement('div');\n        placeholder.className = 'cn-pinned-pricing-placeholder';\n        placeholder.setAttribute('aria-hidden', 'true');\n      }\n      if (pricingEl.parentNode !== pricingSlot) {\n        // Leave a same-height placeholder in the PDP so pulling the widget out of the\n        // page flow doesn't collapse the layout and jump the scroll position.\n        placeholder.style.height = pricingEl.getBoundingClientRect().height + 'px';\n        pricingHome.parent.insertBefore(placeholder, pricingEl);\n        pricingSlot.appendChild(pricingEl);\n      }\n    }\n\n    function restorePricing() {\n      if (!pricingEl || !pricingHome || pricingEl.parentNode !== pricingSlot) return;\n      if (placeholder && placeholder.parentNode) {\n        placeholder.parentNode.replaceChild(pricingEl, placeholder); // back in its exact spot, no shift\n      } else if (pricingHome.next && pricingHome.next.parentNode === pricingHome.parent) {\n        pricingHome.parent.insertBefore(pricingEl, pricingHome.next);\n      } else {\n        pricingHome.parent.appendChild(pricingEl);\n      }\n    }\n\n    function update() {\n      if (!shouldShow()) {\n        if (bar) bar.classList.remove('is-visible');\n        restorePricing();\n        return;\n      }\n      buildBar();\n      if (!bar) return;\n      // Desktop: fit the bar to the right buy column (.product-info-main).\n      bar.classList.toggle('cn-pinned-desktop', desktopBar());\n      if (desktopBar()) {\n        var col = document.querySelector('.product-info-main');\n        if (col) {\n          var cr = col.getBoundingClientRect();\n          bar.style.left = cr.left + 'px';\n          bar.style.width = cr.width + 'px';\n          bar.style.right = 'auto';\n        }\n      } else {\n        bar.style.left = '';\n        bar.style.width = '';\n        bar.style.right = '';\n      }\n      rebuildMock();\n      movePricingToBar();\n      bar.classList.add('is-visible');\n    }\n\n    // Show only once the real ATC button has scrolled ABOVE the viewport top.\n    if ('IntersectionObserver' in window) {\n      new IntersectionObserver(function (entries) {\n        var e = entries[0];\n        if (e.isIntersecting) suppressed = false; // back at the real ATC \u2192 allow the bar again\n        aboveView = !e.isIntersecting && e.boundingClientRect.top < 0;\n        update();\n      }, { threshold: 0 }).observe(realBtn);\n    }\n\n    // Side cart open/close. Opening the cart hides the bar AND keeps it gone after\n    // the cart closes (so it doesn't pop back when the user returns to the PDP),\n    // until the real ATC scrolls back into view and clears the suppression.\n    if (sideCart && 'MutationObserver' in window) {\n      new MutationObserver(function () {\n        if (sideCartOpen()) suppressed = true;\n        update();\n      }).observe(sideCart, { attributes: true, attributeFilter: ['class'] });\n    }\n\n    // Live mockup changes (number text, color/slide swap) \u2192 re-mirror, but only when\n    // the meaningful content actually changes. The slider mutates constantly (inline\n    // styles, lazy-load attrs); re-cloning on every mutation made the mini flicker, so\n    // skip rebuilds when the signature (number + active image) is unchanged.\n    if ('MutationObserver' in window) {\n      var moT = null;\n      var mo = new MutationObserver(function () {\n        if (!bar || !bar.classList.contains('is-visible')) return;\n        if (mockSig() === lastSig) return;   // nothing visible changed \u2014 ignore\n        if (moT) return;                     // a rebuild is already queued\n        moT = setTimeout(function () { moT = null; rebuildMock(); }, 90);\n      });\n      mo.observe(liveMock, { subtree: true, childList: true, characterData: true, attributes: true });\n    }\n\n    fieldEl.addEventListener('input', update);\n    mediaQuery.addEventListener('change', update);\n\n    var resizeT;\n    window.addEventListener('resize', function () {\n      clearTimeout(resizeT);\n      resizeT = setTimeout(function () { rebuildMock(); update(); }, 150);\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n\n\n\n\n\n\n"],
  "mappings": "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",
  "names": ["sliderbtns", "mediaQuery"]
}
