Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

70 строки
2.6 KiB

  1. import './eventteaserlargeslider.scss';
  2. import {createElement} from "../../_global/scripts/helpers";
  3. import $ from 'jquery';
  4. import {createButton} from "../../atoms/button/ButtonComponent";
  5. import IHKETLSlider from "./eventteaserlargeslider";
  6. import {sliderData} from "./EventTeaserLargeSliderData";
  7. export const createETLSlider =
  8. ({
  9. slides = sliderData,
  10. widemode = true,
  11. moreCta = {
  12. label: 'Mehr erfahren',
  13. target: '_self',
  14. },
  15. headline = 'Premium Seminare',
  16. }) => {
  17. const section = createElement('section', ['rotation'], null);
  18. const hcontainer = createElement('div', ['container'], null, section);
  19. const container = createElement('div', ['container', 'right-open-container'], null, section);
  20. if (headline && headline.length > 0) {
  21. createElement('h1', [], headline, hcontainer);
  22. }
  23. const sliderComponent = createElement('div', ['eventteaserlargeslider'], null, container);
  24. slides.map((slideData, index) => {
  25. const slide = createElement('div', ['slide'], null, sliderComponent);
  26. const outer = createElement('outer', ['outer'], null, slide);
  27. const a = createElement('a', ['event-teaser-large'], null, outer);
  28. if (widemode) {
  29. a.classList.add('widemode');
  30. }
  31. const blueBox = createElement('div', ['blue-box'], null, a);
  32. const textBox = createElement('div', ['text-box', 'date-wrapper'], null, a);
  33. createElement('div', ['icon-box', 'pictogram-' + slideData.icon.toLowerCase().split(' ').join('-')], null, blueBox);
  34. createElement('p', ['ev-title'], slideData.title, blueBox);
  35. createElement('p', ['ev-cat'], slideData.category, blueBox);
  36. createElement('p', ['ev-desc'], slideData.desc, textBox);
  37. const detailBox = createElement('div', ['detail-box'], null, textBox);
  38. if (slideData.details) {
  39. for (const [key, value] of Object.entries(slideData.details)) {
  40. if (typeof value === 'string') {
  41. createElement('div', [key], value, detailBox);
  42. } else if (typeof value === 'object') {
  43. createElement('div', [key, value.type], value.label, detailBox);
  44. }
  45. }
  46. }
  47. if (moreCta) {
  48. detailBox.appendChild(createButton({
  49. label: moreCta.label,
  50. link: slideData.link,
  51. color: 'primary',
  52. size: 'small',
  53. }))
  54. }
  55. if (slideData.bgimage && slideData.bgimage .length > 0) {
  56. blueBox.style = 'background-image: url(' + slideData.bgimage + ');';
  57. blueBox.classList.add('background-image');
  58. }
  59. a.href = slideData.link;
  60. })
  61. new IHKETLSlider($(section));
  62. return section;
  63. }