{"version":3,"file":"elements-current-initiatives.js","mappings":"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","sources":["webpack://silverstripe-base/./themes/app/src/elements/current-initiatives.js","webpack://silverstripe-base/./themes/app/src/scripts/common/util.js"],"sourcesContent":["import Swiper from \"swiper\";\nimport { A11y, Autoplay, Pagination } from \"swiper/modules\";\nimport \"@styles/components/slider.css\";\nimport { isTouchDevice } from \"@common/util\";\nimport { gsap } from \"gsap\";\n\ndocument.querySelectorAll(\".element-currentinitiatives\").forEach((el) => {\n const container = el.querySelector(\".swiper\");\n const slides = el.querySelectorAll(\".swiper-slide\");\n const expandFactor = 2.5;\n\n let activeSlide = null;\n\n new Swiper(container, {\n modules: [A11y, Autoplay, Pagination],\n autoplay: {\n delay: 4000,\n pauseOnMouseEnter: true,\n },\n slidesPerView: \"auto\",\n spaceBetween: 16,\n speed: 500,\n slideToClickedSlide: true,\n pagination: {\n el: el.querySelector(\".slider-pagination\"),\n clickable: true,\n },\n breakpoints: {\n 768: {\n spaceBetween: 16,\n },\n 1024: {\n spaceBetween: 0,\n },\n },\n });\n\n if (window.matchMedia(\"(min-width: 1024px)\").matches && !isTouchDevice) {\n const settleContainer = (activeSlide) => {\n gsap.to(container, {\n x: () => {\n if (activeSlide === null) {\n return 0;\n }\n\n const rect = activeSlide.getBoundingClientRect();\n const offset = rect.width / expandFactor;\n\n if (rect.x + rect.width > window.innerWidth) {\n return offset * -1;\n }\n\n if (rect.x + 1.25 * rect.width > window.innerWidth) {\n return offset / -3;\n }\n\n return 0;\n },\n duration: 2,\n });\n };\n\n slides.forEach((slide) => {\n const overlay = slide.querySelector(\".item-overlay\");\n const screen = slide.querySelector(\".item-screen\");\n const image = slide.querySelector(\".item-image\");\n\n const timeline = gsap.timeline({\n paused: true,\n onComplete: () => {\n settleContainer(activeSlide);\n },\n onReverseComplete: () => {\n slide.style.height = null;\n settleContainer(activeSlide);\n },\n });\n\n timeline.to(slide, { boxShadow: \"-10px 2px 23px rgba(0, 0, 0, 0.05)\", duration: 0 });\n timeline.to(overlay, { opacity: 0, duration: 0 }, \"<\");\n timeline.to(slide, { width: `${parseFloat(slide.offsetWidth) * expandFactor}px`, duration: 0.5 }, \"<\");\n timeline.to(\n image,\n {\n width: image.offsetWidth,\n scale: 1,\n zIndex: 100,\n duration: 0,\n },\n \"<\",\n );\n timeline.fromTo(\n image,\n { clipPath: \"polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)\" },\n {\n clipPath: \"polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%)\",\n duration: 0.2,\n },\n \"<\",\n );\n timeline.fromTo(\n screen,\n { opacity: 0, visibility: \"invisible\" },\n {\n opacity: 1,\n visibility: \"visible\",\n pointerEvents: \"auto\",\n duration: 0.3,\n },\n );\n timeline.fromTo(\n Array.from(screen.children),\n { opacity: 0, y: \"20%\" },\n { opacity: 1, duration: 0.4, y: 0, stagger: 0.2 },\n \"<\",\n );\n\n slide.addEventListener(\"mouseenter\", () => {\n activeSlide = slide;\n slide.style.height = `${slide.dataset.height}px`;\n timeline.play();\n });\n\n slide.addEventListener(\"mouseleave\", async () => {\n activeSlide = null;\n timeline.timeScale(1.25).reverse();\n });\n });\n }\n});\n\nconst init = () => {\n document.querySelectorAll(\".element-currentinitiatives .swiper-slide\").forEach((slide) => {\n slide.setAttribute(\"data-height\", slide.offsetHeight);\n });\n};\n\nwindow.addEventListener(\"resize\", init);\n\ninit();\n","export const isTouchDevice = \"ontouchstart\" in document.documentElement;\n\nexport const generateQueryString = (data = {}) => {\n let params = data;\n\n if (data instanceof FormData === true) {\n params = {};\n\n data.forEach((value, key) => (params[key] = value));\n }\n\n for (const key in params) {\n if (params[key] === \"\") {\n delete params[key];\n }\n }\n\n return new URLSearchParams(params);\n};\n\nexport const trackGoogleAnalytics = (event) => {\n if (window.dataLayer) {\n window.dataLayer.push(event);\n }\n};\n"],"names":["document","querySelectorAll","forEach","el","container","querySelector","slides","activeSlide","Swiper","modules","A11y","Autoplay","Pagination","autoplay","delay","pauseOnMouseEnter","slidesPerView","spaceBetween","speed","slideToClickedSlide","pagination","clickable","breakpoints","window","matchMedia","matches","isTouchDevice","settleContainer","gsap","to","x","rect","getBoundingClientRect","offset","width","innerWidth","duration","slide","overlay","screen","image","timeline","paused","onComplete","onReverseComplete","style","height","boxShadow","opacity","parseFloat","offsetWidth","scale","zIndex","fromTo","clipPath","visibility","pointerEvents","Array","from","children","y","stagger","addEventListener","dataset","play","async","timeScale","reverse","init","setAttribute","offsetHeight","documentElement","generateQueryString","data","params","FormData","value","key","URLSearchParams","trackGoogleAnalytics","event","dataLayer","push"],"sourceRoot":""}