chore(release): obfuscate and hash production assets [skip ci]
This commit is contained in:
@@ -1,210 +0,0 @@
|
||||
(function () {
|
||||
"use strict";
|
||||
const CONSENT_COOKIE_NAME = "hexahost_cookie_consent";
|
||||
const CONSENT_DAYS = 365;
|
||||
const cookieBanner = document.getElementById("cookieConsent");
|
||||
const settingsPanel = document.getElementById("cookieSettingsPanel");
|
||||
const acceptAllButton = document.getElementById("cookieAcceptAll");
|
||||
const acceptEssentialButton = document.getElementById("cookieAcceptEssential");
|
||||
const settingsButton = document.getElementById("cookieSettings");
|
||||
const saveSettingsButton = document.getElementById("cookieSaveSettings");
|
||||
const closeSettingsButton = document.getElementById("cookieCloseSettings");
|
||||
const analyticsCheckbox = document.getElementById("cookieAnalytics");
|
||||
const marketingCheckbox = document.getElementById("cookieMarketing");
|
||||
const cookieStore = {
|
||||
set: function (name, value, days) {
|
||||
const expiresDate = new Date();
|
||||
expiresDate.setTime(expiresDate.getTime() + days * 24 * 60 * 60 * 1000);
|
||||
const expiresString = "expires=" + expiresDate.toUTCString();
|
||||
document.cookie = name + "=" + JSON.stringify(value) + ";" + expiresString + ";path=/;SameSite=Lax;Secure";
|
||||
},
|
||||
get: function (name) {
|
||||
const prefix = name + "=";
|
||||
const cookies = document.cookie.split(";");
|
||||
for (let index = 0; index < cookies.length; index++) {
|
||||
let cookie = cookies[index].trim();
|
||||
if (cookie.indexOf(prefix) === 0) {
|
||||
try {
|
||||
return JSON.parse(cookie.substring(prefix.length));
|
||||
} catch (parseError) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
},
|
||||
delete: function (name) {
|
||||
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/;";
|
||||
}
|
||||
};
|
||||
const cookieConsentManager = {
|
||||
defaultConsent: {
|
||||
essential: true,
|
||||
analytics: false,
|
||||
marketing: false,
|
||||
timestamp: null
|
||||
},
|
||||
init: function () {
|
||||
if (!cookieBanner) {
|
||||
return;
|
||||
}
|
||||
const storedConsent = this.getConsent();
|
||||
if (storedConsent && storedConsent.timestamp) {
|
||||
this.hideBanner();
|
||||
this.applyConsent(storedConsent);
|
||||
} else {
|
||||
this.showBanner();
|
||||
}
|
||||
this.bindEvents();
|
||||
},
|
||||
bindEvents: function () {
|
||||
if (acceptAllButton) {
|
||||
acceptAllButton.addEventListener("click", () => this.acceptAll());
|
||||
}
|
||||
if (acceptEssentialButton) {
|
||||
acceptEssentialButton.addEventListener("click", () => this.acceptEssential());
|
||||
}
|
||||
if (settingsButton) {
|
||||
settingsButton.addEventListener("click", () => this.showSettings());
|
||||
}
|
||||
if (saveSettingsButton) {
|
||||
saveSettingsButton.addEventListener("click", () => this.saveSettings());
|
||||
}
|
||||
if (closeSettingsButton) {
|
||||
closeSettingsButton.addEventListener("click", () => this.hideSettings());
|
||||
}
|
||||
document.addEventListener("keydown", event => {
|
||||
if (event.key === "Escape" && settingsPanel && settingsPanel.style.display !== "none") {
|
||||
this.hideSettings();
|
||||
}
|
||||
});
|
||||
},
|
||||
acceptAll: function () {
|
||||
const allConsent = {
|
||||
essential: true,
|
||||
analytics: true,
|
||||
marketing: true,
|
||||
timestamp: new Date().toISOString()
|
||||
};
|
||||
this.saveConsent(allConsent);
|
||||
this.hideBanner();
|
||||
this.applyConsent(allConsent);
|
||||
this.showNotification("Alle Cookies wurden akzeptiert.", "success");
|
||||
},
|
||||
acceptEssential: function () {
|
||||
const essentialConsent = {
|
||||
essential: true,
|
||||
analytics: false,
|
||||
marketing: false,
|
||||
timestamp: new Date().toISOString()
|
||||
};
|
||||
this.saveConsent(essentialConsent);
|
||||
this.hideBanner();
|
||||
this.applyConsent(essentialConsent);
|
||||
this.showNotification("Nur notwendige Cookies wurden akzeptiert.", "info");
|
||||
},
|
||||
saveSettings: function () {
|
||||
const customConsent = {
|
||||
essential: true,
|
||||
analytics: analyticsCheckbox ? analyticsCheckbox.checked : false,
|
||||
marketing: marketingCheckbox ? marketingCheckbox.checked : false,
|
||||
timestamp: new Date().toISOString()
|
||||
};
|
||||
this.saveConsent(customConsent);
|
||||
this.hideSettings();
|
||||
this.hideBanner();
|
||||
this.applyConsent(customConsent);
|
||||
this.showNotification("Cookie-Einstellungen wurden gespeichert.", "success");
|
||||
},
|
||||
saveConsent: function (consent) {
|
||||
cookieStore.set(CONSENT_COOKIE_NAME, consent, CONSENT_DAYS);
|
||||
},
|
||||
getConsent: function () {
|
||||
return cookieStore.get(CONSENT_COOKIE_NAME);
|
||||
},
|
||||
applyConsent: function (consent) {
|
||||
const eventPayload = {
|
||||
detail: consent
|
||||
};
|
||||
window.dispatchEvent(new CustomEvent("cookieConsentUpdated", eventPayload));
|
||||
if (consent.analytics) {
|
||||
this.enableAnalytics();
|
||||
} else {
|
||||
this.disableAnalytics();
|
||||
}
|
||||
if (consent.marketing) {
|
||||
this.enableMarketing();
|
||||
} else {
|
||||
this.disableMarketing();
|
||||
}
|
||||
},
|
||||
enableAnalytics: function () {
|
||||
console.log("Analytics enabled");
|
||||
},
|
||||
disableAnalytics: function () {
|
||||
console.log("Analytics disabled");
|
||||
},
|
||||
enableMarketing: function () {
|
||||
console.log("Marketing enabled");
|
||||
},
|
||||
disableMarketing: function () {
|
||||
console.log("Marketing disabled");
|
||||
},
|
||||
showBanner: function () {
|
||||
if (cookieBanner) {
|
||||
cookieBanner.classList.remove("hide");
|
||||
cookieBanner.classList.add("show");
|
||||
cookieBanner.setAttribute("aria-hidden", "false");
|
||||
setTimeout(() => {
|
||||
if (acceptAllButton) {
|
||||
acceptAllButton.focus();
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
},
|
||||
hideBanner: function () {
|
||||
if (cookieBanner) {
|
||||
cookieBanner.classList.remove("show");
|
||||
cookieBanner.classList.add("hide");
|
||||
cookieBanner.setAttribute("aria-hidden", "true");
|
||||
}
|
||||
},
|
||||
showSettings: function () {
|
||||
if (settingsPanel) {
|
||||
const savedConsent = this.getConsent() || this.defaultConsent;
|
||||
if (analyticsCheckbox) {
|
||||
analyticsCheckbox.checked = savedConsent.analytics;
|
||||
}
|
||||
if (marketingCheckbox) {
|
||||
marketingCheckbox.checked = savedConsent.marketing;
|
||||
}
|
||||
settingsPanel.style.display = "block";
|
||||
settingsPanel.setAttribute("aria-hidden", "false");
|
||||
}
|
||||
},
|
||||
hideSettings: function () {
|
||||
if (settingsPanel) {
|
||||
settingsPanel.style.display = "none";
|
||||
settingsPanel.setAttribute("aria-hidden", "true");
|
||||
}
|
||||
},
|
||||
showNotification: function (message, type) {
|
||||
if (window.HexaHost && typeof window.HexaHost.showNotification === "function") {
|
||||
window.HexaHost.showNotification(message, type);
|
||||
}
|
||||
},
|
||||
resetConsent: function () {
|
||||
cookieStore.delete(CONSENT_COOKIE_NAME);
|
||||
this.showBanner();
|
||||
if (settingsPanel) {
|
||||
settingsPanel.style.display = "none";
|
||||
}
|
||||
}
|
||||
};
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", () => cookieConsentManager.init());
|
||||
} else {
|
||||
cookieConsentManager.init();
|
||||
}
|
||||
window.CookieConsent = cookieConsentManager;
|
||||
})();
|
||||
Reference in New Issue
Block a user