Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 

56 rader
2.1 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 variantMap = {
  17. 'secondary': 'variant-subtle-primary',
  18. };
  19. const variant = variantMap[type] ?? 'variant-subtle-secondary';
  20. const infobox = createElement('div', ['infobox', type, variant]);
  21. const content = createElement('div', ['infobox--content'], null, infobox);
  22. if (full === true) {
  23. createElement('p', ['kicker'], kicker, content);
  24. createElement('div', ['like-h2'], headline, content);
  25. }
  26. createElement('p', [], text, content);
  27. if (full === true) {
  28. const ulEl = createElement('ul', [], null, content);
  29. createElement('li', [], ul, ulEl);
  30. const olEl = createElement('ol', [], null, content);
  31. createElement('li', [], ol, olEl);
  32. content.appendChild(createBlockquote({
  33. author: ''
  34. }));
  35. let button;
  36. if (type === 'secondary') {
  37. button = createButton({
  38. color: 'primary', label: 'Label'
  39. });
  40. } else {
  41. button = createButton({
  42. color: 'secondary', label: 'Label'
  43. });
  44. }
  45. content.appendChild(button);
  46. createElement('div', ['icon-box', icon], null, infobox);
  47. }
  48. return infobox;
  49. }