Guest User

Untitled

a guest
Oct 19th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. import metadata from './utils/metadata';
  2. import hammer from './utils/hammer';
  3. import debounce from '../tools/debounce';
  4. import {nextHandler, previousHandler, step} from './utils/moves';
  5. import {onResizeThrottler} from '../tools/throttler';
  6.  
  7. const initializeDimensions = metadata => {
  8. resizeTitleHeights(metadata.com.titleList);
  9. adjustSlideWidth(metadata);
  10. metadata.wrapper.style.height = `${metadata.com.carousel.children[0].offsetHeight}px`;
  11. };
  12.  
  13. const resizeTitleHeights = titleList => {
  14. const titleArray = Array.from(titleList);
  15. const titleHeights = titleArray.map(title => title.offsetHeight);
  16. const greatestTitleHeight = titleHeights.sort()[titleHeights.length - 1];
  17.  
  18. titleArray.forEach(title => title.style.height = greatestTitleHeight + 'px');
  19. };
  20.  
  21. const adjustSlideWidth = metadata => {
  22. metadata.slideWidth = window.innerWidth <= 1024
  23. ? metadata.gallery[0].children[0].children[0].width
  24. : window.innerWidth / metadata.numberOfSlides;
  25. step(metadata, 0);
  26. };
  27.  
  28. const addEventListeners = carouselData => {
  29. const {com} = carouselData;
  30.  
  31. com.leftArrow.addEventListener('click', debounce(150, () => previousHandler(carouselData)));
  32. com.rightArrow.addEventListener('click', debounce(150, () => nextHandler(carouselData)));
  33. };
  34.  
  35. const initialize = metadata => {
  36. metadata.com.carousel.children[metadata.active].classList.add('active');
  37. addEventListeners(metadata);
  38. hammer(metadata);
  39. initializeDimensions(metadata);
  40. onResizeThrottler(() => initializeDimensions(metadata), 500);
  41. };
  42.  
  43. export default element => initialize(metadata(element));
Add Comment
Please, Sign In to add comment