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

88 строки
2.5 KiB

  1. import $ from 'jquery';
  2. import {createHeader} from "../../components/header/HeaderComponent";
  3. import {createFooter} from "../../components/footer/FooterComponent";
  4. import {createPageDetails} from "../../components/page-details/PageDetailsComponent";
  5. import IHKSidebar from "./sidebar";
  6. export function createElement(tag, classes = [], content = '', parentElement = null) {
  7. const el = document.createElement(tag);
  8. el.innerHTML = content;
  9. classes.map((c) => {
  10. el.classList.add(c);
  11. })
  12. if (parentElement) {
  13. parentElement.appendChild(el);
  14. }
  15. return el;
  16. }
  17. export function createImage(src = '', width = 0, height = 0, alt = '', classes = [], parentElement = null, loading = 'lazy') {
  18. const img = new Image();
  19. img.src = src;
  20. img.width = width;
  21. img.height = height;
  22. img.loading = loading;
  23. img.classList.add('loading');
  24. classes.map((c) => {
  25. img.classList.add(c);
  26. });
  27. if (parentElement) {
  28. parentElement.appendChild(img);
  29. }
  30. img.addEventListener('load', (e) => {
  31. img.classList.add('loaded');
  32. img.classList.remove('loading');
  33. });
  34. return img;
  35. }
  36. export const createSidebarPage = ({
  37. addPageDetails = true,
  38. breadcrumb = ['Start', 'Beratung und Service', 'Finanzierung digitaler Projekte'],
  39. }) => {
  40. const page = createElement('div', ['page']);
  41. const header = createHeader({});
  42. const wrapper = createElement('div', ['page-wrapper'], null, page);
  43. const pageContent = createElement('div', ['page-content', 'has-sidebar'], null, wrapper);
  44. const container = createElement('div', ['container'], null, pageContent);
  45. const row = createElement('div', ['row'], null, container);
  46. const main = createElement('main', ['main-col'], null, row);
  47. const aside = createElement('aside', ['sidebar'], null, row);
  48. const footer = createFooter({});
  49. if (addPageDetails) {
  50. const pageDetails = createPageDetails({breadcrumb: breadcrumb});
  51. wrapper.insertBefore(pageDetails, pageContent);
  52. }
  53. page.insertBefore(header, wrapper);
  54. page.appendChild(footer);
  55. main.id = 'main';
  56. main.role = 'main';
  57. aside.id = 'sidebar';
  58. aside.role = 'complementary';
  59. new IHKSidebar($(aside));
  60. return {
  61. page: page,
  62. main: main,
  63. aside: aside,
  64. }
  65. }
  66. export function getUrlVars(url = window.location.href) {
  67. let vars = {};
  68. url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m, key, value) {
  69. vars[key] = value;
  70. });
  71. return vars;
  72. }
  73. export function formatNumber(num, decimals) {
  74. return new Intl.NumberFormat('de-DE',{
  75. minimumFractionDigits: decimals,
  76. maximumFractionDigits: decimals,
  77. }).format(num);
  78. }