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.
 
 
 
 

52 lines
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. icon = 'pictogram-tl_dr',
  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. author: ''
  30. }));
  31. let button;
  32. if (type === 'secondary') {
  33. button = createButton({
  34. color: 'primary', label: 'Label'
  35. });
  36. } else {
  37. button = createButton({
  38. color: 'secondary', label: 'Label'
  39. });
  40. }
  41. content.appendChild(button);
  42. createElement('div', ['icon-box', icon], null, infobox);
  43. }
  44. return infobox;
  45. }