{"version":3,"sources":["20240215ForceSeries_functions.js"],"names":["ScrollOut","clamp","v","min","max","sign","x","clearTask","cache","replacer","match","toLowerCase","hyphenate","value","replace","$","e","parent","length","nodeName","slice","call","document","documentElement","querySelectorAll","setAttrs","el","attrs","key","indexOf","setAttribute","subscribers","loop","forEach","s2","enqueue","requestAnimationFrame","unwrap","ctx","doc","noop","opts","clientOffsetX","clientOffsety","sub","onChange","onHidden","onShown","onScroll","props","cssProps","style","setProperty","n","Math","round","setProps","se","scrollingElement","container","window","rootChanged","scrollingElementContext","elementContextList","index","targets","scope","map","element","update","clientWidth","clientHeight","scrollDirX","scrollLeft","pageXOffset","scrollDirY","scrollTop","pageYOffset","scrollPercentX","scrollWidth","scrollPercentY","scrollHeight","childChanged","index_1","target","offsetX","offsetY","offsetLeft","offsetTop","offsetParent","elementHeight","offsetHeight","elementWidth","offsetWidth","visibleX","visibleY","intersectX","intersectY","viewportX","viewportY","visible","offset","threshold","changedVisible","_changed","_visibleChanged","fn","push","filter","s","cancelAnimationFrame","subscribe","render","maybeUnsubscribe","justOnce","hasAttribute","scroll","once","splice","undefined","updateTaskId","onUpdate","setTimeout","addEventListener","teardown","removeEventListener","global","factory","exports","_typeof","module","define","amd","Lengthy","this","els","i","getLength","classList","add","getValue","a","baseVal","distance","x1","y1","x2","y2","dx","dy","sqrt","ellipseLength","rx","ry","PI","getTotalLength","SVGUseElement","querySelector","href","width","height","w","h","r","points","p","getAttribute","split","d","l","SVGPolygonElement","Array","prototype","isSafari","test","navigator","userAgent","body","viewportWidth","innerWidth","tag","createElement","src","firstScriptTag","getElementsByTagName","onYouTubeIframeAPIReady","item","YT","Player","events","onReady","event","playVideo","mute","parentNode","insertBefore","click","location","pathname","hostname","hash","offsetValue","animate","top","showOnScroll","getBoundingClientRect","innerHeight","sliderTechnologies","Swiper","slidesPerView","spaceBetween","freeMode","grabCursor","breakpoints","600","900","sliderFeatures","sliderBanner","effect","fadeEffect","crossFade","speed","autoplay","delay","disableOnInteraction","slick","slidesToShow","slidesToScroll","arrows","fade","infinite","swipe","slideNumber","data","closest","sliderShoesWrapper","navigation","prevEl","nextEl","slidesPerGroup","check3","getElementById","checked","slideTo","on","activeIndex","sections","cb","entries","entry","id","isIntersecting","remove","observer","IntersectionObserver","rootMargin","observe","navbar","hideStickyNav","cb2","boundingClientRect","y","observer2"],"mappings":"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","file":"20240215ForceSeries_functions.min.js","sourcesContent":["var ScrollOut = (function () {\n 'use strict';\n\n function clamp(v, min, max) {\r\n return min > v ? min : max < v ? max : v;\r\n }\r\n function sign(x) {\r\n return (+(x > 0) - +(x < 0));\r\n }\r\n function round(n) {\r\n return Math.round(n * 10000) / 10000;\r\n }\n\n var cache = {};\r\n function replacer(match) {\r\n return '-' + match[0].toLowerCase();\r\n }\r\n function hyphenate(value) {\r\n return cache[value] || (cache[value] = value.replace(/([A-Z])/g, replacer));\r\n }\n\n /** find elements */\r\n function $(e, parent) {\r\n return !e || e.length === 0\r\n ? // null or empty string returns empty array\r\n []\r\n : e.nodeName\r\n ? // a single element is wrapped in an array\r\n [e]\r\n : // selector and NodeList are converted to Element[]\r\n [].slice.call(e[0].nodeName ? e : (parent || document.documentElement).querySelectorAll(e));\r\n }\r\n function setAttrs(el, attrs) {\r\n // tslint:disable-next-line:forin\r\n for (var key in attrs) {\r\n if (key.indexOf('_')) {\r\n el.setAttribute('data-' + hyphenate(key), attrs[key]);\r\n }\r\n }\r\n }\r\n function setProps(cssProps) {\r\n return function (el, props) {\r\n for (var key in props) {\r\n if (key.indexOf('_') && (cssProps === true || cssProps[key])) {\r\n el.style.setProperty('--' + hyphenate(key), round(props[key]));\r\n }\r\n }\r\n };\r\n }\n\n var clearTask;\r\n var subscribers = [];\r\n function loop() {\r\n clearTask = 0;\r\n subscribers.slice().forEach(function (s2) { return s2(); });\r\n enqueue();\r\n }\r\n function enqueue() {\r\n if (!clearTask && subscribers.length) {\r\n clearTask = requestAnimationFrame(loop);\r\n }\r\n }\r\n function subscribe(fn) {\r\n subscribers.push(fn);\r\n enqueue();\r\n return function () {\r\n subscribers = subscribers.filter(function (s) { return s !== fn; });\r\n if (!subscribers.length && clearTask) {\r\n cancelAnimationFrame(clearTask);\r\n clearTask = 0;\r\n }\r\n };\r\n }\n\n function unwrap(value, el, ctx, doc) {\r\n return typeof value === 'function' ? value(el, ctx, doc) : value;\r\n }\r\n function noop() { }\n\n /**\r\n * Creates a new instance of ScrollOut that marks elements in the viewport with\r\n * an \"in\" class and marks elements outside of the viewport with an \"out\"\r\n */\r\n // tslint:disable-next-line:no-default-export\r\n function main (opts) {\r\n // Apply default options.\r\n opts = opts || {};\r\n // Debounce onChange/onHidden/onShown.\r\n var onChange = opts.onChange || noop;\r\n var onHidden = opts.onHidden || noop;\r\n var onShown = opts.onShown || noop;\r\n var onScroll = opts.onScroll || noop;\r\n var props = opts.cssProps ? setProps(opts.cssProps) : noop;\r\n var se = opts.scrollingElement;\r\n var container = se ? $(se)[0] : window;\r\n var doc = se ? $(se)[0] : document.documentElement;\r\n var rootChanged = false;\r\n var scrollingElementContext = {};\r\n var elementContextList = [];\r\n var clientOffsetX, clientOffsety;\r\n var sub;\r\n function index() {\r\n elementContextList = $(opts.targets || '[data-scroll]', $(opts.scope || doc)[0]).map(function (el) { return ({ element: el }); });\r\n }\r\n function update() {\r\n // Calculate position, direction and ratio.\r\n var clientWidth = doc.clientWidth;\r\n var clientHeight = doc.clientHeight;\r\n var scrollDirX = sign(-clientOffsetX + (clientOffsetX = doc.scrollLeft || window.pageXOffset));\r\n var scrollDirY = sign(-clientOffsety + (clientOffsety = doc.scrollTop || window.pageYOffset));\r\n var scrollPercentX = doc.scrollLeft / (doc.scrollWidth - clientWidth || 1);\r\n var scrollPercentY = doc.scrollTop / (doc.scrollHeight - clientHeight || 1);\r\n // Detect if the root context has changed.\r\n rootChanged =\r\n rootChanged ||\r\n scrollingElementContext.scrollDirX !== scrollDirX ||\r\n scrollingElementContext.scrollDirY !== scrollDirY ||\r\n scrollingElementContext.scrollPercentX !== scrollPercentX ||\r\n scrollingElementContext.scrollPercentY !== scrollPercentY;\r\n scrollingElementContext.scrollDirX = scrollDirX;\r\n scrollingElementContext.scrollDirY = scrollDirY;\r\n scrollingElementContext.scrollPercentX = scrollPercentX;\r\n scrollingElementContext.scrollPercentY = scrollPercentY;\r\n var childChanged = false;\r\n for (var index_1 = 0; index_1 < elementContextList.length; index_1++) {\r\n var ctx = elementContextList[index_1];\r\n var element = ctx.element;\r\n // find the distance from the element to the scrolling container\r\n var target = element;\r\n var offsetX = 0;\r\n var offsetY = 0;\r\n do {\r\n offsetX += target.offsetLeft;\r\n offsetY += target.offsetTop;\r\n target = target.offsetParent;\r\n } while (target && target !== container);\r\n // Get element dimensions.\r\n var elementHeight = element.clientHeight || element.offsetHeight || 0;\r\n var elementWidth = element.clientWidth || element.offsetWidth || 0;\r\n // Find visible ratios for each element.\r\n var visibleX = (clamp(offsetX + elementWidth, clientOffsetX, clientOffsetX + clientWidth) -\r\n clamp(offsetX, clientOffsetX, clientOffsetX + clientWidth)) /\r\n elementWidth;\r\n var visibleY = (clamp(offsetY + elementHeight, clientOffsety, clientOffsety + clientHeight) -\r\n clamp(offsetY, clientOffsety, clientOffsety + clientHeight)) /\r\n elementHeight;\r\n var intersectX = visibleX === 1 ? 0 : sign(offsetX - clientOffsetX);\r\n var intersectY = visibleY === 1 ? 0 : sign(offsetY - clientOffsety);\r\n var viewportX = clamp((clientOffsetX - (elementWidth / 2 + offsetX - clientWidth / 2)) / (clientWidth / 2), -1, 1);\r\n var viewportY = clamp((clientOffsety - (elementHeight / 2 + offsetY - clientHeight / 2)) / (clientHeight / 2), -1, 1);\r\n var visible = void 0;\r\n if (opts.offset) {\r\n visible = unwrap(opts.offset, element, ctx, doc) <= clientOffsety ? 1 : 0;\r\n }\r\n else if ((unwrap(opts.threshold, element, ctx, doc) || 0) < visibleX * visibleY) {\r\n visible = 1;\r\n }\r\n else {\r\n visible = 0;\r\n }\r\n var changedVisible = ctx.visible !== visible;\r\n var changed = ctx._changed ||\r\n changedVisible ||\r\n ctx.visibleX !== visibleX ||\r\n ctx.visibleY !== visibleY ||\r\n ctx.index !== index_1 ||\r\n ctx.elementHeight !== elementHeight ||\r\n ctx.elementWidth !== elementWidth ||\r\n ctx.offsetX !== offsetX ||\r\n ctx.offsetY !== offsetY ||\r\n ctx.intersectX !== ctx.intersectX ||\r\n ctx.intersectY !== ctx.intersectY ||\r\n ctx.viewportX !== viewportX ||\r\n ctx.viewportY !== viewportY;\r\n if (changed) {\r\n childChanged = true;\r\n ctx._changed = true;\r\n ctx._visibleChanged = changedVisible;\r\n ctx.visible = visible;\r\n ctx.elementHeight = elementHeight;\r\n ctx.elementWidth = elementWidth;\r\n ctx.index = index_1;\r\n ctx.offsetX = offsetX;\r\n ctx.offsetY = offsetY;\r\n ctx.visibleX = visibleX;\r\n ctx.visibleY = visibleY;\r\n ctx.intersectX = intersectX;\r\n ctx.intersectY = intersectY;\r\n ctx.viewportX = viewportX;\r\n ctx.viewportY = viewportY;\r\n ctx.visible = visible;\r\n }\r\n }\r\n if (!sub && (rootChanged || childChanged)) {\r\n sub = subscribe(render);\r\n }\r\n }\r\n function render() {\r\n maybeUnsubscribe();\r\n // Update root attributes if they have changed.\r\n if (rootChanged) {\r\n rootChanged = false;\r\n setAttrs(doc, {\r\n scrollDirX: scrollingElementContext.scrollDirX,\r\n scrollDirY: scrollingElementContext.scrollDirY\r\n });\r\n props(doc, scrollingElementContext);\r\n onScroll(doc, scrollingElementContext, elementContextList);\r\n }\r\n var len = elementContextList.length;\r\n for (var x = len - 1; x > -1; x--) {\r\n var ctx = elementContextList[x];\r\n var el = ctx.element;\r\n var visible = ctx.visible;\r\n var justOnce = el.hasAttribute('scrollout-once') || false; // Once\r\n if (ctx._changed) {\r\n ctx._changed = false;\r\n props(el, ctx);\r\n }\r\n if (ctx._visibleChanged) {\r\n setAttrs(el, { scroll: visible ? 'in' : 'out' });\r\n onChange(el, ctx, doc);\r\n (visible ? onShown : onHidden)(el, ctx, doc);\r\n }\r\n // if this is shown multiple times, keep it in the list\r\n if (visible && (opts.once || justOnce)) { // or if this element just display it once\r\n elementContextList.splice(x, 1);\r\n }\r\n }\r\n }\r\n function maybeUnsubscribe() {\r\n if (sub) {\r\n sub();\r\n sub = undefined;\r\n }\r\n }\r\n // Run initialize index.\r\n index();\r\n update();\r\n render();\r\n // Collapses sequential updates into a single update.\r\n var updateTaskId = 0;\r\n var onUpdate = function () {\r\n updateTaskId = updateTaskId || setTimeout(function () {\r\n updateTaskId = 0;\r\n update();\r\n }, 0);\r\n };\r\n // Hook up document listeners to automatically detect changes.\r\n window.addEventListener('resize', onUpdate);\r\n container.addEventListener('scroll', onUpdate);\r\n return {\r\n index: index,\r\n update: update,\r\n teardown: function () {\r\n maybeUnsubscribe();\r\n window.removeEventListener('resize', onUpdate);\r\n container.removeEventListener('scroll', onUpdate);\r\n }\r\n };\r\n }\n\n return main;\n\n}());\n\r\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Lengthy = factory());\n}(this, (function () { 'use strict';\n\nfunction Lengthy(els) {\n return $(els).map(function(el, i) {\n var length = getLength(el);\n el.classList.add(\"lengthy\");\n el.style.setProperty(\"--path-length\", length);\n return {\n el: el,\n length: length\n };\n });\n}\n\nfunction getValue(a) {\n a = a || 0;\n return a.value !== undefined ? a.value : a.baseVal ? getValue(a.baseVal) : a;\n}\n\nfunction distance(x1, y1, x2, y2) {\n var dx = x1 - x2;\n var dy = y1 - y2;\n return Math.sqrt(dx * dx + dy * dy);\n}\n\n// Ramanujan ellipse circumference approximation\n// Thanks to https://twitter.com/jhnsnc\nfunction ellipseLength(rx, ry) {\n return Math.PI * (3 * (rx + ry) - Math.sqrt((3 * rx + ry) * (rx + 3 * ry)));\n}\n\nfunction getLength(el) {\n if (!el) {\n return false;\n }\n // or any SVG element in SVG2 supporting browsers\n if (el.getTotalLength) {\n return el.getTotalLength();\n }\n // \n if (el instanceof SVGUseElement) {\n return getLength(document.querySelector(getValue(el.href)));\n }\n\n // , rounded , and \n if (el.width || el.height || el.rx || el.ry) {\n var w = getValue(el.width);\n var h = getValue(el.height);\n var rx = getValue(el.rx);\n var ry = getValue(el.ry);\n\n if (w || h) {\n rx = Math.min(rx, w / 2);\n ry = Math.min(ry, h / 2);\n return (\n (w + h - 2 * (rx + ry)) * 2 + (rx || ry ? ellipseLength(rx, ry) : 0)\n );\n } else {\n return ellipseLength(rx, ry);\n }\n }\n // \n if (el.x1) {\n return distance(\n getValue(el.x1),\n getValue(el.y1),\n getValue(el.x2),\n getValue(el.y2)\n );\n }\n // \n if (el.r) {\n return 2 * Math.PI * getValue(el.r);\n }\n // and \n if (el.points) {\n var p = el.getAttribute(\"points\").split(/[\\s,]+/);\n var d = 0,\n i = 0,\n l = p.length - 2;\n for (; i < l; i += 2) {\n d += distance(p[i], p[i + 1], p[i + 2], p[i + 3]);\n }\n if (el instanceof SVGPolygonElement) {\n d += distance(p[i], p[i + 1], p[0], p[1]);\n }\n return d;\n }\n return false;\n}\n\nLengthy.getLength = getLength;\n\nfunction $(els, parent) {\n return Array.prototype.slice.call(\n els.nodeName\n ? [els]\n : els[0].nodeName ? els : document.querySelectorAll(els),\n 0\n );\n}\nLengthy.$ = $;\n\nreturn Lengthy;\n\n})));\n\r\n\r\n// GOOGLE ANALYTICS (VIDEO)\r\n// IS IT SAFARI?\r\n// ANIMATION LIB\r\n// SVG PATH LIB\r\n// YT VIDEO\r\n// SCROLL-TO ANIMATION FOR ANCHOR LINKS\r\n// FADE-IN-UP ELEMENTS ON SCROLL\r\n// SLIDER (SWIPER JS)\r\n// MOBILE SWITCHER + SWIPER IN SYNC\r\n// NAVIGATION WITH SCROLL SPY\r\n\r\n//\r\n// =IS IT SAFARI?\r\n// --------------------------------------------------\r\n\r\nconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n\r\nisSafari\r\n ? document.body.classList.add(\"safari\")\r\n : document.body.classList.add(\"no-safari\");\r\n\r\n//\r\n// =ANIMATION LIB\r\n// --------------------------------------------------\r\n\r\nScrollOut({\r\n targets: \".fade-in\",\r\n once: true,\r\n});\r\n\r\nScrollOut({\r\n targets: \".fade-in-up\",\r\n once: true,\r\n});\r\n\r\nScrollOut({\r\n targets: \".svg-lines\",\r\n once: true,\r\n});\r\n\r\nScrollOut({\r\n targets: \".msdw-banners-wrapper\",\r\n once: false,\r\n cssProps: {\r\n visibleY: true,\r\n viewportY: true,\r\n },\r\n});\r\n\r\n//\r\n// =SVG PATH LIB\r\n// --------------------------------------------------\r\n\r\nconst viewportWidth = window.innerWidth || document.documentElement.clientWidth;\r\n\r\nviewportWidth >= 900 && Lengthy(\"[data-lengthy]\");\r\n\r\n//\r\n// =YT VIDEO\r\n// --------------------------------------------------\r\n\r\nconst tag = document.createElement(\"script\");\r\ntag.src = \"https://www.youtube.com/iframe_api\";\r\nconst firstScriptTag = document.getElementsByTagName(\"script\")[0];\r\nfirstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n\r\nfunction onYouTubeIframeAPIReady() {\r\n document.querySelectorAll(\".ytplayer\").forEach((item) => {\r\n new YT.Player(item, {\r\n events: {\r\n onReady: (event) => {\r\n event.target.playVideo();\r\n event.target.mute();\r\n },\r\n // onStateChange: onPlayerStateChange,\r\n },\r\n });\r\n });\r\n}\r\n\r\n// window.dataLayer = window.dataLayer || [];\r\n\r\n// function onPlayerReady(event) {\r\n// window.dataLayer.push({\r\n// event: \"ce.video\",\r\n// eventCategory: \"Video\",\r\n// eventAction: \"Video Play\",\r\n// eventLabel: \"Force Striker family\",\r\n// eventValue: undefined,\r\n// nonInteraction: true,\r\n// });\r\n// }\r\n\r\n// function googleAnalyticsSendMetrics(playerStatus) {\r\n// if (playerStatus == 0) {\r\n// window.dataLayer.push({\r\n// event: \"ce.video\",\r\n// eventCategory: \"Video\",\r\n// eventAction: \"Video Completed\",\r\n// eventLabel: \"Force Striker family\",\r\n// eventValue: undefined,\r\n// nonInteraction: true,\r\n// });\r\n// } else if (playerStatus == 2) {\r\n// window.dataLayer.push({\r\n// event: \"ce.video\",\r\n// eventCategory: \"Video\",\r\n// eventAction: \"Video Pause\",\r\n// eventLabel: \"Force Striker family\",\r\n// eventValue: undefined,\r\n// nonInteraction: true,\r\n// });\r\n// }\r\n// }\r\n\r\n// function onPlayerStateChange(event) {\r\n// googleAnalyticsSendMetrics(event.data);\r\n// }\r\n\r\n//\r\n// =SCROLL-TO ANIMATION FOR ANCHOR LINKS\r\n// --------------------------------------------------\r\n\r\n$(\".msdw-page-scroll\").click(function () {\r\n if (\r\n location.pathname.replace(/^\\//, \"\") == this.pathname.replace(/^\\//, \"\") &&\r\n location.hostname == this.hostname\r\n ) {\r\n var target = $(this.hash);\r\n target = target.length ? target : $(\"[name=\" + this.hash.slice(1) + \"]\");\r\n if (target.length) {\r\n var offsetValue = 58;\r\n if (window.innerWidth <= 767) {\r\n offsetValue;\r\n // console.log(offsetValue);\r\n } else {\r\n offsetValue = 120;\r\n // console.log(offsetValue);\r\n }\r\n\r\n $(\"html,body\").animate(\r\n {\r\n scrollTop: target.offset().top - offsetValue,\r\n },\r\n 900\r\n );\r\n return false;\r\n }\r\n }\r\n});\r\n\r\n//\r\n// =FADE-IN-UP ELEMENTS ON SCROLL\r\n// --------------------------------------------------\r\n\r\nconst scroll = window.requestAnimationFrame;\r\n\r\nfunction showOnScroll() {\r\n const elems = document.querySelectorAll(\".msdw-animate\");\r\n\r\n elems.forEach((el) => {\r\n const elPosition = el.getBoundingClientRect().top;\r\n const elScreen = window.innerHeight / 0.9;\r\n\r\n if (elPosition < elScreen) {\r\n el.classList.add(\"msdw-animated\");\r\n }\r\n });\r\n\r\n scroll(showOnScroll);\r\n}\r\n\r\nshowOnScroll();\r\n\r\n//\r\n// =SLIDER (SWIPER JS)\r\n// --------------------------------------------------\r\n\r\n// S / M: TECHNOLOGY CARDS\r\n\r\nconst sliderTechnologies = new Swiper(\"#sliderTechnologies\", {\r\n slidesPerView: 1.2,\r\n spaceBetween: 10,\r\n freeMode: true,\r\n grabCursor: true,\r\n breakpoints: {\r\n 600: {\r\n slidesPerView: 2.4,\r\n spaceBetween: 15,\r\n },\r\n 900: {\r\n slidesPerView: 3,\r\n spaceBetween: 20,\r\n grabCursor: false,\r\n },\r\n },\r\n});\r\n\r\n// S / M: FEATURE CARDS\r\n\r\nconst sliderFeatures = new Swiper(\".msdw-features\", {\r\n slidesPerView: 1.35,\r\n spaceBetween: 10,\r\n freeMode: true,\r\n grabCursor: true,\r\n breakpoints: {\r\n 600: {\r\n slidesPerView: 2.4,\r\n spaceBetween: 15,\r\n },\r\n },\r\n});\r\n\r\n// TECHNOLOGY BANNER\r\n\r\nconst sliderBanner = new Swiper(\".msdw-banner-slider\", {\r\n slidesPerView: 1,\r\n spaceBetween: 0,\r\n effect: \"fade\",\r\n fadeEffect: { crossFade: true },\r\n speed: 750,\r\n autoplay: {\r\n delay: 2750,\r\n disableOnInteraction: false,\r\n },\r\n});\r\n\r\n// SHOE SLIDERS\r\n\r\n$(\".slick-container\").slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n fade: true,\r\n speed: 50,\r\n autoplay: false,\r\n infinite: false,\r\n swipe: false,\r\n});\r\n\r\n$(\"[data-slide]\").click(function () {\r\n var slideNumber = $(this).data(\"slide\");\r\n $(this)\r\n .closest(\".slick-container\")\r\n .slick(\"slickGoTo\", slideNumber - 1);\r\n});\r\n\r\n// SHOE SLIDER WRAPPER\r\n\r\nconst sliderShoesWrapper = new Swiper(\".msdw-shoes-slider-wrapper\", {\r\n slidesPerView: 1,\r\n spaceBetween: 0,\r\n navigation: {\r\n prevEl: \".msdw-shoes-slider-wrapper--prev\",\r\n nextEl: \".msdw-shoes-slider-wrapper--next\",\r\n },\r\n breakpoints: {\r\n 600: {\r\n slidesPerView: 2,\r\n spaceBetween: 15,\r\n slidesPerGroup: 2,\r\n },\r\n 900: {\r\n slidesPerView: 4,\r\n spaceBetween: 20,\r\n },\r\n },\r\n});\r\n\r\n//\r\n// =MOBILE SWITCHER + SWIPER IN SYNC\r\n// --------------------------------------------------\r\n\r\nconst check3 = document.getElementById(\"switcher-input-3\");\r\n\r\ncheck3.addEventListener(\"click\", () => {\r\n const isChecked = check3.checked;\r\n\r\n if (isChecked) {\r\n sliderShoesWrapper.slideTo(2);\r\n } else {\r\n sliderShoesWrapper.slideTo(0);\r\n }\r\n});\r\n\r\nsliderShoesWrapper.on(\"slideChange\", function () {\r\n if (sliderShoesWrapper.activeIndex >= 2) {\r\n check3.checked = true;\r\n } else {\r\n check3.checked = false;\r\n }\r\n});\r\n\r\n//\r\n// =NAVIGATION WITH SCROLL SPY\r\n// --------------------------------------------------\r\n\r\nconst sections = document.querySelectorAll(\"section[data-scroll-spy]\");\r\n\r\nconst cb = (entries) => {\r\n entries.forEach((entry) => {\r\n const id = entry.target.getAttribute(\"id\");\r\n entry.isIntersecting\r\n ? document\r\n .querySelector(`a[data-scroll-spy][href=\"#${id}\"]`)\r\n .classList.add(\"msdw-active\")\r\n : document\r\n .querySelector(`a[data-scroll-spy][href=\"#${id}\"]`)\r\n .classList.remove(\"msdw-active\");\r\n });\r\n};\r\n\r\nconst observer = new IntersectionObserver(cb, {\r\n // root\r\n rootMargin: \"-50%\",\r\n // threshold: [0.25, 0.5]\r\n // threshold: [0.5, 0.75]\r\n});\r\n\r\nsections.forEach((el) => observer.observe(el));\r\n\r\n// hide sticky nav\r\n\r\nvar navbar = document.getElementById(\"msdw-navbar\");\r\nvar hideStickyNav = document.getElementById(\"hideStickyNav\");\r\n\r\nconst cb2 = (entries) => {\r\n entries.forEach((entry) => {\r\n entry.boundingClientRect.y <=\r\n (window.innerHeight || document.documentElement.clientHeight)\r\n ? navbar.classList.add(\"msdw-hidden\")\r\n : navbar.classList.remove(\"msdw-hidden\");\r\n });\r\n};\r\n\r\nconst observer2 = new IntersectionObserver(cb2);\r\n\r\nobserver2.observe(hideStickyNav);\r\n"]}