{"version":3,"file":"js/cardCarousel.c8d666a4a6b0c877cad7.min.js","mappings":"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","sources":["webpack:///./scripts/carousels/Carousel.js","webpack:///./scripts/carousels/card-carousel.js","webpack:///./scripts/common/api/scrolltrigger.services.js","webpack:///./scripts/common/utilities.js"],"sourcesContent":["import { gsap } from \"gsap\"\r\nimport { ScrollToPlugin } from \"gsap/ScrollToPlugin\"\r\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\"\r\nimport Flickity from \"flickity\"\r\nimport utilities from '@/scripts/common/utilities'\r\ngsap.registerPlugin(ScrollTrigger, ScrollToPlugin)\r\nimport { refreshAllControllers, addScrollController } from \"@/scripts/common/api/scrolltrigger.services\"\r\n\r\nexport const Carousels = (() => {\r\n\r\n class FlickityCarousel {\r\n constructor(container, options) {\r\n this.$slider = container\r\n this.$slides = this.$slider.querySelectorAll('[class*=\"__item\"]')\r\n this.$pagination = null\r\n this.arrowModifiers = null\r\n this.asNavFor = container.dataset.asNav || null\r\n this.goToPanel = !!container.dataset.gotoPanel || false\r\n this.isMobile = window.innerWidth < site.settings.breakpoints.mobile\r\n this.syncLocation = !!container.dataset.syncLocation || false\r\n this.carousel = null\r\n this.scrollController = null\r\n this.scrollerWatch = window\r\n this.initialized = false\r\n this.parallaxBg = this.$slider.dataset.parallaxBg || false\r\n this.parallaxContent = this.$slider.dataset.parallaxContent || false\r\n this.carouselForMobileOnly = this.$slider.hasAttribute(\"data-carousel-for-mobile\") || false\r\n\r\n this.toggleClasses = {\r\n singleSlide: 'carousel--one-slide'\r\n }\r\n\r\n this.options = Object.assign({\r\n freeScroll: false,\r\n contain: true,\r\n asNavFor: this.asNavFor,\r\n lazyLoad: 2,\r\n bgLazyLoad: 2\r\n }, {\r\n ...options,\r\n ...this.$slider.dataset.carouselOptions && JSON.parse(this.$slider.dataset.carouselOptions)\r\n })\r\n\r\n this.scrollOptions = Object.assign({\r\n scroller: this.scrollerWatch,\r\n trigger: this.$slider,\r\n start: () => 'top bottom',\r\n })\r\n\r\n this.parallaxLayerOptions = {\r\n cellRatio: 0.6,\r\n bgRatio: 0.8,\r\n fgRatio: 1.25\r\n }\r\n\r\n\r\n }\r\n\r\n // Init function\r\n init() {\r\n this.initCallback()\r\n this._addlisteners()\r\n this.$slider.getCarousel = () => this\r\n }\r\n\r\n // Init function\r\n initCallback() {\r\n if (this.options.lazyLoad) {\r\n this.$slides.forEach($s => {\r\n const $imgWrapper = $s.querySelector('.bg-img')\r\n $imgWrapper?.classList.add('bg-img--preload')\r\n })\r\n }\r\n }\r\n\r\n // List Class Adders\r\n listClassTogglers() {\r\n (this.$slides.length === 1) ? this.$slider.classList.add(this.toggleClasses['singleSlide']) : this.$slider.classList.remove(this.toggleClasses['singleSlide'])\r\n }\r\n\r\n // Options extending\r\n updateOptions(options) {\r\n Object.assign(this.options, {\r\n ...options\r\n })\r\n }\r\n\r\n\r\n\r\n // Utilities\r\n scrollToPanel() {\r\n if (this.goToPanel) {\r\n const $items = gsap.utils.toArray(this.$slides)\r\n $items.forEach($item => {\r\n $item.addEventListener('click', () => {\r\n gsap.to(window, {\r\n duration: 1,\r\n scrollTo: {\r\n y: this.asNavFor,\r\n offsetY: 100\r\n },\r\n ease: 'power2.inOut'\r\n })\r\n })\r\n })\r\n }\r\n }\r\n\r\n pauseAllInactiveVideos() {\r\n const selectedIndex = this.carousel.selectedIndex\r\n this.$slides.forEach(($slide, i) => {\r\n const videoBannerVideo = $slide.querySelector('.banner-video') ? $slide.querySelector('.banner-video').getVideo() : null\r\n if( videoBannerVideo && videoBannerVideo.videoPlaying) videoBannerVideo._pauseVideo()\r\n })\r\n }\r\n\r\n moveParallaxLayer(layer, layerRatio, progress) {\r\n const ratio = this.parallaxLayerOptions.cellRatio * layerRatio\r\n layer.style['left'] = ( 0.5 - ( 0.5 + progress * count ) * ratio ) * 100 + '%'\r\n }\r\n\r\n // Destroy carousel\r\n _destroy() {\r\n this.carousel.destroy()\r\n }\r\n\r\n // Recalculate and refresh carousel\r\n _refresh() {\r\n this.carousel?.resize()\r\n refreshAllControllers()\r\n }\r\n\r\n // Append\r\n _append(elements /* elements array */) {\r\n this.carousel.append(elements)\r\n }\r\n // prepend\r\n _prepend(elements /* elements array */) {\r\n this.carousel.prepend(elements)\r\n }\r\n // Remove\r\n _remove(elements /* elements array */) {\r\n this.carousel.remove(elements)\r\n }\r\n\r\n // Building carousel\r\n _makeCarousel() {\r\n if (this.carousel) this._destroy()\r\n\r\n if(this.carouselForMobileOnly) {\r\n if(this.isMobile) {\r\n this.carousel = new Flickity(this.$slider, {\r\n ...this.options,\r\n on: {\r\n ready: () => this._onSliderReady()\r\n }\r\n })\r\n return\r\n }\r\n return\r\n }\r\n\r\n this.carousel = new Flickity(this.$slider, {\r\n ...this.options,\r\n on: {\r\n ready: () => this._onSliderReady()\r\n }\r\n })\r\n\r\n }\r\n\r\n // ResizeFunc\r\n _resizeCallback() {\r\n return utilities.debounce(() => {\r\n this.isMobile = window.innerWidth < site.settings.breakpoints.mobile\r\n this._onResize()\r\n }, 250)\r\n }\r\n\r\n // Parallaxes\r\n _bgParallax(progress) {\r\n this.carousel.slides.forEach((slide, i) => {\r\n \r\n var background = this.$slides[i].querySelector('.background')\r\n if(!background) return\r\n var x = (slide.target + this.carousel.x) * -1 / 3\r\n background.style['transform'] = 'translateX(' + x + 'px)'\r\n })\r\n }\r\n\r\n _contentParallax(progress) {\r\n this.carousel.slides.forEach((slide, i) => {\r\n \r\n var content = this.$slides[i].querySelector('.parallax-content')\r\n if(!content) return\r\n var x = (slide.target + this.carousel.x) * 1 / 2\r\n content.style['transform'] = 'translateX(' + x + 'px)'\r\n // content.style['opacity'] = 1 + (x/1000) \r\n })\r\n }\r\n\r\n _layerParallax(progress) {\r\n if(this.parallaxLayers.length === 0) return\r\n this.parallaxLayers.forEach((layer, i) => moveParallaxLayer(layer, this.parallaxLayerOptions.bgRatio, progress))\r\n }\r\n\r\n // callbacks\r\n _onResize() {\r\n return false\r\n }\r\n _onSliderReady() {\r\n this.listClassTogglers()\r\n }\r\n\r\n _onLazyload($cell) {\r\n const $imgWrapper = $cell.querySelector('.bg-img')\r\n $imgWrapper.classList.remove('bg-img--preload')\r\n $imgWrapper.classList.add('bg-img--loaded')\r\n refreshAllControllers()\r\n }\r\n\r\n _onCarouselScroll(evt, progress) {\r\n if (this.parallaxBg) this._bgParallax(progress)\r\n if (this.parallaxContent && !this.isMobile) this._contentParallax(progress)\r\n if (this.parallaxLayer) this._layerParallax(progress)\r\n }\r\n\r\n _onSlideChange(index) {\r\n this.pauseAllInactiveVideos()\r\n }\r\n\r\n // AddingListeners\r\n _addlisteners() {\r\n // Resize listener\r\n window.addEventListener('resize', this._resizeCallback())\r\n window.addEventListener('majorlayoutChange', () => this._refresh())\r\n\r\n // On view listener\r\n this.scrollController = ScrollTrigger.create({\r\n ...this.scrollOptions,\r\n onEnter: () => {\r\n if (this.initialized) return\r\n\r\n // Creating carousel on view\r\n this._makeCarousel()\r\n // Flickity listeners\r\n this.carousel?.on('lazyLoad', (e, cell) => this._onLazyload(cell))\r\n this.carousel?.on('bgLazyLoad', (e, cell) => this._onLazyload(cell))\r\n this.carousel?.on('scroll', (e, progress) => this._onCarouselScroll(e, progress))\r\n this.carousel?.on('change', (index) => this._onSlideChange(index))\r\n site.eventDispatcher('majorlayoutChange')\r\n this.initialized = true\r\n\r\n // Lazyload native listener, mainly for bg lazyloading\r\n this.$slider.addEventListener('lazyloadedImage', (e) => this._refresh())\r\n }\r\n })\r\n\r\n \r\n\r\n // Adding to main scroll scene pool\r\n addScrollController(this.scrollController)\r\n\r\n\r\n }\r\n }\r\n\r\n return {\r\n FlickityCarousel\r\n }\r\n})()","import { Carousels } from './Carousel'\r\n\r\nexport class CardCarousel extends Carousels.FlickityCarousel {\r\n constructor(container, options) {\r\n super(container, options)\r\n this.options = Object.assign({\r\n ...this.options,\r\n }, {\r\n lazyLoad: 4,\r\n bgLazyLoad: 4,\r\n contain: true,\r\n freeScroll: false,\r\n pageDots: false,\r\n cellAlign: 'left',\r\n ...options,\r\n ...this.$slider.dataset.carouselOptions && JSON.parse(this.$slider.dataset.carouselOptions)\r\n })\r\n this.carouselType = this.$slider.dataset.carouselType || ''\r\n this.init()\r\n }\r\n\r\n init() {\r\n this.customizeCarouselOptions()\r\n super.init()\r\n }\r\n\r\n customizeCarouselOptions() {\r\n switch(this.carouselType) {\r\n case 'variable-freescroll':\r\n this.updateOptions({\r\n ...this.options,\r\n ...{\r\n prevNextButtons: false,\r\n cellAlign: 'center',\r\n freeScroll: true\r\n }\r\n })\r\n break\r\n default: this.updateOptions({\r\n ...this.options\r\n })\r\n }\r\n }\r\n\r\n\r\n \r\n}\r\n\r\nexport default CardCarousel","export const ScrollControllers = []\r\n\r\nexport const addScrollController = (controller) => {\r\n if(controller) ScrollControllers.push(controller)\r\n}\r\n\r\nexport const refreshAllControllers = () => {\r\n ScrollControllers.forEach(c => c.refresh(true))\r\n}","\"user strict\"\r\nexport const utilities = {\r\n options: {\r\n scrollTop: 0,\r\n scrollLeft: 0\r\n },\r\n\r\n debounce(func, wait, immediate) {\r\n var timeout;\r\n return function () {\r\n var context = this,\r\n args = arguments;\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n }\r\n },\r\n\r\n isIE() {\r\n\r\n var ua = window.navigator.userAgent;\r\n\r\n var msie = ua.indexOf('MSIE ');\r\n if (msie > 0) {\r\n // IE 10 or older => return version number\r\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\r\n }\r\n\r\n var trident = ua.indexOf('Trident/');\r\n if (trident > 0) {\r\n // IE 11 => return version number\r\n var rv = ua.indexOf('rv:');\r\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\r\n }\r\n\r\n var edge = ua.indexOf('Edge/');\r\n if (edge > 0) {\r\n // Edge (IE 12+) => return version number\r\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\r\n }\r\n\r\n\r\n\r\n // other browser\r\n return false;\r\n\r\n },\r\n\r\n isFuIOS() {\r\n var iosQuirkPresent = function () {\r\n var audio = new Audio();\r\n \r\n audio.volume = 0.5;\r\n return audio.volume === 1; // volume cannot be changed from \"1\" on iOS 12 and below\r\n };\r\n \r\n var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);\r\n var isAppleDevice = navigator.userAgent.includes('Macintosh');\r\n var isTouchScreen = navigator.maxTouchPoints >= 1; // true for iOS 13 (and hopefully beyond)\r\n \r\n return isIOS || (isAppleDevice && (isTouchScreen || iosQuirkPresent()));\r\n },\r\n\r\n isMobile() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? true : false\r\n },\r\n\r\n async loadImage(src) {\r\n const img = new Image()\r\n img.src = src\r\n const imgLoadPromise = await new Promise((resolve, reject) => {\r\n img.onload = function () {\r\n resolve('loaded')\r\n }\r\n img.onerror = function (err) {\r\n reject(err)\r\n }\r\n })\r\n\r\n return imgLoadPromise\r\n },\r\n\r\n loadScript(src, id) {\r\n let scriptTag = document.querySelector(`[id*=\"${id}\"]`)\r\n \r\n return new Promise((resolve, reject) => {\r\n if(window[`${id}ScriptLoaded`]) {\r\n resolve()\r\n return\r\n }\r\n\r\n if(!scriptTag) {\r\n scriptTag = document.createElement('script')\r\n scriptTag.setAttribute('id', `${id}`)\r\n scriptTag.src = `${src}`\r\n document.body.append(scriptTag)\r\n }\r\n\r\n scriptTag?.addEventListener('load', () => {\r\n window[`${id}ScriptLoaded`] = true\r\n resolve()\r\n })\r\n scriptTag?.addEventListener('error', reject)\r\n })\r\n },\r\n\r\n getStyle(e, styleName) {\r\n var styleValue = \"\";\r\n if (document.defaultView && document.defaultView.getComputedStyle) {\r\n styleValue = document.defaultView.getComputedStyle(e, \"\").getPropertyValue(styleName);\r\n } else if (e.currentStyle) {\r\n styleName = styleName.replace(/\\-(\\w)/g, function (strMatch, p1) {\r\n return p1.toUpperCase();\r\n });\r\n styleValue = e.currentStyle[styleName];\r\n }\r\n return styleValue;\r\n },\r\n\r\n triggerFocus(element) {\r\n var eventType = \"onfocusin\" in element ? \"focusin\" : \"focus\",\r\n bubbles = \"onfocusin\" in element,\r\n event;\r\n\r\n if (\"createEvent\" in document) {\r\n event = document.createEvent(\"Event\");\r\n event.initEvent(eventType, bubbles, true);\r\n }\r\n else if (\"Event\" in window) {\r\n event = new Event(eventType, { bubbles: bubbles, cancelable: true });\r\n }\r\n\r\n element.focus();\r\n element.dispatchEvent(event);\r\n },\r\n\r\n toggleWindowScroll(scroll) {\r\n if (!scroll) {\r\n utilities.options.scrollTop = window.pageYOffset || document.documentElement.scrollTop\r\n utilities.options.scrollLeft = window.pageXOffset || document.documentElement.scrollLeft\r\n window.addEventListener('scroll', utilities.disableScroll)\r\n } else {\r\n utilities.options.scrollTop = 0\r\n utilities.options.scrollLeft = 0\r\n window.removeEventListener('scroll', utilities.disableScroll)\r\n }\r\n },\r\n\r\n disableScroll(e) {\r\n window.scrollTo(utilities.options.scrollLeft, utilities.options.scrollTop)\r\n },\r\n\r\n\r\n createNodeParsing(s) {\r\n return new DOMParser().parseFromString(s, 'text/html').body.firstElementChild\r\n },\r\n\r\n rootCssVariables() {\r\n document.documentElement.style\r\n .setProperty('--mobile-breakpoint', `${site.settings.breakpoints.mobile}px`);\r\n },\r\n\r\n isJson(data) {\r\n try {\r\n JSON.parse(data);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n\r\n getGsapTargets(timeline) {\r\n\r\n function addTargets(list, target) {\r\n\r\n if (Array.isArray(target)) target.forEach(checkTarget);\r\n else if (target.nodeType === 1) list.push(target);\r\n else if (target.jquery) target.each(function () { list.push(this); });\r\n\r\n function checkTarget(el) {\r\n if (el.jquery) list.push(el[0]);\r\n else if (el.nodeType === 1) list.push(el);\r\n else if (typeof el === \"string\") list.push(document.querySelector(el));\r\n }\r\n return list;\r\n }\r\n\r\n return timeline\r\n .getChildren(true, true, false)\r\n .map(function (tween) { return tween.target; })\r\n .reduce(addTargets, [])\r\n .filter(function (target, i, list) { return list.indexOf(target) === i; });\r\n },\r\n\r\n formatDateForApi(dateString) {\r\n return moment(dateString, site.settings.dateDisplayFormat).format(site.settings.dateAPIFormat)\r\n },\r\n\r\n noOfDays(startDate, endDate) {\r\n if (!startDate || !endDate) return null\r\n return (new Date(utilities.formatDateForApi(endDate)).getTime() -\r\n new Date(utilities.formatDateForApi(startDate)).getTime()) / (1000 * 3600 * 24)\r\n },\r\n\r\n formatTimeForSlots(dateTimeString) {\r\n const formatedTime = dateTimeString.split('+')[0]\r\n return moment(formatedTime).format('hh:mm')\r\n },\r\n\r\n windowPanel(href, windowName, { width = 400, height = 400 }) {\r\n var myWindow = window.open(`${href}`, `${windowName}`, `width=${width},height=${height}`)\r\n if (!myWindow || myWindow.closed || typeof myWindow.closed == 'undefined') {\r\n alert('Pop-up Blocker is enabled! Please add this site to your exception list.')\r\n }\r\n return myWindow\r\n },\r\n\r\n resizePlayer(container, aspectRatio) {\r\n const iframe = container.querySelector('iframe')\r\n\r\n if (!iframe) return\r\n\r\n let win = container,\r\n width = win.clientWidth,\r\n playerWidth,\r\n height = win.clientHeight,\r\n playerHeight,\r\n ratio = aspectRatio || 16 / 9\r\n\r\n if (width / ratio < height) {\r\n playerWidth = Math.ceil(height * ratio)\r\n Object.assign(\r\n iframe.style,\r\n {\r\n width: `${playerWidth}px`,\r\n height: `${height}px`,\r\n left: `${(width - playerWidth) / 2}px`,\r\n top: 0\r\n }\r\n )\r\n\r\n\r\n } else {\r\n playerHeight = Math.ceil(width / ratio)\r\n\r\n Object.assign(\r\n iframe.style,\r\n {\r\n width: `${width}px`,\r\n height: `${playerHeight}px`,\r\n left: 0,\r\n top: `${(height - playerHeight) / 2}px`\r\n }\r\n )\r\n }\r\n },\r\n\r\n isNodeEle(ele) {\r\n return ele instanceof Element || ele instanceof HTMLDocument\r\n }\r\n}\r\n\r\nexport const formUtils = {\r\n isEmpty(val) {\r\n return !val && /^\\s*$/.test(val)\r\n },\r\n\r\n isEmail(mail) {\r\n return /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)+$/.test(mail)\r\n },\r\n\r\n isPhone(phone) {\r\n return /^(\\d){1}(-|\\s)?(\\d){3}(-|\\s)?(\\d){3}(-|\\s)?(\\d){4}$/.test(phone)\r\n },\r\n\r\n sanitizeString(val) {\r\n let str = val\r\n str = str.replace(/\\s+[^a-zA-Z0-9]/g, \"\")\r\n return str\r\n }\r\n}\r\n\r\n\r\n\r\nclass WM {\r\n constructor(init) {\r\n this._wm = new WeakMap(init);\r\n }\r\n clear() {\r\n this._wm = new WeakMap();\r\n }\r\n delete(k) {\r\n return this._wm.delete(k);\r\n }\r\n get(k) {\r\n return this._wm.get(k);\r\n }\r\n has(k) {\r\n return this._wm.has(k);\r\n }\r\n set(k, v) {\r\n this._wm.set(k, v);\r\n return this;\r\n }\r\n}\r\n\r\nexport { WM }\r\n\r\nexport default utilities"],"names":["gsap","ScrollTrigger","ScrollToPlugin","CardCarousel","container","options","Object","assign","lazyLoad","bgLazyLoad","contain","freeScroll","pageDots","cellAlign","$slider","dataset","carouselOptions","JSON","parse","carouselType","init","this","customizeCarouselOptions","updateOptions","prevNextButtons","FlickityCarousel","$slides","querySelectorAll","$pagination","arrowModifiers","asNavFor","asNav","goToPanel","gotoPanel","isMobile","window","innerWidth","site","settings","breakpoints","mobile","syncLocation","carousel","scrollController","scrollerWatch","initialized","parallaxBg","parallaxContent","carouselForMobileOnly","hasAttribute","toggleClasses","singleSlide","scrollOptions","scroller","trigger","start","parallaxLayerOptions","cellRatio","bgRatio","fgRatio","initCallback","_addlisteners","getCarousel","forEach","$s","$imgWrapper","querySelector","classList","add","length","remove","$item","addEventListener","duration","scrollTo","y","offsetY","ease","selectedIndex","$slide","i","videoBannerVideo","getVideo","videoPlaying","_pauseVideo","layer","layerRatio","progress","ratio","style","count","destroy","resize","refreshAllControllers","elements","append","prepend","_destroy","Flickity","on","ready","_onSliderReady","utilities","_onResize","slides","slide","background","x","target","content","parallaxLayers","moveParallaxLayer","listClassTogglers","$cell","evt","_bgParallax","_contentParallax","parallaxLayer","_layerParallax","index","pauseAllInactiveVideos","_resizeCallback","_refresh","onEnter","_makeCarousel","e","cell","_onLazyload","_onCarouselScroll","_onSlideChange","eventDispatcher","addScrollController","ScrollControllers","controller","push","c","refresh","scrollTop","scrollLeft","debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout","isIE","ua","navigator","userAgent","msie","indexOf","parseInt","substring","rv","edge","isFuIOS","audio","isIOS","test","isAppleDevice","includes","isTouchScreen","maxTouchPoints","Audio","volume","loadImage","src","img","Image","Promise","resolve","reject","onload","onerror","err","imgLoadPromise","loadScript","id","scriptTag","document","createElement","setAttribute","body","getStyle","styleName","styleValue","defaultView","getComputedStyle","getPropertyValue","currentStyle","replace","strMatch","p1","toUpperCase","triggerFocus","element","event","eventType","bubbles","createEvent","initEvent","Event","cancelable","focus","dispatchEvent","toggleWindowScroll","scroll","removeEventListener","disableScroll","pageYOffset","documentElement","pageXOffset","createNodeParsing","s","DOMParser","parseFromString","firstElementChild","rootCssVariables","setProperty","isJson","data","getGsapTargets","timeline","getChildren","map","tween","reduce","list","Array","isArray","el","jquery","nodeType","each","filter","formatDateForApi","dateString","moment","dateDisplayFormat","format","dateAPIFormat","noOfDays","startDate","endDate","Date","getTime","formatTimeForSlots","dateTimeString","formatedTime","split","windowPanel","href","windowName","width","height","myWindow","open","closed","alert","resizePlayer","aspectRatio","iframe","playerWidth","playerHeight","win","clientWidth","clientHeight","Math","ceil","left","top","isNodeEle","ele","Element","HTMLDocument"],"sourceRoot":""}