{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/animation/utils.ts","webpack://@verndale/toolkit/./src/js/helpers/index.ts","webpack://@verndale/toolkit/./src/js/modules/carouselAndFeaturedInsights.ts"],"names":["defaultEasing","defaultCSSEasing","easing","debounce","callback","wait","timerId","args","darkColorPalette","lightColorPalette","getRandomColor","background","CarouselAndFutureInsights","Component","el","__publicField","Splide","data","item","button","link","_a","_b","slideRight","entrySequence","exitSequence","prevElement","activeElement","timeline","pictures","initialIndex","index","picture","color"],"mappings":"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","file":"scripts/4689.1e84103d105ed9c34186.js","sourcesContent":["import { Easing } from 'motion';\n\nexport const defaultEasing = [0.61, 1, 0.88, 1] as Easing;\n\nexport const defaultCSSEasing = (easing: Easing = defaultEasing) => {\n return `cubic-bezier(${[...easing].join(',')})`;\n};\n","// /**\n// * debounce function\n// * Delays the processing of the event\n// */\nexport const debounce = (callback: (args: unknown) => void, wait: number) => {\n let timerId: ReturnType;\n\n return (...args: [unknown]) => {\n clearTimeout(timerId);\n timerId = setTimeout(() => {\n callback(...args);\n }, wait);\n };\n};\n\ninterface IColorPalette {\n name: string;\n code: string;\n}\n\nexport const darkColorPalette: Array = [\n { name: 'orange', code: '#f47920' },\n { name: 'yellow', code: '#f4b450' },\n { name: 'green', code: '#0f9d58' },\n { name: 'light-blue', code: '#009cde' }\n];\n\nexport const lightColorPalette: Array = [\n { name: 'red', code: '#da291c' },\n { name: 'purple', code: '#492d8c' },\n { name: 'blue', code: '#2e67b2' },\n { name: 'orange', code: '#f47920' },\n { name: 'yellow', code: '#f4b450' },\n { name: 'green', code: '#0f9d58' },\n { name: 'light-blue', code: '#009cde' }\n];\n\nexport const getRandomColor = (\n background: 'light' | 'dark' = 'light'\n): IColorPalette => {\n if (background === 'light') {\n const lightRandomColor =\n lightColorPalette[Math.floor(Math.random() * lightColorPalette.length)];\n return lightRandomColor;\n }\n\n const darkRandomColor =\n darkColorPalette[Math.floor(Math.random() * darkColorPalette.length)];\n return darkRandomColor;\n};\n","import { Component } from '@verndale/core';\nimport { Splide } from '@splidejs/splide';\nimport { defaultCSSEasing } from '../animation/utils';\nimport { AnimationControls, ElementOrSelector, timeline } from 'motion';\nimport { TimelineDefinition } from '@motionone/dom/types/timeline/types';\nimport { debounce, lightColorPalette } from '../helpers';\n\nclass CarouselAndFutureInsights extends Component {\n MOTION_ZERO_DURATION = 0.000001;\n slider: Splide | null = null;\n lastIndex = -1;\n entryTimeline: AnimationControls | undefined;\n exitTimeline: AnimationControls | undefined;\n reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\n isDragging = false;\n isMobile = false;\n isTablet = false;\n isDesktop = false;\n\n constructor(el: HTMLElement) {\n super(el);\n this.checkViewportWidth();\n this.generateRandomColor();\n this.slider = new Splide(this.dom.slider as HTMLElement, {\n arrows: false,\n easing: defaultCSSEasing(),\n speed: 1000,\n perPage: 1,\n gap: '50px',\n type:\n Array.from(this.dom.sliderSlides as NodeListOf).length > 1\n ? 'loop'\n : 'slide',\n drag:\n Array.from(this.dom.sliderSlides as NodeListOf).length > 1\n ? true\n : false,\n breakpoints: {\n 1024: {\n gap: '25px',\n perPage: 1\n }\n },\n classes: {\n pagination: 'splide__pagination carousel__splide-pagination',\n page: 'carousel__splide-pagination-page '\n }\n });\n\n this.slider.on('pagination:mounted', data => {\n data.items.forEach(function (item) {\n item.button.innerHTML = `
\n \n
\n \n
\n \n
\n 0${item.page + 1}\n
\n
`;\n });\n requestAnimationFrame(() => {\n this.dom.paginationButtons = this.el.querySelectorAll(\n '.carousel__splide-pagination-page'\n );\n this.dom.paginationButtons.forEach((button: HTMLElement) => {\n (\n button.querySelector('.indicator__dot-border') as HTMLElement\n ).style.transform = 'scale(0)';\n });\n this.updateAnimation();\n });\n });\n\n this.slider.on('drag', () => {\n this.isDragging = true;\n });\n this.slider.on('moved', () => {\n this.isDragging = false;\n });\n this.slider.on('pagination:updated', this.updateAnimation.bind(this));\n this.slider.mount();\n }\n\n setupDefaults() {\n this.dom = {\n slider: this.el.querySelector('.carousel'),\n sliderSlides: this.el.querySelectorAll('.carousel__slide'),\n links: this.el.querySelectorAll('a')\n };\n }\n\n addListeners() {\n window.addEventListener(\n 'resize',\n debounce(this.handlePageResize.bind(this), 300)\n );\n [].forEach.call(this.dom.links, (link: HTMLElement) => {\n link.addEventListener('click', this.handleLinkClick.bind(this));\n });\n }\n\n handleLinkClick(e: Event) {\n if (this.isDragging) {\n e.preventDefault();\n }\n }\n\n handlePageResize() {\n this.checkViewportWidth();\n this.entryTimeline?.stop();\n this.exitTimeline?.stop();\n this.lastIndex = -1;\n this.updateAnimation();\n }\n\n checkViewportWidth() {\n this.isMobile =\n !window.matchMedia(`(min-width: ${1024}px)`).matches &&\n !window.matchMedia(`(min-width: ${1440}px)`).matches;\n this.isTablet =\n window.matchMedia(`(min-width: ${1024}px)`).matches &&\n !window.matchMedia(`(min-width: ${1440}px)`).matches;\n this.isDesktop = window.matchMedia(`(min-width: ${1440}px)`).matches;\n }\n\n updateAnimation() {\n if (!this.slider || this.slider.index === this.lastIndex) return;\n const slideRight = this.slider.index > this.lastIndex ? true : false;\n\n this.dom.paginationButtons = this.el.querySelectorAll(\n '.carousel__splide-pagination-page'\n );\n this.dom.activeButton = this.el.querySelector(\n '.carousel__splide-pagination-page.is-active'\n );\n this.dom.prevButton = this.dom.paginationButtons[this.lastIndex];\n\n const entrySequence = [] as TimelineDefinition;\n const exitSequence = [] as TimelineDefinition;\n let prevElement: {\n indicatorDot?: HTMLElement | null;\n indicatorText?: HTMLElement | null;\n indicatorDotBorder?: HTMLElement | null;\n indicatorWrapper?: HTMLElement | null;\n indicatorLineContainer?: HTMLElement | null;\n } = {};\n let activeElement: {\n indicatorDot?: HTMLElement | null;\n indicatorText?: HTMLElement | null;\n indicatorDotBorder?: HTMLElement | null;\n indicatorWrapper?: HTMLElement | null;\n indicatorLineContainer?: HTMLElement | null;\n } = {};\n\n if (this.dom.prevButton) {\n prevElement = {\n indicatorWrapper: (\n this.dom.prevButton as HTMLElement\n ).querySelector('.indicator__wrapper'),\n indicatorDot: (\n this.dom.prevButton as HTMLElement\n ).querySelector('.indicator__dot'),\n indicatorDotBorder: (\n this.dom.prevButton as HTMLElement\n ).querySelector('.indicator__dot-border'),\n indicatorLineContainer: (\n this.dom.prevButton as HTMLElement\n ).querySelector('.indicator__line-container'),\n indicatorText: (\n this.dom.prevButton as HTMLElement\n ).querySelector('.indicator__text')\n };\n\n (prevElement.indicatorDot as HTMLElement).style.transform = 'unset';\n (prevElement.indicatorDot as HTMLElement).style.right = 'unset';\n (prevElement.indicatorDot as HTMLElement).style.left = this.isMobile\n ? '7px'\n : '15px';\n\n exitSequence.push({ name: 'start', at: 0 });\n exitSequence.push({ name: 'scale-wrapper', at: 0.25 });\n exitSequence.push({ name: 'move-dot', at: 0.5 });\n exitSequence.push([\n prevElement.indicatorText as ElementOrSelector,\n {\n transform: 'translate(0, 40px)'\n },\n {\n at: 'start',\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.5\n }\n ]);\n exitSequence.push([\n prevElement.indicatorDotBorder as ElementOrSelector,\n {\n transform: ['scale(1)', 'scale(0)']\n },\n {\n at: 'start',\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.5\n }\n ]);\n exitSequence.push([\n prevElement.indicatorWrapper as ElementOrSelector,\n {\n inlineSize: this.isMobile ? '24px' : '40px'\n },\n {\n at: this.reducedMotion.matches ? 'start' : 'scale-wrapper',\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.75\n }\n ]);\n if (!this.isMobile) {\n exitSequence.push([\n prevElement.indicatorLineContainer as ElementOrSelector,\n {\n transform: ['scale(1)', 'scale(0)']\n },\n {\n at: this.reducedMotion.matches ? 'start' : 'scale-wrapper',\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.75\n }\n ]);\n }\n }\n\n activeElement = {\n indicatorWrapper: (\n this.dom.activeButton as HTMLElement\n ).querySelector('.indicator__wrapper'),\n indicatorDot: (\n this.dom.activeButton as HTMLElement\n ).querySelector('.indicator__dot'),\n indicatorDotBorder: (\n this.dom.activeButton as HTMLElement\n ).querySelector('.indicator__dot-border'),\n indicatorLineContainer: (\n this.dom.activeButton as HTMLElement\n ).querySelector('.indicator__line-container'),\n indicatorText: (\n this.dom.activeButton as HTMLElement\n ).querySelector('.indicator__text')\n };\n\n if (\n !activeElement.indicatorWrapper ||\n !activeElement.indicatorDot ||\n !activeElement.indicatorDotBorder ||\n !activeElement.indicatorLineContainer ||\n !activeElement.indicatorText\n )\n return;\n\n if (!this.isMobile) {\n activeElement.indicatorDot.style.setProperty('left', 'unset');\n activeElement.indicatorDot.style.setProperty('right', 'unset');\n\n slideRight\n ? activeElement.indicatorDot.style.setProperty('right', '15px')\n : activeElement.indicatorDot.style.setProperty('left', '15px');\n }\n\n entrySequence.push({ name: 'start', at: 0.25 });\n entrySequence.push({ name: 'move-dot', at: 0.5 });\n entrySequence.push({ name: 'scale-border', at: this.isMobile ? 0 : 0.75 });\n entrySequence.push({ name: 'move-text', at: 1 });\n if (!this.isMobile) {\n entrySequence.push([\n activeElement.indicatorWrapper as ElementOrSelector,\n { inlineSize: this.isDesktop ? '265px' : '246px' },\n {\n at: 'start',\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.75\n }\n ]);\n }\n if (!this.isMobile) {\n entrySequence.push([\n activeElement.indicatorDot as ElementOrSelector,\n {\n transform: slideRight\n ? `translate(-${this.isDesktop ? 225 : 206}px, 0)`\n : 'translate(0, 0)'\n },\n {\n at: this.reducedMotion.matches ? 'start' : 'move-dot',\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.75\n }\n ]);\n }\n entrySequence.push([\n activeElement.indicatorDotBorder as ElementOrSelector,\n { transform: ['scale(0)', 'scale(1)'] },\n {\n at: this.reducedMotion.matches ? 'start' : 'scale-border',\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.75\n }\n ]);\n entrySequence.push([\n activeElement.indicatorDotBorder as ElementOrSelector,\n { transform: ['scale(0)', 'scale(1)'] },\n {\n at: this.reducedMotion.matches ? 'start' : 'scale-border',\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.75\n }\n ]);\n if (!this.isMobile) {\n entrySequence.push([\n activeElement.indicatorLineContainer as ElementOrSelector,\n { transform: ['scale(0)', 'scale(1)'] },\n {\n at: this.reducedMotion.matches ? 'start' : 'scale-border',\n duration: this.reducedMotion.matches\n ? this.MOTION_ZERO_DURATION\n : 0.75\n }\n ]);\n }\n entrySequence.push([\n activeElement.indicatorText as ElementOrSelector,\n { transform: 'translate(0, 0)' },\n {\n at: this.reducedMotion.matches ? 'start' : 'move-text',\n duration: this.reducedMotion.matches ? this.MOTION_ZERO_DURATION : 0.75\n }\n ]);\n\n if (Array.from(this.dom.sliderSlides as NodeListOf).length > 1)\n this.slider.Components.Drag.disable(true);\n this.dom.paginationButtons.forEach((button: HTMLElement) => {\n (button as HTMLElement).style.pointerEvents = 'none';\n });\n this.entryTimeline = timeline(entrySequence);\n this.exitTimeline = timeline(exitSequence);\n this.entryTimeline.playbackRate = 1.35;\n this.exitTimeline.playbackRate = 1.35;\n this.exitTimeline.finished.then(() => {\n //console.log('exit finished');\n });\n this.entryTimeline.finished.then(() => {\n (this.dom.paginationButtons as NodeListOf).forEach(\n (button: HTMLElement) => {\n (button as HTMLElement).style.pointerEvents = 'auto';\n }\n );\n if (\n Array.from(this.dom.sliderSlides as NodeListOf).length > 1\n )\n this.slider?.Components.Drag.disable(false);\n });\n\n this.lastIndex = this.slider.index;\n }\n\n generateRandomColor() {\n const pictures = this.el.querySelectorAll(\n '.carousel__slide .picture'\n );\n\n const initialIndex = Math.floor(Math.random() * lightColorPalette.length);\n let index = initialIndex;\n\n [].forEach.call(pictures, (picture: HTMLElement) => {\n const color = lightColorPalette[index];\n picture.classList.add(`picture--${color.name}-glow`);\n if (index < lightColorPalette.length - 1) index++;\n else index = initialIndex;\n });\n }\n}\n\nexport default CarouselAndFutureInsights;\n"],"sourceRoot":""}