{
  "version": 3,
  "sources": ["/cdn/shop/t/84/assets/gueray-b03-mobile-rail-v1.js?qa=1792488617204"],
  "sourcesContent": ["(() => {\n  const GLOBAL_KEY = \"GuerayB03MobileRailV1\";\n\n  if (window[GLOBAL_KEY]) {\n    window[GLOBAL_KEY].scan(document);\n    return;\n  }\n\n  class GuerayMobileRail {\n    constructor(root) {\n      if (!root || root.dataset.gyMobileRailReady === \"true\") return;\n\n      this.root = root;\n      this.track = root.querySelector(\"[data-gy-mobile-track]\");\n      this.cards = this.track\n        ? Array.from(this.track.querySelectorAll(\"[data-gy-mobile-card]\"))\n        : [];\n      this.previousButton = root.querySelector(\"[data-gy-mobile-prev]\");\n      this.nextButton = root.querySelector(\"[data-gy-mobile-next]\");\n      this.segments = Array.from(\n        root.querySelectorAll(\"[data-gy-mobile-segment]\")\n      );\n      this.mobileQuery = window.matchMedia(\"(max-width: 760px)\");\n      this.activeIndex = 0;\n      this.frame = 0;\n      this.interactionTimer = 0;\n      this.dragging = false;\n      this.dragMoved = false;\n      this.startX = 0;\n      this.startScrollLeft = 0;\n\n      if (!this.track || this.cards.length < 2) return;\n\n      root.dataset.gyMobileRailReady = \"true\";\n      this.bind();\n      this.update(true);\n    }\n\n    bind() {\n      this.onScroll = this.onScroll.bind(this);\n      this.onWheel = this.onWheel.bind(this);\n      this.onPointerDown = this.onPointerDown.bind(this);\n      this.onPointerMove = this.onPointerMove.bind(this);\n      this.onPointerEnd = this.onPointerEnd.bind(this);\n      this.onClickCapture = this.onClickCapture.bind(this);\n      this.onResize = this.onResize.bind(this);\n\n      this.track.addEventListener(\"scroll\", this.onScroll, { passive: true });\n      this.track.addEventListener(\"wheel\", this.onWheel, { passive: false });\n      this.track.addEventListener(\"pointerdown\", this.onPointerDown);\n      this.track.addEventListener(\"pointermove\", this.onPointerMove);\n      this.track.addEventListener(\"pointerup\", this.onPointerEnd);\n      this.track.addEventListener(\"pointercancel\", this.onPointerEnd);\n      this.track.addEventListener(\"lostpointercapture\", this.onPointerEnd);\n      this.track.addEventListener(\"click\", this.onClickCapture, true);\n\n      this.previousButton?.addEventListener(\"click\", () => {\n        this.markInteracting();\n        this.goTo(this.activeIndex - 1);\n      });\n\n      this.nextButton?.addEventListener(\"click\", () => {\n        this.markInteracting();\n        this.goTo(this.activeIndex + 1);\n      });\n\n      this.segments.forEach((segment, index) => {\n        segment.addEventListener(\"click\", () => {\n          this.markInteracting();\n          this.goTo(index);\n        });\n      });\n\n      if (\"ResizeObserver\" in window) {\n        this.resizeObserver = new ResizeObserver(this.onResize);\n        this.resizeObserver.observe(this.track);\n      } else {\n        window.addEventListener(\"resize\", this.onResize, { passive: true });\n      }\n\n      window.addEventListener(\"orientationchange\", this.onResize, {\n        passive: true,\n      });\n    }\n\n    isMobile() {\n      return this.mobileQuery.matches;\n    }\n\n    markInteracting() {\n      this.root.classList.add(\"is-interacting\");\n      window.clearTimeout(this.interactionTimer);\n      this.interactionTimer = window.setTimeout(() => {\n        this.root.classList.remove(\"is-interacting\");\n      }, 420);\n    }\n\n    getCardLeft(index) {\n      const card = this.cards[index];\n      if (!card) return 0;\n\n      const trackRect = this.track.getBoundingClientRect();\n      const cardRect = card.getBoundingClientRect();\n      return this.track.scrollLeft + cardRect.left - trackRect.left;\n    }\n\n    goTo(index, instant = false) {\n      const safeIndex = Math.max(0, Math.min(index, this.cards.length - 1));\n      const reduceMotion = window.matchMedia(\n        \"(prefers-reduced-motion: reduce)\"\n      ).matches;\n\n      this.track.scrollTo({\n        left: this.getCardLeft(safeIndex),\n        behavior: instant || reduceMotion ? \"auto\" : \"smooth\",\n      });\n      this.activeIndex = safeIndex;\n      this.paint();\n    }\n\n    nearestIndex() {\n      const trackRect = this.track.getBoundingClientRect();\n      const trackCenter = trackRect.left + trackRect.width / 2;\n      let nearest = 0;\n      let distance = Number.POSITIVE_INFINITY;\n\n      this.cards.forEach((card, index) => {\n        const rect = card.getBoundingClientRect();\n        const cardCenter = rect.left + rect.width / 2;\n        const nextDistance = Math.abs(cardCenter - trackCenter);\n        if (nextDistance < distance) {\n          distance = nextDistance;\n          nearest = index;\n        }\n      });\n\n      return nearest;\n    }\n\n    paint() {\n      this.segments.forEach((segment, index) => {\n        const active = index === this.activeIndex;\n        segment.classList.toggle(\"is-active\", active);\n        segment.setAttribute(\"aria-current\", active ? \"true\" : \"false\");\n      });\n\n      if (this.previousButton) {\n        this.previousButton.disabled = this.activeIndex === 0;\n      }\n      if (this.nextButton) {\n        this.nextButton.disabled = this.activeIndex === this.cards.length - 1;\n      }\n    }\n\n    update(force = false) {\n      if (!this.isMobile()) {\n        this.activeIndex = 0;\n        this.paint();\n        return;\n      }\n\n      const nextIndex = this.nearestIndex();\n      if (force || nextIndex !== this.activeIndex) {\n        this.activeIndex = nextIndex;\n        this.paint();\n      }\n    }\n\n    onScroll() {\n      window.cancelAnimationFrame(this.frame);\n      this.frame = window.requestAnimationFrame(() => this.update());\n    }\n\n    onWheel(event) {\n      if (!this.isMobile() || this.track.scrollWidth <= this.track.clientWidth) {\n        return;\n      }\n\n      const dominantDelta =\n        Math.abs(event.deltaY) > Math.abs(event.deltaX)\n          ? event.deltaY\n          : event.deltaX;\n      if (!dominantDelta) return;\n\n      event.preventDefault();\n      this.markInteracting();\n      this.track.scrollLeft += dominantDelta;\n    }\n\n    onPointerDown(event) {\n      if (\n        !this.isMobile() ||\n        event.pointerType !== \"mouse\" ||\n        event.button !== 0\n      ) {\n        return;\n      }\n\n      this.dragging = true;\n      this.dragMoved = false;\n      this.startX = event.clientX;\n      this.startScrollLeft = this.track.scrollLeft;\n      this.markInteracting();\n    }\n\n    onPointerMove(event) {\n      if (!this.dragging) return;\n      if ((event.buttons & 1) === 0) {\n        this.onPointerEnd(event);\n        return;\n      }\n\n      const delta = event.clientX - this.startX;\n      if (!this.dragMoved) {\n        if (Math.abs(delta) <= 4) return;\n        this.dragMoved = true;\n        this.track.classList.add(\"is-dragging\");\n        this.track.style.scrollSnapType = \"none\";\n        this.track.setPointerCapture(event.pointerId);\n      }\n      this.track.scrollTo({ left: this.startScrollLeft - delta, behavior: \"instant\" });\n      event.preventDefault();\n    }\n\n    onPointerEnd(event) {\n      if (!this.dragging) return;\n\n      this.dragging = false;\n      this.track.classList.remove(\"is-dragging\");\n      this.track.style.removeProperty(\"scroll-snap-type\");\n      if (this.track.hasPointerCapture?.(event.pointerId)) {\n        this.track.releasePointerCapture(event.pointerId);\n      }\n\n      window.requestAnimationFrame(() => {\n        this.activeIndex = this.nearestIndex();\n        this.goTo(this.activeIndex);\n      });\n    }\n\n    onClickCapture(event) {\n      if (!this.dragMoved) return;\n      event.preventDefault();\n      event.stopPropagation();\n      this.dragMoved = false;\n    }\n\n    onResize() {\n      window.cancelAnimationFrame(this.frame);\n      this.frame = window.requestAnimationFrame(() => {\n        if (this.isMobile()) {\n          this.goTo(this.activeIndex, true);\n        } else {\n          this.track.scrollLeft = 0;\n          this.activeIndex = 0;\n          this.paint();\n        }\n      });\n    }\n  }\n\n  const api = {\n    scan(scope = document) {\n      scope.querySelectorAll(\"[data-gy-mobile-rail]\").forEach((root) => {\n        new GuerayMobileRail(root);\n      });\n    },\n  };\n\n  window[GLOBAL_KEY] = api;\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", () => api.scan(document), {\n      once: true,\n    });\n  } else {\n    api.scan(document);\n  }\n\n  document.addEventListener(\"shopify:section:load\", (event) => {\n    api.scan(event.target);\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
