{"version":3,"file":"js/876.5309f0537182be3f20f8.bundle.js","mappings":"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","sources":["webpack:///./scripts/carousels/SlickCarousel.js","webpack:///./scripts/modal/Modal.js","webpack:///./scripts/modal/templates/modal.template.js","webpack:///./scripts/video/YouTube.js","webpack:///./scripts/video/Vimeo.js","webpack:///./scripts/video/Video.js"],"sourcesContent":["import { gsap } from \"gsap\"\r\nimport { ScrollToPlugin } from \"gsap/ScrollToPlugin\"\r\nimport utilities from '@/scripts/common/utilities'\r\nimport settings from \"@/scripts/common/settings\"\r\ngsap.registerPlugin(ScrollToPlugin)\r\nimport { refreshAllControllers } from \"@/scripts/common/api/scrolltrigger.services\"\r\n\r\nexport const Carousels = (() => {\r\n class SlickCarousel {\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 < settings.breakpoints.mobile\r\n this.syncLocation = !!container.dataset.syncLocation || false\r\n const isRtl = document.documentElement.getAttribute('dir') === 'rtl'\r\n\r\n this.options = Object.assign({\r\n infinite: this.$slider.dataset.infinite || false,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n pauseVideoOnCurrent: \"1\",\r\n dots: true,\r\n arrows: this.$slider.dataset.arrows !== \"false\" ? true : false,\r\n prevArrow: ``,\r\n nextArrow: ``,\r\n pagination: !!this.$slider.dataset.pagination || false,\r\n controlsAppendTo: this.$slider.dataset.controlsAppendTo || null,\r\n appendArrows: this.$slider.dataset.arrowsAppendTo || this.$slider,\r\n autoplay: this.$slider.dataset.autoplay || false,\r\n autoplaySpeed: this.$slider.dataset.autoplaySpeed || 4000,\r\n adaptiveHeight: this.$slider.dataset.adaptiveHeight === \"true\" || false,\r\n rtl: isRtl\r\n }, options)\r\n\r\n if (this.$slider.dataset.autoplaySpeed) {\r\n this.$slider.style.setProperty('--autoplay-speed', `${this.$slider.dataset.autoplaySpeed}ms`);\r\n }\r\n }\r\n\r\n init() {\r\n this.initCallback()\r\n this.addClassModifiers()\r\n this.sliderEventsCallback()\r\n this.setSync()\r\n this.scrollToPanel()\r\n if (this.options.pagination) this.makePagination()\r\n if(this.syncLocation) this.syncSlideWithLocation()\r\n this.makeCarousel()\r\n if (this.options.pagination) this.paginationUpdate()\r\n this.addlisteners()\r\n\r\n this.$slider.getSlick = () => this\r\n }\r\n\r\n addClassModifiers() {\r\n if (this.arrowModifiers)\r\n this.updateOptions({\r\n prevArrow: ``,\r\n nextArrow: ``,\r\n })\r\n }\r\n\r\n syncSlideWithLocation() {\r\n const windowHref = window.location.href\r\n const slides = gsap.utils.toArray(this.$slides)\r\n const index = slides.findIndex($slide => {\r\n const $link = $slide.querySelector('a[href]')\r\n if(!$link) return 0\r\n return windowHref.match($link.getAttribute('href'))\r\n })\r\n\r\n if(index !== -1) slides[index].classList.add('active-link')\r\n\r\n let slidesToShow = this.options.slidesToShow\r\n\r\n this.options.responsive.reverse().every(screen => {\r\n if(window.innerWidth < screen.breakpoint) {\r\n slidesToShow = screen.settings.slidesToShow\r\n return false\r\n }\r\n return true\r\n })\r\n\r\n if(this.$slides.length > slidesToShow) {\r\n this.updateOptions({\r\n initialSlide: index === -1 ? 0 : index,\r\n focusOnSelect: false\r\n })\r\n }\r\n }\r\n\r\n\r\n setSync() {\r\n if (this.asNavFor) {\r\n this.updateOptions({\r\n asNavFor: this.asNavFor\r\n })\r\n }\r\n }\r\n\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 scrollToPanel() {\r\n\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 sliderEventsCallback() {\r\n // Lazyloading\r\n $(this.$slider).on('lazyLoaded', function (event, slick, image, imageSource) {\r\n image.parents('.slick-slide--lazyloading').removeClass('slick-slide--lazyloading')\r\n if (image.parent().hasClass('bg-img')) image.parent().addClass('bg-img--loaded')\r\n })\r\n\r\n // after change\r\n $(this.$slider).on('afterChange', (event, slick, currentSlide, nextSlide) => {\r\n if(this.options.pagination) this.paginationUpdate()\r\n })\r\n }\r\n\r\n initCallback() {\r\n return false\r\n }\r\n\r\n resizeCallback() {\r\n return false\r\n }\r\n\r\n unslick() {\r\n $(this.$slider).slick('unslick')\r\n }\r\n\r\n makeCarousel() {\r\n if (this.options.lazyLoad) {\r\n this.$slides.forEach($s => $s.classList.add('slick-slide--lazyloading'))\r\n }\r\n if (this.$slider.getSlick) this.unslick()\r\n $(this.$slider).slick(this.options)\r\n \r\n }\r\n\r\n makePagination() {\r\n this.$pagination = document.createElement('div')\r\n this.$pagination.classList.add('card-carousel__pagination')\r\n this.$pagination.innerHTML = ``\r\n\r\n this.$slides.forEach(($s, index) => {\r\n this.$pagination.querySelector('.card-carousel__pagination-list').appendChild(this.paginationItem($s, index))\r\n })\r\n\r\n this.$slider.parentNode.appendChild(this.$pagination)\r\n\r\n if(this.options.controlsAppendTo === 'pagination') {\r\n this.updateOptions({\r\n appendArrows: this.$pagination\r\n })\r\n }\r\n }\r\n\r\n paginationItem($slide, index) {\r\n const label = $slide.dataset.paginationLabel\r\n const $paginationItem = document.createElement('div')\r\n $paginationItem.classList.add('card-carousel__pagination-item')\r\n\r\n $paginationItem.innerHTML = `${String(index+1).padStart(2, '0')}. ${label}`\r\n\r\n $paginationItem.addEventListener('click', () => {\r\n console.log(index)\r\n $(this.$slider).slick('slickGoTo', index, false)\r\n })\r\n\r\n return $paginationItem\r\n }\r\n\r\n paginationUpdate() {\r\n const currentIndex = $(this.$slider).slick('slickCurrentSlide')\r\n const $paginationItems = $(this.$pagination).find('.card-carousel__pagination-item')\r\n const $paginationList = $(this.$pagination).find('.card-carousel__pagination-list')\r\n $paginationItems.removeClass('card-carousel__pagination-item--active')\r\n const $activePaginationItem = $paginationItems.eq(currentIndex)\r\n\r\n $activePaginationItem.addClass('card-carousel__pagination-item--active')\r\n\r\n gsap.to($paginationList, {duration: 0.4, scrollTo: {\r\n x: $activePaginationItem,\r\n offsetX: 15\r\n }})\r\n }\r\n\r\n // Video utilities\r\n pauseSlideVideo(currentSlide) {\r\n const $slide = this.$slides[currentSlide]\r\n if (!$($slide).find('.banner-video').length) return\r\n \r\n const $bannerVideo = $($slide).find('.banner-video')\r\n if($bannerVideo.length) $bannerVideo[0].getVideo()._pauseVideo()\r\n }\r\n\r\n playSlideVideo(currentSlide) {\r\n const $slide = this.$slides[currentSlide]\r\n if (!$($slide).find('.banner-video').length) return\r\n const $bannerVideo = $slide.querySelector('.banner-video[data-autoplay=\"1\"]')\r\n $bannerVideo?.getVideo()._playVideo()\r\n }\r\n\r\n\r\n\r\n addlisteners() {\r\n $(this.$slider).on(\"beforeChange\", (event, slick, currentSlide, nextSlide) => {\r\n if(this.options.pauseVideoOnCurrent === \"1\") this.pauseSlideVideo(currentSlide)\r\n })\r\n\r\n $(this.$slider).on(\"afterChange\", (event, slick, currentSlide, nextSlide) => {\r\n if(this.options.pauseVideoOnCurrent === \"1\") this.playSlideVideo(currentSlide)\r\n })\r\n // Resize listener\r\n const resizeFunc = utilities.debounce(() => {\r\n this.isMobile = window.innerWidth < settings.breakpoints.mobile\r\n this.resizeCallback()\r\n }, 250)\r\n window.addEventListener('resize', resizeFunc)\r\n }\r\n }\r\n\r\n return {\r\n SlickCarousel\r\n }\r\n})()","import { gsap } from \"gsap\"\r\nimport { CustomEase } from \"gsap/CustomEase\"\r\nimport { CustomWiggle } from \"gsap/CustomWiggle\"\r\nimport { ScrollToPlugin } from \"gsap/ScrollToPlugin\"\r\nimport { Carousels } from '@/scripts/carousels/SlickCarousel'\r\nimport settings from \"@/scripts/common/settings\"\r\nimport utilities from \"@/scripts/common/utilities\"\r\nimport {API} from '@/scripts/common/api/api.services'\r\nimport {Video} from '@/scripts/video/Video'\r\nimport modalTpl from './templates/modal.template'\r\ngsap.registerPlugin(ScrollToPlugin, CustomEase, CustomWiggle)\r\n\r\nexport const ModalController = (() => {\r\n class Modal {\r\n constructor(trigger, options) {\r\n this.$trigger = trigger\r\n this.$targetHTML = this.$trigger.dataset.target ? document.querySelector(this.$trigger.dataset.target) : null\r\n this.$modal = null\r\n this.$galleryCarousel = null\r\n this.$galleryCarouselThumb = null\r\n this.modalType = this.$trigger.dataset.modalType || 'normal'\r\n this.modalAnimType = this.$targetHTML?.dataset.modalAnimType || 'slidePage'\r\n this.modalModifiers = this.$targetHTML?.dataset.modalModifiers || '' \r\n this.modalDisplay = this.$targetHTML?.dataset.modalDisplay || ''\r\n this.galleryGroup = this.$trigger.dataset.modalGroup || ''\r\n this.galleryGroupTitle = this.$trigger.dataset.modalGroupTitle || ''\r\n this.modalTitle = this.$trigger.dataset.modalTitle || ''\r\n this.modalTitleType = this.$trigger.dataset.modalHeaderType || ''\r\n this.modalTitleModifiers = this.$trigger.dataset.modalHeaderModifiers || ''\r\n this.mainTl = null\r\n this.galleryItems = []\r\n this.active = false\r\n\r\n this.options = Object.assign({\r\n duration: 0.5,\r\n ease: 'power3.easeInOut'\r\n },options)\r\n\r\n this.init()\r\n }\r\n\r\n init() {\r\n if(this.$targetHTML) this._createModal()\r\n if(this.$targetHTML) this.$targetHTML.getModal = () => this\r\n this.addListeners()\r\n }\r\n\r\n // Animation\r\n addUIAnimation() {\r\n if (this.mainTl) {\r\n this.mainTl.kill()\r\n \r\n this.mainTl = null\r\n }\r\n\r\n if (!this.$modal) return\r\n\r\n const $modalInner = this.$modal.querySelector('.modal__inner')\r\n\r\n gsap.set([$modalInner, this.$modal], {clearProps: 'all'})\r\n \r\n switch(this.modalAnimType) {\r\n case 'fromTop':\r\n this.mainTl = this.fromTopDownAnim('top')\r\n break\r\n case 'fromLeft':\r\n this.mainTl = this.fromSideAnim('left')\r\n break\r\n case 'fromRight':\r\n this.mainTl = this.fromSideAnim('right')\r\n break\r\n case 'fromBottom':\r\n this.mainTl = this.fromTopDownAnim('bottom')\r\n break\r\n default:\r\n this.mainTl = this.slidePageAnim() \r\n }\r\n \r\n\r\n }\r\n\r\n //Animations\r\n slidePageAnim() {\r\n const $modalInner = this.$modal.querySelector('.modal__inner')\r\n const tl = gsap.timeline({\r\n paused: true\r\n })\r\n\r\n gsap.set(this.$modal, {width: 0})\r\n\r\n tl.to(this.$modal, {\r\n duration: 0.5,\r\n ease: 'power2.inOut',\r\n width: '100%'\r\n })\r\n .from($modalInner, {\r\n autoAlpha: 0,\r\n duration: 0.5,\r\n ease: 'power2.inOut',\r\n xPercent: -100\r\n }, 0)\r\n return tl\r\n }\r\n // From Top Down\r\n fromTopDownAnim(dir) {\r\n const $modalContainer = this.$modal.querySelector('.modal__container')\r\n const tl = gsap.timeline({\r\n paused: true\r\n })\r\n \r\n gsap.set(this.$modal, {\r\n autoAlpha: 0,\r\n display: 'none'\r\n })\r\n\r\n gsap.set($modalContainer, {\r\n autoAlpha: 0,\r\n yPercent: dir === 'top' ? -100 : 100,\r\n autoAlpha: 0\r\n })\r\n\r\n tl.to(this.$modal, {\r\n duration: this.options.duration,\r\n ease: this.options.ease,\r\n autoAlpha: 1,\r\n display: 'block'\r\n })\r\n .to($modalContainer, {\r\n duration: this.options.duration,\r\n ease: this.options.ease,\r\n yPercent: 0,\r\n autoAlpha: 1 \r\n }, '-=0.2')\r\n\r\n return tl\r\n }\r\n // From side\r\n fromSideAnim(dir) {\r\n const $modalContainer = this.$modal.querySelector('.modal__container')\r\n const tl = gsap.timeline({\r\n paused: true\r\n })\r\n \r\n gsap.set(this.$modal, {\r\n autoAlpha: 0,\r\n display: 'none'\r\n })\r\n\r\n tl.to(this.$modal, {\r\n duration: this.options.duration,\r\n ease: this.options.ease,\r\n autoAlpha: 1,\r\n display: 'block'\r\n })\r\n .from($modalContainer, {\r\n duration: this.options.duration,\r\n ease: this.options.ease,\r\n xPercent: dir === 'right' ? 100 : -100,\r\n }, '-=0.2')\r\n\r\n return tl\r\n }\r\n\r\n // Shake \r\n shakeAnim() {\r\n const $modalContent = this.$modal.querySelector('.modal__content')\r\n if(!$modalContent) return\r\n\r\n CustomWiggle.create(\"Wiggle.easeInOut\", {wiggles:this.options.wiggles, type:\"easeInOut\"});\r\n CustomWiggle.create(\"Wiggle.easeOut\", {wiggles:this.options.wiggles, type:\"easeOut\"});\r\n gsap.to($modalContent, {\r\n duration: 0.8,\r\n x:\"+=20\", \r\n ease: \"Wiggle.easeOut\"\r\n })\r\n }\r\n\r\n // Modal\r\n\r\n _clearModal() {\r\n if (this.$galleryCarousel) {\r\n this.$galleryCarousel.getSlick().unslick()\r\n this.$galleryCarousel = null\r\n }\r\n if (this.$galleryCarouselThumb) {\r\n this.$galleryCarouselThumb.getSlick().unslick()\r\n this.$galleryCarouselThumb = null\r\n }\r\n if (this.$modal) {\r\n this.$modal.remove()\r\n this.$modal = null\r\n }\r\n }\r\n\r\n _createModal() {\r\n const existingModal = this.$targetHTML && document.querySelector(`#${this.$targetHTML.getAttribute('id')}--modal`)\r\n if(existingModal) {\r\n this.$modal = existingModal\r\n this.calculateGrid()\r\n this.addUIAnimation()\r\n this.addModalActions()\r\n return\r\n }\r\n if (this.$modal && this.modalType === 'gallery') {\r\n this._clearModal()\r\n }\r\n this.$modal = utilities.createNodeParsing(modalTpl())\r\n if(this.modalDisplay === 'modal-normal') {\r\n const $backdrop = document.createElement('div')\r\n $backdrop.classList.add('modal__backdrop')\r\n this.$modal.prepend($backdrop)\r\n this.$modal.classList.add('modal--normal')\r\n }\r\n\r\n if (this.modalType === 'gallery') {\r\n this.collectGallery()\r\n this._createModalHeader()\r\n this._createGalleryCarousel()\r\n this._createGalleryThumbnailCarousel()\r\n document.body.appendChild(this.$modal)\r\n this.carousels()\r\n } else {\r\n this._createModalHeader()\r\n this._createModalFooter()\r\n this._createModalBody()\r\n this.$modal.setAttribute('id', `${this.$targetHTML.getAttribute('id')}--modal`)\r\n document.body.appendChild(this.$modal)\r\n }\r\n\r\n if(this.modalModifiers) this.modalModifiers.split(',').map((mod) => this.$modal.classList.add(mod.trim()))\r\n this.calculateGrid()\r\n this.addUIAnimation()\r\n this.addModalActions()\r\n\r\n }\r\n\r\n // Modal elems\r\n _createModalHeader() {\r\n const $modalHeader = this.$modal.querySelector('.modal__header')\r\n const $targetHeader = this.$targetHTML?.querySelector('[data-title]')\r\n \r\n if($targetHeader) {\r\n $modalHeader.appendChild($targetHeader)\r\n return\r\n }\r\n\r\n if(this.modalTitle) {\r\n \r\n const $title = document.createElement(`${this.modalTitleType || 'h1'}`)\r\n $title.innerHTML = `${this.modalTitle}`\r\n if(this.modalTitleModifiers) {\r\n this.modalTitleModifiers.split(',').forEach((mod) => $title.classList.add(mod))\r\n }\r\n $modalHeader.appendChild($title)\r\n }\r\n\r\n \r\n\r\n if(this.galleryGroupTitle) {\r\n const $grpTitle = document.createElement('h4')\r\n $grpTitle.innerHTML = `${this.galleryGroupTitle}`\r\n $modalHeader.appendChild($grpTitle)\r\n } \r\n const headerModifiers = this.$targetHTML?.dataset.headerModifiers?.split(',').map(val => val.trim()) || []\r\n if(headerModifiers.length)\r\n headerModifiers.forEach((mod) => $modalHeader.classList.add(`${mod}`))\r\n\r\n if(this.modalType === 'gallery') $modalHeader.classList.add(`justify-content-center`)\r\n \r\n return\r\n }\r\n\r\n _createModalFooter() {\r\n const $modalFooter = this.$modal.querySelector('.modal__footer')\r\n const $targetFooter = this.$targetHTML?.querySelector('[data-footer]')\r\n const footerModifiers = this.$targetHTML?.dataset.footerModifiers?.split(',').map(val => val.trim()) || []\r\n if(footerModifiers.length)\r\n footerModifiers.forEach((mod) => $modalFooter.classList.add(`${mod}`))\r\n if($targetFooter) {\r\n $modalFooter.appendChild($targetFooter)\r\n return\r\n }\r\n }\r\n\r\n _createModalBody() {\r\n const $modalBody = this.$modal.querySelector('.modal__body')\r\n const $modalContainer = this.$modal.querySelector('.modal__container')\r\n this.$targetHTML?.classList.add('modal-added')\r\n const bodyModifiers = this.$targetHTML?.dataset.bodyModifiers?.split(',').map(val => val.trim()) || []\r\n const modifiers = this.$targetHTML?.dataset.modifiers?.split(',').map(val => val.trim()) || []\r\n if(bodyModifiers.length)\r\n bodyModifiers.forEach((mod) => $modalBody.classList.add(`${mod}`))\r\n if(modifiers.length)\r\n modifiers.forEach((mod) => $modalContainer.classList.add(`${mod}`))\r\n $modalBody.appendChild(this.$targetHTML)\r\n }\r\n\r\n // Gallery\r\n _createGalleryCarousel() {\r\n this.$galleryCarousel = document.createElement('div')\r\n this.$galleryCarousel.classList.add('modal-single-carousel', 'card-carousel--overlay-controls', 'card-carousel--arrows-btn')\r\n this.galleryItems.forEach((item) => {\r\n const $singleSlide = document.createElement('div')\r\n $singleSlide.classList.add('modal-single-carousel__slide', 'modal-single-carousel__item')\r\n if(!item.iframeSrc) {\r\n $singleSlide.innerHTML = `
`\r\n this.$galleryCarousel.appendChild($singleSlide)\r\n return\r\n }\r\n\r\n $singleSlide.appendChild(this._createIframe(item)) \r\n this.$galleryCarousel.appendChild($singleSlide)\r\n \r\n })\r\n const $modalBody = this.$modal.querySelector('.modal__body')\r\n $modalBody.appendChild(this.$galleryCarousel)\r\n \r\n }\r\n\r\n _createIframe(item) {\r\n const banner = document.createElement('div')\r\n banner.classList.add(\"banner\",\"contain-bg\", \"banner-video\", \"text-light\", \"text-center\", \"aspect-ratio--16x9\")\r\n if(item.iframeType !== 'html5') banner.dataset.videoType = item.iframeType\r\n banner.innerHTML = `
\r\n
\r\n ${item.iframeType === 'html5' ? \r\n `\r\n
` \r\n :\r\n `
` +\r\n `
` \r\n }\r\n
`\r\n new Video.VideoBanner(banner, {\r\n fitIframe: false\r\n })\r\n return banner\r\n }\r\n\r\n _createGalleryThumbnailCarousel() {\r\n if (this.galleryItems.length === 0) return\r\n\r\n this.$galleryCarouselThumb = document.createElement('div')\r\n this.$galleryCarouselThumb.classList.add('modal-thumbnail-carousel', 'card-carousel--inline-controls', 'card-carousel--arrows-btn')\r\n\r\n this.galleryItems.forEach((item) => {\r\n const $thumbSlide = document.createElement('div')\r\n $thumbSlide.classList.add('modal-thumbnail-carousel__slide', 'modal-thumbnail-carousel__item')\r\n $thumbSlide.innerHTML = `
`\r\n this.$galleryCarouselThumb.appendChild($thumbSlide)\r\n })\r\n const $modalFooter = this.$modal.querySelector('.modal__footer')\r\n $modalFooter.classList.add('modal__footer--thumbnail-wrapper')\r\n $modalFooter.appendChild(this.$galleryCarouselThumb)\r\n }\r\n\r\n // Gallery\r\n collectGallery() {\r\n this.galleryItems = []\r\n const $relatedGroupItems = this.galleryGroup ? \r\n (!new API.Controller().isJson(this.$trigger.dataset.modalGroup) ? document.querySelectorAll(`[data-modal-group=${this.galleryGroup}]`) : JSON.parse(this.$trigger.dataset.modalGroup))\r\n : [this.$trigger]\r\n\r\n $relatedGroupItems.forEach($item => {\r\n let isItemNode = utilities.isNodeEle($item)\r\n const imageLink = isItemNode ? $item.getAttribute('href') : $item.imageLink\r\n const iframeSrc = isItemNode ? $item.dataset.iframeSrc || null : $item.iframeSrc || null\r\n const iframeType = isItemNode ? $item.dataset.iframeType || null : $item.iframeType || null\r\n const thumbnailLink = isItemNode ? $item.dataset.thumbnail || imageLink : $item.thumbnailLink\r\n this.pushToGallery({\r\n imageLink,\r\n thumbnailLink,\r\n iframeSrc,\r\n iframeType\r\n })\r\n })\r\n }\r\n\r\n pushToGallery(item) {\r\n if (this.galleryItems.findIndex(i => i.imageLink === item.imageLink && !i.iframeSrc) === -1) {\r\n this.galleryItems.push(item)\r\n }\r\n }\r\n\r\n // Carousels\r\n carousels() {\r\n const initIndex = this.galleryItems.findIndex(i => i.imageLink === this.$trigger.getAttribute('href')) !== -1 ? this.galleryItems.findIndex(i => i.imageLink === this.$trigger.getAttribute('href')) : 0\r\n // Single carousel\r\n new Carousels.SlickCarousel(this.$galleryCarousel, {\r\n asNavFor: '.modal-thumbnail-carousel',\r\n lazyLoad: 'ondemand',\r\n infinite: false,\r\n initialSlide: initIndex,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n focusOnSelect: false,\r\n dots: false\r\n }).init()\r\n\r\n // Thumbnail carousel\r\n new Carousels.SlickCarousel(this.$galleryCarouselThumb, {\r\n asNavFor: '.modal-single-carousel',\r\n lazyLoad: 'ondemand',\r\n //variableWidth: true,\r\n infinite: false,\r\n slidesToShow: 8,\r\n slideToScroll: 1,\r\n focusOnSelect: true,\r\n\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n centerMode: false,\r\n slidesToShow: 7,\r\n infinite: false\r\n }\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n centerMode: false,\r\n slidesToShow: 4,\r\n infinite: false\r\n }\r\n },\r\n {\r\n breakpoint: 568,\r\n settings: {\r\n centerMode: false,\r\n slidesToShow: 3,\r\n infinite: false,\r\n centerPadding: '30px'\r\n }\r\n }\r\n ],\r\n dots: false\r\n }).init()\r\n\r\n const $slides = this.$galleryCarouselThumb.querySelectorAll('.modal-thumbnail-carousel__slide')\r\n\r\n $slides[initIndex].click() // For active slick thumbnail sync issue\r\n\r\n const $focusEle = this.$galleryCarousel.querySelector('.modal-single-carousel__slide')\r\n\r\n utilities.triggerFocus($focusEle)\r\n }\r\n\r\n // Grid calculations\r\n calculateGrid() {\r\n if (!this.$modal) return\r\n const $modalAction = this.$modal.querySelector('.modal__action')\r\n const $modalHeader = this.$modal.querySelector('.modal__header')\r\n const $modalContainer = this.$modal.querySelector('.modal__container')\r\n const $modalFooter = this.$modal.querySelector('.modal__footer')\r\n const $modalCarousel = this.$modal.querySelector('.modal-single-carousel')\r\n\r\n if (this.modalType == 'gallery') {\r\n const carouselHeight = window.innerHeight - ($modalAction.getBoundingClientRect().height +\r\n $modalHeader.getBoundingClientRect().height +\r\n $modalFooter.getBoundingClientRect().height\r\n )\r\n $modalCarousel.style.height = `${carouselHeight}px`\r\n }\r\n\r\n //this.$modal.style.width = `${window.innerWidth}px`\r\n }\r\n \r\n // Modal actions\r\n modalOpen() {\r\n if(!this.$modal) return \r\n this.active = true\r\n this.updateHtml()\r\n utilities.toggleWindowScroll(false)\r\n this.mainTl.play()\r\n this.mainTl.eventCallback('onComplete', () => {\r\n this.$modal.classList.remove('modal--tweening')\r\n })\r\n }\r\n\r\n modalClose() {\r\n if(!this.$modal) return\r\n this.active = false\r\n this.$modal.classList.add('modal--tweening')\r\n this.mainTl.reverse()\r\n this.mainTl.eventCallback('onReverseComplete', () => {\r\n this.updateHtml()\r\n utilities.toggleWindowScroll(true)\r\n if(this.modalType === 'gallery') this._clearModal()\r\n })\r\n }\r\n\r\n updateHtml() {\r\n if (this.active) {\r\n this.$modal.classList.add('modal--tweening')\r\n document.body.classList.add('modal-open')\r\n return\r\n }\r\n\r\n this.$modal.classList.remove('modal--tweening')\r\n document.body.classList.remove('modal-open')\r\n }\r\n\r\n addModalActions() {\r\n const $closeModals = this.$modal.querySelectorAll('.modal__action-close')\r\n $closeModals.forEach(($cm) => $cm.addEventListener('click', () => this.modalClose()) )\r\n \r\n }\r\n\r\n\r\n // Event Handlers\r\n handleTriggerClick(e) {\r\n e.preventDefault()\r\n if(this.modalType === 'gallery') this._createModal()\r\n this.modalOpen()\r\n }\r\n\r\n // Resize Func\r\n resizeFunc() {\r\n return utilities.debounce(() => {\r\n this.calculateGrid()\r\n //this.addUIAnimation() // ui animation rebuild causes it to close\r\n }, 250)\r\n }\r\n\r\n addListeners() {\r\n window.addEventListener('resize', this.resizeFunc())\r\n this.$trigger.addEventListener('click', (e) => this.handleTriggerClick(e))\r\n\r\n const $backdrop = this.$modal?.querySelector('.modal__backdrop')\r\n $backdrop?.addEventListener(\"click\", () => this.active && this.modalClose())\r\n }\r\n }\r\n\r\n const CLASS_MODAL_INLINE_PRE = \"modal-inline\"\r\n\r\n class ModalInline {\r\n constructor(container) {\r\n this.$modal = container\r\n this.$modalItems = this.$modal.querySelectorAll(`.${CLASS_MODAL_INLINE_PRE}__item:not([style*=\"display: none\"])`)\r\n this.$modalPanels = this.$modal.querySelectorAll(`.${CLASS_MODAL_INLINE_PRE}__item:not([style*=\"display: none\"]) > .${CLASS_MODAL_INLINE_PRE}__panel`)\r\n this.totalItemsPerRow = 3\r\n this.totalItems = this.$modalItems.length\r\n this.init()\r\n }\r\n\r\n init() {\r\n this.updateTotalItemsPerRow()\r\n this.updateItems()\r\n this.placeModalPanels()\r\n this._addEventListener()\r\n }\r\n\r\n resetAllPanels() {\r\n this.$modalItems.forEach(($item, i) => {\r\n if(this.$modalPanels[i]) $item.appendChild(this.$modalPanels[i])\r\n })\r\n }\r\n\r\n updateTotalItemsPerRow() {\r\n this.totalItemsPerRow = 1\r\n if(window.innerWidth > 575) this.totalItemsPerRow = 2 \r\n if(window.innerWidth > 1024) this.totalItemsPerRow = 3 \r\n }\r\n\r\n updateItems() {\r\n this.$modalItems = this.$modal.querySelectorAll(`.${CLASS_MODAL_INLINE_PRE}__item:not([style*=\"display: none\"])`)\r\n this.$modalPanels = this.$modal.querySelectorAll(`.${CLASS_MODAL_INLINE_PRE}__item:not([style*=\"display: none\"]) > .${CLASS_MODAL_INLINE_PRE}__panel`)\r\n this.totalItems = this.$modalItems.length\r\n }\r\n\r\n placeModalPanels() {\r\n let itemsPerRowOffset = this.totalItemsPerRow\r\n this.$modalItems.forEach(($item, i) => {\r\n const $panel = this.$modalPanels[i]\r\n if(i === itemsPerRowOffset) itemsPerRowOffset += this.totalItemsPerRow\r\n if (i <= itemsPerRowOffset - 1) {\r\n if ($panel) {\r\n (this.$modalItems[itemsPerRowOffset - 1]) ? \r\n $panel.appendAfter(this.$modalItems[itemsPerRowOffset - 1]) : \r\n $panel.appendAfter(this.$modalItems[this.totalItems - 1])\r\n } \r\n return\r\n } \r\n \r\n })\r\n }\r\n\r\n // CAllbacks\r\n onPanelUpdate(e) {\r\n const $item = e.target.closest(`.${CLASS_MODAL_INLINE_PRE}__item`)\r\n e.detail.isActive() ? $item.classList.add(`${CLASS_MODAL_INLINE_PRE}__item--active`) : $item.classList.remove(`${CLASS_MODAL_INLINE_PRE}__item--active`)\r\n\r\n\r\n }\r\n\r\n onFilter() {\r\n this.resetAllPanels()\r\n this.updateItems()\r\n this.placeModalPanels()\r\n }\r\n\r\n // Resize func\r\n resizeFunc() {\r\n return utilities.debounce(() => {\r\n this.updateTotalItemsPerRow()\r\n this.placeModalPanels()\r\n }, 250)\r\n }\r\n\r\n _addEventListener() {\r\n this.$modalItems.forEach($item => {\r\n $item.addEventListener('panelOpen', (e) => this.onPanelUpdate(e))\r\n $item.addEventListener('panelClose', (e) => this.onPanelUpdate(e))\r\n })\r\n\r\n this.$modal.addEventListener('UIFilterUpdated', (e) => this.onFilter(e))\r\n\r\n window.addEventListener('resize', this.resizeFunc())\r\n }\r\n }\r\n\r\n\r\n\r\n return {\r\n Modal,\r\n ModalInline\r\n }\r\n})()","export default () => {\r\n return `
\r\n
\r\n
\r\n
\r\n
\r\n Close\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
`\r\n}","export const YoutubeApi = (function () {\r\n\r\n class YtPlayer extends EventTarget {\r\n constructor(container, player) {\r\n super()\r\n this.container = container\r\n this.videoPlayer = player || container\r\n this.videoID = this.videoPlayer.dataset.videoId || null\r\n this.player = null\r\n this.playerReady = false\r\n this.events = []\r\n this._init()\r\n }\r\n\r\n async _init() {\r\n if(window.YT === undefined) {\r\n await new LoadYtScript().loadScript()\r\n this.createEvents()\r\n this.callApi()\r\n return\r\n }\r\n this.createEvents()\r\n this.callApi()\r\n }\r\n\r\n createEvents() {\r\n this.events['loaded'] = new CustomEvent('loaded', {\r\n bubbles: true,\r\n detail: {\r\n getValue: () => this.videoPlayer\r\n }\r\n })\r\n this.events['play'] = new CustomEvent('play', { bubbles: true })\r\n this.events['pause'] = new CustomEvent('pause', { bubbles: true })\r\n this.events['ended'] = new CustomEvent('ended', { bubbles: true })\r\n }\r\n\r\n async callApi() {\r\n const target = await this.createPlayer()\r\n this.playerReady = true\r\n this.dispatchEvent(this.events['loaded'])\r\n }\r\n\r\n createPlayer() {\r\n return new Promise((resolve, reject) => {\r\n this.player = new YT.Player(this.videoPlayer, {\r\n height: '100%',\r\n width: '100%',\r\n videoId: `${this.videoID}`,\r\n playerVars: {\r\n 'playsinline': 1,\r\n // 'autoplay': 0,\r\n 'controls': 0,\r\n 'autohide': 1,\r\n // 'wmode': 'opaque',\r\n },\r\n events: {\r\n 'onReady': (e) => {\r\n resolve(e.target)\r\n this.onPlayerReady(e)\r\n },\r\n 'onStateChange': (e) => this.onPlayerStateChange(e)\r\n },\r\n\r\n })\r\n })\r\n\r\n }\r\n\r\n\r\n\r\n // Generic methods\r\n onPlayerReady(e) {\r\n //console.log(e.target.playVideo())\r\n }\r\n\r\n onPlayerStateChange(e) {\r\n this.playing = (this.player.getPlayerState() === 1) ? true : false\r\n switch (this.player.getPlayerState()) {\r\n case 1:\r\n this.dispatchEvent(this.events['play'])\r\n break\r\n default:\r\n this.dispatchEvent(this.events['pause'])\r\n }\r\n }\r\n\r\n // callbacks\r\n play() {\r\n this.player.playVideo()\r\n }\r\n pause() {\r\n this.player.pauseVideo()\r\n }\r\n stop() {\r\n this.player.stopVideo()\r\n }\r\n }\r\n\r\n function LoadYtScript() {\r\n this.scriptTag = document.querySelector('[id*=\"youtube-api\"]')\r\n }\r\n\r\n LoadYtScript.prototype = {\r\n\r\n loadScript() {\r\n return new Promise((resolve, reject) => {\r\n if(!this.scriptTag) {\r\n this.scriptTag = document.createElement('script')\r\n this.scriptTag.setAttribute('id', `youtube-api--${Math.round(Math.random() * 10000)}`)\r\n this.scriptTag.src = \"https://www.youtube.com/iframe_api\"\r\n document.body.append(this.scriptTag)\r\n }\r\n\r\n this.scriptTag?.addEventListener('load', function() {\r\n setTimeout(() => resolve(), 1000)\r\n })\r\n this.scriptTag?.addEventListener('error', reject)\r\n })\r\n }\r\n }\r\n\r\n return {\r\n YtPlayer,\r\n LoadYtScript\r\n }\r\n\r\n})()\r\n\r\nexport default YoutubeApi","import VimeoPlayer from \"@vimeo/player\"\r\nexport const VimeoApi = (function () {\r\n\r\n class Player extends EventTarget{\r\n constructor(container, player, options) {\r\n super()\r\n \r\n this.container = container\r\n this.videoPlayer = player || container\r\n this.videoID = this.videoPlayer.dataset.videoId || null\r\n this.player = null\r\n this.playerReady = false\r\n this.events = []\r\n\r\n this.options = Object.assign({\r\n autoplay: false,\r\n background: false,\r\n muted: this.container.dataset.muted === \"1\",\r\n controls: this.container.dataset.controls === \"1\",\r\n playsinline: this.container.dataset.playsinline === \"1\"\r\n }, {\r\n ...options \r\n })\r\n this._init()\r\n }\r\n\r\n _init() {\r\n this.createEvents()\r\n this.callApi()\r\n }\r\n\r\n createEvents() {\r\n this.events['loaded'] = new CustomEvent('loaded', {\r\n bubbles: true,\r\n detail: {\r\n getValue: () => this.videoPlayer\r\n }\r\n })\r\n this.events['play'] = new CustomEvent('play', {bubbles: true})\r\n this.events['pause'] = new CustomEvent('pause', {bubbles: true})\r\n this.events['ended'] = new CustomEvent('ended', {bubbles: true})\r\n }\r\n\r\n async callApi() {\r\n await this.createPlayer()\r\n this.playerReady = true\r\n this.addPlayerListeners()\r\n this.dispatchEvent(this.events['loaded'])\r\n }\r\n\r\n createPlayer() {\r\n\r\n this.player = new VimeoPlayer(this.videoPlayer, {\r\n height: '100%',\r\n width: '100%',\r\n playsinline: this.options.playsinline,\r\n responsive: true,\r\n controls: this.options.controls,\r\n id: `${this.videoID}`,\r\n byline: false,\r\n background: this.options.background,\r\n muted: this.options.muted,\r\n loop: this.options.loop,\r\n autoplay: this.options.autoplay\r\n })\r\n\r\n return this.player.ready()\r\n \r\n }\r\n\r\n // callbacks\r\n play() {\r\n this.player.play()\r\n }\r\n pause() {\r\n this.player.pause()\r\n }\r\n stop() {\r\n this.player.stop()\r\n }\r\n seek(dur) {\r\n this.player.setCurrentTime(dur)\r\n }\r\n\r\n // Adding listeners\r\n addPlayerListeners() {\r\n this.player.on('play', () => {\r\n this.playing = true\r\n this.dispatchEvent(this.events['play'])\r\n })\r\n this.player.on('pause', () => {\r\n this.playing = false\r\n this.dispatchEvent(this.events['pause'])\r\n })\r\n this.player.on('ended', () => {\r\n this.playing = false\r\n this.dispatchEvent(this.events['ended'])\r\n })\r\n }\r\n }\r\n\r\n return {\r\n Player\r\n }\r\n\r\n})()\r\n\r\nexport default VimeoApi\r\n","import {gsap} from 'gsap'\r\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\"\r\nimport {utilities} from \"@/scripts/common/utilities\"\r\nimport {YoutubeApi} from \"./YouTube\"\r\nimport {VimeoApi} from \"./Vimeo\"\r\nimport {addScrollController, ScrollControllers} from \"@/scripts/common/api/scrolltrigger.services\"\r\ngsap.registerPlugin(ScrollTrigger)\r\n\r\n\r\nexport const Video = (() => {\r\n\r\n class VideoBanner {\r\n constructor(container, options) {\r\n this.$videoContainer = container\r\n this.$videoNative = this.$videoContainer.querySelector('.bg-vid')\r\n this.$videoIframe = this.$videoContainer.querySelector('.bg-iframe')\r\n this.$videoPlayer = this.$videoContainer.querySelector('.bg-vid__player')\r\n this.$videoControls = this.$videoContainer.querySelector('.bg-vid__controls')\r\n this.$videoPlayBtn = this.$videoContainer.querySelector('.bg-vid__controls-play')\r\n this.$videoMuteBtn = this.$videoContainer.querySelector('.bg-vid__controls-mute') \r\n this.$articleElems = gsap.utils.toArray(this.$videoContainer.querySelectorAll('.article-generic > *'))\r\n this.videoPlaying = false\r\n this.videoType = this.$videoContainer.dataset.videoType || 'native'\r\n if(this.videoType === 'html5') this.videoType = 'native'\r\n this.playerReady = false\r\n this.Player = null\r\n this.controlRevealTimeoutFunc = null\r\n this.mainTl = null\r\n this.controlRevealTime = 5000\r\n this.scrollController = null\r\n \r\n this.options = Object.assign({\r\n fitIframe: true,\r\n background: this.$videoContainer.dataset.background === \"1\",\r\n autoplay: this.$videoContainer.dataset.autoplay === \"1\" || this.$videoNative?.autoplay || false,\r\n loop: this.$videoContainer.dataset.loop === \"1\",\r\n onViewDemand: this.$videoContainer.dataset.onDemand || \"1\" \r\n },\r\n {\r\n ...options\r\n })\r\n\r\n console.log(this.options)\r\n\r\n this.scrollOptions = {\r\n trigger: this.$videoContainer,\r\n start: 'top bottom',\r\n onToggle: self => {\r\n if(this.options.background) {\r\n !self.isActive ? this._pauseVideo() : this._playVideo()\r\n return\r\n }\r\n if(!self.isActive) this._pauseVideo()\r\n }\r\n }\r\n this.init()\r\n }\r\n\r\n init() {\r\n this.makeAnim()\r\n this.makePlayer()\r\n this.$videoContainer.getVideo = () => this\r\n }\r\n\r\n // Iframe size\r\n makeIframeFit() {\r\n utilities.resizePlayer(this.$videoContainer)\r\n }\r\n\r\n // Iframe utilities\r\n toIframePlayer(player, command){\r\n if (player == null || command == null || player.contentWindow == null) return\r\n player.contentWindow.postMessage(JSON.stringify(command), \"*\");\r\n }\r\n\r\n // Making player\r\n async makePlayer() {\r\n switch(this.videoType) {\r\n case 'youtube':\r\n this.Player = await this.ytLoader()\r\n this.playerReady = true\r\n if(this.options.fitIframe) this.makeIframeFit()\r\n this.updateUI()\r\n this.addingListener()\r\n break\r\n case 'vimeo':\r\n this.Player = await this.vmLoader()\r\n this.playerReady = true\r\n this.updateUI()\r\n this.addingListener()\r\n if(this.options.fitIframe) this.makeIframeFit()\r\n break\r\n default:\r\n this.Player = this.$videoNative\r\n this.playerReady = true\r\n this.updateUI()\r\n this.addingListener()\r\n if(this.options.autoplay) this._playVideo()\r\n }\r\n }\r\n\r\n ytLoader() {\r\n return new Promise((resolve, reject) => {\r\n const player = new YoutubeApi.YtPlayer(this.$videoContainer, this.$videoPlayer, this.options)\r\n player.addEventListener('loaded', () => {\r\n resolve(player)\r\n })\r\n })\r\n }\r\n\r\n vmLoader() {\r\n return new Promise((resolve, reject) => {\r\n const player = new VimeoApi.Player(this.$videoContainer, this.$videoPlayer, this.options)\r\n player.addEventListener('loaded', () => {\r\n resolve(player)\r\n })\r\n })\r\n }\r\n\r\n _playVideo() {\r\n if(!this.Player) return\r\n this.videoPlaying = true\r\n this.Player?.play()\r\n }\r\n\r\n _pauseVideo() {\r\n if(!this.Player) return\r\n this.videoPlaying = false\r\n this.Player?.pause()\r\n }\r\n\r\n _muteToggle() {\r\n this.Player.muted = !this.Player.muted\r\n }\r\n\r\n // Animation\r\n makeAnim() {\r\n this.mainTl = gsap.timeline({paused: true})\r\n if(this.$videoPlayBtn)\r\n this.mainTl.to(this.$videoPlayBtn, {\r\n duration: 0.4,\r\n scale: 1.2,\r\n ease: 'power2.inOut',\r\n autoAlpha: 0\r\n })\r\n if(this.$articleElems.length && !this.$videoContainer.classList.contains(\"banner-dont-hide-content-on-play\")) {\r\n this.mainTl.to(this.$articleElems, {\r\n stagger: -0.05,\r\n y: 50,\r\n autoAlpha: 0,\r\n ease: 'power2.inOut',\r\n display: 'none'\r\n }, 0)\r\n } \r\n }\r\n\r\n // Controls\r\n toggleVideo(e) {\r\n if(this.$videoMuteBtn && (this.$videoMuteBtn.contains(e.target) || e.target === this.$videoMuteBtn)) {\r\n this._muteToggle()\r\n return\r\n }\r\n this.videoPlaying ? this._pauseVideo() : this._playVideo()\r\n }\r\n\r\n // UI updates\r\n updateUI() {\r\n this.playingUIUpdate()\r\n this.mutedUIUpdate()\r\n }\r\n\r\n playingUIUpdate() {\r\n if(this.videoPlaying) {\r\n this.$videoContainer.classList.add('playing')\r\n this.$videoContainer.classList.remove('paused')\r\n this.mainTl?.play()\r\n return\r\n } \r\n this.$videoContainer.classList.remove('playing')\r\n this.$videoContainer.classList.add('paused')\r\n this.mainTl?.reverse()\r\n }\r\n\r\n mutedUIUpdate() {\r\n if(this.Player.muted) {\r\n this.$videoContainer.classList.add('muted')\r\n return\r\n } \r\n this.$videoContainer.classList.remove('muted')\r\n }\r\n\r\n // Callbacks\r\n updatePlay(play) {\r\n this.videoPlaying = play\r\n this.updateUI()\r\n } \r\n\r\n // endScreenUpdate() {\r\n // if(this.videoType === 'vimeo' && !this.options.loop) {\r\n // this.Player?.seek(0)\r\n // this.Player.play()\r\n // }\r\n // }\r\n\r\n // Resize Callbacks\r\n resizeFunc() {\r\n return utilities.debounce(() => {\r\n if(this.options.fitIframe) this.makeIframeFit()\r\n }, 250)\r\n }\r\n\r\n addingListener() {\r\n this.$videoControls?.addEventListener('click', (e) => this.toggleVideo(e))\r\n this.Player?.addEventListener('play', () => this.updatePlay(true))\r\n this.Player?.addEventListener('pause', () => this.updatePlay(false))\r\n this.Player?.addEventListener('ended', () => this.updatePlay(false))\r\n this.Player?.addEventListener('volumechange', () => this.updateUI())\r\n //if(this.videoType === \"vimeo\") this.Player?.addEventListener('ended', () => this.endScreenUpdate())\r\n if(parseInt(this.options.onViewDemand) === \"1\") {\r\n this.scrollController = ScrollTrigger.create(this.scrollOptions)\r\n addScrollController(this.scrollController)\r\n }\r\n\r\n window.addEventListener('resize', this.resizeFunc())\r\n }\r\n }\r\n\r\n return {\r\n VideoBanner\r\n }\r\n})()\r\n\r\nexport default Video"],"names":["gsap","ScrollToPlugin","SlickCarousel","Carousels","container","options","this","$slider","$slides","querySelectorAll","$pagination","arrowModifiers","asNavFor","dataset","asNav","goToPanel","gotoPanel","isMobile","window","innerWidth","settings","syncLocation","isRtl","document","documentElement","getAttribute","Object","assign","infinite","slidesToShow","slidesToScroll","pauseVideoOnCurrent","dots","arrows","prevArrow","nextArrow","pagination","controlsAppendTo","appendArrows","arrowsAppendTo","autoplay","autoplaySpeed","adaptiveHeight","rtl","style","setProperty","initCallback","addClassModifiers","sliderEventsCallback","setSync","scrollToPanel","makePagination","syncSlideWithLocation","makeCarousel","paginationUpdate","addlisteners","getSlick","updateOptions","windowHref","location","href","slides","index","findIndex","$slide","$link","querySelector","match","classList","add","responsive","reverse","every","screen","breakpoint","length","initialSlide","focusOnSelect","forEach","$item","addEventListener","duration","scrollTo","y","offsetY","ease","$","on","event","slick","image","imageSource","parents","removeClass","parent","hasClass","addClass","currentSlide","nextSlide","lazyLoad","$s","unslick","createElement","innerHTML","appendChild","paginationItem","parentNode","label","paginationLabel","$paginationItem","String","padStart","console","log","currentIndex","$paginationItems","find","$paginationList","$activePaginationItem","eq","x","offsetX","$bannerVideo","getVideo","_pauseVideo","_playVideo","pauseSlideVideo","playSlideVideo","resizeFunc","utilities","resizeCallback","CustomEase","CustomWiggle","CLASS_MODAL_INLINE_PRE","ModalController","Modal","trigger","$trigger","$targetHTML","target","$modal","$galleryCarousel","$galleryCarouselThumb","modalType","modalAnimType","modalModifiers","modalDisplay","galleryGroup","modalGroup","galleryGroupTitle","modalGroupTitle","modalTitle","modalTitleType","modalHeaderType","modalTitleModifiers","modalHeaderModifiers","mainTl","galleryItems","active","init","_createModal","getModal","addListeners","kill","$modalInner","clearProps","fromTopDownAnim","fromSideAnim","slidePageAnim","tl","paused","width","to","from","autoAlpha","xPercent","dir","$modalContainer","display","yPercent","$modalContent","wiggles","type","remove","existingModal","calculateGrid","addUIAnimation","addModalActions","_clearModal","$backdrop","prepend","collectGallery","_createModalHeader","_createGalleryCarousel","_createGalleryThumbnailCarousel","body","carousels","_createModalFooter","_createModalBody","setAttribute","split","map","mod","trim","$modalHeader","$targetHeader","$title","$grpTitle","headerModifiers","val","$modalFooter","$targetFooter","footerModifiers","$modalBody","bodyModifiers","modifiers","item","$singleSlide","iframeSrc","imageLink","_createIframe","banner","iframeType","videoType","Video","fitIframe","$thumbSlide","thumbnailLink","API","isJson","JSON","parse","isItemNode","thumbnail","pushToGallery","i","push","initIndex","slideToScroll","centerMode","centerPadding","click","$focusEle","$modalAction","$modalCarousel","carouselHeight","innerHeight","getBoundingClientRect","height","updateHtml","play","eventCallback","$cm","modalClose","e","preventDefault","modalOpen","handleTriggerClick","ModalInline","$modalItems","$modalPanels","totalItemsPerRow","totalItems","updateTotalItemsPerRow","updateItems","placeModalPanels","_addEventListener","itemsPerRowOffset","$panel","appendAfter","closest","detail","isActive","resetAllPanels","onPanelUpdate","onFilter","YoutubeApi","YtPlayer","player","videoPlayer","videoID","videoId","playerReady","events","_init","undefined","YT","LoadYtScript","loadScript","createEvents","callApi","CustomEvent","bubbles","getValue","createPlayer","dispatchEvent","Promise","resolve","reject","Player","playerVars","onPlayerReady","onPlayerStateChange","playing","getPlayerState","playVideo","pauseVideo","stopVideo","EventTarget","scriptTag","prototype","Math","round","random","src","append","setTimeout","VimeoApi","background","muted","controls","playsinline","addPlayerListeners","VimeoPlayer","id","byline","loop","ready","pause","stop","dur","setCurrentTime","ScrollTrigger","VideoBanner","$videoContainer","$videoNative","$videoIframe","$videoPlayer","$videoControls","$videoPlayBtn","$videoMuteBtn","$articleElems","videoPlaying","controlRevealTimeoutFunc","controlRevealTime","scrollController","onViewDemand","onDemand","scrollOptions","start","onToggle","self","makeAnim","makePlayer","command","contentWindow","postMessage","stringify","ytLoader","makeIframeFit","updateUI","addingListener","vmLoader","scale","contains","stagger","_muteToggle","playingUIUpdate","mutedUIUpdate","toggleVideo","updatePlay","parseInt","addScrollController"],"sourceRoot":""}