{"version":3,"file":"./cookie-prefs.bundle.mjs","mappings":"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","sources":["webpack://podwriter-web-app-js/./src/cookie-prefs.ts"],"sourcesContent":["// https://developer.matomo.org/guides/tracking-consent\nwindow.showCookieBanner = showCookieBanner;\nconst DEBUG = false;\nconst start = Date.now();\n(function init() {\n    if (Date.now() - start > 5000) {\n        console.log(\"Cookie banner not found, giving up\");\n        return;\n    }\n    const el = document.getElementById(\"cookie-banner\");\n    if (!el) {\n        setTimeout(init, 500);\n        return;\n    }\n    if (hasCookieBannerBeenUsed() ||\n        (!DEBUG && document.location.hostname === \"localhost\")) {\n        return;\n    }\n    _paq.push([\n        function () {\n            if (this.hasRememberedConsent()) {\n                return;\n            }\n            showCookieBanner();\n        },\n    ]);\n})();\nfunction storeCookieBannerUsed() {\n    const oneYearFromNow = Date.now() + 31536000000;\n    const expires = new Date(oneYearFromNow).toUTCString();\n    let domain = \"\";\n    switch (document.location.hostname) {\n        case \"localhost\":\n            break;\n        case \"podwriter.io\":\n            domain = \".podwriter.io\";\n            break;\n        case \"transcripts.cloud\":\n            domain = \".transcripts.cloud\";\n            break;\n        default:\n            console.warn(\"Unknown domain for cookie banner usage\");\n            return;\n    }\n    document.cookie = `cookie_banner_used=true; domain=${domain}; path=/; expires=${expires}`;\n}\nfunction hasCookieBannerBeenUsed() {\n    return document.cookie.includes(\"cookie_banner_used=true\");\n}\nfunction showCookieBanner() {\n    const cookieBanner = document.getElementById(\"cookie-banner\");\n    cookieBanner.classList.remove(\"hidden\");\n    cookieBanner.style.display = \"\";\n    const cookieSettingsButton = document.querySelector(\".cookie-settings\");\n    const cookieAllowButton = document.querySelector(\".cookie-allow\");\n    const cookieDenyButton = document.querySelector(\".cookie-deny\");\n    const settingsModal = document.getElementById(\"cookie-settings-modal\");\n    cookieAllowButton.addEventListener(\"click\", function () {\n        allowMatomoCookies();\n        cookieBanner.classList.add(\"hidden\");\n        settingsModal.close();\n    });\n    cookieDenyButton.addEventListener(\"click\", function () {\n        denyMatomoCookies();\n        cookieBanner.classList.add(\"hidden\");\n        settingsModal.close();\n    });\n    cookieSettingsButton.addEventListener(\"click\", function () {\n        openCookieSettings();\n    });\n    settingsModal.addEventListener(\"click\", function (event) {\n        if (event.target === this) {\n            this.close();\n        }\n    });\n    settingsModal\n        .querySelector(\"form\")\n        .addEventListener(\"submit\", function (event) {\n        event.preventDefault();\n        settingsModal.close();\n        if (hasCookieBannerBeenUsed()) {\n            cookieBanner.classList.add(\"hidden\");\n        }\n    });\n    settingsModal\n        .querySelector(\"#analytics-toggle\")\n        .addEventListener(\"change\", function (event) {\n        if (event.target.checked) {\n            allowMatomoCookies();\n        }\n        else {\n            denyMatomoCookies();\n        }\n    });\n    const items = [\"session\", \"language\", \"analytics\"];\n    for (const item of items) {\n        const sessionExplainer = document.getElementById(`${item}-explainer`);\n        sessionExplainer.addEventListener(\"click\", function () {\n            populateCookieInformation();\n            const details = document.getElementById(`${item}-explainer-details`);\n            details.classList.toggle(\"hidden\");\n        });\n    }\n}\nfunction allowMatomoCookies() {\n    _paq.push([\"rememberCookieConsentGiven\"]);\n    storeCookieBannerUsed();\n}\nfunction denyMatomoCookies() {\n    _paq.push([\"forgetCookieConsentGiven\"]);\n    storeCookieBannerUsed();\n}\n// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nfunction openCookieSettings() {\n    const settingsModal = document.getElementById(\"cookie-settings-modal\");\n    settingsModal.showModal();\n    const saveButton = settingsModal.querySelector(\".save-button\");\n    saveButton.focus();\n    _paq.push([\n        function () {\n            const analyticsToggle = document.getElementById(\"analytics-toggle\");\n            analyticsToggle.checked =\n                document.cookie.includes(\"mtm_cookie_consent\") ||\n                    document.cookie.includes(\"mtm_consent\");\n        },\n    ]);\n}\nfunction cookieData() {\n    const data = {};\n    document.cookie.split(\";\").map(cookie => {\n        let [key, value] = cookie.split(\"=\");\n        key = key.trim();\n        value = value.trim();\n        data[key] = value;\n    });\n    return data;\n}\nfunction populateCookieInformation() {\n    const sessionStorageInformation = document.getElementById(\"session-storage-information\");\n    const languageStorageInformation = document.getElementById(\"language-storage-information\");\n    const analyticsStorageInformation = document.getElementById(\"analytics-storage-information\");\n    sessionStorageInformation.innerText = `Cookie key: podwriter:session\\nCookie value: ${cookieData()[\"podwriter:session\"]}`;\n    languageStorageInformation.innerText = `Cookie key: podwriter:language\\nCookie value: ${cookieData()[\"podwriter:language\"]}`;\n    let matomoInfo = \"\";\n    for (const [key, value] of Object.entries(cookieData())) {\n        if (key.startsWith(\"_pk_\") ||\n            key.startsWith(\"matomo_\") ||\n            key.startsWith(\"mtm_\")) {\n            matomoInfo += `Cookie key: ${key}\\nCookie value: ${value}\\n`;\n        }\n        analyticsStorageInformation.innerText = matomoInfo;\n    }\n}\n"],"names":["window","showCookieBanner","start","Date","now","storeCookieBannerUsed","oneYearFromNow","expires","toUTCString","domain","document","location","hostname","console","warn","cookie","hasCookieBannerBeenUsed","includes","cookieBanner","getElementById","classList","remove","style","display","cookieSettingsButton","querySelector","cookieAllowButton","cookieDenyButton","settingsModal","addEventListener","allowMatomoCookies","add","close","denyMatomoCookies","showModal","focus","_paq","push","checked","openCookieSettings","event","target","this","preventDefault","items","item","populateCookieInformation","toggle","cookieData","data","split","map","key","value","trim","sessionStorageInformation","languageStorageInformation","analyticsStorageInformation","innerText","matomoInfo","Object","entries","startsWith","init","log","hasRememberedConsent","setTimeout"],"sourceRoot":""}