{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/helpers/motion.js","webpack://@verndale/toolkit/./src/js/modules/FeaturedIndividualSwiper.js"],"names":[],"mappings":"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","file":"scripts/2407.e8eee6691e76009dbd64.js","sourcesContent":["import { animate } from 'motion';\n\nexport const open = (element, duration = 1, easing = [0.19, 1, 0.22, 1]) =>\n animate(\n element,\n {\n maxHeight: `${element.scrollHeight}px`,\n opacity: 1\n },\n {\n duration,\n easing\n }\n );\n\nexport const close = (element, duration = 1, easing = [0.19, 1, 0.22, 1]) =>\n animate(\n element,\n {\n maxHeight: 0,\n opacity: 0\n },\n {\n duration,\n easing\n }\n );\n\nexport const hideOpacity = (\n element,\n duration = 1,\n delay = 0,\n easing = [0.19, 1, 0.22, 1]\n) =>\n animate(\n element,\n {\n opacity: 0\n },\n {\n duration,\n delay,\n easing\n }\n );\n\nexport const showOpacity = (\n element,\n duration = 1,\n delay = 0,\n easing = [0.19, 1, 0.22, 1]\n) =>\n animate(\n element,\n {\n opacity: 1\n },\n {\n duration,\n delay,\n easing\n }\n );\n\nexport const show = (\n element,\n duration = 1,\n delay = 0,\n easing = [0.19, 1, 0.22, 1]\n) =>\n animate(\n element,\n {\n maxBlockSize: 'unset'\n },\n {\n duration,\n delay,\n easing\n }\n );\n\nexport const hide = (\n element,\n maxBlockSize = 0,\n duration = 1,\n delay = 0,\n easing = [0.19, 1, 0.22, 1]\n) =>\n animate(\n element,\n {\n maxBlockSize\n },\n {\n duration,\n delay,\n easing\n }\n );\n\nexport const showFromBottom = (\n element,\n delay = 0.2,\n duration = 0.2,\n easing = [0.11, 0, 0.5, 0]\n) =>\n animate(\n element,\n {\n opacity: 1,\n translateY: 0\n },\n {\n delay,\n duration,\n easing\n }\n );\n\nexport const hideFromTop = (\n element,\n delay = 0.2,\n duration = 0.2,\n easing = [0.11, 0, 0.5, 0]\n) =>\n animate(\n element,\n {\n opacity: 0,\n translateY: 30\n },\n {\n delay,\n duration,\n easing\n }\n );\n\nexport const hideToRight = (\n element,\n delay = 0.2,\n duration = 0.2,\n easing = [0.11, 0, 0.5, 0]\n) =>\n animate(\n element,\n {\n opacity: 0,\n translateX: 90\n },\n {\n delay,\n duration,\n easing\n }\n );\n\nexport const hideToLeft = (\n element,\n delay = 0.2,\n duration = 0.2,\n easing = [0.11, 0, 0.5, 0]\n) =>\n animate(\n element,\n {\n opacity: 0,\n translateX: -90\n },\n {\n delay,\n duration,\n easing\n }\n );\n","import { Component } from '@verndale/core';\nimport Swiper, { Navigation, Pagination, A11y } from 'swiper';\nimport { hideOpacity, showOpacity } from '../helpers/motion';\n\nSwiper.use([Navigation, Pagination, A11y]);\n\nclass FeaturedIndividualSwiper extends Component {\n setupDefaults() {\n this.dom = {\n swiperContainer: this.el.querySelector(\n '.home-featured-individuals__swiper-container'\n ),\n swiperSlides: this.el.querySelectorAll(\n '.home-featured-individuals__swiper-slide'\n ),\n swiperButtonPrev: this.el.querySelector(\n '.home-featured-individuals__swiper-btn-prev'\n ),\n swiperButtonNext: this.el.querySelector(\n '.home-featured-individuals__swiper-btn-next'\n )\n };\n\n this.container = document.querySelector('.container__content');\n\n this.desktopCards =\n this.dom.swiperSlides.length > 4 ? 4 : this.dom.swiperSlides.length;\n this.landscapeCards =\n this.dom.swiperSlides.length > 4 ? 4 : this.dom.swiperSlides.length;\n this.tabletCards =\n this.dom.swiperSlides.length > 3 ? 3 : this.dom.swiperSlides.length;\n this.mobileTabletCards =\n this.dom.swiperSlides.length > 2 ? 2 : this.dom.swiperSlides.length;\n\n this.currentBreakpoint = '';\n this.initSlider();\n }\n\n initSlider() {\n this.swiper = new Swiper(this.dom.swiperContainer, {\n speed: 1000,\n autoHeight: false,\n centeredSlides: true,\n slidesPerView: 1,\n slidesPerGroup: 1,\n breakpoints: {\n 420: {\n slidesPerView: this.mobileTabletCards,\n speed: 1500,\n centeredSlides: false\n },\n 768: {\n slidesPerView: this.tabletCards,\n speed: 1500,\n centeredSlides: false\n },\n 1024: {\n slidesPerView: this.landscapeCards,\n speed: 1500,\n centeredSlides: false\n },\n 1440: {\n slidesPerView: this.desktopCards,\n speed: 1500,\n centeredSlides: false\n }\n },\n navigation: {\n prevEl: this.dom.swiperButtonPrev,\n nextEl: this.dom.swiperButtonNext\n },\n a11y: {\n prevSlideMessage: this.el.dataset.previousSlideAriaLabel,\n nextSlideMessage: this.el.dataset.nextSlideAriaLabel\n }\n });\n\n this.swiper.on('afterInit', this.handleResize.bind(this));\n }\n\n addListeners() {\n this.swiper.on(\n 'activeIndexChange',\n this.handleSlideActiveIndexChange.bind(this)\n );\n this.swiper.on(\n 'slideChangeTransitionStart',\n this.handleSlideChangeTransitionStart.bind(this)\n );\n this.swiper.on('resize', this.handleResize.bind(this));\n this.swiper.on('beforeSlideChangeStart', this.handleResize.bind(this));\n }\n\n handleResize() {\n let breakpoint = false;\n switch (this.swiper.currentBreakpoint) {\n case '420':\n if (this.currentBreakpoint !== 'mobileTablet') {\n this.currentBreakpoint = 'mobileTablet';\n this.visibleCards = this.mobileTabletCards;\n breakpoint = true;\n }\n break;\n\n case '768':\n if (this.currentBreakpoint !== 'tablet') {\n this.currentBreakpoint = 'tablet';\n this.visibleCards = this.tabletCards;\n breakpoint = true;\n }\n break;\n\n case '1024':\n if (this.currentBreakpoint !== 'tabletLandscape') {\n this.currentBreakpoint = 'tabletLandscape';\n this.visibleCards = this.landscapeCards;\n breakpoint = true;\n }\n break;\n\n case '1440':\n if (this.currentBreakpoint !== 'desktop') {\n this.currentBreakpoint = 'desktop';\n this.visibleCards = this.desktopCards;\n breakpoint = true;\n }\n break;\n\n default:\n if (this.currentBreakpoint !== 'mobile') {\n this.currentBreakpoint = 'mobile';\n this.visibleCards = 1;\n breakpoint = true;\n }\n break;\n }\n\n if (this.dom.swiperSlides.length <= this.visibleCards) {\n this.dom.swiperButtonNext.style.display = 'none';\n this.dom.swiperButtonPrev.style.display = 'none';\n } else {\n this.dom.swiperButtonNext.style.display = 'flex';\n this.dom.swiperButtonPrev.style.display = 'flex';\n }\n\n if (breakpoint) {\n this.handleSlideChangeTransitionStart(this.swiper);\n this.handleSlideActiveIndexChange(this.swiper);\n }\n }\n\n checkNavigationState() {\n if (this.dom.swiperButtonNext.disabled) {\n this.dom.swiperButtonNext.classList.remove('focus-visible');\n this.dom.swiperButtonNext.blur();\n }\n if (this.dom.swiperButtonPrev.disabled) {\n this.dom.swiperButtonPrev.classList.remove('focus-visible');\n this.dom.swiperButtonPrev.blur();\n }\n }\n\n handleSlideActiveIndexChange(swiper) {\n this.dom.swiperSlides.forEach((element, index) => {\n if (\n index >= swiper.activeIndex &&\n index < swiper.activeIndex + this.visibleCards\n ) {\n if (element.anim) {\n element.anim.stop();\n requestAnimationFrame(() => {\n element.style.visibility = 'visible';\n element.anim = showOpacity(element, 1);\n });\n } else {\n element.style.visibility = 'visible';\n element.anim = showOpacity(element, 1);\n }\n }\n });\n\n this.checkNavigationState();\n }\n\n handleSlideChangeTransitionStart(swiper) {\n this.dom.swiperSlides.forEach((element, index) => {\n if (\n index < swiper.activeIndex ||\n index >= swiper.activeIndex + this.visibleCards\n ) {\n if (element.anim) element.anim.stop();\n element.anim = hideOpacity(element, 1, 0.5);\n element.anim.finished.then(() => {\n element.style.visibility = 'hidden';\n });\n }\n });\n }\n}\n\nexport default FeaturedIndividualSwiper;\n"],"sourceRoot":""}