@rethink-js/rt-slider 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.js"],
4
- "sourcesContent": ["(function () {\n var RT_NS = \"rtSlider\";\n if (window[RT_NS] && window[RT_NS].__initialized) return;\n\n var lenisLoadingPromise = null;\n\n function loadLenis() {\n if (typeof window.Lenis !== \"undefined\") return Promise.resolve();\n if (lenisLoadingPromise) return lenisLoadingPromise;\n lenisLoadingPromise = new Promise(function (resolve, reject) {\n var existing =\n document.querySelector('script[data-rt-slider-lenis=\"true\"]') ||\n document.querySelector('script[src*=\"lenis\"]');\n if (existing) {\n if (typeof window.Lenis !== \"undefined\") {\n resolve();\n return;\n }\n existing.addEventListener(\"load\", function () {\n resolve();\n });\n existing.addEventListener(\"error\", function (e) {\n reject(e);\n });\n } else {\n var s = document.createElement(\"script\");\n s.src = \"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js\";\n s.async = true;\n s.setAttribute(\"data-rt-slider-lenis\", \"true\");\n s.onload = function () {\n resolve();\n };\n s.onerror = function (e) {\n reject(e);\n };\n document.head.appendChild(s);\n }\n });\n return lenisLoadingPromise;\n }\n\n var LenisHub = (function () {\n var set = new Set();\n var rafId = 0;\n function loop(t) {\n set.forEach(function (l) {\n try {\n l.raf(t);\n } catch (e) {}\n });\n rafId = set.size ? requestAnimationFrame(loop) : 0;\n }\n return {\n add: function (lenis) {\n if (!lenis) return;\n set.add(lenis);\n if (!rafId) rafId = requestAnimationFrame(loop);\n },\n remove: function (lenis) {\n if (!lenis) return;\n set.delete(lenis);\n if (!set.size && rafId) {\n cancelAnimationFrame(rafId);\n rafId = 0;\n }\n },\n };\n })();\n\n function uid() {\n return \"s\" + Math.random().toString(36).slice(2);\n }\n\n function assignUID(el, attr) {\n if (!el.getAttribute(attr)) el.setAttribute(attr, uid());\n return el.getAttribute(attr);\n }\n\n function injectOnce(key, css) {\n var s = document.head.querySelector(\n '[data-rt-slider-injected=\"' + key + '\"]',\n );\n if (!s) {\n s = document.createElement(\"style\");\n s.setAttribute(\"data-rt-slider-injected\", key);\n document.head.appendChild(s);\n }\n if (s.textContent !== css) s.textContent = css;\n return s;\n }\n\n function removeInjected(key) {\n var s = document.head.querySelector(\n '[data-rt-slider-injected=\"' + key + '\"]',\n );\n if (s && s.parentNode) s.parentNode.removeChild(s);\n }\n\n function toSel(v) {\n return typeof v === \"string\" ? v.trim() : \"\";\n }\n\n function parseBool(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim().toLowerCase();\n if (s === \"\") return true;\n if (s === \"true\" || s === \"1\" || s === \"yes\" || s === \"y\" || s === \"on\")\n return true;\n if (s === \"false\" || s === \"0\" || s === \"no\" || s === \"n\" || s === \"off\")\n return false;\n return def;\n }\n\n function parseNum(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim();\n if (!s.length) return def;\n var n = Number(s);\n return Number.isFinite(n) ? n : def;\n }\n\n function parseStr(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v);\n return s.length ? s : def;\n }\n\n function clamp(i) {\n return i < 0 ? 0 : i > 1 ? 1 : i;\n }\n\n function round(n, d) {\n if (!Number.isFinite(n)) return 0;\n var m = Math.pow(10, d || 0);\n return Math.round(n * m) / m;\n }\n\n function parseEasing(name) {\n var n = String(name || \"\").trim();\n if (!n) return null;\n var map = {\n linear: function (t) {\n return clamp(t);\n },\n easeInQuad: function (t) {\n t = clamp(t);\n return t * t;\n },\n easeOutQuad: function (t) {\n t = clamp(t);\n return t * (2 - t);\n },\n easeInOutQuad: function (t) {\n t = clamp(t);\n return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;\n },\n easeInCubic: function (t) {\n t = clamp(t);\n return t * t * t;\n },\n easeOutCubic: function (t) {\n t = clamp(t);\n return 1 - Math.pow(1 - t, 3);\n },\n easeInOutCubic: function (t) {\n t = clamp(t);\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n },\n easeInOutSine: function (t) {\n t = clamp(t);\n return -(Math.cos(Math.PI * t) - 1) / 2;\n },\n easeOutExpo: function (t) {\n t = clamp(t);\n return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);\n },\n };\n return map[n] || null;\n }\n\n function isTransparentColor(val) {\n if (!val) return true;\n var v = String(val).trim().toLowerCase();\n if (v === \"transparent\") return true;\n if (v.startsWith(\"rgba(\")) {\n var parts = v\n .slice(5, -1)\n .split(\",\")\n .map(function (x) {\n return x.trim();\n });\n var a = parts.length === 4 ? Number(parts[3]) : 1;\n return !Number.isFinite(a) ? false : a === 0;\n }\n return false;\n }\n\n function findNearestOpaqueBgColor(el) {\n var n = el;\n while (n && n !== document.documentElement) {\n var cs = getComputedStyle(n);\n var bg = cs.backgroundColor;\n if (!isTransparentColor(bg)) return bg;\n n = n.parentElement;\n }\n var rootBg = getComputedStyle(document.body).backgroundColor;\n return isTransparentColor(rootBg) ? \"rgb(255, 255, 255)\" : rootBg;\n }\n\n function isOverflowingX(el) {\n if (!el) return false;\n try {\n return el.scrollWidth > el.clientWidth + 1;\n } catch (e) {\n return false;\n }\n }\n\n function findScrollableAncestor(el) {\n var n = el;\n while (n && n !== document.body) {\n var cs = getComputedStyle(n);\n var ox = cs.overflowX;\n var scrollable = ox === \"auto\" || ox === \"scroll\" || ox === \"overlay\";\n if (scrollable && isOverflowingX(n)) return n;\n n = n.parentElement;\n }\n return el;\n }\n\n function resolveControl(root, selector, sliderId) {\n if (!selector) return null;\n var local = root.querySelector(selector);\n if (local) return local;\n var byFor = document.querySelector(\n selector + '[data-rt-slider-for=\"' + sliderId + '\"]',\n );\n if (byFor) return byFor;\n var all = Array.from(document.querySelectorAll(selector));\n if (all.length === 1) return all[0];\n var scoped = all.filter(function (el) {\n var owner = el.closest(\"[data-rt-slider]\");\n return owner === root;\n });\n if (scoped.length === 1) return scoped[0];\n return null;\n }\n\n function isVisibleNode(el) {\n if (!el) return false;\n var cs = getComputedStyle(el);\n if (cs.display === \"none\" || cs.visibility === \"hidden\") return false;\n return el.getClientRects().length > 0;\n }\n\n function getConf(root) {\n return {\n list: toSel(root.getAttribute(\"data-rt-list\")),\n item: toSel(root.getAttribute(\"data-rt-item\")),\n spacer: toSel(root.getAttribute(\"data-rt-spacer\")),\n btnPrev: toSel(root.getAttribute(\"data-rt-btn-prev\")),\n btnNext: toSel(root.getAttribute(\"data-rt-btn-next\")),\n scrollTrack: toSel(root.getAttribute(\"data-rt-scroll-track\")),\n scrollBar: toSel(root.getAttribute(\"data-rt-scroll-bar\")),\n marginRef: toSel(root.getAttribute(\"data-rt-margin-ref\")),\n overlayStart: toSel(root.getAttribute(\"data-rt-overlay-start\")),\n overlayEnd: toSel(root.getAttribute(\"data-rt-overlay-end\")),\n };\n }\n\n function Slider(root, id) {\n this.root = root;\n this.id = id;\n this.conf = getConf(root);\n this.valid = !!(this.conf.list && this.conf.item);\n if (!this.valid) return;\n\n this.sliderId = assignUID(this.root, \"data-rt-slider-id\");\n this.list = this.root.querySelector(this.conf.list);\n if (!this.list) {\n this.valid = false;\n return;\n }\n\n this.list.style.overflowX = \"auto\";\n this.list.style.webkitOverflowScrolling = \"touch\";\n this.list.style.scrollbarWidth = \"none\";\n this.list.style.msOverflowStyle = \"none\";\n\n this.scroller = findScrollableAncestor(this.list);\n this.scroller.style.scrollbarWidth = \"none\";\n this.scroller.style.msOverflowStyle = \"none\";\n try {\n this.scroller.style.webkitOverflowScrolling = \"touch\";\n } catch (e) {}\n try {\n this.scroller.style.overscrollBehaviorX = \"contain\";\n } catch (e) {}\n\n this._basePaddingBottomPx = null;\n this._basePaddingCaptured = false;\n this._touchClampTimer = 0;\n\n this.btnPrev = this.conf.btnPrev\n ? resolveControl(this.root, this.conf.btnPrev, this.sliderId)\n : null;\n this.btnNext = this.conf.btnNext\n ? resolveControl(this.root, this.conf.btnNext, this.sliderId)\n : null;\n this.overlayStart = this.conf.overlayStart\n ? resolveControl(this.root, this.conf.overlayStart, this.sliderId)\n : null;\n this.overlayEnd = this.conf.overlayEnd\n ? resolveControl(this.root, this.conf.overlayEnd, this.sliderId)\n : null;\n\n if (this.overlayStart) {\n this.overlayStart.style.transition = \"opacity 0.3s ease\";\n this.overlayStart.style.willChange = \"opacity\";\n }\n if (this.overlayEnd) {\n this.overlayEnd.style.transition = \"opacity 0.3s ease\";\n this.overlayEnd.style.willChange = \"opacity\";\n }\n\n this.scrollTrack = this.conf.scrollTrack\n ? this.root.querySelector(this.conf.scrollTrack)\n : null;\n this.scrollBar = this.conf.scrollBar\n ? this.root.querySelector(this.conf.scrollBar)\n : null;\n this.firstItem = this.list.querySelector(this.conf.item + \":first-child\");\n this.lastItem = this.list.querySelector(this.conf.item + \":last-child\");\n\n this.dragging = false;\n this.maybeDrag = false;\n this.draggingBar = false;\n this.barPointerId = null;\n this.barOffsetX = 0;\n this.startX = 0;\n this.startScroll = 0;\n this.lastX = 0;\n this.lastT = 0;\n this.velocity = 0;\n this.inertiaId = 0;\n this.ticking = false;\n this.didDrag = false;\n this.didDragTs = 0;\n this.dragMovedPx = 0;\n this.cursorBindings = [];\n this.imgHandlers = [];\n this._roTicking = false;\n this.lenis = null;\n this._lenisWasStopped = false;\n this.mq = window.matchMedia(\"(hover: hover) and (pointer: fine)\");\n this._injectedKey = null;\n this._lastGutterPx = 0;\n this._lastGapPx = 0;\n\n this.slideState = null;\n this._slideStateSig = \"\";\n this._lastSlideStateActiveIndex = -1;\n this._lastSlideStateScrollLeft = 0;\n\n var self = this;\n this.ro =\n typeof ResizeObserver !== \"undefined\"\n ? new ResizeObserver(function () {\n if (self._roTicking) return;\n self._roTicking = true;\n requestAnimationFrame(function () {\n self._roTicking = false;\n self.rafUpdate();\n self.setupCursorMode();\n self.applyIOSScrollIndicatorMask();\n self.applyListStyles();\n });\n })\n : null;\n }\n\n Slider.prototype.devicePixelEpsilon = function () {\n var dpr = Math.max(1, window.devicePixelRatio || 1);\n return 1 / dpr;\n };\n\n Slider.prototype.listGap = function () {\n var cs = getComputedStyle(this.list);\n var g1 = parseFloat(cs.columnGap || \"0\") || 0;\n var g2 = parseFloat(cs.gap || \"0\") || 0;\n return Math.max(g1, g2);\n };\n\n Slider.prototype.pickVisibleMarginRef = function () {\n if (!this.conf.marginRef) return null;\n var nodes = this.root.querySelectorAll(this.conf.marginRef);\n if (nodes.length === 0)\n nodes = document.querySelectorAll(this.conf.marginRef);\n for (var i = 0; i < nodes.length; i++) {\n if (isVisibleNode(nodes[i])) return nodes[i];\n }\n return null;\n };\n\n Slider.prototype.isFlex = function () {\n return getComputedStyle(this.list).display.indexOf(\"flex\") !== -1;\n };\n\n Slider.prototype.isGrid = function () {\n return getComputedStyle(this.list).display.indexOf(\"grid\") !== -1;\n };\n\n Slider.prototype.ensureSpacers = function () {\n var kids = Array.from(this.list.children);\n var className = this.conf.spacer\n ? this.conf.spacer.replace(/^[.#]/, \"\")\n : \"awards-slider-spacer\";\n var needStart = !(\n kids[0] &&\n kids[0].classList &&\n kids[0].classList.contains(className)\n );\n var needEnd = !(\n kids[kids.length - 1] &&\n kids[kids.length - 1].classList &&\n kids[kids.length - 1].classList.contains(className)\n );\n\n if (needStart) {\n var el = document.createElement(\"div\");\n el.className = className;\n el.setAttribute(\"aria-hidden\", \"true\");\n el.style.pointerEvents = \"none\";\n el.style.height = \"1px\";\n el.style.minHeight = \"1px\";\n if (this.isFlex()) el.style.flex = \"0 0 auto\";\n this.list.insertBefore(el, this.list.firstChild);\n }\n if (needEnd) {\n var el2 = document.createElement(\"div\");\n el2.className = className;\n el2.setAttribute(\"aria-hidden\", \"true\");\n el2.style.pointerEvents = \"none\";\n el2.style.height = \"1px\";\n el2.style.minHeight = \"1px\";\n if (this.isFlex()) el2.style.flex = \"0 0 auto\";\n this.list.appendChild(el2);\n }\n };\n\n Slider.prototype.resetEdgeItemMargins = function () {\n if (this.firstItem) this.firstItem.style.marginLeft = \"0px\";\n if (this.lastItem) this.lastItem.style.marginRight = \"0px\";\n };\n\n Slider.prototype.updateSpacers = function () {\n this.ensureSpacers();\n this.resetEdgeItemMargins();\n\n var kids = Array.from(this.list.children);\n var cls = this.conf.spacer\n ? this.conf.spacer.replace(/^[.#]/, \"\")\n : \"awards-slider-spacer\";\n var spacerStart =\n kids[0] && kids[0].classList.contains(cls) ? kids[0] : null;\n var spacerEnd =\n kids[kids.length - 1] && kids[kids.length - 1].classList.contains(cls)\n ? kids[kids.length - 1]\n : null;\n if (!spacerStart || !spacerEnd) return;\n\n var marginRef = this.pickVisibleMarginRef();\n var eps = this.devicePixelEpsilon();\n var gap = this.listGap();\n this._lastGapPx = gap;\n\n spacerStart.style.marginRight = \"\";\n spacerEnd.style.marginLeft = \"\";\n\n if (gap > 0.0001) {\n spacerStart.style.marginRight = \"-\" + gap + \"px\";\n spacerEnd.style.marginLeft = \"-\" + gap + \"px\";\n }\n\n if (!marginRef) {\n spacerStart.style.width = eps + \"px\";\n spacerEnd.style.width = eps + \"px\";\n this._lastGutterPx = eps;\n return;\n }\n\n var sRect = this.scroller.getBoundingClientRect();\n var rRect = marginRef.getBoundingClientRect();\n var scrollerCS = getComputedStyle(this.scroller);\n var listCS = getComputedStyle(this.list);\n var scrollerBorderL = parseFloat(scrollerCS.borderLeftWidth || \"0\") || 0;\n var scrollerPadL = parseFloat(scrollerCS.paddingLeft || \"0\") || 0;\n var listPadL = parseFloat(listCS.paddingLeft || \"0\") || 0;\n var scrollerInnerLeft = sRect.left + scrollerBorderL + scrollerPadL;\n var desiredLeft = rRect.left;\n var raw = desiredLeft - scrollerInnerLeft - listPadL;\n var width = raw <= 0 ? eps : Math.round(raw);\n\n spacerStart.style.width = width + \"px\";\n spacerEnd.style.width = width + \"px\";\n\n if (this.isGrid()) {\n spacerStart.style.justifySelf = \"start\";\n spacerEnd.style.justifySelf = \"start\";\n spacerStart.style.gridColumn = \"auto\";\n spacerEnd.style.gridColumn = \"auto\";\n }\n this._lastGutterPx = width;\n };\n\n Slider.prototype.maxScroll = function () {\n return Math.max(0, this.scroller.scrollWidth - this.scroller.clientWidth);\n };\n\n Slider.prototype.updateOverlays = function () {\n if (!this.overlayStart && !this.overlayEnd) return;\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n var scrollable = total > visible + 1;\n function setVis(el, show) {\n if (!el) return;\n el.style.opacity = show ? \"1\" : \"0\";\n el.style.pointerEvents = show ? \"\" : \"none\";\n }\n if (!scrollable) {\n setVis(this.overlayStart, false);\n setVis(this.overlayEnd, false);\n return;\n }\n var m = this.maxScroll();\n var current = this.scroller.scrollLeft;\n var tolerance = 10;\n var atStart = current <= tolerance;\n var atEnd = current >= m - tolerance;\n setVis(this.overlayStart, !atStart);\n setVis(this.overlayEnd, !atEnd);\n };\n\n Slider.prototype.updateButtons = function () {\n if (!this.btnPrev && !this.btnNext) return;\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n var scrollable = total > visible + 1;\n\n if (!scrollable) {\n if (this.btnPrev) {\n this.btnPrev.classList.add(\"inactive\");\n this.btnPrev.style.display = \"none\";\n }\n if (this.btnNext) {\n this.btnNext.classList.add(\"inactive\");\n this.btnNext.style.display = \"none\";\n }\n return;\n }\n if (this.btnPrev) this.btnPrev.style.display = \"\";\n if (this.btnNext) this.btnNext.style.display = \"\";\n\n var m = this.maxScroll();\n var current = this.scroller.scrollLeft;\n var tolerance = 10;\n var atStart = current <= tolerance;\n var atEnd = current >= m - tolerance;\n\n if (this.btnPrev) {\n if (atStart) this.btnPrev.classList.add(\"inactive\");\n else this.btnPrev.classList.remove(\"inactive\");\n }\n if (this.btnNext) {\n if (atEnd) this.btnNext.classList.add(\"inactive\");\n else this.btnNext.classList.remove(\"inactive\");\n }\n };\n\n Slider.prototype.computeScrollbarMetrics = function () {\n if (!this.scrollTrack || !this.scrollBar) return null;\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n var items = this.list.querySelectorAll(this.conf.item).length;\n if (total <= visible || items === 0) return null;\n var trackWidth = this.scrollTrack.clientWidth;\n var avgItemWidth = total / Math.max(1, items + 2);\n var visibleItems = Math.max(1, Math.round(visible / avgItemWidth));\n var barWidth = Math.max(8, (visibleItems / (items + 2)) * trackWidth);\n var maxS = Math.max(1, total - visible);\n var maxX = Math.max(0, trackWidth - barWidth);\n var progress = Math.min(1, Math.max(0, this.scroller.scrollLeft / maxS));\n var x = maxX * progress;\n return {\n trackWidth: trackWidth,\n barWidth: barWidth,\n maxS: maxS,\n maxX: maxX,\n x: x,\n };\n };\n\n Slider.prototype.updateScrollbar = function () {\n if (!this.scrollTrack || !this.scrollBar) return;\n var m = this.computeScrollbarMetrics();\n if (!m) {\n this.scrollTrack.style.display = \"none\";\n return;\n }\n this.scrollTrack.style.display = \"\";\n this.scrollBar.style.width = m.barWidth + \"px\";\n if (!this.draggingBar) {\n this.scrollBar.style.transform = \"translateX(\" + m.x + \"px)\";\n }\n };\n\n Slider.prototype.rafUpdate = function () {\n this.updateSpacers();\n this.updateScrollbar();\n this.updateButtons();\n this.updateOverlays();\n this.updateSlideState(false);\n };\n\n Slider.prototype.safeClampScroll = function (x) {\n var clamped = Math.min(Math.max(x, 0), this.maxScroll());\n return Number.isFinite(clamped) ? clamped : 0;\n };\n\n Slider.prototype.setScroll = function (x, opts) {\n var target = this.safeClampScroll(x);\n if (this.lenis) {\n var o = opts || {};\n try {\n this.lenis.scrollTo(target, {\n immediate: !!o.immediate,\n lock: !!o.lock,\n force: o.force !== false,\n });\n } catch (e) {\n this.scroller.scrollLeft = target;\n }\n } else {\n this.scroller.scrollLeft = target;\n }\n this.updateScrollbar();\n this.updateButtons();\n this.updateOverlays();\n this.updateSlideState(false);\n };\n\n Slider.prototype.scheduleTouchClamp = function () {\n var self = this;\n if (this._touchClampTimer) clearTimeout(this._touchClampTimer);\n this._touchClampTimer = setTimeout(function () {\n self._touchClampTimer = 0;\n var cur = self.scroller.scrollLeft;\n var max = self.maxScroll();\n var eps = 1;\n if (!Number.isFinite(cur)) {\n self.scroller.scrollLeft = 0;\n } else if (cur < -eps || cur > max + eps) {\n self.scroller.scrollLeft = self.safeClampScroll(cur);\n } else if (cur < 0) {\n self.scroller.scrollLeft = 0;\n } else if (cur > max) {\n self.scroller.scrollLeft = max;\n }\n self.updateScrollbar();\n self.updateButtons();\n self.updateOverlays();\n self.updateSlideState(false);\n }, 90);\n };\n\n Slider.prototype.onScroll = function () {\n var self = this;\n if (!this.mq.matches) {\n this.updateScrollbar();\n this.updateButtons();\n this.updateOverlays();\n this.updateSlideState(false);\n this.scheduleTouchClamp();\n return;\n }\n if (this.ticking) return;\n this.ticking = true;\n requestAnimationFrame(function () {\n var clamped = self.safeClampScroll(self.scroller.scrollLeft);\n if (clamped !== self.scroller.scrollLeft) {\n if (self.lenis)\n self.setScroll(clamped, {\n immediate: true,\n lock: false,\n force: true,\n });\n else self.scroller.scrollLeft = clamped;\n }\n self.updateScrollbar();\n self.updateButtons();\n self.updateOverlays();\n self.updateSlideState(false);\n self.ticking = false;\n });\n };\n\n Slider.prototype.itemStepWidth = function () {\n if (!this.conf.item)\n return Math.max(1, Math.floor(this.scroller.clientWidth * 0.9));\n var item = this.list.querySelector(this.conf.item);\n if (!item) return Math.max(1, Math.floor(this.scroller.clientWidth * 0.9));\n var cs = getComputedStyle(item);\n var w = item.getBoundingClientRect().width;\n var mr = parseFloat(cs.marginRight) || 0;\n return Math.max(1, Math.round(w + mr));\n };\n\n Slider.prototype.getAlignTargetLeft = function () {\n var ref = this.pickVisibleMarginRef();\n if (ref) {\n return ref.getBoundingClientRect().left;\n }\n var sRect = this.scroller.getBoundingClientRect();\n var scrollerCS = getComputedStyle(this.scroller);\n var listCS = getComputedStyle(this.list);\n var scrollerBorderL = parseFloat(scrollerCS.borderLeftWidth || \"0\") || 0;\n var scrollerPadL = parseFloat(scrollerCS.paddingLeft || \"0\") || 0;\n var listPadL = parseFloat(listCS.paddingLeft || \"0\") || 0;\n var gutter = Number.isFinite(this._lastGutterPx) ? this._lastGutterPx : 0;\n return sRect.left + scrollerBorderL + scrollerPadL + listPadL + gutter;\n };\n\n Slider.prototype.getOrderedItems = function () {\n if (!this.conf.item) return [];\n var nodes = Array.from(this.list.querySelectorAll(this.conf.item));\n return nodes.filter(function (n) {\n return n && n.nodeType === 1;\n });\n };\n\n Slider.prototype.getCurrentItemIndex = function (items) {\n if (!items || !items.length) return -1;\n var alignLeft = this.getAlignTargetLeft();\n var bestIdx = 0;\n var bestAbs = Infinity;\n for (var i = 0; i < items.length; i++) {\n var r = items[i].getBoundingClientRect();\n var d = r.left - alignLeft;\n var ad = Math.abs(d);\n if (ad < bestAbs) {\n bestAbs = ad;\n bestIdx = i;\n }\n }\n return bestIdx;\n };\n\n Slider.prototype.getItemAnchorScrolls = function (items) {\n var current = this.safeClampScroll(this.scroller.scrollLeft);\n var alignLeft = this.getAlignTargetLeft();\n var anchors = [];\n var last = -Infinity;\n\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n item.setAttribute(\"data-rt-slider-item-index\", String(i));\n var rect = item.getBoundingClientRect();\n var raw = current + (rect.left - alignLeft);\n var anchor = this.safeClampScroll(raw);\n if (anchor < last) anchor = last;\n anchors.push(anchor);\n last = anchor;\n }\n\n return anchors;\n };\n\n Slider.prototype.cloneSlideState = function (state) {\n if (!state) return null;\n return {\n sliderId: state.sliderId,\n itemCount: state.itemCount,\n scroll: {\n current: state.scroll.current,\n max: state.scroll.max,\n progress: state.scroll.progress,\n progressPercent: state.scroll.progressPercent,\n direction: state.scroll.direction,\n isAtStart: state.scroll.isAtStart,\n isAtEnd: state.scroll.isAtEnd,\n },\n active: {\n index: state.active.index,\n element: state.active.element,\n anchorScrollLeft: state.active.anchorScrollLeft,\n distancePx: state.active.distancePx,\n },\n previous: {\n index: state.previous.index,\n element: state.previous.element,\n },\n next: {\n index: state.next.index,\n element: state.next.element,\n },\n segment: {\n fromIndex: state.segment.fromIndex,\n fromElement: state.segment.fromElement,\n toIndex: state.segment.toIndex,\n toElement: state.segment.toElement,\n progress: state.segment.progress,\n progressPercent: state.segment.progressPercent,\n distancePx: state.segment.distancePx,\n spanPx: state.segment.spanPx,\n remainingPx: state.segment.remainingPx,\n isBetween: state.segment.isBetween,\n },\n slides: state.slides.map(function (slide) {\n return {\n index: slide.index,\n element: slide.element,\n anchorScrollLeft: slide.anchorScrollLeft,\n anchorProgress: slide.anchorProgress,\n anchorProgressPercent: slide.anchorProgressPercent,\n distanceFromCurrentPx: slide.distanceFromCurrentPx,\n isActive: slide.isActive,\n isPrevious: slide.isPrevious,\n isNext: slide.isNext,\n isFrom: slide.isFrom,\n isTo: slide.isTo,\n isBeforeActive: slide.isBeforeActive,\n isAfterActive: slide.isAfterActive,\n };\n }),\n };\n };\n\n Slider.prototype.dispatchSliderEvent = function (name, detail) {\n var payload = this.cloneSlideState(detail);\n try {\n this.root.dispatchEvent(\n new CustomEvent(name, {\n bubbles: true,\n detail: payload,\n }),\n );\n } catch (e) {\n var ev = document.createEvent(\"CustomEvent\");\n ev.initCustomEvent(name, true, false, payload);\n this.root.dispatchEvent(ev);\n }\n };\n\n Slider.prototype.applySlideStateAttributes = function (state) {\n var root = this.root;\n root.setAttribute(\n \"data-rt-slider-active-index\",\n String(state.active.index),\n );\n root.setAttribute(\n \"data-rt-slider-from-index\",\n String(state.segment.fromIndex),\n );\n root.setAttribute(\"data-rt-slider-to-index\", String(state.segment.toIndex));\n root.setAttribute(\n \"data-rt-slider-segment-progress\",\n String(round(state.segment.progress, 6)),\n );\n root.setAttribute(\n \"data-rt-slider-segment-progress-percent\",\n String(round(state.segment.progressPercent, 4)),\n );\n root.setAttribute(\n \"data-rt-slider-scroll-progress\",\n String(round(state.scroll.progress, 6)),\n );\n root.setAttribute(\n \"data-rt-slider-scroll-progress-percent\",\n String(round(state.scroll.progressPercent, 4)),\n );\n root.setAttribute(\n \"data-rt-slider-scroll-direction\",\n state.scroll.direction,\n );\n\n for (var i = 0; i < state.slides.length; i++) {\n var slide = state.slides[i];\n var el = slide.element;\n if (!el) continue;\n el.setAttribute(\"data-rt-slider-item-index\", String(slide.index));\n el.setAttribute(\n \"data-rt-slider-item-active\",\n slide.isActive ? \"true\" : \"false\",\n );\n el.setAttribute(\n \"data-rt-slider-item-from\",\n slide.isFrom ? \"true\" : \"false\",\n );\n el.setAttribute(\"data-rt-slider-item-to\", slide.isTo ? \"true\" : \"false\");\n el.setAttribute(\n \"data-rt-slider-item-previous\",\n slide.isPrevious ? \"true\" : \"false\",\n );\n el.setAttribute(\n \"data-rt-slider-item-next\",\n slide.isNext ? \"true\" : \"false\",\n );\n el.setAttribute(\n \"data-rt-slider-item-before-active\",\n slide.isBeforeActive ? \"true\" : \"false\",\n );\n el.setAttribute(\n \"data-rt-slider-item-after-active\",\n slide.isAfterActive ? \"true\" : \"false\",\n );\n el.setAttribute(\n \"data-rt-slider-item-anchor-progress\",\n String(round(slide.anchorProgress, 6)),\n );\n el.setAttribute(\n \"data-rt-slider-item-anchor-progress-percent\",\n String(round(slide.anchorProgressPercent, 4)),\n );\n el.setAttribute(\n \"data-rt-slider-item-distance\",\n String(round(slide.distanceFromCurrentPx, 4)),\n );\n }\n };\n\n Slider.prototype.buildSlideState = function () {\n var items = this.getOrderedItems();\n var max = this.maxScroll();\n var current = this.safeClampScroll(this.scroller.scrollLeft);\n var prevScroll = this._lastSlideStateScrollLeft;\n var scrollDirection = \"none\";\n\n if (current > prevScroll + 0.01) scrollDirection = \"forward\";\n else if (current < prevScroll - 0.01) scrollDirection = \"backward\";\n\n if (!items.length) {\n return {\n sliderId: this.sliderId,\n itemCount: 0,\n scroll: {\n current: current,\n max: max,\n progress: max > 0 ? clamp(current / max) : 0,\n progressPercent: max > 0 ? clamp(current / max) * 100 : 0,\n direction: scrollDirection,\n isAtStart: current <= 0.5,\n isAtEnd: current >= max - 0.5,\n },\n active: {\n index: -1,\n element: null,\n anchorScrollLeft: 0,\n distancePx: 0,\n },\n previous: {\n index: -1,\n element: null,\n },\n next: {\n index: -1,\n element: null,\n },\n segment: {\n fromIndex: -1,\n fromElement: null,\n toIndex: -1,\n toElement: null,\n progress: 0,\n progressPercent: 0,\n distancePx: 0,\n spanPx: 0,\n remainingPx: 0,\n isBetween: false,\n },\n slides: [],\n };\n }\n\n var anchors = this.getItemAnchorScrolls(items);\n var nearestIndex = 0;\n var nearestDistance = Infinity;\n\n for (var i = 0; i < anchors.length; i++) {\n var distance = current - anchors[i];\n var absDistance = Math.abs(distance);\n if (absDistance < nearestDistance) {\n nearestDistance = absDistance;\n nearestIndex = i;\n }\n }\n\n var fromIndex = 0;\n var toIndex = 0;\n var segmentProgress = 0;\n var segmentDistance = 0;\n var segmentSpan = 0;\n var segmentRemaining = 0;\n var isBetween = false;\n\n if (current <= anchors[0]) {\n fromIndex = 0;\n toIndex = 0;\n segmentProgress = 0;\n segmentDistance = 0;\n segmentSpan = 0;\n segmentRemaining = 0;\n isBetween = false;\n } else if (current >= anchors[anchors.length - 1]) {\n fromIndex = anchors.length - 1;\n toIndex = anchors.length - 1;\n segmentProgress = 1;\n segmentDistance = 0;\n segmentSpan = 0;\n segmentRemaining = 0;\n isBetween = false;\n } else {\n for (var j = 0; j < anchors.length - 1; j++) {\n var a = anchors[j];\n var b = anchors[j + 1];\n if (current >= a && current <= b) {\n fromIndex = j;\n toIndex = j + 1;\n segmentSpan = Math.max(0, b - a);\n segmentDistance = Math.max(0, current - a);\n segmentProgress =\n segmentSpan > 0 ? clamp(segmentDistance / segmentSpan) : 0;\n segmentRemaining = Math.max(0, segmentSpan - segmentDistance);\n isBetween = current > a && current < b;\n break;\n }\n }\n }\n\n var slides = [];\n for (var k = 0; k < items.length; k++) {\n var anchor = anchors[k];\n var anchorProgress = max > 0 ? clamp(anchor / max) : 0;\n slides.push({\n index: k,\n element: items[k],\n anchorScrollLeft: anchor,\n anchorProgress: anchorProgress,\n anchorProgressPercent: anchorProgress * 100,\n distanceFromCurrentPx: current - anchor,\n isActive: k === nearestIndex,\n isPrevious: k === nearestIndex - 1,\n isNext: k === nearestIndex + 1,\n isFrom: k === fromIndex,\n isTo: k === toIndex,\n isBeforeActive: k < nearestIndex,\n isAfterActive: k > nearestIndex,\n });\n }\n\n return {\n sliderId: this.sliderId,\n itemCount: items.length,\n scroll: {\n current: current,\n max: max,\n progress: max > 0 ? clamp(current / max) : 0,\n progressPercent: max > 0 ? clamp(current / max) * 100 : 0,\n direction: scrollDirection,\n isAtStart: current <= 0.5,\n isAtEnd: current >= max - 0.5,\n },\n active: {\n index: nearestIndex,\n element: items[nearestIndex] || null,\n anchorScrollLeft: anchors[nearestIndex] || 0,\n distancePx: current - (anchors[nearestIndex] || 0),\n },\n previous: {\n index: nearestIndex > 0 ? nearestIndex - 1 : -1,\n element: nearestIndex > 0 ? items[nearestIndex - 1] : null,\n },\n next: {\n index: nearestIndex < items.length - 1 ? nearestIndex + 1 : -1,\n element:\n nearestIndex < items.length - 1 ? items[nearestIndex + 1] : null,\n },\n segment: {\n fromIndex: fromIndex,\n fromElement: items[fromIndex] || null,\n toIndex: toIndex,\n toElement: items[toIndex] || null,\n progress: segmentProgress,\n progressPercent: segmentProgress * 100,\n distancePx: segmentDistance,\n spanPx: segmentSpan,\n remainingPx: segmentRemaining,\n isBetween: isBetween,\n },\n slides: slides,\n };\n };\n\n Slider.prototype.updateSlideState = function (force) {\n var state = this.buildSlideState();\n var prevActiveIndex = this._lastSlideStateActiveIndex;\n var sig =\n state.active.index +\n \"|\" +\n state.segment.fromIndex +\n \"|\" +\n state.segment.toIndex +\n \"|\" +\n round(state.segment.progress, 4) +\n \"|\" +\n round(state.scroll.progress, 4) +\n \"|\" +\n state.scroll.direction;\n\n this.slideState = state;\n this.applySlideStateAttributes(state);\n this._lastSlideStateScrollLeft = state.scroll.current;\n\n if (force || sig !== this._slideStateSig) {\n this._slideStateSig = sig;\n this.dispatchSliderEvent(\"rtSlider:slide\", state);\n }\n\n if (force || state.active.index !== prevActiveIndex) {\n this._lastSlideStateActiveIndex = state.active.index;\n this.dispatchSliderEvent(\"rtSlider:active\", state);\n }\n };\n\n Slider.prototype.getSlideState = function () {\n if (!this.slideState) this.updateSlideState(true);\n return this.cloneSlideState(this.slideState);\n };\n\n Slider.prototype.getActiveIndex = function () {\n var state = this.getSlideState();\n return state && state.active ? state.active.index : -1;\n };\n\n Slider.prototype.getActiveElement = function () {\n var state = this.getSlideState();\n return state && state.active ? state.active.element : null;\n };\n\n Slider.prototype.scrollAlignToItem = function (el) {\n if (!el) return;\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n if (total <= visible + 1) return;\n\n var alignLeft = this.getAlignTargetLeft();\n var r = el.getBoundingClientRect();\n var delta = r.left - alignLeft;\n if (!Number.isFinite(delta)) return;\n\n var target = this.safeClampScroll(this.scroller.scrollLeft + delta);\n\n if (this.lenis) {\n var duration = 1.2;\n try {\n this.lenis.scrollTo(target, {\n duration: duration,\n easing: function (t) {\n return Math.min(1, 1.001 - Math.pow(2, -10 * t));\n },\n immediate: false,\n lock: false,\n force: true,\n });\n } catch (e) {\n this.scroller.scrollTo({ left: target, behavior: \"smooth\" });\n }\n } else {\n this.scroller.scrollTo({ left: target, behavior: \"smooth\" });\n }\n };\n\n Slider.prototype.scrollByItems = function (n) {\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n if (total <= visible + 1) return;\n\n var items = this.getOrderedItems();\n if (!items.length) {\n var step = this.itemStepWidth();\n var fallback =\n n > 0\n ? this.scroller.scrollLeft + step * n\n : this.scroller.scrollLeft - step * Math.abs(n);\n var clamped = this.safeClampScroll(fallback);\n if (this.lenis) {\n try {\n this.lenis.scrollTo(clamped, {\n duration: 1.2,\n easing: function (t) {\n return Math.min(1, 1.001 - Math.pow(2, -10 * t));\n },\n immediate: false,\n lock: false,\n force: true,\n });\n } catch (e) {\n this.scroller.scrollTo({ left: clamped, behavior: \"smooth\" });\n }\n } else {\n this.scroller.scrollTo({ left: clamped, behavior: \"smooth\" });\n }\n return;\n }\n\n var curIdx = this.getCurrentItemIndex(items);\n if (curIdx < 0) curIdx = 0;\n\n var nextIdx = curIdx;\n if (n > 0) nextIdx = Math.min(items.length - 1, curIdx + 1);\n else if (n < 0) nextIdx = Math.max(0, curIdx - 1);\n\n this.scrollAlignToItem(items[nextIdx]);\n };\n\n Slider.prototype.onPrevClick = function (e) {\n e.preventDefault();\n this.scrollByItems(-1);\n };\n\n Slider.prototype.onNextClick = function (e) {\n e.preventDefault();\n this.scrollByItems(1);\n };\n\n Slider.prototype.stopInertia = function () {\n if (this.inertiaId) {\n cancelAnimationFrame(this.inertiaId);\n this.inertiaId = 0;\n }\n };\n\n Slider.prototype.startDrag = function (e) {\n if (this.dragging) return;\n this.dragging = true;\n this.didDrag = true;\n this.didDragTs = performance.now();\n this.dragMovedPx = Math.max(\n this.dragMovedPx,\n Math.abs(e.clientX - this.startX),\n );\n\n if (this.lenis) {\n try {\n this.lenis.stop();\n this._lenisWasStopped = true;\n } catch (err) {\n this._lenisWasStopped = false;\n }\n }\n try {\n this.scroller.setPointerCapture(e.pointerId);\n } catch (err) {}\n this.scroller.classList.add(\"is-dragging\");\n this.scroller.style.userSelect = \"none\";\n this.stopInertia();\n this.lastX = e.clientX;\n this.lastT = performance.now();\n this.velocity = 0;\n };\n\n Slider.prototype.endDrag = function (e) {\n if (!this.dragging) return;\n this.dragging = false;\n this.scroller.classList.remove(\"is-dragging\");\n this.scroller.style.userSelect = \"\";\n if (e && e.pointerId != null) {\n try {\n this.scroller.releasePointerCapture(e.pointerId);\n } catch (err) {}\n }\n var minVel = 0.2;\n if (this.lenis) {\n if (this._lenisWasStopped) {\n try {\n this.lenis.start();\n } catch (err) {}\n }\n this._lenisWasStopped = false;\n if (Math.abs(this.velocity) >= minVel) {\n var throwDist = this.velocity * 24;\n var target = this.safeClampScroll(this.scroller.scrollLeft + throwDist);\n var speed = Math.min(2.0, Math.max(0.35, Math.abs(this.velocity) / 18));\n var duration = Math.min(1.35, Math.max(0.35, 0.85 / speed));\n try {\n this.lenis.scrollTo(target, {\n duration: duration,\n easing: function (t) {\n return Math.min(1, 1.001 - Math.pow(2, -10 * t));\n },\n immediate: false,\n lock: false,\n force: true,\n });\n } catch (err) {\n this.scroller.scrollTo({ left: target, behavior: \"smooth\" });\n }\n }\n return;\n }\n var decay = 0.92;\n var self = this;\n var step = function () {\n var next = self.safeClampScroll(self.scroller.scrollLeft + self.velocity);\n self.scroller.scrollLeft = next;\n self.velocity *= decay;\n var atEdge = next <= 0 || next >= self.maxScroll();\n if (Math.abs(self.velocity) < minVel || atEdge) {\n self.inertiaId = 0;\n return;\n }\n self.inertiaId = requestAnimationFrame(step);\n };\n if (Math.abs(this.velocity) >= minVel) {\n this.inertiaId = requestAnimationFrame(step);\n }\n };\n\n Slider.prototype.onPointerDown = function (e) {\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n if (total <= visible + 1) return;\n if (e.pointerType === \"mouse\" && e.button !== 0) return;\n this.maybeDrag = true;\n this.dragging = false;\n this.didDrag = false;\n this.didDragTs = 0;\n this.dragMovedPx = 0;\n this.startX = e.clientX;\n this.startScroll = this.scroller.scrollLeft;\n this.lastX = e.clientX;\n this.lastT = performance.now();\n this.velocity = 0;\n };\n\n Slider.prototype.onPointerMove = function (e) {\n if (!this.maybeDrag && !this.dragging) return;\n var dxFromStart = e.clientX - this.startX;\n this.dragMovedPx = Math.max(this.dragMovedPx, Math.abs(dxFromStart));\n if (!this.dragging) {\n if (Math.abs(dxFromStart) >= 6) this.startDrag(e);\n else return;\n }\n var now = performance.now();\n var dx = e.clientX - this.lastX;\n var dt = Math.max(1, now - this.lastT);\n var target = this.startScroll - (e.clientX - this.startX);\n this.setScroll(target, { immediate: true, lock: true, force: true });\n this.velocity = -(dx / dt) * 16;\n this.lastX = e.clientX;\n this.lastT = now;\n };\n\n Slider.prototype.onPointerUp = function (e) {\n var self = this;\n if (this.dragging) this.endDrag(e);\n this.maybeDrag = false;\n if (this.dragMovedPx < 6) {\n this.didDrag = false;\n this.didDragTs = 0;\n } else {\n this.didDrag = true;\n this.didDragTs = performance.now();\n }\n setTimeout(function () {\n self.didDrag = false;\n self.didDragTs = 0;\n self.dragMovedPx = 0;\n }, 420);\n };\n\n Slider.prototype.onPointerCancel = function () {\n var self = this;\n if (this.dragging) {\n this.dragging = false;\n this.scroller.classList.remove(\"is-dragging\");\n this.scroller.style.userSelect = \"\";\n this.stopInertia();\n if (this.lenis && this._lenisWasStopped) {\n try {\n this.lenis.start();\n } catch (e) {}\n }\n this._lenisWasStopped = false;\n }\n this.maybeDrag = false;\n setTimeout(function () {\n self.didDrag = false;\n self.didDragTs = 0;\n self.dragMovedPx = 0;\n }, 0);\n };\n\n Slider.prototype.trackMetrics = function () {\n if (!this.scrollTrack || !this.scrollBar) {\n return {\n trackWidth: 0,\n barWidth: 0,\n maxX: 0,\n m: Math.max(1, this.maxScroll()),\n };\n }\n var trackWidth = this.scrollTrack.clientWidth;\n var m = Math.max(1, this.maxScroll());\n var barWidth = 0;\n var computed = this.computeScrollbarMetrics();\n if (computed) barWidth = computed.barWidth;\n else barWidth = this.scrollBar.getBoundingClientRect().width || 0;\n var maxX = Math.max(0, trackWidth - barWidth);\n return { trackWidth: trackWidth, barWidth: barWidth, maxX: maxX, m: m };\n };\n\n Slider.prototype.setScrollFromTrackX = function (x, opts) {\n var met = this.trackMetrics();\n var nx = Math.min(Math.max(x, 0), met.maxX);\n if (this.scrollBar)\n this.scrollBar.style.transform = \"translateX(\" + nx + \"px)\";\n var progress = met.maxX === 0 ? 0 : nx / met.maxX;\n var target = progress * met.m;\n this.setScroll(\n target,\n opts || { immediate: true, lock: true, force: true },\n );\n };\n\n Slider.prototype.startBarDrag = function (e) {\n if (!this.scrollTrack || !this.scrollBar) return;\n if (e.pointerType === \"mouse\" && e.button !== 0) return;\n e.preventDefault();\n e.stopPropagation();\n if (this.lenis) {\n try {\n this.lenis.stop();\n this._lenisWasStopped = true;\n } catch (err) {\n this._lenisWasStopped = false;\n }\n }\n this.draggingBar = true;\n this.barPointerId = e.pointerId != null ? e.pointerId : null;\n var barRect = this.scrollBar.getBoundingClientRect();\n this.barOffsetX = e.clientX - barRect.left;\n this.scrollBar.style.cursor = \"grabbing\";\n this.scrollTrack.style.cursor = \"grabbing\";\n try {\n this.scrollTrack.setPointerCapture(e.pointerId);\n } catch (err) {}\n var trackRect = this.scrollTrack.getBoundingClientRect();\n var x = e.clientX - trackRect.left - this.barOffsetX;\n this.setScrollFromTrackX(x, { immediate: true, lock: true, force: true });\n };\n\n Slider.prototype.onTrackPointerDown = function (e) {\n if (!this.scrollTrack || !this.scrollBar) return;\n this.updateScrollbar();\n this.startBarDrag(e);\n };\n\n Slider.prototype.onTrackPointerMove = function (e) {\n if (!this.draggingBar || !this.scrollTrack) return;\n if (\n this.barPointerId != null &&\n e.pointerId != null &&\n e.pointerId !== this.barPointerId\n )\n return;\n e.preventDefault();\n var trackRect = this.scrollTrack.getBoundingClientRect();\n var x = e.clientX - trackRect.left - this.barOffsetX;\n this.setScrollFromTrackX(x, { immediate: true, lock: true, force: true });\n };\n\n Slider.prototype.endBarDrag = function (e) {\n if (!this.draggingBar) return;\n this.draggingBar = false;\n if (this.scrollBar) this.scrollBar.style.cursor = \"grab\";\n if (this.scrollTrack) this.scrollTrack.style.cursor = \"pointer\";\n if (this.scrollTrack && e && e.pointerId != null) {\n try {\n this.scrollTrack.releasePointerCapture(e.pointerId);\n } catch (err) {}\n }\n if (this.lenis && this._lenisWasStopped) {\n try {\n this.lenis.start();\n } catch (err) {}\n }\n this._lenisWasStopped = false;\n this.updateScrollbar();\n this.updateButtons();\n this.updateOverlays();\n this.updateSlideState(false);\n this.barPointerId = null;\n };\n\n Slider.prototype.detectLinksInItems = function () {\n if (!this.conf.item) return false;\n return !!this.list.querySelector(this.conf.item + \" a[href]\");\n };\n\n Slider.prototype.clearCursorBindings = function () {\n for (var i = 0; i < this.cursorBindings.length; i++) {\n var b = this.cursorBindings[i];\n b.el.removeEventListener(b.type, b.fn);\n }\n this.cursorBindings = [];\n };\n\n Slider.prototype.setupCursorMode = function () {\n this.clearCursorBindings();\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n var scrollable = total > visible + 1;\n if (!scrollable) {\n this.scroller.style.cursor = \"\";\n return;\n }\n if (!this.mq.matches) {\n this.scroller.style.cursor = \"\";\n return;\n }\n this.hasLinks = this.detectLinksInItems();\n if (this.hasLinks) {\n this.scroller.style.cursor = \"\";\n return;\n }\n var self = this;\n var onEnter = function () {\n if (!self.scroller.classList.contains(\"is-dragging\")) {\n self.scroller.style.cursor = \"grab\";\n }\n };\n var onLeave = function () {\n self.scroller.style.cursor = \"\";\n };\n this.scroller.addEventListener(\"mouseenter\", onEnter);\n this.scroller.addEventListener(\"mouseleave\", onLeave);\n this.cursorBindings.push({\n el: this.scroller,\n type: \"mouseenter\",\n fn: onEnter,\n });\n this.cursorBindings.push({\n el: this.scroller,\n type: \"mouseleave\",\n fn: onLeave,\n });\n };\n\n Slider.prototype.captureBasePaddingBottomOnce = function () {\n if (this._basePaddingCaptured) return;\n var cs = getComputedStyle(this.scroller);\n var pb = parseFloat(cs.paddingBottom || \"0\") || 0;\n this._basePaddingBottomPx = pb;\n this._basePaddingCaptured = true;\n };\n\n Slider.prototype.applyIOSScrollIndicatorMask = function () {\n if (!this._basePaddingCaptured) this.captureBasePaddingBottomOnce();\n if (this.mq.matches) {\n this.scroller.style.removeProperty(\"--rt-slider-mask-bg\");\n this.scroller.style.removeProperty(\"--rt-slider-mask-h\");\n this.scroller.style.removeProperty(\"--rt-slider-base-pb\");\n return;\n }\n var bg = findNearestOpaqueBgColor(this.scroller);\n this.scroller.style.setProperty(\"--rt-slider-mask-bg\", bg);\n this.scroller.style.setProperty(\"--rt-slider-mask-h\", \"12px\");\n this.scroller.style.setProperty(\n \"--rt-slider-base-pb\",\n (this._basePaddingBottomPx || 0) + \"px\",\n );\n };\n\n Slider.prototype.applyListStyles = function () {\n var listUID = assignUID(this.list, \"data-rt-slider-list-uid\");\n var scrollerUID = assignUID(this.scroller, \"data-rt-slider-scroller-uid\");\n var isDesktop = this.mq.matches;\n var scrollbarStyles = \"\";\n if (this.scrollTrack && this.scrollBar) {\n var trackUID = assignUID(this.scrollTrack, \"data-rt-slider-track-uid\");\n var barUID = assignUID(this.scrollBar, \"data-rt-slider-bar-uid\");\n if (isDesktop) {\n scrollbarStyles =\n '[data-rt-slider-track-uid=\"' +\n trackUID +\n '\"]{position:relative; touch-action:none; overflow: visible !important;}' +\n '[data-rt-slider-track-uid=\"' +\n trackUID +\n '\"]::before{content:\"\";position:absolute;top:-30px;bottom:-30px;left:0;right:0;z-index:0; cursor:pointer; pointer-events:auto;}' +\n '[data-rt-slider-bar-uid=\"' +\n barUID +\n '\"]{position:relative; z-index:2; touch-action:none;}' +\n '[data-rt-slider-bar-uid=\"' +\n barUID +\n '\"]::after{content:\"\";position:absolute;top:-30px;bottom:-30px;left:0;right:0;z-index:3; cursor:grab; pointer-events:auto;}';\n } else {\n scrollbarStyles =\n '[data-rt-slider-track-uid=\"' +\n trackUID +\n '\"]{position:relative; touch-action:auto; overflow: visible !important; pointer-events:none !important; user-select:none !important;}' +\n '[data-rt-slider-track-uid=\"' +\n trackUID +\n '\"]::before{content:\"\";position:absolute;top:-30px;bottom:-30px;left:0;right:0;z-index:0; pointer-events:none !important;}' +\n '[data-rt-slider-bar-uid=\"' +\n barUID +\n '\"]{position:relative; z-index:2; touch-action:auto; pointer-events:none !important; user-select:none !important;}' +\n '[data-rt-slider-bar-uid=\"' +\n barUID +\n '\"]::after{content:\"\";position:absolute;top:-30px;bottom:-30px;left:0;right:0;z-index:3; pointer-events:none !important;}';\n }\n }\n var hideNativeScrollbarCSS =\n '[data-rt-slider-list-uid=\"' +\n listUID +\n '\"]::-webkit-scrollbar{width:0 !important;height:0 !important;display:none !important;background:transparent !important;}' +\n '[data-rt-slider-list-uid=\"' +\n listUID +\n '\"]::-webkit-scrollbar-thumb{background:transparent !important;}' +\n '[data-rt-slider-list-uid=\"' +\n listUID +\n '\"]::-webkit-scrollbar-track{background:transparent !important;}' +\n '[data-rt-slider-list-uid=\"' +\n listUID +\n '\"]{scrollbar-width:none !important;-ms-overflow-style:none !important;}' +\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"]::-webkit-scrollbar{width:0 !important;height:0 !important;display:none !important;background:transparent !important;}' +\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"]::-webkit-scrollbar-thumb{background:transparent !important;}' +\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"]::-webkit-scrollbar-track{background:transparent !important;}' +\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"]{scrollbar-width:none !important;-ms-overflow-style:none !important;}';\n\n var iosMaskCSS = isDesktop\n ? \"\"\n : '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"]{position:relative;padding-bottom:calc(var(--rt-slider-base-pb, 0px) + var(--rt-slider-mask-h, 12px));}' +\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"]::after{content:\"\";position:absolute;left:0;right:0;bottom:0;height:var(--rt-slider-mask-h, 12px);pointer-events:none;z-index:2147483647;background:var(--rt-slider-mask-bg, transparent);}';\n\n var draggingCSS =\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"].is-dragging{cursor:grabbing !important;user-select:none}' +\n '[data-rt-slider-list-uid=\"' +\n listUID +\n '\"].is-dragging{cursor:grabbing !important;user-select:none}' +\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"].is-dragging img,[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"].is-dragging a,[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"].is-dragging ' +\n this.conf.item +\n \"{user-select:none;-webkit-user-drag:none}\" +\n '[data-rt-slider-list-uid=\"' +\n listUID +\n '\"] img{-webkit-user-drag:none}';\n\n this._injectedKey = \"rt-ss-\" + listUID;\n injectOnce(\n this._injectedKey,\n hideNativeScrollbarCSS + draggingCSS + scrollbarStyles + iosMaskCSS,\n );\n };\n\n Slider.prototype.onResize = function () {\n this.stopInertia();\n this.rafUpdate();\n this.setupCursorMode();\n this.applyIOSScrollIndicatorMask();\n this.applyListStyles();\n this.updateSlideState(true);\n };\n\n Slider.prototype.onClickCapture = function (e) {\n if (!this.didDragTs) return;\n if (performance.now() - this.didDragTs > 420) return;\n var a =\n e.target && e.target.closest\n ? e.target.closest(\n \"a,button,[role='button'],input,textarea,select,label\",\n )\n : null;\n if (!a) return;\n e.preventDefault();\n e.stopPropagation();\n };\n\n Slider.prototype.getLenisOptions = function () {\n var prefix = \"data-rt-slider-\";\n var el = this.root;\n function getAttr(name) {\n return el.getAttribute(prefix + name);\n }\n\n var options = {\n wrapper: this.scroller,\n content: this.list,\n orientation: \"horizontal\",\n gestureOrientation: \"horizontal\",\n smoothWheel: true,\n syncTouch: false,\n };\n\n var lerp = parseNum(getAttr(\"lerp\"), undefined);\n var duration = parseNum(getAttr(\"duration\"), undefined);\n var easing = parseStr(getAttr(\"easing\"), \"\");\n var easingFn = parseEasing(easing);\n\n if (lerp !== undefined) options.lerp = lerp;\n else if (duration !== undefined) options.duration = duration;\n if (easingFn) options.easing = easingFn;\n\n var orientation = parseStr(getAttr(\"orientation\"), \"\");\n if (orientation) options.orientation = orientation;\n var gestureOrientation = parseStr(getAttr(\"gesture-orientation\"), \"\");\n if (gestureOrientation) options.gestureOrientation = gestureOrientation;\n\n var smoothWheel = getAttr(\"smooth-wheel\");\n if (smoothWheel !== null)\n options.smoothWheel = parseBool(smoothWheel, true);\n\n var wheelMultiplier = parseNum(getAttr(\"wheel-multiplier\"), undefined);\n if (wheelMultiplier !== undefined)\n options.wheelMultiplier = wheelMultiplier;\n var touchMultiplier = parseNum(getAttr(\"touch-multiplier\"), undefined);\n if (touchMultiplier !== undefined)\n options.touchMultiplier = touchMultiplier;\n\n var infinite = parseBool(getAttr(\"infinite\"), false);\n if (infinite) options.infinite = true;\n var autoResize = parseBool(getAttr(\"auto-resize\"), true);\n if (autoResize === false) options.autoResize = false;\n\n var jsonStr = getAttr(\"options-json\");\n if (jsonStr) {\n try {\n var jsonOpts = JSON.parse(jsonStr);\n if (jsonOpts && typeof jsonOpts === \"object\") {\n for (var key in jsonOpts) options[key] = jsonOpts[key];\n }\n } catch (e) {}\n }\n return options;\n };\n\n Slider.prototype.setupLenisInstance = function () {\n if (!this.mq.matches) return;\n if (this.lenis) return;\n var options = this.getLenisOptions();\n try {\n this.lenis = new window.Lenis(options);\n LenisHub.add(this.lenis);\n } catch (e) {\n this.lenis = null;\n }\n };\n\n Slider.prototype.bindEvents = function () {\n this._onScroll = this.onScroll.bind(this);\n this.scroller.addEventListener(\"scroll\", this._onScroll, { passive: true });\n\n this._onResize = this.onResize.bind(this);\n window.addEventListener(\"resize\", this._onResize);\n\n if (this.mq.matches) {\n this._onPD = this.onPointerDown.bind(this);\n this.scroller.addEventListener(\"pointerdown\", this._onPD);\n this._onPM = this.onPointerMove.bind(this);\n this.scroller.addEventListener(\"pointermove\", this._onPM);\n this._onPU = this.onPointerUp.bind(this);\n this.scroller.addEventListener(\"pointerup\", this._onPU);\n this._onPC = this.onPointerCancel.bind(this);\n this.scroller.addEventListener(\"pointercancel\", this._onPC);\n this._onPL = this.onPointerCancel.bind(this);\n this.scroller.addEventListener(\"pointerleave\", this._onPL);\n this._onClickCap = this.onClickCapture.bind(this);\n this.scroller.addEventListener(\"click\", this._onClickCap, true);\n }\n\n if (this.btnPrev) {\n this._onPrev = this.onPrevClick.bind(this);\n this.btnPrev.addEventListener(\"click\", this._onPrev);\n }\n if (this.btnNext) {\n this._onNext = this.onNextClick.bind(this);\n this.btnNext.addEventListener(\"click\", this._onNext);\n }\n\n if (this.mq.matches) {\n if (this.scrollBar) {\n this.scrollBar.style.touchAction = \"none\";\n this.scrollBar.style.cursor = \"grab\";\n }\n if (this.scrollTrack) {\n this.scrollTrack.style.userSelect = \"none\";\n this.scrollTrack.style.cursor = \"pointer\";\n this.scrollTrack.style.touchAction = \"none\";\n this._onTPD = this.onTrackPointerDown.bind(this);\n this.scrollTrack.addEventListener(\"pointerdown\", this._onTPD);\n this._onTPM = this.onTrackPointerMove.bind(this);\n this.scrollTrack.addEventListener(\"pointermove\", this._onTPM);\n this._onTPU = this.endBarDrag.bind(this);\n this.scrollTrack.addEventListener(\"pointerup\", this._onTPU);\n this._onTPC = this.endBarDrag.bind(this);\n this.scrollTrack.addEventListener(\"pointercancel\", this._onTPC);\n this._onTPL = this.endBarDrag.bind(this);\n this.scrollTrack.addEventListener(\"pointerleave\", this._onTPL);\n }\n } else {\n if (this.scrollBar) {\n this.scrollBar.style.touchAction = \"\";\n this.scrollBar.style.cursor = \"\";\n }\n if (this.scrollTrack) {\n this.scrollTrack.style.userSelect = \"\";\n this.scrollTrack.style.cursor = \"\";\n this.scrollTrack.style.touchAction = \"\";\n }\n }\n\n var self = this;\n this._onMQ = function () {\n self.applyIOSScrollIndicatorMask();\n self.applyListStyles();\n self.setupCursorMode();\n self.rafUpdate();\n self.updateSlideState(true);\n };\n if (this.mq.addEventListener)\n this.mq.addEventListener(\"change\", this._onMQ);\n else if (this.mq.addListener) this.mq.addListener(this._onMQ);\n\n var imgs = Array.from(this.list.querySelectorAll(\"img\"));\n imgs.forEach(function (img) {\n if (img.complete) return;\n var update = function () {\n self.rafUpdate();\n self.setupCursorMode();\n self.applyIOSScrollIndicatorMask();\n self.applyListStyles();\n self.updateSlideState(true);\n };\n img.addEventListener(\"load\", update, { once: true });\n img.addEventListener(\"error\", update, { once: true });\n self.imgHandlers.push({ img: img, onL: update, onE: update });\n });\n\n if (this.ro) {\n this.ro.observe(this.list);\n this.ro.observe(this.scroller);\n if (this.scrollTrack) this.ro.observe(this.scrollTrack);\n }\n\n this._onPH = this.destroy.bind(this);\n window.addEventListener(\"pagehide\", this._onPH);\n this._onBU = this.destroy.bind(this);\n window.addEventListener(\"beforeunload\", this._onBU);\n };\n\n Slider.prototype.init = function () {\n this.captureBasePaddingBottomOnce();\n this.applyIOSScrollIndicatorMask();\n this.applyListStyles();\n\n var self = this;\n if (this.mq.matches) {\n loadLenis()\n .then(function () {\n self.setupLenisInstance();\n })\n .catch(function () {});\n }\n\n this.rafUpdate();\n this._onWL = function () {\n self.rafUpdate();\n self.applyIOSScrollIndicatorMask();\n self.applyListStyles();\n self.updateSlideState(true);\n };\n window.addEventListener(\"load\", this._onWL);\n this.setupCursorMode();\n this.bindEvents();\n this.updateSlideState(true);\n };\n\n Slider.prototype.destroy = function () {\n this.stopInertia();\n if (this._touchClampTimer) clearTimeout(this._touchClampTimer);\n\n if (this.lenis) {\n try {\n LenisHub.remove(this.lenis);\n } catch (e) {}\n try {\n this.lenis.destroy();\n } catch (e) {}\n this.lenis = null;\n }\n\n if (this._onScroll)\n this.scroller.removeEventListener(\"scroll\", this._onScroll);\n if (this._onResize) window.removeEventListener(\"resize\", this._onResize);\n\n if (this._onPD)\n this.scroller.removeEventListener(\"pointerdown\", this._onPD);\n if (this._onPM)\n this.scroller.removeEventListener(\"pointermove\", this._onPM);\n if (this._onPU) this.scroller.removeEventListener(\"pointerup\", this._onPU);\n if (this._onPC)\n this.scroller.removeEventListener(\"pointercancel\", this._onPC);\n if (this._onPL)\n this.scroller.removeEventListener(\"pointerleave\", this._onPL);\n if (this._onClickCap)\n this.scroller.removeEventListener(\"click\", this._onClickCap, true);\n\n if (this._onPrev && this.btnPrev)\n this.btnPrev.removeEventListener(\"click\", this._onPrev);\n if (this._onNext && this.btnNext)\n this.btnNext.removeEventListener(\"click\", this._onNext);\n\n if (this.scrollTrack) {\n if (this._onTPD)\n this.scrollTrack.removeEventListener(\"pointerdown\", this._onTPD);\n if (this._onTPM)\n this.scrollTrack.removeEventListener(\"pointermove\", this._onTPM);\n if (this._onTPU)\n this.scrollTrack.removeEventListener(\"pointerup\", this._onTPU);\n if (this._onTPC)\n this.scrollTrack.removeEventListener(\"pointercancel\", this._onTPC);\n if (this._onTPL)\n this.scrollTrack.removeEventListener(\"pointerleave\", this._onTPL);\n }\n\n if (this.mq.removeEventListener)\n this.mq.removeEventListener(\"change\", this._onMQ);\n else if (this.mq.removeListener) this.mq.removeListener(this._onMQ);\n\n if (this._onWL) window.removeEventListener(\"load\", this._onWL);\n if (this._onPH) window.removeEventListener(\"pagehide\", this._onPH);\n if (this._onBU) window.removeEventListener(\"beforeunload\", this._onBU);\n\n this.imgHandlers.forEach(function (h) {\n h.img.removeEventListener(\"load\", h.onL);\n h.img.removeEventListener(\"error\", h.onE);\n });\n this.imgHandlers = [];\n\n this.clearCursorBindings();\n\n this.scroller.style.cursor = \"\";\n this.scroller.style.removeProperty(\"--rt-slider-mask-bg\");\n this.scroller.style.removeProperty(\"--rt-slider-mask-h\");\n this.scroller.style.removeProperty(\"--rt-slider-base-pb\");\n\n if (this.ro) this.ro.disconnect();\n if (this._injectedKey) {\n removeInjected(this._injectedKey);\n this._injectedKey = null;\n }\n };\n\n var state = {\n instances: {},\n order: [],\n };\n\n function init() {\n var roots = document.querySelectorAll(\"[data-rt-slider]\");\n var autoCount = 0;\n for (var i = 0; i < roots.length; i++) {\n var root = roots[i];\n var id = root.getAttribute(\"data-rt-slider-id\");\n if (!id) {\n autoCount++;\n id = \"slider-\" + autoCount;\n root.setAttribute(\"data-rt-slider-id\", id);\n }\n if (state.instances[id]) continue;\n\n var inst = new Slider(root, id);\n if (inst.valid) {\n state.instances[id] = inst;\n state.order.push(id);\n inst.init();\n }\n }\n }\n\n function makeApi() {\n return {\n __initialized: true,\n ids: function () {\n return state.order.slice();\n },\n get: function (id) {\n return state.instances[id] || null;\n },\n getSlideState: function (id) {\n var inst = state.instances[id];\n return inst ? inst.getSlideState() : null;\n },\n refresh: function () {\n var keys = state.order;\n for (var i = 0; i < keys.length; i++) {\n var inst = state.instances[keys[i]];\n if (inst) inst.onResize();\n }\n },\n destroy: function (id) {\n if (typeof id === \"string\") {\n var inst = state.instances[id];\n if (inst) {\n inst.destroy();\n delete state.instances[id];\n var idx = state.order.indexOf(id);\n if (idx > -1) state.order.splice(idx, 1);\n }\n return;\n }\n for (var i = 0; i < state.order.length; i++) {\n var k = state.order[i];\n if (state.instances[k]) state.instances[k].destroy();\n }\n state.instances = {};\n state.order = [];\n },\n };\n }\n\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n\n window[RT_NS] = makeApi();\n})();\n"],
5
- "mappings": "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",
6
- "names": ["RT_NS", "lenisLoadingPromise", "loadLenis", "resolve", "reject", "existing", "e", "s", "LenisHub", "set", "rafId", "loop", "t", "l", "lenis", "uid", "assignUID", "el", "attr", "injectOnce", "key", "css", "removeInjected", "toSel", "v", "parseBool", "def", "parseNum", "n", "parseStr", "clamp", "i", "round", "d", "m", "parseEasing", "name", "map", "isTransparentColor", "val", "parts", "x", "a", "findNearestOpaqueBgColor", "cs", "bg", "rootBg", "isOverflowingX", "findScrollableAncestor", "ox", "scrollable", "resolveControl", "root", "selector", "sliderId", "local", "byFor", "all", "scoped", "owner", "isVisibleNode", "getConf", "Slider", "id", "self", "dpr", "g1", "g2", "nodes", "kids", "className", "needStart", "needEnd", "el2", "cls", "spacerStart", "spacerEnd", "marginRef", "eps", "gap", "sRect", "rRect", "scrollerCS", "listCS", "scrollerBorderL", "scrollerPadL", "listPadL", "scrollerInnerLeft", "desiredLeft", "raw", "width", "total", "visible", "setVis", "show", "current", "tolerance", "atStart", "atEnd", "items", "trackWidth", "avgItemWidth", "visibleItems", "barWidth", "maxS", "maxX", "progress", "clamped", "opts", "target", "o", "cur", "max", "item", "w", "mr", "ref", "gutter", "alignLeft", "bestIdx", "bestAbs", "r", "ad", "anchors", "last", "rect", "anchor", "state", "slide", "detail", "payload", "ev", "prevScroll", "scrollDirection", "nearestIndex", "nearestDistance", "distance", "absDistance", "fromIndex", "toIndex", "segmentProgress", "segmentDistance", "segmentSpan", "segmentRemaining", "isBetween", "j", "b", "slides", "k", "anchorProgress", "force", "prevActiveIndex", "sig", "delta", "duration", "step", "fallback", "curIdx", "nextIdx", "err", "minVel", "throwDist", "speed", "decay", "next", "atEdge", "dxFromStart", "now", "dx", "dt", "computed", "met", "nx", "barRect", "trackRect", "onEnter", "onLeave", "pb", "listUID", "scrollerUID", "isDesktop", "scrollbarStyles", "trackUID", "barUID", "hideNativeScrollbarCSS", "iosMaskCSS", "draggingCSS", "prefix", "getAttr", "options", "lerp", "easing", "easingFn", "orientation", "gestureOrientation", "smoothWheel", "wheelMultiplier", "touchMultiplier", "infinite", "autoResize", "jsonStr", "jsonOpts", "imgs", "img", "update", "h", "init", "roots", "autoCount", "inst", "makeApi", "keys", "idx"]
4
+ "sourcesContent": ["(function () {\n var RT_NS = \"rtSlider\";\n if (window[RT_NS] && window[RT_NS].__initialized) return;\n\n var lenisLoadingPromise = null;\n\n function loadLenis() {\n if (typeof window.Lenis !== \"undefined\") return Promise.resolve();\n if (lenisLoadingPromise) return lenisLoadingPromise;\n lenisLoadingPromise = new Promise(function (resolve, reject) {\n var existing =\n document.querySelector('script[data-rt-slider-lenis=\"true\"]') ||\n document.querySelector('script[src*=\"lenis\"]');\n if (existing) {\n if (typeof window.Lenis !== \"undefined\") {\n resolve();\n return;\n }\n existing.addEventListener(\"load\", function () {\n resolve();\n });\n existing.addEventListener(\"error\", function (e) {\n reject(e);\n });\n } else {\n var s = document.createElement(\"script\");\n s.src = \"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js\";\n s.async = true;\n s.setAttribute(\"data-rt-slider-lenis\", \"true\");\n s.onload = function () {\n resolve();\n };\n s.onerror = function (e) {\n reject(e);\n };\n document.head.appendChild(s);\n }\n });\n return lenisLoadingPromise;\n }\n\n var LenisHub = (function () {\n var set = new Set();\n var rafId = 0;\n function loop(t) {\n set.forEach(function (l) {\n try {\n l.raf(t);\n } catch (e) {}\n });\n rafId = set.size ? requestAnimationFrame(loop) : 0;\n }\n return {\n add: function (lenis) {\n if (!lenis) return;\n set.add(lenis);\n if (!rafId) rafId = requestAnimationFrame(loop);\n },\n remove: function (lenis) {\n if (!lenis) return;\n set.delete(lenis);\n if (!set.size && rafId) {\n cancelAnimationFrame(rafId);\n rafId = 0;\n }\n },\n };\n })();\n\n function uid() {\n return \"s\" + Math.random().toString(36).slice(2);\n }\n\n function assignUID(el, attr) {\n if (!el.getAttribute(attr)) el.setAttribute(attr, uid());\n return el.getAttribute(attr);\n }\n\n function injectOnce(key, css) {\n var s = document.head.querySelector(\n '[data-rt-slider-injected=\"' + key + '\"]',\n );\n if (!s) {\n s = document.createElement(\"style\");\n s.setAttribute(\"data-rt-slider-injected\", key);\n document.head.appendChild(s);\n }\n if (s.textContent !== css) s.textContent = css;\n return s;\n }\n\n function removeInjected(key) {\n var s = document.head.querySelector(\n '[data-rt-slider-injected=\"' + key + '\"]',\n );\n if (s && s.parentNode) s.parentNode.removeChild(s);\n }\n\n function toSel(v) {\n return typeof v === \"string\" ? v.trim() : \"\";\n }\n\n function parseBool(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim().toLowerCase();\n if (s === \"\") return true;\n if (s === \"true\" || s === \"1\" || s === \"yes\" || s === \"y\" || s === \"on\")\n return true;\n if (s === \"false\" || s === \"0\" || s === \"no\" || s === \"n\" || s === \"off\")\n return false;\n return def;\n }\n\n function parseNum(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim();\n if (!s.length) return def;\n var n = Number(s);\n return Number.isFinite(n) ? n : def;\n }\n\n function parseStr(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v);\n return s.length ? s : def;\n }\n\n function clamp(i) {\n return i < 0 ? 0 : i > 1 ? 1 : i;\n }\n\n function round(n, d) {\n if (!Number.isFinite(n)) return 0;\n var m = Math.pow(10, d || 0);\n return Math.round(n * m) / m;\n }\n\n function parseEasing(name) {\n var n = String(name || \"\").trim();\n if (!n) return null;\n var map = {\n linear: function (t) {\n return clamp(t);\n },\n easeInQuad: function (t) {\n t = clamp(t);\n return t * t;\n },\n easeOutQuad: function (t) {\n t = clamp(t);\n return t * (2 - t);\n },\n easeInOutQuad: function (t) {\n t = clamp(t);\n return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;\n },\n easeInCubic: function (t) {\n t = clamp(t);\n return t * t * t;\n },\n easeOutCubic: function (t) {\n t = clamp(t);\n return 1 - Math.pow(1 - t, 3);\n },\n easeInOutCubic: function (t) {\n t = clamp(t);\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n },\n easeInOutSine: function (t) {\n t = clamp(t);\n return -(Math.cos(Math.PI * t) - 1) / 2;\n },\n easeOutExpo: function (t) {\n t = clamp(t);\n return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);\n },\n };\n return map[n] || null;\n }\n\n function isTransparentColor(val) {\n if (!val) return true;\n var v = String(val).trim().toLowerCase();\n if (v === \"transparent\") return true;\n if (v.startsWith(\"rgba(\")) {\n var parts = v\n .slice(5, -1)\n .split(\",\")\n .map(function (x) {\n return x.trim();\n });\n var a = parts.length === 4 ? Number(parts[3]) : 1;\n return !Number.isFinite(a) ? false : a === 0;\n }\n return false;\n }\n\n function findNearestOpaqueBgColor(el) {\n var n = el;\n while (n && n !== document.documentElement) {\n var cs = getComputedStyle(n);\n var bg = cs.backgroundColor;\n if (!isTransparentColor(bg)) return bg;\n n = n.parentElement;\n }\n var rootBg = getComputedStyle(document.body).backgroundColor;\n return isTransparentColor(rootBg) ? \"rgb(255, 255, 255)\" : rootBg;\n }\n\n function isOverflowingX(el) {\n if (!el) return false;\n try {\n return el.scrollWidth > el.clientWidth + 1;\n } catch (e) {\n return false;\n }\n }\n\n function findScrollableAncestor(el) {\n var n = el;\n while (n && n !== document.body) {\n var cs = getComputedStyle(n);\n var ox = cs.overflowX;\n var scrollable = ox === \"auto\" || ox === \"scroll\" || ox === \"overlay\";\n if (scrollable && isOverflowingX(n)) return n;\n n = n.parentElement;\n }\n return el;\n }\n\n function resolveControl(root, selector, sliderId) {\n if (!selector) return null;\n var local = root.querySelector(selector);\n if (local) return local;\n var byFor = document.querySelector(\n selector + '[data-rt-slider-for=\"' + sliderId + '\"]',\n );\n if (byFor) return byFor;\n var all = Array.from(document.querySelectorAll(selector));\n if (all.length === 1) return all[0];\n var scoped = all.filter(function (el) {\n var owner = el.closest(\"[data-rt-slider]\");\n return owner === root;\n });\n if (scoped.length === 1) return scoped[0];\n return null;\n }\n\n function isVisibleNode(el) {\n if (!el) return false;\n var cs = getComputedStyle(el);\n if (cs.display === \"none\" || cs.visibility === \"hidden\") return false;\n return el.getClientRects().length > 0;\n }\n\n function getConf(root) {\n return {\n list: toSel(root.getAttribute(\"data-rt-list\")),\n item: toSel(root.getAttribute(\"data-rt-item\")),\n spacer: toSel(root.getAttribute(\"data-rt-spacer\")),\n btnPrev: toSel(root.getAttribute(\"data-rt-btn-prev\")),\n btnNext: toSel(root.getAttribute(\"data-rt-btn-next\")),\n scrollTrack: toSel(root.getAttribute(\"data-rt-scroll-track\")),\n scrollBar: toSel(root.getAttribute(\"data-rt-scroll-bar\")),\n marginRef: toSel(root.getAttribute(\"data-rt-margin-ref\")),\n overlayStart: toSel(root.getAttribute(\"data-rt-overlay-start\")),\n overlayEnd: toSel(root.getAttribute(\"data-rt-overlay-end\")),\n };\n }\n\n function Slider(root, id) {\n this.root = root;\n this.id = id;\n this.conf = getConf(root);\n this.valid = !!(this.conf.list && this.conf.item);\n if (!this.valid) return;\n\n this.sliderId = assignUID(this.root, \"data-rt-slider-id\");\n this.list = this.root.querySelector(this.conf.list);\n if (!this.list) {\n this.valid = false;\n return;\n }\n\n this.list.style.overflowX = \"auto\";\n this.list.style.webkitOverflowScrolling = \"touch\";\n this.list.style.scrollbarWidth = \"none\";\n this.list.style.msOverflowStyle = \"none\";\n\n this.scroller = findScrollableAncestor(this.list);\n this.scroller.style.scrollbarWidth = \"none\";\n this.scroller.style.msOverflowStyle = \"none\";\n try {\n this.scroller.style.webkitOverflowScrolling = \"touch\";\n } catch (e) {}\n try {\n this.scroller.style.overscrollBehaviorX = \"contain\";\n } catch (e) {}\n\n this._basePaddingBottomPx = null;\n this._basePaddingCaptured = false;\n this._touchClampTimer = 0;\n\n this.btnPrev = this.conf.btnPrev\n ? resolveControl(this.root, this.conf.btnPrev, this.sliderId)\n : null;\n this.btnNext = this.conf.btnNext\n ? resolveControl(this.root, this.conf.btnNext, this.sliderId)\n : null;\n this.overlayStart = this.conf.overlayStart\n ? resolveControl(this.root, this.conf.overlayStart, this.sliderId)\n : null;\n this.overlayEnd = this.conf.overlayEnd\n ? resolveControl(this.root, this.conf.overlayEnd, this.sliderId)\n : null;\n\n if (this.overlayStart) {\n this.overlayStart.style.transition = \"opacity 0.3s ease\";\n this.overlayStart.style.willChange = \"opacity\";\n }\n if (this.overlayEnd) {\n this.overlayEnd.style.transition = \"opacity 0.3s ease\";\n this.overlayEnd.style.willChange = \"opacity\";\n }\n\n this.scrollTrack = this.conf.scrollTrack\n ? this.root.querySelector(this.conf.scrollTrack)\n : null;\n this.scrollBar = this.conf.scrollBar\n ? this.root.querySelector(this.conf.scrollBar)\n : null;\n this.firstItem = this.list.querySelector(this.conf.item + \":first-child\");\n this.lastItem = this.list.querySelector(this.conf.item + \":last-child\");\n\n this.dragging = false;\n this.maybeDrag = false;\n this.draggingBar = false;\n this.barPointerId = null;\n this.barOffsetX = 0;\n this.startX = 0;\n this.startScroll = 0;\n this.lastX = 0;\n this.lastT = 0;\n this.velocity = 0;\n this.inertiaId = 0;\n this.ticking = false;\n this.didDrag = false;\n this.didDragTs = 0;\n this.dragMovedPx = 0;\n this.cursorBindings = [];\n this.imgHandlers = [];\n this._roTicking = false;\n this.lenis = null;\n this._lenisWasStopped = false;\n this.mq = window.matchMedia(\"(hover: hover) and (pointer: fine)\");\n this._injectedKey = null;\n this._lastGutterPx = 0;\n this._lastGapPx = 0;\n\n this.slideState = null;\n this._slideStateSig = \"\";\n this._progressSig = \"\";\n this._lastSlideStateActiveIndex = -1;\n this._lastSlideStateScrollLeft = 0;\n\n var self = this;\n this.ro =\n typeof ResizeObserver !== \"undefined\"\n ? new ResizeObserver(function () {\n if (self._roTicking) return;\n self._roTicking = true;\n requestAnimationFrame(function () {\n self._roTicking = false;\n self.rafUpdate();\n self.setupCursorMode();\n self.applyIOSScrollIndicatorMask();\n self.applyListStyles();\n });\n })\n : null;\n }\n\n Slider.prototype.devicePixelEpsilon = function () {\n var dpr = Math.max(1, window.devicePixelRatio || 1);\n return 1 / dpr;\n };\n\n Slider.prototype.scrollEdgeEpsilon = function () {\n return Math.max(2, this.devicePixelEpsilon() * 4);\n };\n\n Slider.prototype.listGap = function () {\n var cs = getComputedStyle(this.list);\n var g1 = parseFloat(cs.columnGap || \"0\") || 0;\n var g2 = parseFloat(cs.gap || \"0\") || 0;\n return Math.max(g1, g2);\n };\n\n Slider.prototype.pickVisibleMarginRef = function () {\n if (!this.conf.marginRef) return null;\n var nodes = this.root.querySelectorAll(this.conf.marginRef);\n if (nodes.length === 0)\n nodes = document.querySelectorAll(this.conf.marginRef);\n for (var i = 0; i < nodes.length; i++) {\n if (isVisibleNode(nodes[i])) return nodes[i];\n }\n return null;\n };\n\n Slider.prototype.isFlex = function () {\n return getComputedStyle(this.list).display.indexOf(\"flex\") !== -1;\n };\n\n Slider.prototype.isGrid = function () {\n return getComputedStyle(this.list).display.indexOf(\"grid\") !== -1;\n };\n\n Slider.prototype.ensureSpacers = function () {\n var kids = Array.from(this.list.children);\n var className = this.conf.spacer\n ? this.conf.spacer.replace(/^[.#]/, \"\")\n : \"awards-slider-spacer\";\n var needStart = !(\n kids[0] &&\n kids[0].classList &&\n kids[0].classList.contains(className)\n );\n var needEnd = !(\n kids[kids.length - 1] &&\n kids[kids.length - 1].classList &&\n kids[kids.length - 1].classList.contains(className)\n );\n\n if (needStart) {\n var el = document.createElement(\"div\");\n el.className = className;\n el.setAttribute(\"aria-hidden\", \"true\");\n el.style.pointerEvents = \"none\";\n el.style.height = \"1px\";\n el.style.minHeight = \"1px\";\n if (this.isFlex()) el.style.flex = \"0 0 auto\";\n this.list.insertBefore(el, this.list.firstChild);\n }\n if (needEnd) {\n var el2 = document.createElement(\"div\");\n el2.className = className;\n el2.setAttribute(\"aria-hidden\", \"true\");\n el2.style.pointerEvents = \"none\";\n el2.style.height = \"1px\";\n el2.style.minHeight = \"1px\";\n if (this.isFlex()) el2.style.flex = \"0 0 auto\";\n this.list.appendChild(el2);\n }\n };\n\n Slider.prototype.resetEdgeItemMargins = function () {\n if (this.firstItem) this.firstItem.style.marginLeft = \"0px\";\n if (this.lastItem) this.lastItem.style.marginRight = \"0px\";\n };\n\n Slider.prototype.updateSpacers = function () {\n this.ensureSpacers();\n this.resetEdgeItemMargins();\n\n var kids = Array.from(this.list.children);\n var cls = this.conf.spacer\n ? this.conf.spacer.replace(/^[.#]/, \"\")\n : \"awards-slider-spacer\";\n var spacerStart =\n kids[0] && kids[0].classList.contains(cls) ? kids[0] : null;\n var spacerEnd =\n kids[kids.length - 1] && kids[kids.length - 1].classList.contains(cls)\n ? kids[kids.length - 1]\n : null;\n if (!spacerStart || !spacerEnd) return;\n\n var marginRef = this.pickVisibleMarginRef();\n var eps = this.devicePixelEpsilon();\n var gap = this.listGap();\n this._lastGapPx = gap;\n\n spacerStart.style.marginRight = \"\";\n spacerEnd.style.marginLeft = \"\";\n\n if (gap > 0.0001) {\n spacerStart.style.marginRight = \"-\" + gap + \"px\";\n spacerEnd.style.marginLeft = \"-\" + gap + \"px\";\n }\n\n if (!marginRef) {\n spacerStart.style.width = eps + \"px\";\n spacerEnd.style.width = eps + \"px\";\n this._lastGutterPx = eps;\n return;\n }\n\n var sRect = this.scroller.getBoundingClientRect();\n var rRect = marginRef.getBoundingClientRect();\n var scrollerCS = getComputedStyle(this.scroller);\n var listCS = getComputedStyle(this.list);\n var scrollerBorderL = parseFloat(scrollerCS.borderLeftWidth || \"0\") || 0;\n var scrollerPadL = parseFloat(scrollerCS.paddingLeft || \"0\") || 0;\n var listPadL = parseFloat(listCS.paddingLeft || \"0\") || 0;\n var scrollerInnerLeft = sRect.left + scrollerBorderL + scrollerPadL;\n var desiredLeft = rRect.left;\n var raw = desiredLeft - scrollerInnerLeft - listPadL;\n var width = raw <= 0 ? eps : Math.round(raw);\n\n spacerStart.style.width = width + \"px\";\n spacerEnd.style.width = width + \"px\";\n\n if (this.isGrid()) {\n spacerStart.style.justifySelf = \"start\";\n spacerEnd.style.justifySelf = \"start\";\n spacerStart.style.gridColumn = \"auto\";\n spacerEnd.style.gridColumn = \"auto\";\n }\n this._lastGutterPx = width;\n };\n\n Slider.prototype.maxScroll = function () {\n return Math.max(0, this.scroller.scrollWidth - this.scroller.clientWidth);\n };\n\n Slider.prototype.getLiveScrollMetrics = function () {\n var scrollWidth = Math.max(0, this.scroller.scrollWidth || 0);\n var clientWidth = Math.max(0, this.scroller.clientWidth || 0);\n var max = Math.max(0, scrollWidth - clientWidth);\n var current = this.safeClampScroll(this.scroller.scrollLeft);\n var epsilon = this.scrollEdgeEpsilon();\n\n if (max <= 0 || scrollWidth <= clientWidth + epsilon) {\n return {\n current: 0,\n max: 0,\n progress: 0,\n progressPercent: 0,\n isAtStart: true,\n isAtEnd: true,\n };\n }\n\n var atStart = current <= epsilon;\n var atEnd =\n current >= max - epsilon ||\n current + clientWidth >= scrollWidth - epsilon;\n\n if (atStart) current = 0;\n if (atEnd) current = max;\n\n var progress = max > 0 ? clamp(current / max) : 0;\n if (atEnd) progress = 1;\n if (atStart) progress = 0;\n\n return {\n current: current,\n max: max,\n progress: progress,\n progressPercent: progress * 100,\n isAtStart: atStart,\n isAtEnd: atEnd,\n };\n };\n\n Slider.prototype.updateOverlays = function () {\n if (!this.overlayStart && !this.overlayEnd) return;\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n var scrollable = total > visible + 1;\n function setVis(el, show) {\n if (!el) return;\n el.style.opacity = show ? \"1\" : \"0\";\n el.style.pointerEvents = show ? \"\" : \"none\";\n }\n if (!scrollable) {\n setVis(this.overlayStart, false);\n setVis(this.overlayEnd, false);\n return;\n }\n var metrics = this.getLiveScrollMetrics();\n setVis(this.overlayStart, !metrics.isAtStart);\n setVis(this.overlayEnd, !metrics.isAtEnd);\n };\n\n Slider.prototype.updateButtons = function () {\n if (!this.btnPrev && !this.btnNext) return;\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n var scrollable = total > visible + 1;\n\n if (!scrollable) {\n if (this.btnPrev) {\n this.btnPrev.classList.add(\"inactive\");\n this.btnPrev.style.display = \"none\";\n }\n if (this.btnNext) {\n this.btnNext.classList.add(\"inactive\");\n this.btnNext.style.display = \"none\";\n }\n return;\n }\n if (this.btnPrev) this.btnPrev.style.display = \"\";\n if (this.btnNext) this.btnNext.style.display = \"\";\n\n var metrics = this.getLiveScrollMetrics();\n\n if (this.btnPrev) {\n if (metrics.isAtStart) this.btnPrev.classList.add(\"inactive\");\n else this.btnPrev.classList.remove(\"inactive\");\n }\n if (this.btnNext) {\n if (metrics.isAtEnd) this.btnNext.classList.add(\"inactive\");\n else this.btnNext.classList.remove(\"inactive\");\n }\n };\n\n Slider.prototype.computeScrollbarMetrics = function () {\n if (!this.scrollTrack || !this.scrollBar) return null;\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n var items = this.list.querySelectorAll(this.conf.item).length;\n if (total <= visible || items === 0) return null;\n var trackWidth = this.scrollTrack.clientWidth;\n var avgItemWidth = total / Math.max(1, items + 2);\n var visibleItems = Math.max(1, Math.round(visible / avgItemWidth));\n var barWidth = Math.max(8, (visibleItems / (items + 2)) * trackWidth);\n var metrics = this.getLiveScrollMetrics();\n var maxS = Math.max(1, metrics.max);\n var maxX = Math.max(0, trackWidth - barWidth);\n var x = maxX * metrics.progress;\n return {\n trackWidth: trackWidth,\n barWidth: barWidth,\n maxS: maxS,\n maxX: maxX,\n x: x,\n };\n };\n\n Slider.prototype.updateScrollbar = function () {\n if (!this.scrollTrack || !this.scrollBar) return;\n var m = this.computeScrollbarMetrics();\n if (!m) {\n this.scrollTrack.style.display = \"none\";\n return;\n }\n this.scrollTrack.style.display = \"\";\n this.scrollBar.style.width = m.barWidth + \"px\";\n if (!this.draggingBar) {\n this.scrollBar.style.transform = \"translateX(\" + m.x + \"px)\";\n }\n };\n\n Slider.prototype.rafUpdate = function () {\n this.updateSpacers();\n this.updateScrollbar();\n this.updateButtons();\n this.updateOverlays();\n this.updateSlideState(false);\n };\n\n Slider.prototype.safeClampScroll = function (x) {\n var clamped = Math.min(Math.max(x, 0), this.maxScroll());\n return Number.isFinite(clamped) ? clamped : 0;\n };\n\n Slider.prototype.setScroll = function (x, opts) {\n var target = this.safeClampScroll(x);\n if (this.lenis) {\n var o = opts || {};\n try {\n this.lenis.scrollTo(target, {\n immediate: !!o.immediate,\n lock: !!o.lock,\n force: o.force !== false,\n });\n } catch (e) {\n this.scroller.scrollLeft = target;\n }\n } else {\n this.scroller.scrollLeft = target;\n }\n this.updateScrollbar();\n this.updateButtons();\n this.updateOverlays();\n this.updateSlideState(false);\n };\n\n Slider.prototype.scheduleTouchClamp = function () {\n var self = this;\n if (this._touchClampTimer) clearTimeout(this._touchClampTimer);\n this._touchClampTimer = setTimeout(function () {\n self._touchClampTimer = 0;\n var cur = self.scroller.scrollLeft;\n var max = self.maxScroll();\n var clientWidth = Math.max(0, self.scroller.clientWidth || 0);\n var scrollWidth = Math.max(0, self.scroller.scrollWidth || 0);\n var eps = self.scrollEdgeEpsilon();\n\n if (!Number.isFinite(cur)) {\n self.scroller.scrollLeft = 0;\n } else if (cur < -eps || cur > max + eps) {\n self.scroller.scrollLeft = self.safeClampScroll(cur);\n } else if (cur < 0) {\n self.scroller.scrollLeft = 0;\n } else if (cur > max) {\n self.scroller.scrollLeft = max;\n } else if (cur <= eps) {\n self.scroller.scrollLeft = 0;\n } else if (cur + clientWidth >= scrollWidth - eps) {\n self.scroller.scrollLeft = max;\n }\n\n self.updateScrollbar();\n self.updateButtons();\n self.updateOverlays();\n self.updateSlideState(false);\n }, 90);\n };\n\n Slider.prototype.onScroll = function () {\n var self = this;\n if (!this.mq.matches) {\n this.updateScrollbar();\n this.updateButtons();\n this.updateOverlays();\n this.updateSlideState(false);\n this.scheduleTouchClamp();\n return;\n }\n if (this.ticking) return;\n this.ticking = true;\n requestAnimationFrame(function () {\n var clamped = self.safeClampScroll(self.scroller.scrollLeft);\n if (clamped !== self.scroller.scrollLeft) {\n if (self.lenis)\n self.setScroll(clamped, {\n immediate: true,\n lock: false,\n force: true,\n });\n else self.scroller.scrollLeft = clamped;\n }\n self.updateScrollbar();\n self.updateButtons();\n self.updateOverlays();\n self.updateSlideState(false);\n self.ticking = false;\n });\n };\n\n Slider.prototype.itemStepWidth = function () {\n if (!this.conf.item)\n return Math.max(1, Math.floor(this.scroller.clientWidth * 0.9));\n var item = this.list.querySelector(this.conf.item);\n if (!item) return Math.max(1, Math.floor(this.scroller.clientWidth * 0.9));\n var cs = getComputedStyle(item);\n var w = item.getBoundingClientRect().width;\n var mr = parseFloat(cs.marginRight) || 0;\n return Math.max(1, Math.round(w + mr));\n };\n\n Slider.prototype.getAlignTargetLeft = function () {\n var ref = this.pickVisibleMarginRef();\n if (ref) {\n return ref.getBoundingClientRect().left;\n }\n var sRect = this.scroller.getBoundingClientRect();\n var scrollerCS = getComputedStyle(this.scroller);\n var listCS = getComputedStyle(this.list);\n var scrollerBorderL = parseFloat(scrollerCS.borderLeftWidth || \"0\") || 0;\n var scrollerPadL = parseFloat(scrollerCS.paddingLeft || \"0\") || 0;\n var listPadL = parseFloat(listCS.paddingLeft || \"0\") || 0;\n var gutter = Number.isFinite(this._lastGutterPx) ? this._lastGutterPx : 0;\n return sRect.left + scrollerBorderL + scrollerPadL + listPadL + gutter;\n };\n\n Slider.prototype.getOrderedItems = function () {\n if (!this.conf.item) return [];\n var nodes = Array.from(this.list.querySelectorAll(this.conf.item));\n return nodes.filter(function (n) {\n return n && n.nodeType === 1;\n });\n };\n\n Slider.prototype.getCurrentItemIndex = function (items) {\n if (!items || !items.length) return -1;\n var alignLeft = this.getAlignTargetLeft();\n var bestIdx = 0;\n var bestAbs = Infinity;\n for (var i = 0; i < items.length; i++) {\n var r = items[i].getBoundingClientRect();\n var d = r.left - alignLeft;\n var ad = Math.abs(d);\n if (ad < bestAbs) {\n bestAbs = ad;\n bestIdx = i;\n }\n }\n return bestIdx;\n };\n\n Slider.prototype.getItemAnchorScrolls = function (items) {\n var metrics = this.getLiveScrollMetrics();\n var current = metrics.current;\n var alignLeft = this.getAlignTargetLeft();\n var anchors = [];\n var last = -Infinity;\n\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n item.setAttribute(\"data-rt-slider-item-index\", String(i));\n var rect = item.getBoundingClientRect();\n var raw = current + (rect.left - alignLeft);\n var anchor = this.safeClampScroll(raw);\n if (anchor < last) anchor = last;\n anchors.push(anchor);\n last = anchor;\n }\n\n if (anchors.length) {\n var max = this.maxScroll();\n var eps = this.scrollEdgeEpsilon();\n if (anchors[0] <= eps) anchors[0] = 0;\n if (anchors[anchors.length - 1] >= max - eps)\n anchors[anchors.length - 1] = max;\n }\n\n return anchors;\n };\n\n Slider.prototype.cloneSlideState = function (state) {\n if (!state) return null;\n return {\n sliderId: state.sliderId,\n itemCount: state.itemCount,\n scroll: {\n current: state.scroll.current,\n max: state.scroll.max,\n progress: state.scroll.progress,\n progressPercent: state.scroll.progressPercent,\n direction: state.scroll.direction,\n isAtStart: state.scroll.isAtStart,\n isAtEnd: state.scroll.isAtEnd,\n },\n active: {\n index: state.active.index,\n element: state.active.element,\n anchorScrollLeft: state.active.anchorScrollLeft,\n distancePx: state.active.distancePx,\n },\n previous: {\n index: state.previous.index,\n element: state.previous.element,\n },\n next: {\n index: state.next.index,\n element: state.next.element,\n },\n segment: {\n fromIndex: state.segment.fromIndex,\n fromElement: state.segment.fromElement,\n toIndex: state.segment.toIndex,\n toElement: state.segment.toElement,\n progress: state.segment.progress,\n progressPercent: state.segment.progressPercent,\n distancePx: state.segment.distancePx,\n spanPx: state.segment.spanPx,\n remainingPx: state.segment.remainingPx,\n isBetween: state.segment.isBetween,\n },\n slides: state.slides.map(function (slide) {\n return {\n index: slide.index,\n element: slide.element,\n anchorScrollLeft: slide.anchorScrollLeft,\n anchorProgress: slide.anchorProgress,\n anchorProgressPercent: slide.anchorProgressPercent,\n distanceFromCurrentPx: slide.distanceFromCurrentPx,\n isActive: slide.isActive,\n isPrevious: slide.isPrevious,\n isNext: slide.isNext,\n isFrom: slide.isFrom,\n isTo: slide.isTo,\n isBeforeActive: slide.isBeforeActive,\n isAfterActive: slide.isAfterActive,\n };\n }),\n };\n };\n\n Slider.prototype.cloneScrollState = function (scroll) {\n if (!scroll) return null;\n return {\n current: scroll.current,\n max: scroll.max,\n progress: scroll.progress,\n progressPercent: scroll.progressPercent,\n direction: scroll.direction,\n isAtStart: scroll.isAtStart,\n isAtEnd: scroll.isAtEnd,\n };\n };\n\n Slider.prototype.dispatchSliderEvent = function (name, detail) {\n var payload = this.cloneSlideState(detail);\n try {\n this.root.dispatchEvent(\n new CustomEvent(name, {\n bubbles: true,\n detail: payload,\n }),\n );\n } catch (e) {\n var ev = document.createEvent(\"CustomEvent\");\n ev.initCustomEvent(name, true, false, payload);\n this.root.dispatchEvent(ev);\n }\n };\n\n Slider.prototype.dispatchProgressEvent = function (name, detail) {\n var payload = this.cloneScrollState(detail);\n try {\n this.root.dispatchEvent(\n new CustomEvent(name, {\n bubbles: true,\n detail: payload,\n }),\n );\n } catch (e) {\n var ev = document.createEvent(\"CustomEvent\");\n ev.initCustomEvent(name, true, false, payload);\n this.root.dispatchEvent(ev);\n }\n };\n\n Slider.prototype.applySlideStateAttributes = function (state) {\n var root = this.root;\n root.setAttribute(\n \"data-rt-slider-active-index\",\n String(state.active.index),\n );\n root.setAttribute(\n \"data-rt-slider-from-index\",\n String(state.segment.fromIndex),\n );\n root.setAttribute(\"data-rt-slider-to-index\", String(state.segment.toIndex));\n root.setAttribute(\n \"data-rt-slider-segment-progress\",\n String(round(state.segment.progress, 6)),\n );\n root.setAttribute(\n \"data-rt-slider-segment-progress-percent\",\n String(round(state.segment.progressPercent, 4)),\n );\n root.setAttribute(\n \"data-rt-slider-scroll-current\",\n String(round(state.scroll.current, 4)),\n );\n root.setAttribute(\n \"data-rt-slider-scroll-max\",\n String(round(state.scroll.max, 4)),\n );\n root.setAttribute(\n \"data-rt-slider-scroll-progress\",\n String(round(state.scroll.progress, 6)),\n );\n root.setAttribute(\n \"data-rt-slider-scroll-progress-percent\",\n String(round(state.scroll.progressPercent, 4)),\n );\n root.setAttribute(\n \"data-rt-slider-scroll-direction\",\n state.scroll.direction,\n );\n root.setAttribute(\n \"data-rt-slider-scroll-at-start\",\n state.scroll.isAtStart ? \"true\" : \"false\",\n );\n root.setAttribute(\n \"data-rt-slider-scroll-at-end\",\n state.scroll.isAtEnd ? \"true\" : \"false\",\n );\n\n for (var i = 0; i < state.slides.length; i++) {\n var slide = state.slides[i];\n var el = slide.element;\n if (!el) continue;\n el.setAttribute(\"data-rt-slider-item-index\", String(slide.index));\n el.setAttribute(\n \"data-rt-slider-item-active\",\n slide.isActive ? \"true\" : \"false\",\n );\n el.setAttribute(\n \"data-rt-slider-item-from\",\n slide.isFrom ? \"true\" : \"false\",\n );\n el.setAttribute(\"data-rt-slider-item-to\", slide.isTo ? \"true\" : \"false\");\n el.setAttribute(\n \"data-rt-slider-item-previous\",\n slide.isPrevious ? \"true\" : \"false\",\n );\n el.setAttribute(\n \"data-rt-slider-item-next\",\n slide.isNext ? \"true\" : \"false\",\n );\n el.setAttribute(\n \"data-rt-slider-item-before-active\",\n slide.isBeforeActive ? \"true\" : \"false\",\n );\n el.setAttribute(\n \"data-rt-slider-item-after-active\",\n slide.isAfterActive ? \"true\" : \"false\",\n );\n el.setAttribute(\n \"data-rt-slider-item-anchor-progress\",\n String(round(slide.anchorProgress, 6)),\n );\n el.setAttribute(\n \"data-rt-slider-item-anchor-progress-percent\",\n String(round(slide.anchorProgressPercent, 4)),\n );\n el.setAttribute(\n \"data-rt-slider-item-distance\",\n String(round(slide.distanceFromCurrentPx, 4)),\n );\n }\n };\n\n Slider.prototype.buildSlideState = function () {\n var items = this.getOrderedItems();\n var metrics = this.getLiveScrollMetrics();\n var max = metrics.max;\n var current = metrics.current;\n var prevScroll = this._lastSlideStateScrollLeft;\n var scrollDirection = \"none\";\n\n if (current > prevScroll + 0.01) scrollDirection = \"forward\";\n else if (current < prevScroll - 0.01) scrollDirection = \"backward\";\n\n if (!items.length) {\n return {\n sliderId: this.sliderId,\n itemCount: 0,\n scroll: {\n current: current,\n max: max,\n progress: metrics.progress,\n progressPercent: metrics.progressPercent,\n direction: scrollDirection,\n isAtStart: metrics.isAtStart,\n isAtEnd: metrics.isAtEnd,\n },\n active: {\n index: -1,\n element: null,\n anchorScrollLeft: 0,\n distancePx: 0,\n },\n previous: {\n index: -1,\n element: null,\n },\n next: {\n index: -1,\n element: null,\n },\n segment: {\n fromIndex: -1,\n fromElement: null,\n toIndex: -1,\n toElement: null,\n progress: 0,\n progressPercent: 0,\n distancePx: 0,\n spanPx: 0,\n remainingPx: 0,\n isBetween: false,\n },\n slides: [],\n };\n }\n\n var anchors = this.getItemAnchorScrolls(items);\n var nearestIndex = 0;\n var nearestDistance = Infinity;\n\n for (var i = 0; i < anchors.length; i++) {\n var distance = current - anchors[i];\n var absDistance = Math.abs(distance);\n if (absDistance < nearestDistance) {\n nearestDistance = absDistance;\n nearestIndex = i;\n }\n }\n\n var fromIndex = 0;\n var toIndex = 0;\n var segmentProgress = 0;\n var segmentDistance = 0;\n var segmentSpan = 0;\n var segmentRemaining = 0;\n var isBetween = false;\n\n if (current <= anchors[0]) {\n fromIndex = 0;\n toIndex = 0;\n segmentProgress = 0;\n segmentDistance = 0;\n segmentSpan = 0;\n segmentRemaining = 0;\n isBetween = false;\n } else if (current >= anchors[anchors.length - 1]) {\n fromIndex = anchors.length - 1;\n toIndex = anchors.length - 1;\n segmentProgress = 1;\n segmentDistance = 0;\n segmentSpan = 0;\n segmentRemaining = 0;\n isBetween = false;\n } else {\n for (var j = 0; j < anchors.length - 1; j++) {\n var a = anchors[j];\n var b = anchors[j + 1];\n if (current >= a && current <= b) {\n fromIndex = j;\n toIndex = j + 1;\n segmentSpan = Math.max(0, b - a);\n segmentDistance = Math.max(0, current - a);\n segmentProgress =\n segmentSpan > 0 ? clamp(segmentDistance / segmentSpan) : 0;\n segmentRemaining = Math.max(0, segmentSpan - segmentDistance);\n isBetween = current > a && current < b;\n break;\n }\n }\n }\n\n var slides = [];\n for (var k = 0; k < items.length; k++) {\n var anchor = anchors[k];\n var anchorProgress = max > 0 ? clamp(anchor / max) : 0;\n slides.push({\n index: k,\n element: items[k],\n anchorScrollLeft: anchor,\n anchorProgress: anchorProgress,\n anchorProgressPercent: anchorProgress * 100,\n distanceFromCurrentPx: current - anchor,\n isActive: k === nearestIndex,\n isPrevious: k === nearestIndex - 1,\n isNext: k === nearestIndex + 1,\n isFrom: k === fromIndex,\n isTo: k === toIndex,\n isBeforeActive: k < nearestIndex,\n isAfterActive: k > nearestIndex,\n });\n }\n\n return {\n sliderId: this.sliderId,\n itemCount: items.length,\n scroll: {\n current: current,\n max: max,\n progress: metrics.progress,\n progressPercent: metrics.progressPercent,\n direction: scrollDirection,\n isAtStart: metrics.isAtStart,\n isAtEnd: metrics.isAtEnd,\n },\n active: {\n index: nearestIndex,\n element: items[nearestIndex] || null,\n anchorScrollLeft: anchors[nearestIndex] || 0,\n distancePx: current - (anchors[nearestIndex] || 0),\n },\n previous: {\n index: nearestIndex > 0 ? nearestIndex - 1 : -1,\n element: nearestIndex > 0 ? items[nearestIndex - 1] : null,\n },\n next: {\n index: nearestIndex < items.length - 1 ? nearestIndex + 1 : -1,\n element:\n nearestIndex < items.length - 1 ? items[nearestIndex + 1] : null,\n },\n segment: {\n fromIndex: fromIndex,\n fromElement: items[fromIndex] || null,\n toIndex: toIndex,\n toElement: items[toIndex] || null,\n progress: segmentProgress,\n progressPercent: segmentProgress * 100,\n distancePx: segmentDistance,\n spanPx: segmentSpan,\n remainingPx: segmentRemaining,\n isBetween: isBetween,\n },\n slides: slides,\n };\n };\n\n Slider.prototype.updateSlideState = function (force) {\n var state = this.buildSlideState();\n var prevActiveIndex = this._lastSlideStateActiveIndex;\n var sig =\n state.active.index +\n \"|\" +\n state.segment.fromIndex +\n \"|\" +\n state.segment.toIndex +\n \"|\" +\n round(state.segment.progress, 4) +\n \"|\" +\n round(state.scroll.progress, 4) +\n \"|\" +\n state.scroll.direction;\n\n var progressSig =\n round(state.scroll.progress, 6) +\n \"|\" +\n round(state.scroll.current, 4) +\n \"|\" +\n round(state.scroll.max, 4) +\n \"|\" +\n state.scroll.direction +\n \"|\" +\n (state.scroll.isAtStart ? \"1\" : \"0\") +\n \"|\" +\n (state.scroll.isAtEnd ? \"1\" : \"0\");\n\n this.slideState = state;\n this.applySlideStateAttributes(state);\n this._lastSlideStateScrollLeft = state.scroll.current;\n\n if (force || progressSig !== this._progressSig) {\n this._progressSig = progressSig;\n this.dispatchProgressEvent(\"rtSlider:progress\", state.scroll);\n }\n\n if (force || sig !== this._slideStateSig) {\n this._slideStateSig = sig;\n this.dispatchSliderEvent(\"rtSlider:slide\", state);\n }\n\n if (force || state.active.index !== prevActiveIndex) {\n this._lastSlideStateActiveIndex = state.active.index;\n this.dispatchSliderEvent(\"rtSlider:active\", state);\n }\n };\n\n Slider.prototype.getSlideState = function () {\n if (!this.slideState) this.updateSlideState(true);\n return this.cloneSlideState(this.slideState);\n };\n\n Slider.prototype.getScrollState = function () {\n var state = this.getSlideState();\n return state ? this.cloneScrollState(state.scroll) : null;\n };\n\n Slider.prototype.getProgress = function () {\n var scroll = this.getScrollState();\n return scroll ? scroll.progress : 0;\n };\n\n Slider.prototype.getActiveIndex = function () {\n var state = this.getSlideState();\n return state && state.active ? state.active.index : -1;\n };\n\n Slider.prototype.getActiveElement = function () {\n var state = this.getSlideState();\n return state && state.active ? state.active.element : null;\n };\n\n Slider.prototype.scrollAlignToItem = function (el) {\n if (!el) return;\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n if (total <= visible + 1) return;\n\n var alignLeft = this.getAlignTargetLeft();\n var r = el.getBoundingClientRect();\n var delta = r.left - alignLeft;\n if (!Number.isFinite(delta)) return;\n\n var target = this.safeClampScroll(this.scroller.scrollLeft + delta);\n\n if (this.lenis) {\n var duration = 1.2;\n try {\n this.lenis.scrollTo(target, {\n duration: duration,\n easing: function (t) {\n return Math.min(1, 1.001 - Math.pow(2, -10 * t));\n },\n immediate: false,\n lock: false,\n force: true,\n });\n } catch (e) {\n this.scroller.scrollTo({ left: target, behavior: \"smooth\" });\n }\n } else {\n this.scroller.scrollTo({ left: target, behavior: \"smooth\" });\n }\n };\n\n Slider.prototype.scrollByItems = function (n) {\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n if (total <= visible + 1) return;\n\n var items = this.getOrderedItems();\n if (!items.length) {\n var step = this.itemStepWidth();\n var fallback =\n n > 0\n ? this.scroller.scrollLeft + step * n\n : this.scroller.scrollLeft - step * Math.abs(n);\n var clamped = this.safeClampScroll(fallback);\n if (this.lenis) {\n try {\n this.lenis.scrollTo(clamped, {\n duration: 1.2,\n easing: function (t) {\n return Math.min(1, 1.001 - Math.pow(2, -10 * t));\n },\n immediate: false,\n lock: false,\n force: true,\n });\n } catch (e) {\n this.scroller.scrollTo({ left: clamped, behavior: \"smooth\" });\n }\n } else {\n this.scroller.scrollTo({ left: clamped, behavior: \"smooth\" });\n }\n return;\n }\n\n var curIdx = this.getCurrentItemIndex(items);\n if (curIdx < 0) curIdx = 0;\n\n var nextIdx = curIdx;\n if (n > 0) nextIdx = Math.min(items.length - 1, curIdx + 1);\n else if (n < 0) nextIdx = Math.max(0, curIdx - 1);\n\n this.scrollAlignToItem(items[nextIdx]);\n };\n\n Slider.prototype.onPrevClick = function (e) {\n e.preventDefault();\n this.scrollByItems(-1);\n };\n\n Slider.prototype.onNextClick = function (e) {\n e.preventDefault();\n this.scrollByItems(1);\n };\n\n Slider.prototype.stopInertia = function () {\n if (this.inertiaId) {\n cancelAnimationFrame(this.inertiaId);\n this.inertiaId = 0;\n }\n };\n\n Slider.prototype.startDrag = function (e) {\n if (this.dragging) return;\n this.dragging = true;\n this.didDrag = true;\n this.didDragTs = performance.now();\n this.dragMovedPx = Math.max(\n this.dragMovedPx,\n Math.abs(e.clientX - this.startX),\n );\n\n if (this.lenis) {\n try {\n this.lenis.stop();\n this._lenisWasStopped = true;\n } catch (err) {\n this._lenisWasStopped = false;\n }\n }\n try {\n this.scroller.setPointerCapture(e.pointerId);\n } catch (err) {}\n this.scroller.classList.add(\"is-dragging\");\n this.scroller.style.userSelect = \"none\";\n this.stopInertia();\n this.lastX = e.clientX;\n this.lastT = performance.now();\n this.velocity = 0;\n };\n\n Slider.prototype.endDrag = function (e) {\n if (!this.dragging) return;\n this.dragging = false;\n this.scroller.classList.remove(\"is-dragging\");\n this.scroller.style.userSelect = \"\";\n if (e && e.pointerId != null) {\n try {\n this.scroller.releasePointerCapture(e.pointerId);\n } catch (err) {}\n }\n var minVel = 0.2;\n if (this.lenis) {\n if (this._lenisWasStopped) {\n try {\n this.lenis.start();\n } catch (err) {}\n }\n this._lenisWasStopped = false;\n if (Math.abs(this.velocity) >= minVel) {\n var throwDist = this.velocity * 24;\n var target = this.safeClampScroll(this.scroller.scrollLeft + throwDist);\n var speed = Math.min(2.0, Math.max(0.35, Math.abs(this.velocity) / 18));\n var duration = Math.min(1.35, Math.max(0.35, 0.85 / speed));\n try {\n this.lenis.scrollTo(target, {\n duration: duration,\n easing: function (t) {\n return Math.min(1, 1.001 - Math.pow(2, -10 * t));\n },\n immediate: false,\n lock: false,\n force: true,\n });\n } catch (err) {\n this.scroller.scrollTo({ left: target, behavior: \"smooth\" });\n }\n }\n return;\n }\n var decay = 0.92;\n var self = this;\n var step = function () {\n var next = self.safeClampScroll(self.scroller.scrollLeft + self.velocity);\n self.scroller.scrollLeft = next;\n self.velocity *= decay;\n var atEdge = next <= 0 || next >= self.maxScroll();\n if (Math.abs(self.velocity) < minVel || atEdge) {\n self.inertiaId = 0;\n return;\n }\n self.inertiaId = requestAnimationFrame(step);\n };\n if (Math.abs(this.velocity) >= minVel) {\n this.inertiaId = requestAnimationFrame(step);\n }\n };\n\n Slider.prototype.onPointerDown = function (e) {\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n if (total <= visible + 1) return;\n if (e.pointerType === \"mouse\" && e.button !== 0) return;\n this.maybeDrag = true;\n this.dragging = false;\n this.didDrag = false;\n this.didDragTs = 0;\n this.dragMovedPx = 0;\n this.startX = e.clientX;\n this.startScroll = this.scroller.scrollLeft;\n this.lastX = e.clientX;\n this.lastT = performance.now();\n this.velocity = 0;\n };\n\n Slider.prototype.onPointerMove = function (e) {\n if (!this.maybeDrag && !this.dragging) return;\n var dxFromStart = e.clientX - this.startX;\n this.dragMovedPx = Math.max(this.dragMovedPx, Math.abs(dxFromStart));\n if (!this.dragging) {\n if (Math.abs(dxFromStart) >= 6) this.startDrag(e);\n else return;\n }\n var now = performance.now();\n var dx = e.clientX - this.lastX;\n var dt = Math.max(1, now - this.lastT);\n var target = this.startScroll - (e.clientX - this.startX);\n this.setScroll(target, { immediate: true, lock: true, force: true });\n this.velocity = -(dx / dt) * 16;\n this.lastX = e.clientX;\n this.lastT = now;\n };\n\n Slider.prototype.onPointerUp = function (e) {\n var self = this;\n if (this.dragging) this.endDrag(e);\n this.maybeDrag = false;\n if (this.dragMovedPx < 6) {\n this.didDrag = false;\n this.didDragTs = 0;\n } else {\n this.didDrag = true;\n this.didDragTs = performance.now();\n }\n setTimeout(function () {\n self.didDrag = false;\n self.didDragTs = 0;\n self.dragMovedPx = 0;\n }, 420);\n };\n\n Slider.prototype.onPointerCancel = function () {\n var self = this;\n if (this.dragging) {\n this.dragging = false;\n this.scroller.classList.remove(\"is-dragging\");\n this.scroller.style.userSelect = \"\";\n this.stopInertia();\n if (this.lenis && this._lenisWasStopped) {\n try {\n this.lenis.start();\n } catch (e) {}\n }\n this._lenisWasStopped = false;\n }\n this.maybeDrag = false;\n setTimeout(function () {\n self.didDrag = false;\n self.didDragTs = 0;\n self.dragMovedPx = 0;\n }, 0);\n };\n\n Slider.prototype.trackMetrics = function () {\n if (!this.scrollTrack || !this.scrollBar) {\n return {\n trackWidth: 0,\n barWidth: 0,\n maxX: 0,\n m: Math.max(1, this.maxScroll()),\n };\n }\n var trackWidth = this.scrollTrack.clientWidth;\n var m = Math.max(1, this.maxScroll());\n var barWidth = 0;\n var computed = this.computeScrollbarMetrics();\n if (computed) barWidth = computed.barWidth;\n else barWidth = this.scrollBar.getBoundingClientRect().width || 0;\n var maxX = Math.max(0, trackWidth - barWidth);\n return { trackWidth: trackWidth, barWidth: barWidth, maxX: maxX, m: m };\n };\n\n Slider.prototype.setScrollFromTrackX = function (x, opts) {\n var met = this.trackMetrics();\n var nx = Math.min(Math.max(x, 0), met.maxX);\n if (this.scrollBar)\n this.scrollBar.style.transform = \"translateX(\" + nx + \"px)\";\n var progress = met.maxX === 0 ? 0 : nx / met.maxX;\n var target = progress * met.m;\n this.setScroll(\n target,\n opts || { immediate: true, lock: true, force: true },\n );\n };\n\n Slider.prototype.startBarDrag = function (e) {\n if (!this.scrollTrack || !this.scrollBar) return;\n if (e.pointerType === \"mouse\" && e.button !== 0) return;\n e.preventDefault();\n e.stopPropagation();\n if (this.lenis) {\n try {\n this.lenis.stop();\n this._lenisWasStopped = true;\n } catch (err) {\n this._lenisWasStopped = false;\n }\n }\n this.draggingBar = true;\n this.barPointerId = e.pointerId != null ? e.pointerId : null;\n var barRect = this.scrollBar.getBoundingClientRect();\n this.barOffsetX = e.clientX - barRect.left;\n this.scrollBar.style.cursor = \"grabbing\";\n this.scrollTrack.style.cursor = \"grabbing\";\n try {\n this.scrollTrack.setPointerCapture(e.pointerId);\n } catch (err) {}\n var trackRect = this.scrollTrack.getBoundingClientRect();\n var x = e.clientX - trackRect.left - this.barOffsetX;\n this.setScrollFromTrackX(x, { immediate: true, lock: true, force: true });\n };\n\n Slider.prototype.onTrackPointerDown = function (e) {\n if (!this.scrollTrack || !this.scrollBar) return;\n this.updateScrollbar();\n this.startBarDrag(e);\n };\n\n Slider.prototype.onTrackPointerMove = function (e) {\n if (!this.draggingBar || !this.scrollTrack) return;\n if (\n this.barPointerId != null &&\n e.pointerId != null &&\n e.pointerId !== this.barPointerId\n )\n return;\n e.preventDefault();\n var trackRect = this.scrollTrack.getBoundingClientRect();\n var x = e.clientX - trackRect.left - this.barOffsetX;\n this.setScrollFromTrackX(x, { immediate: true, lock: true, force: true });\n };\n\n Slider.prototype.endBarDrag = function (e) {\n if (!this.draggingBar) return;\n this.draggingBar = false;\n if (this.scrollBar) this.scrollBar.style.cursor = \"grab\";\n if (this.scrollTrack) this.scrollTrack.style.cursor = \"pointer\";\n if (this.scrollTrack && e && e.pointerId != null) {\n try {\n this.scrollTrack.releasePointerCapture(e.pointerId);\n } catch (err) {}\n }\n if (this.lenis && this._lenisWasStopped) {\n try {\n this.lenis.start();\n } catch (err) {}\n }\n this._lenisWasStopped = false;\n this.updateScrollbar();\n this.updateButtons();\n this.updateOverlays();\n this.updateSlideState(false);\n this.barPointerId = null;\n };\n\n Slider.prototype.detectLinksInItems = function () {\n if (!this.conf.item) return false;\n return !!this.list.querySelector(this.conf.item + \" a[href]\");\n };\n\n Slider.prototype.clearCursorBindings = function () {\n for (var i = 0; i < this.cursorBindings.length; i++) {\n var b = this.cursorBindings[i];\n b.el.removeEventListener(b.type, b.fn);\n }\n this.cursorBindings = [];\n };\n\n Slider.prototype.setupCursorMode = function () {\n this.clearCursorBindings();\n var total = this.scroller.scrollWidth;\n var visible = this.scroller.clientWidth;\n var scrollable = total > visible + 1;\n if (!scrollable) {\n this.scroller.style.cursor = \"\";\n return;\n }\n if (!this.mq.matches) {\n this.scroller.style.cursor = \"\";\n return;\n }\n this.hasLinks = this.detectLinksInItems();\n if (this.hasLinks) {\n this.scroller.style.cursor = \"\";\n return;\n }\n var self = this;\n var onEnter = function () {\n if (!self.scroller.classList.contains(\"is-dragging\")) {\n self.scroller.style.cursor = \"grab\";\n }\n };\n var onLeave = function () {\n self.scroller.style.cursor = \"\";\n };\n this.scroller.addEventListener(\"mouseenter\", onEnter);\n this.scroller.addEventListener(\"mouseleave\", onLeave);\n this.cursorBindings.push({\n el: this.scroller,\n type: \"mouseenter\",\n fn: onEnter,\n });\n this.cursorBindings.push({\n el: this.scroller,\n type: \"mouseleave\",\n fn: onLeave,\n });\n };\n\n Slider.prototype.captureBasePaddingBottomOnce = function () {\n if (this._basePaddingCaptured) return;\n var cs = getComputedStyle(this.scroller);\n var pb = parseFloat(cs.paddingBottom || \"0\") || 0;\n this._basePaddingBottomPx = pb;\n this._basePaddingCaptured = true;\n };\n\n Slider.prototype.applyIOSScrollIndicatorMask = function () {\n if (!this._basePaddingCaptured) this.captureBasePaddingBottomOnce();\n if (this.mq.matches) {\n this.scroller.style.removeProperty(\"--rt-slider-mask-bg\");\n this.scroller.style.removeProperty(\"--rt-slider-mask-h\");\n this.scroller.style.removeProperty(\"--rt-slider-base-pb\");\n return;\n }\n var bg = findNearestOpaqueBgColor(this.scroller);\n this.scroller.style.setProperty(\"--rt-slider-mask-bg\", bg);\n this.scroller.style.setProperty(\"--rt-slider-mask-h\", \"12px\");\n this.scroller.style.setProperty(\n \"--rt-slider-base-pb\",\n (this._basePaddingBottomPx || 0) + \"px\",\n );\n };\n\n Slider.prototype.applyListStyles = function () {\n var listUID = assignUID(this.list, \"data-rt-slider-list-uid\");\n var scrollerUID = assignUID(this.scroller, \"data-rt-slider-scroller-uid\");\n var isDesktop = this.mq.matches;\n var scrollbarStyles = \"\";\n if (this.scrollTrack && this.scrollBar) {\n var trackUID = assignUID(this.scrollTrack, \"data-rt-slider-track-uid\");\n var barUID = assignUID(this.scrollBar, \"data-rt-slider-bar-uid\");\n if (isDesktop) {\n scrollbarStyles =\n '[data-rt-slider-track-uid=\"' +\n trackUID +\n '\"]{position:relative; touch-action:none; overflow: visible !important;}' +\n '[data-rt-slider-track-uid=\"' +\n trackUID +\n '\"]::before{content:\"\";position:absolute;top:-30px;bottom:-30px;left:0;right:0;z-index:0; cursor:pointer; pointer-events:auto;}' +\n '[data-rt-slider-bar-uid=\"' +\n barUID +\n '\"]{position:relative; z-index:2; touch-action:none;}' +\n '[data-rt-slider-bar-uid=\"' +\n barUID +\n '\"]::after{content:\"\";position:absolute;top:-30px;bottom:-30px;left:0;right:0;z-index:3; cursor:grab; pointer-events:auto;}';\n } else {\n scrollbarStyles =\n '[data-rt-slider-track-uid=\"' +\n trackUID +\n '\"]{position:relative; touch-action:auto; overflow: visible !important; pointer-events:none !important; user-select:none !important;}' +\n '[data-rt-slider-track-uid=\"' +\n trackUID +\n '\"]::before{content:\"\";position:absolute;top:-30px;bottom:-30px;left:0;right:0;z-index:0; pointer-events:none !important;}' +\n '[data-rt-slider-bar-uid=\"' +\n barUID +\n '\"]{position:relative; z-index:2; touch-action:auto; pointer-events:none !important; user-select:none !important;}' +\n '[data-rt-slider-bar-uid=\"' +\n barUID +\n '\"]::after{content:\"\";position:absolute;top:-30px;bottom:-30px;left:0;right:0;z-index:3; pointer-events:none !important;}';\n }\n }\n var hideNativeScrollbarCSS =\n '[data-rt-slider-list-uid=\"' +\n listUID +\n '\"]::-webkit-scrollbar{width:0 !important;height:0 !important;display:none !important;background:transparent !important;}' +\n '[data-rt-slider-list-uid=\"' +\n listUID +\n '\"]::-webkit-scrollbar-thumb{background:transparent !important;}' +\n '[data-rt-slider-list-uid=\"' +\n listUID +\n '\"]::-webkit-scrollbar-track{background:transparent !important;}' +\n '[data-rt-slider-list-uid=\"' +\n listUID +\n '\"]{scrollbar-width:none !important;-ms-overflow-style:none !important;}' +\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"]::-webkit-scrollbar{width:0 !important;height:0 !important;display:none !important;background:transparent !important;}' +\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"]::-webkit-scrollbar-thumb{background:transparent !important;}' +\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"]::-webkit-scrollbar-track{background:transparent !important;}' +\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"]{scrollbar-width:none !important;-ms-overflow-style:none !important;}';\n\n var iosMaskCSS = isDesktop\n ? \"\"\n : '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"]{position:relative;padding-bottom:calc(var(--rt-slider-base-pb, 0px) + var(--rt-slider-mask-h, 12px));}' +\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"]::after{content:\"\";position:absolute;left:0;right:0;bottom:0;height:var(--rt-slider-mask-h, 12px);pointer-events:none;z-index:2147483647;background:var(--rt-slider-mask-bg, transparent);}';\n\n var draggingCSS =\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"].is-dragging{cursor:grabbing !important;user-select:none}' +\n '[data-rt-slider-list-uid=\"' +\n listUID +\n '\"].is-dragging{cursor:grabbing !important;user-select:none}' +\n '[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"].is-dragging img,[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"].is-dragging a,[data-rt-slider-scroller-uid=\"' +\n scrollerUID +\n '\"].is-dragging ' +\n this.conf.item +\n \"{user-select:none;-webkit-user-drag:none}\" +\n '[data-rt-slider-list-uid=\"' +\n listUID +\n '\"] img{-webkit-user-drag:none}';\n\n this._injectedKey = \"rt-ss-\" + listUID;\n injectOnce(\n this._injectedKey,\n hideNativeScrollbarCSS + draggingCSS + scrollbarStyles + iosMaskCSS,\n );\n };\n\n Slider.prototype.onResize = function () {\n this.stopInertia();\n this.rafUpdate();\n this.setupCursorMode();\n this.applyIOSScrollIndicatorMask();\n this.applyListStyles();\n this.updateSlideState(true);\n };\n\n Slider.prototype.onClickCapture = function (e) {\n if (!this.didDragTs) return;\n if (performance.now() - this.didDragTs > 420) return;\n var a =\n e.target && e.target.closest\n ? e.target.closest(\n \"a,button,[role='button'],input,textarea,select,label\",\n )\n : null;\n if (!a) return;\n e.preventDefault();\n e.stopPropagation();\n };\n\n Slider.prototype.getLenisOptions = function () {\n var prefix = \"data-rt-slider-\";\n var el = this.root;\n function getAttr(name) {\n return el.getAttribute(prefix + name);\n }\n\n var options = {\n wrapper: this.scroller,\n content: this.list,\n orientation: \"horizontal\",\n gestureOrientation: \"horizontal\",\n smoothWheel: true,\n syncTouch: false,\n };\n\n var lerp = parseNum(getAttr(\"lerp\"), undefined);\n var duration = parseNum(getAttr(\"duration\"), undefined);\n var easing = parseStr(getAttr(\"easing\"), \"\");\n var easingFn = parseEasing(easing);\n\n if (lerp !== undefined) options.lerp = lerp;\n else if (duration !== undefined) options.duration = duration;\n if (easingFn) options.easing = easingFn;\n\n var orientation = parseStr(getAttr(\"orientation\"), \"\");\n if (orientation) options.orientation = orientation;\n var gestureOrientation = parseStr(getAttr(\"gesture-orientation\"), \"\");\n if (gestureOrientation) options.gestureOrientation = gestureOrientation;\n\n var smoothWheel = getAttr(\"smooth-wheel\");\n if (smoothWheel !== null)\n options.smoothWheel = parseBool(smoothWheel, true);\n\n var wheelMultiplier = parseNum(getAttr(\"wheel-multiplier\"), undefined);\n if (wheelMultiplier !== undefined)\n options.wheelMultiplier = wheelMultiplier;\n var touchMultiplier = parseNum(getAttr(\"touch-multiplier\"), undefined);\n if (touchMultiplier !== undefined)\n options.touchMultiplier = touchMultiplier;\n\n var infinite = parseBool(getAttr(\"infinite\"), false);\n if (infinite) options.infinite = true;\n var autoResize = parseBool(getAttr(\"auto-resize\"), true);\n if (autoResize === false) options.autoResize = false;\n\n var jsonStr = getAttr(\"options-json\");\n if (jsonStr) {\n try {\n var jsonOpts = JSON.parse(jsonStr);\n if (jsonOpts && typeof jsonOpts === \"object\") {\n for (var key in jsonOpts) options[key] = jsonOpts[key];\n }\n } catch (e) {}\n }\n return options;\n };\n\n Slider.prototype.setupLenisInstance = function () {\n if (!this.mq.matches) return;\n if (this.lenis) return;\n var options = this.getLenisOptions();\n try {\n this.lenis = new window.Lenis(options);\n LenisHub.add(this.lenis);\n } catch (e) {\n this.lenis = null;\n }\n };\n\n Slider.prototype.bindEvents = function () {\n this._onScroll = this.onScroll.bind(this);\n this.scroller.addEventListener(\"scroll\", this._onScroll, { passive: true });\n\n this._onResize = this.onResize.bind(this);\n window.addEventListener(\"resize\", this._onResize);\n\n if (this.mq.matches) {\n this._onPD = this.onPointerDown.bind(this);\n this.scroller.addEventListener(\"pointerdown\", this._onPD);\n this._onPM = this.onPointerMove.bind(this);\n this.scroller.addEventListener(\"pointermove\", this._onPM);\n this._onPU = this.onPointerUp.bind(this);\n this.scroller.addEventListener(\"pointerup\", this._onPU);\n this._onPC = this.onPointerCancel.bind(this);\n this.scroller.addEventListener(\"pointercancel\", this._onPC);\n this._onPL = this.onPointerCancel.bind(this);\n this.scroller.addEventListener(\"pointerleave\", this._onPL);\n this._onClickCap = this.onClickCapture.bind(this);\n this.scroller.addEventListener(\"click\", this._onClickCap, true);\n }\n\n if (this.btnPrev) {\n this._onPrev = this.onPrevClick.bind(this);\n this.btnPrev.addEventListener(\"click\", this._onPrev);\n }\n if (this.btnNext) {\n this._onNext = this.onNextClick.bind(this);\n this.btnNext.addEventListener(\"click\", this._onNext);\n }\n\n if (this.mq.matches) {\n if (this.scrollBar) {\n this.scrollBar.style.touchAction = \"none\";\n this.scrollBar.style.cursor = \"grab\";\n }\n if (this.scrollTrack) {\n this.scrollTrack.style.userSelect = \"none\";\n this.scrollTrack.style.cursor = \"pointer\";\n this.scrollTrack.style.touchAction = \"none\";\n this._onTPD = this.onTrackPointerDown.bind(this);\n this.scrollTrack.addEventListener(\"pointerdown\", this._onTPD);\n this._onTPM = this.onTrackPointerMove.bind(this);\n this.scrollTrack.addEventListener(\"pointermove\", this._onTPM);\n this._onTPU = this.endBarDrag.bind(this);\n this.scrollTrack.addEventListener(\"pointerup\", this._onTPU);\n this._onTPC = this.endBarDrag.bind(this);\n this.scrollTrack.addEventListener(\"pointercancel\", this._onTPC);\n this._onTPL = this.endBarDrag.bind(this);\n this.scrollTrack.addEventListener(\"pointerleave\", this._onTPL);\n }\n } else {\n if (this.scrollBar) {\n this.scrollBar.style.touchAction = \"\";\n this.scrollBar.style.cursor = \"\";\n }\n if (this.scrollTrack) {\n this.scrollTrack.style.userSelect = \"\";\n this.scrollTrack.style.cursor = \"\";\n this.scrollTrack.style.touchAction = \"\";\n }\n }\n\n var self = this;\n this._onMQ = function () {\n self.applyIOSScrollIndicatorMask();\n self.applyListStyles();\n self.setupCursorMode();\n self.rafUpdate();\n self.updateSlideState(true);\n };\n if (this.mq.addEventListener)\n this.mq.addEventListener(\"change\", this._onMQ);\n else if (this.mq.addListener) this.mq.addListener(this._onMQ);\n\n var imgs = Array.from(this.list.querySelectorAll(\"img\"));\n imgs.forEach(function (img) {\n if (img.complete) return;\n var update = function () {\n self.rafUpdate();\n self.setupCursorMode();\n self.applyIOSScrollIndicatorMask();\n self.applyListStyles();\n self.updateSlideState(true);\n };\n img.addEventListener(\"load\", update, { once: true });\n img.addEventListener(\"error\", update, { once: true });\n self.imgHandlers.push({ img: img, onL: update, onE: update });\n });\n\n if (this.ro) {\n this.ro.observe(this.list);\n this.ro.observe(this.scroller);\n if (this.scrollTrack) this.ro.observe(this.scrollTrack);\n }\n\n this._onPH = this.destroy.bind(this);\n window.addEventListener(\"pagehide\", this._onPH);\n this._onBU = this.destroy.bind(this);\n window.addEventListener(\"beforeunload\", this._onBU);\n };\n\n Slider.prototype.init = function () {\n this.captureBasePaddingBottomOnce();\n this.applyIOSScrollIndicatorMask();\n this.applyListStyles();\n\n var self = this;\n if (this.mq.matches) {\n loadLenis()\n .then(function () {\n self.setupLenisInstance();\n })\n .catch(function () {});\n }\n\n this.rafUpdate();\n this._onWL = function () {\n self.rafUpdate();\n self.applyIOSScrollIndicatorMask();\n self.applyListStyles();\n self.updateSlideState(true);\n };\n window.addEventListener(\"load\", this._onWL);\n this.setupCursorMode();\n this.bindEvents();\n this.updateSlideState(true);\n };\n\n Slider.prototype.destroy = function () {\n this.stopInertia();\n if (this._touchClampTimer) clearTimeout(this._touchClampTimer);\n\n if (this.lenis) {\n try {\n LenisHub.remove(this.lenis);\n } catch (e) {}\n try {\n this.lenis.destroy();\n } catch (e) {}\n this.lenis = null;\n }\n\n if (this._onScroll)\n this.scroller.removeEventListener(\"scroll\", this._onScroll);\n if (this._onResize) window.removeEventListener(\"resize\", this._onResize);\n\n if (this._onPD)\n this.scroller.removeEventListener(\"pointerdown\", this._onPD);\n if (this._onPM)\n this.scroller.removeEventListener(\"pointermove\", this._onPM);\n if (this._onPU) this.scroller.removeEventListener(\"pointerup\", this._onPU);\n if (this._onPC)\n this.scroller.removeEventListener(\"pointercancel\", this._onPC);\n if (this._onPL)\n this.scroller.removeEventListener(\"pointerleave\", this._onPL);\n if (this._onClickCap)\n this.scroller.removeEventListener(\"click\", this._onClickCap, true);\n\n if (this._onPrev && this.btnPrev)\n this.btnPrev.removeEventListener(\"click\", this._onPrev);\n if (this._onNext && this.btnNext)\n this.btnNext.removeEventListener(\"click\", this._onNext);\n\n if (this.scrollTrack) {\n if (this._onTPD)\n this.scrollTrack.removeEventListener(\"pointerdown\", this._onTPD);\n if (this._onTPM)\n this.scrollTrack.removeEventListener(\"pointermove\", this._onTPM);\n if (this._onTPU)\n this.scrollTrack.removeEventListener(\"pointerup\", this._onTPU);\n if (this._onTPC)\n this.scrollTrack.removeEventListener(\"pointercancel\", this._onTPC);\n if (this._onTPL)\n this.scrollTrack.removeEventListener(\"pointerleave\", this._onTPL);\n }\n\n if (this.mq.removeEventListener)\n this.mq.removeEventListener(\"change\", this._onMQ);\n else if (this.mq.removeListener) this.mq.removeListener(this._onMQ);\n\n if (this._onWL) window.removeEventListener(\"load\", this._onWL);\n if (this._onPH) window.removeEventListener(\"pagehide\", this._onPH);\n if (this._onBU) window.removeEventListener(\"beforeunload\", this._onBU);\n\n this.imgHandlers.forEach(function (h) {\n h.img.removeEventListener(\"load\", h.onL);\n h.img.removeEventListener(\"error\", h.onE);\n });\n this.imgHandlers = [];\n\n this.clearCursorBindings();\n\n this.scroller.style.cursor = \"\";\n this.scroller.style.removeProperty(\"--rt-slider-mask-bg\");\n this.scroller.style.removeProperty(\"--rt-slider-mask-h\");\n this.scroller.style.removeProperty(\"--rt-slider-base-pb\");\n\n if (this.ro) this.ro.disconnect();\n if (this._injectedKey) {\n removeInjected(this._injectedKey);\n this._injectedKey = null;\n }\n };\n\n var state = {\n instances: {},\n order: [],\n };\n\n function init() {\n var roots = document.querySelectorAll(\"[data-rt-slider]\");\n var autoCount = 0;\n for (var i = 0; i < roots.length; i++) {\n var root = roots[i];\n var id = root.getAttribute(\"data-rt-slider-id\");\n if (!id) {\n autoCount++;\n id = \"slider-\" + autoCount;\n root.setAttribute(\"data-rt-slider-id\", id);\n }\n if (state.instances[id]) continue;\n\n var inst = new Slider(root, id);\n if (inst.valid) {\n state.instances[id] = inst;\n state.order.push(id);\n inst.init();\n }\n }\n }\n\n function makeApi() {\n return {\n __initialized: true,\n ids: function () {\n return state.order.slice();\n },\n get: function (id) {\n return state.instances[id] || null;\n },\n getSlideState: function (id) {\n var inst = state.instances[id];\n return inst ? inst.getSlideState() : null;\n },\n getScrollState: function (id) {\n var inst = state.instances[id];\n return inst ? inst.getScrollState() : null;\n },\n getProgress: function (id) {\n var inst = state.instances[id];\n return inst ? inst.getProgress() : 0;\n },\n refresh: function () {\n var keys = state.order;\n for (var i = 0; i < keys.length; i++) {\n var inst = state.instances[keys[i]];\n if (inst) inst.onResize();\n }\n },\n destroy: function (id) {\n if (typeof id === \"string\") {\n var inst = state.instances[id];\n if (inst) {\n inst.destroy();\n delete state.instances[id];\n var idx = state.order.indexOf(id);\n if (idx > -1) state.order.splice(idx, 1);\n }\n return;\n }\n for (var i = 0; i < state.order.length; i++) {\n var k = state.order[i];\n if (state.instances[k]) state.instances[k].destroy();\n }\n state.instances = {};\n state.order = [];\n },\n };\n }\n\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n\n window[RT_NS] = makeApi();\n})();\n"],
5
+ "mappings": "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",
6
+ "names": ["RT_NS", "lenisLoadingPromise", "loadLenis", "resolve", "reject", "existing", "e", "s", "LenisHub", "set", "rafId", "loop", "t", "l", "lenis", "uid", "assignUID", "el", "attr", "injectOnce", "key", "css", "removeInjected", "toSel", "v", "parseBool", "def", "parseNum", "n", "parseStr", "clamp", "i", "round", "d", "m", "parseEasing", "name", "map", "isTransparentColor", "val", "parts", "x", "a", "findNearestOpaqueBgColor", "cs", "bg", "rootBg", "isOverflowingX", "findScrollableAncestor", "ox", "scrollable", "resolveControl", "root", "selector", "sliderId", "local", "byFor", "all", "scoped", "owner", "isVisibleNode", "getConf", "Slider", "id", "self", "dpr", "g1", "g2", "nodes", "kids", "className", "needStart", "needEnd", "el2", "cls", "spacerStart", "spacerEnd", "marginRef", "eps", "gap", "sRect", "rRect", "scrollerCS", "listCS", "scrollerBorderL", "scrollerPadL", "listPadL", "scrollerInnerLeft", "desiredLeft", "raw", "width", "scrollWidth", "clientWidth", "max", "current", "epsilon", "atStart", "atEnd", "progress", "total", "visible", "setVis", "show", "metrics", "items", "trackWidth", "avgItemWidth", "visibleItems", "barWidth", "maxS", "maxX", "clamped", "opts", "target", "o", "cur", "item", "w", "mr", "ref", "gutter", "alignLeft", "bestIdx", "bestAbs", "r", "ad", "anchors", "last", "rect", "anchor", "state", "slide", "scroll", "detail", "payload", "ev", "prevScroll", "scrollDirection", "nearestIndex", "nearestDistance", "distance", "absDistance", "fromIndex", "toIndex", "segmentProgress", "segmentDistance", "segmentSpan", "segmentRemaining", "isBetween", "j", "b", "slides", "k", "anchorProgress", "force", "prevActiveIndex", "sig", "progressSig", "delta", "duration", "step", "fallback", "curIdx", "nextIdx", "err", "minVel", "throwDist", "speed", "decay", "next", "atEdge", "dxFromStart", "now", "dx", "dt", "computed", "met", "nx", "barRect", "trackRect", "onEnter", "onLeave", "pb", "listUID", "scrollerUID", "isDesktop", "scrollbarStyles", "trackUID", "barUID", "hideNativeScrollbarCSS", "iosMaskCSS", "draggingCSS", "prefix", "getAttr", "options", "lerp", "easing", "easingFn", "orientation", "gestureOrientation", "smoothWheel", "wheelMultiplier", "touchMultiplier", "infinite", "autoResize", "jsonStr", "jsonOpts", "imgs", "img", "update", "h", "init", "roots", "autoCount", "inst", "makeApi", "keys", "idx"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rethink-js/rt-slider",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "A lightweight, touch-friendly slider with smooth inertia scrolling and native fallback.",
5
5
  "keywords": [
6
6
  "javascript",