Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 

71 рядки
2.9 KiB

  1. import './slider.scss';
  2. import {createElement, createImage} from "../../_global/scripts/helpers";
  3. import $ from 'jquery';
  4. import {createButton} from "../../atoms/button/ButtonComponent";
  5. import IHKSlider from "./slider";
  6. import {sliderData} from "./SliderData";
  7. export const createSlider =
  8. ({
  9. slides = sliderData,
  10. }) => {
  11. const section = createElement('section', ['rotation'], null);
  12. const container = createElement('div', ['container'], null, section);
  13. const sliderComponent = createElement('div', ['slider'], null, container);
  14. slides.map((slideData, index) => {
  15. const slide = createElement('div', ['slide'], null, sliderComponent);
  16. const outer = createElement('outer', ['outer'], null, slide);
  17. const contextBoxContent = slideData.context ? slideData.context : '';
  18. const contextBoxContentImg = slideData.contextImg ? slideData.contextImg : '';
  19. if (slideData.imageSrc && slideData.imageSrc.length > 0) {
  20. const imageBox = createElement('div', ['image-box'], null, outer);
  21. createImage(slideData.imageSrc, 900, 600, 'Slide ' + index, [], imageBox);
  22. if (slideData.copyright && slideData.copyright.length > 0) {
  23. createElement('span', ['copyright'], slideData.copyright, imageBox);
  24. }
  25. if (contextBoxContentImg) {
  26. const contentBoxImg = createElement('div', ['context-box', 'context-box--image'], null, imageBox);
  27. createImage(contextBoxContentImg, 200, 50, '', [], contentBoxImg);
  28. } else if (contextBoxContent) {
  29. createElement('div', ['context-box'], contextBoxContent, imageBox);
  30. }
  31. }
  32. const textBox = createElement('div', ['text-box'], null, outer);
  33. if (slideData.kicker && slideData.kicker.length > 0) {
  34. createElement('span', ['kicker'], slideData.kicker, textBox);
  35. }
  36. if (slideData.headline && slideData.headline.length > 0) {
  37. createElement('h3', ['like-h2'], slideData.headline, textBox);
  38. }
  39. if (slideData.kicker && slideData.kicker.length > 0) {
  40. createElement('p', [], slideData.copy, textBox);
  41. }
  42. if (slideData.cta && slideData.link) {
  43. const buttonP = createElement('p', [], '', textBox);
  44. const btn = createButton({
  45. color: 'white', icon: 'pfeil-simple-rechts', iconPosition: 'icon-right', label: slideData.cta
  46. });
  47. buttonP.appendChild(btn);
  48. }
  49. if (!slideData.imageSrc || slideData.imageSrc.length <= 0) {
  50. if (contextBoxContent) {
  51. textBox.classList.add('context');
  52. if (contextBoxContentImg) {
  53. const contentBox = createElement('div', ['context-box', 'context-box--image'], null, textBox);
  54. createImage(contextBoxContentImg, 200, 50, '', [], contentBox);
  55. } else if (contextBoxContent) {
  56. createElement('div', ['context-box'], contextBoxContent, textBox);
  57. }
  58. }
  59. }
  60. })
  61. new IHKSlider($(sliderComponent));
  62. return section;
  63. }