{"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","prevArrow","nextArrow","$","this","find","setTimeout","slick","_objectSpread","BASE_CONF","GRAB","CUSTOM_MESSAGES","CAROUSEL_EVENTS","goToSlide","msg","carousel","querySelector","currentSlideIndex","getAttribute","parseInt","slide","force","on","event","_","refreshCurrentSlideOnImageLoad","updateData","currentSlide","nextSlide","autoplay","refreshingCurrentSlide","document","dispatchEvent","Event","$countWrapper","$currentIndex","$totoalCount","textContent","String","padStart","slideCount","currentSize","_this3","reinitSize","dataset","initAfterResize","$on","clearTimeout","classList","contains","getMediaQuery","window","match","currentImage","slidesNumber","querySelectorAll","length","imageIndex","imageSize","imageCaption","imageSrc","slidesTotal","index","size","caption","download","innerHTML","setAttribute","downloadUrl","forEach","carouselWithCounter","carouselTotalSlideNumber","carouselCurrentSlideNumber","currentCountElement","parentElement","totalCountElement","timeoutID","self","$slider","each","onload","changeSlide","data","message","BaseComponent"],"mappings":"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","file":"js/component-CarouselComponentSlick-js.chunks.js","sourcesContent":["import BaseCarouselSlick from '../abstracts/BaseCarouselSlick';\n\nconst debug = false;\n\nexport default class CarouselComponentSlick extends BaseCarouselSlick {\n  \n  constructor(element) {\n    super(element);\n    debug && console.log('CarouselComponentSlick', 'this.$el', this.$el);\n\n    this.mount(this.$el, this.$options);\n  }\n  \n}","import 'slick-carousel/slick/slick.js';\n// import 'jquery/dist/jquery.js';\n// import './slick';\n\nimport BaseComponent from './BaseComponent';\n\nimport { match } from '../utilities/ResolutionHandler';\n\nconst debug = false;\n\nexport default class BaseCarouselSlick extends BaseComponent {\n  get BASE_CONF() {\n    return {\n    };\n  }\n\n  constructor(element) {\n    debug && 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    debug && 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    // let other components (eg: Spotlight) add event listeners (eg: init)\n    setTimeout(() => $(element).slick({\n      ...this.BASE_CONF,\n      ...options\n    }), 10);\n\n    this.GRAB(this.CUSTOM_MESSAGES.CAROUSEL_EVENTS.goToSlide, (msg) => {\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) || msg.force) {\n          // document.dispatchEvent(new Event('image-changes'));\n          $(element).slick('slickGoTo', msg.slide);\n        }\n      }\n    });\n\n    // PITTI20-1277\n    // this.updateData();\n    $(element).on('init', (event, _) => {\n        debug && console.log('BaseCarouselSlick init');\n\n        this.refreshCurrentSlideOnImageLoad(_);\n\n        // PITTI20-1277\n        this.updateData();\n    });\n\n    /*\n    $(element).on('lazyLoaded', () => {\n        debug && console.log('BaseCarouselSlick lazyLoaded');\n\n        document.dispatchEvent(new Event('image-changes'));\n    });\n\n    $(element).on('allImagesLoaded', () => {\n        debug && console.log('BaseCarouselSlick allImagesLoaded');\n\n        document.dispatchEvent(new Event('image-changes'));\n    });\n    */\n\n    $(element).on('afterChange', (event, slick, currentSlide, nextSlide) => {\n        debug && console.log('BaseCarouselSlick afterChange');\n\n        // PITTI20-1277\n        this.updateData();\n\n        // PITTI20-1471\n        // !this.refreshingCurrentSlide && document.dispatchEvent(new Event('image-changes'));\n        !this.$options.autoplay && !this.refreshingCurrentSlide && document.dispatchEvent(new Event('image-changes'));\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    debug && console.log('BaseCarouselSlick updateData');\n    const carousel = this.container.querySelector('.js-update-data');\n\n    // PITTI20-1277\n    const currentSlide = carousel && carousel.querySelector('.slick-slide.slick-current');\n    const currentImage = currentSlide && currentSlide.querySelector('.slide');\n    if (currentImage) {\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 = this.container.querySelector('.js-slides-total');\n        const index = this.container.querySelector('.js-image-index')\n        const size = this.container.querySelector('.js-image-size');\n        const caption = this.container.querySelector('.js-image-caption');\n        const download = this.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    //Focus on carousel update counter\n    const carouselWithCounterArray = this.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  // PITTI20-1080 workaround for https://support.cloudinary.com/hc/en-us/community/posts/360042965232-Images-loaded-callback-\n  refreshCurrentSlideOnImageLoad(_) {\n    var self = this;\n    var timeoutID;\n    $('img', _.$slider).each(function() {\n      this.onload = function() {\n        debug && console.log('BaseCarouselSlick img onload');\n\n        timeoutID && clearTimeout(timeoutID);\n        timeoutID = setTimeout(() => {\n          debug && console.log('BaseCarouselSlick changeSlide');\n\n          self.refreshingCurrentSlide = true;\n          _.changeSlide({\n              data: {\n                  message: 'index',\n                  index: parseInt(_.currentSlide)\n              }\n          }, true);\n          self.refreshingCurrentSlide = false;\n        }, 250);\n      };\n    });\n  }\n\n}\n"],"sourceRoot":""}