You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

50 rivejä
1.9 KiB

  1. import './infobox.scss';
  2. import {createElement, createImage} from "../../_global/scripts/helpers";
  3. import {createButton} from "../../atoms/button/ButtonComponent";
  4. import {createBlockquote} from "../../atoms/blockquote/BlockquoteComponent";
  5. export const createInfobox =
  6. ({
  7. type = 'regular',
  8. full = false,
  9. kicker = 'Dachzeile',
  10. headline = 'Dies ist eine Zwischenheadline mit der Maximalbefüllung von 80 Zeichen.',
  11. image = './dummy/placeholder-1-1.svg',
  12. text = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.',
  13. ul = 'List Styles werden über externe Klasse Richtext geladen',
  14. ol = 'Lorem ipsum dolor sit',
  15. }) => {
  16. const infobox = createElement('div', ['infobox', type]);
  17. const content = createElement('div', ['infobox--content'], null, infobox);
  18. if (full === true) {
  19. createElement('p', ['kicker'], kicker, content);
  20. createElement('div', ['like-h2'], headline, content);
  21. }
  22. createElement('p', [], text, content);
  23. if (full === true) {
  24. const ulEl = createElement('ul', [], null, content);
  25. createElement('li', [], ul, ulEl);
  26. const olEl = createElement('ol', [], null, content);
  27. createElement('li', [], ol, olEl);
  28. content.appendChild(createBlockquote({}));
  29. let button;
  30. if (type === 'secondary') {
  31. button = createButton({
  32. color: 'primary', label: 'Label'
  33. });
  34. } else {
  35. button = createButton({
  36. color: 'secondary', label: 'Label'
  37. });
  38. }
  39. content.appendChild(button);
  40. createImage(image, 70, 70, '', [], infobox);
  41. }
  42. return infobox;
  43. }