{"version":3,"file":"js/876.46df603171d6efe20d90.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 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: true,\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 }, options)\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.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 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.fromTopAnim()\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\r\n fromTopAnim() {\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: -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() {\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: this.options.modalDirection === '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 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 $closeModal = this.$modal.querySelector('.modal__action-close')\r\n $closeModal.addEventListener('click', () => this.modalClose())\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) {\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","Object","assign","infinite","slidesToShow","slidesToScroll","pauseVideoOnCurrent","dots","arrows","prevArrow","nextArrow","pagination","controlsAppendTo","appendArrows","arrowsAppendTo","autoplay","autoplaySpeed","initCallback","addClassModifiers","sliderEventsCallback","setSync","scrollToPanel","makePagination","syncSlideWithLocation","makeCarousel","paginationUpdate","addlisteners","getSlick","updateOptions","windowHref","location","href","slides","index","findIndex","$slide","$link","querySelector","match","getAttribute","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","document","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","modalDisplay","galleryGroup","modalGroup","galleryGroupTitle","modalGroupTitle","modalTitle","modalTitleType","modalHeaderType","modalTitleModifiers","modalHeaderModifiers","mainTl","galleryItems","active","init","_createModal","addListeners","kill","$modalInner","clearProps","fromTopAnim","slidePageAnim","tl","paused","width","to","from","autoAlpha","xPercent","$modalContainer","display","yPercent","modalDirection","$modalContent","wiggles","type","remove","existingModal","calculateGrid","addUIAnimation","addModalActions","_clearModal","$backdrop","prepend","collectGallery","_createModalHeader","_createGalleryCarousel","_createGalleryThumbnailCarousel","body","carousels","_createModalFooter","_createModalBody","setAttribute","$modalHeader","$targetHeader","$title","split","mod","$grpTitle","headerModifiers","map","val","trim","$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","style","updateHtml","play","eventCallback","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","stagger","contains","_muteToggle","playingUIUpdate","mutedUIUpdate","toggleVideo","updatePlay","parseInt","addScrollController"],"sourceRoot":""}