https://www.ep-e.com/wp-content/themes/epe/assets/js/cookieconsent/cookieconsent-config.js?ver=3.0.1
1document.documentElement.classList.add("cc--custom", "cc--darkmode"); 2 3// Get the script's current directory 4const script = 5 document.currentScript || 6 document.querySelector('script[src*="cookieconsent-config.js"]'); 7const scriptSrc = script.getAttribute("src"); 8const baseUrl = scriptSrc.substring(0, scriptSrc.lastIndexOf("/") + 1); 9 10// Set paths for external files dynamically 11const translationsPath = { 12 de: `${baseUrl}de.json`, 13 en: `${baseUrl}en.json`, 14}; 15const trackingIDPath = `${baseUrl}trackingID.json`; 16 17// Load the tracking ID from the JSON file 18fetch(trackingIDPath) 19 .then((response) => response.json()) 20 .then((data) => { 21 const trackingID = data.trackingID; 22 23 const im = iframemanager(); 24 25 CookieConsent.run({ 26 cookie: { 27 name: "cc_cookie", 28 }, 29 guiOptions: { 30 consentModal: { 31 layout: "cloud inline", 32 position: "bottom center", 33 }, 34 preferencesModal: { 35 layout: "box", 36 }, 37 }, 38 onFirstAction: function (user_preferences, cookie) { 39 im.run({ services: user_preferences.acceptedServices }); 40 }, 41 onAccept: function (cookie) { 42 im.run({ services: cc.getUserPreferences().acceptedServices }); 43 }, 44 onChange: function (cookie, changed_preferences) { 45 im.run({ services: changed_preferences }); 46 }, 47 categories: { 48 necessary: { 49 enabled: true, 50 readOnly: true, 51 }, 52 analytics: { 53 autoClear: { 54 cookies: [{ name: /^_ga/ }, { name: "_gid" }], 55 }, 56 services: { 57 ga: { 58 label: "Google Analytics", 59 onAccept: () => { 60 var script = document.createElement("script"); 61 script.src = `https://www.googletagmanager.com/gtag/js?id=${trackingID}`; 62 script.async = true; 63 script.onload = function () { 64 window.dataLayer = window.dataLayer || []; 65 function gtag() { 66 dataLayer.push(arguments); 67 } 68 gtag("js", new Date()); 69 gtag("config", trackingID); 70 }; 71 document.head.appendChild(script); 72 }, 73 onReject: () => { 74 window[`ga-disable-${trackingID}`] = true; // Disables GA 75 }, 76 }, 77 }, 78 }, 79 iframes: { 80 autoClear: { 81 cookies: [{ name: "im_youtube" }], 82 }, 83 label: "Embedded Content", 84 description: "Cookies for embedded content such as YouTube videos.", 85 services: { 86 youtube: { 87 label: "YouTube", 88 onAccept: () => im.acceptService("youtube"), 89 onReject: () => im.rejectService("youtube"), 90 }, 91 }, 92 }, 93 }, 94 onChange: ({ changedCategories, changedServices }) => { 95 if (changedCategories.includes("analytics")) { 96 if (CookieConsent.acceptedCategory("analytics")) { 97 // Possibly re-invoke analytics initialization if needed 98 } else { 99 // Disable analytics if previously enabled 100 window[`ga-disable-${trackingID}`] = true; // Ensure GA is disabled when analytics category is disabled 101 } 102 } 103 }, 104 language: { 105 default: "en", 106 autoDetect: "document", 107 translations: translationsPath, 108 }, 109 }); 110 111 im.run({ 112 onChange: ({ changedServices, eventSource }) => { 113 if (eventSource.type === "click") { 114 const servicesToAccept = [ 115 ...CookieConsent.getUserPreferences().acceptedServices["youtube"], 116 ...changedServices, 117 ]; 118 119 CookieConsent.acceptService(servicesToAccept, "youtube"); 120 } 121 }, 122 currLang: "en", 123 autoLang: true, 124 services: { 125 youtube: { 126 embedUrl: "https://www.youtube-nocookie.com/embed/{data-id}", 127 thumbnailUrl: "https://i3.ytimg.com/vi/{data-id}/hqdefault.jpg", 128 iframe: { 129 allow: 130 "accelerometer; encrypted-media; gyroscope; picture-in-picture; fullscreen;", 131 }, 132 languages: { 133 en: { 134 notice: 135 'This content is hosted by a third party. By showing the external
135content you accept the <a rel="noreferrer noopener" href="https://www.youtube.com/t/terms" target="_blank">terms and conditions</a> of youtube.com.', 136 loadAllBtn: "Accept and Load", 137 }, 138 de: { 139 notice: 140 'Dieser Inhalt wird von einem Drittanbieter gehostet. Durch das Anzeigen der externen Inhalte akzeptieren Sie die <a rel="noreferrer noopener" href="https://www.youtube.com/t/terms" target="_blank">Nutzungsbedingungen</a> von youtube.com.', 141 loadAllBtn: "Akzeptieren und Laden", 142 }, 143 }, 144 }, 145 }, 146 }); 147 });
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.