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

46 рядки
1.6 KiB

  1. import './event-teaser-large.scss';
  2. import {createElement} from "../../_global/scripts/helpers";
  3. import {EventTeaserLargeData} from "./EventTeaserLargeData";
  4. import {createButton} from "../../atoms/button/ButtonComponent";
  5. export const createEventTeaserLarge = ({
  6. event = EventTeaserLargeData,
  7. moreCta = {
  8. label: 'Mehr erfahren',
  9. target: '_self',
  10. },
  11. }) => {
  12. const a = createElement('a', ['event-teaser-large']);
  13. const blueBox = createElement('div', ['blue-box'], null, a);
  14. const textBox = createElement('div', ['text-box', 'date-wrapper'], null, a);
  15. createElement('div', ['icon-box', 'pictogram-' + event.icon.toLowerCase().split(' ').join('-')], null, blueBox);
  16. createElement('p', ['ev-title'], event.title, blueBox);
  17. createElement('p', ['ev-cat'], event.category, blueBox);
  18. createElement('p', ['ev-desc'], event.desc, textBox);
  19. const detailBox = createElement('div', ['detail-box'], null, textBox);
  20. if (event.details) {
  21. for (const [key, value] of Object.entries(event.details)) {
  22. if (typeof value === 'string') {
  23. createElement('div', [key], value, detailBox);
  24. } else if (typeof value === 'object') {
  25. createElement('div', [key, value.type], value.label, detailBox);
  26. }
  27. }
  28. }
  29. if (moreCta) {
  30. detailBox.appendChild(createButton({
  31. label: moreCta.label,
  32. link: event.link,
  33. color: 'primary-light',
  34. size: 'small',
  35. }))
  36. }
  37. if (event.bgimage && event.bgimage .length > 0) {
  38. blueBox.style = 'background-image: url(' + event.bgimage + ');';
  39. blueBox.classList.add('background-image');
  40. }
  41. a.href = event.link;
  42. return a;
  43. }