{"version":3,"sources":["webpack://[name]/./src/js/components/CarouselComponentSlick.js","webpack://[name]/./src/js/abstracts/BaseCarouselSlick.js"],"names":["CarouselComponentSlick","_BaseCarouselSlick","element","_this","_classCallCheck","_callSuper","mount","$el","$options","_inherits","_createClass","BaseCarouselSlick","_BaseComponent","container","closest","parentNode","debounce","handleResizeScreen","key","get","value","options","_this2","updateData","carousel","querySelector","currentImage","slidesNumber","querySelectorAll","length","imageIndex","getAttribute","imageSize","imageCaption","imageSrc","slidesTotal","index","size","caption","download","innerHTML","setAttribute","dataset","downloadUrl","forEach","carouselWithCounter","carouselTotalSlideNumber","carouselCurrentSlideNumber","$","slick","currentCountElement","parentElement","totalCountElement","prevArrow","nextArrow","this","find","_objectSpread","BASE_CONF","GRAB","CUSTOM_MESSAGES","CAROUSEL_EVENTS","goToSlide","msg","currentSlideIndex","parseInt","slide","on","event","currentSlide","nextSlide","$countWrapper","$currentIndex","$totoalCount","textContent","String","padStart","slideCount","currentSize","_this3","reinitSize","initAfterResize","$on","clearTimeout","setTimeout","classList","contains","getMediaQuery","window","match","BaseComponent"],"mappings":"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","file":"js/component-CarouselComponentSlick-js.chunks.js","sourcesContent":["import BaseCarouselSlick from '../abstracts/BaseCarouselSlick';\n\nexport default class CarouselComponentSlick extends BaseCarouselSlick {\n \n constructor(element) {\n super(element);\n this.mount(this.$el, this.$options);\n }\n \n}","import 'slick-carousel/slick/slick.js';\n\n// import 'jquery/dist/jquery.js';\n// import './slick';\nimport BaseComponent from './BaseComponent';\n\nimport { match } from '../utilities/ResolutionHandler';\n\nexport default class BaseCarouselSlick extends BaseComponent {\n get BASE_CONF() {\n return {\n };\n }\n\n constructor(element) {\n // console.log('BaseCarouselSlick');\n super(element);\n this.container = this.$options.container ? this.$el.closest(this.$options.container) : this.$el.parentNode;\n this.debounce = {};\n this.handleResizeScreen(element);\n }\n\n mount(element, options) {\n // console.log('BaseCarouselSlick mount', this.$el);\n\n // if($(element).closest('.js-wrapper-carousel-gallery').length){\n if (options.prevArrow && options.nextArrow) {\n // options.prevArrow = $(this.container).find('.gallery__arrow--left');\n // options.nextArrow = $(this.container).find('.gallery__arrow--right');\n options.prevArrow = $(this.container).find(options.prevArrow);\n options.nextArrow = $(this.container).find(options.nextArrow);\n }\n // }\n\n $(element).slick({\n ...this.BASE_CONF,\n ...options\n });\n\n this.GRAB(this.CUSTOM_MESSAGES.CAROUSEL_EVENTS.goToSlide, (msg) => {\n\n const carousel = element.querySelector('.slick-slide.slick-current');\n if (carousel) {\n let currentSlideIndex = carousel.getAttribute('data-slick-index');\n\n if (parseInt( msg.slide) !== parseInt(currentSlideIndex)) {\n $(element).slick('slickGoTo', msg.slide);\n }\n }\n\n\n })\n\n function updateData(container) {\n // console.log('BaseCarouselSlick updateData');\n const carousel = container.querySelector('.js-update-data');\n if (carousel) {\n const currentSlide = carousel.querySelector('.slick-slide.slick-current');\n const currentImage = currentSlide.querySelector('.slide');\n const slides = carousel.querySelectorAll('.slide');\n let slidesNumber = ( slides.length - 2 ) / 2;\n slidesNumber = slidesNumber < 10 ? '0' + slidesNumber : slidesNumber;\n \n if (currentImage) {\n const imageIndex = currentImage.getAttribute('data-attribute-index')\n const imageSize = currentImage.getAttribute('data-attribute-imagesize');\n const imageCaption = currentImage.getAttribute('data-attribute-imagecaption');\n const imageSrc = currentImage.getAttribute('src');\n\n const slidesTotal = container.querySelector('.js-slides-total');\n const index = container.querySelector('.js-image-index')\n const size = container.querySelector('.js-image-size');\n const caption = container.querySelector('.js-image-caption');\n const download = container.querySelector('.js-image-download');\n\n index.innerHTML = (index && imageIndex) ? imageIndex : '';\n slidesTotal.innerHTML = (slidesTotal) ? slidesNumber : '';\n if(size) {\n size.innerHTML = (size && imageSize) ? imageSize : '';\n }\n caption.innerHTML = (caption && imageCaption) ? imageCaption : '';\n if (imageSrc && download) {\n download.setAttribute('href', currentImage.dataset.downloadUrl || imageSrc);\n download.setAttribute('download', currentImage.dataset.download);\n }\n\n }\n \n }\n\n //Focus on carousel update counter\n const carouselWithCounterArray = container.querySelectorAll('.js-carousel-with-counter');\n\n carouselWithCounterArray.forEach((carouselWithCounter) => {\n\n if (element === carouselWithCounter) {\n let carouselTotalSlideNumber = carouselWithCounter.querySelectorAll('.slick-slide').length;\n let carouselCurrentSlideNumber = $(carouselWithCounter).slick('slickCurrentSlide');\n \n carouselCurrentSlideNumber++;\n \n carouselCurrentSlideNumber = carouselCurrentSlideNumber < 10 ? '0' + carouselCurrentSlideNumber : carouselCurrentSlideNumber;\n carouselTotalSlideNumber = carouselTotalSlideNumber < 10 ? '0' + carouselTotalSlideNumber : carouselTotalSlideNumber;\n \n const currentCountElement = carouselWithCounter.parentElement.querySelector('.js-slide-current-number');\n const totalCountElement = carouselWithCounter.parentElement.querySelector('.js-slide-total');\n \n if(currentCountElement && totalCountElement) {\n currentCountElement.innerHTML = carouselCurrentSlideNumber;\n totalCountElement.innerHTML = carouselTotalSlideNumber;\n }\n }\n });\n\n }\n updateData(this.container);\n\n $(element).on('afterChange', (event, slick, currentSlide, nextSlide) => {\n // console.log('afterChange');\n\n updateData(this.container);\n\n var $countWrapper = this.container.querySelector('.js-gallery-count')\n if ($countWrapper) {\n var $currentIndex = $countWrapper.querySelector('.js-gallery-current-index');\n var $totoalCount = $countWrapper.querySelector('.js-gallery-total-count');\n \n $currentIndex.textContent = String(++currentSlide).padStart(2, '0');\n $totoalCount.textContent = String(slick.slideCount).padStart(2, '0');\n } \n });\n }\n\n /**\n * When Slick is unslick in a breckpoint, does not restart\n * So on window resize\n * check if carousel is in a resolution where need to be active and reinit it \n * [data-init-after-resize] show resolution where is needed\n */\n handleResizeScreen(element) {\n const reinitSize = element.dataset.initAfterResize;\n if (!reinitSize){return;}\n \n var currentSize;\n \n this.$on('resize.carousel', () => {\n if (this.debounce) {\n clearTimeout(this.debounce);\n this.debounce = null;\n }\n\n this.debounce = setTimeout(() => {\n if (!element.classList.contains('slick-initialized')){\n currentSize = this.getMediaQuery(currentSize);\n if(currentSize == reinitSize){\n this.mount(element, this.$options);\n }\n }\n }, 300);\n\n }, window);\n }\n\n getMediaQuery(currentSize){\n if (match('medium', 'small')) {\n currentSize = 'small';\n } else if (match('large', 'medium')) {\n currentSize = 'medium';\n } else if (match(null, 'large')) {\n currentSize = 'large';\n }\n return currentSize;\n }\n\n updateData() {\n const carousel = this.container.querySelector('.js-update-data');\n if (carousel) {\n const currentSlide = carousel.querySelector('.slick-slide.slick-current');\n const imageSize = currentSlide.querySelector('.slide').getAttribute('data-attribute-imagesize');\n\n const size = this.container.querySelector('.js-update-image-size');\n if( size && imageSize ) size.innerHTML = imageSize;\n \n }\n }\n\n}\n"],"sourceRoot":""}