1"use strict";if("PushManager"in window){var webpushBell,webpushDeniedInfo,webpushPopupLink,popupContainer,classes={hide:"-hide",active:"-active",popupLock:"js__popupTrigger--lock"};getCookieConsents().functional?"loading"===document.readyState?document.addEventListener("DOMContentLoaded",webpushInit):webpushInit():addFunction(webpushInit,"functional")}function webpushInit(){webpushBell=document.querySelector("#js__webpushBell"),webpushDeniedInfo=document.querySelector(".js__webpushBell__info"),webpushPopupLink=document.querySelector(".js__webpushBell__popupLink"),popupContainer=document.querySelector("#js__popupContainer"),checkPermission().then((e=>{popupContainer.addEventListener("click",(e=>{e.target&&"object"==typeof e.target&&("js__webpushEnableButton"===e.target.id||e.target.closest("#js__webpushEnableButton"))&&(setCookie("webpush_modal","true","functional"),popupClose(),askPermission().then(subscribeUser))}),!0);const s=document.querySelectorAll(".js__connectionStatus");s.length&&(window.addEventListener("online",(()=>{handleNetworkChange(s)})),window.addEventListener("offline",(()=>{handleNetworkChange(s)})))}))}async function checkPermission(){const e=await getNotificationPermissionState();if(setCookie("webpush_permission",e,"functional")&&"granted"!==e&&webpushBell)if(webpushBell.classList.remove("-hide"),"denied"===e&&webpushDeniedInfo)webpushDeniedInfo.classList.remove(classes.hide),lockMessageEvent();else if(webpushPopupLink&&popupContainer){webpushPopupLink.classList.remove(classes.hide),popupContainer.addEvent("click",popupClose),popupOpen("js__popupTrigger");getCookieConsents().functional?webpushPopupTimeout():addFunction(webpushPopupTimeout,"functional")}}async function getNotificationPermissionState(){return navigator.permissions?navigator.permissions.query({name:"notifications"}).then((e=>e.state)):new Promise((e=>{e(Notification.permission)}))}function askPermission(){return new Promise((function(e,s){const n=Notification.requestPermission((function(s){e(s)}));n&&n.then(e,s)})).then((function(e){if(setCookie("webpush_modal","true","functional"),setCookie("webpush_permission",e,"functional"),"granted"===e)return updateWebpushBell("hide"),!0;if("denied"===e)return updateWebpushBell("lock"),!1;throw new Error("Push permission not granted.")}))}function subscribeUser(){return navigator.serviceWorker.ready.then((function(e){const s=$("js_webpush_config"),n=JSON.parse(s.innerText).webpush.public_key;return n?e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:urlBase64ToUint8Array(n)}):(console.error("Could not find the Web Push public key!"),!1)})).then((function(e){const s=document.querySelector("#js__webpushMessage");return s&&(s.classList.remove(classes.hide),s.classList.add(classes.active)),console.log("Received PushSubscription: ",JSON.stringify(e)),saveSubscription(e)}))}function saveSubscription(e){return fetch("api/webpush/subscribe/",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then((function(e){if(!e.ok||200!==e.status)throw new Error(`Server responded with status code ${e.status}`);return e.json()})).then((function(e){if(!e.status||"ok"!==e.status)throw new Error(e.message)}))}function urlBase64ToUint8Array(e){const s=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),n=window.atob(s);return Uint8Array.from([...n].map((e=>e.charCodeAt(0))))}function handleNetworkChange(e){e=[...e],navigator.onLine?(document.body.classList.remove("-offline"),connectionStatusMessage(e,"online")):(document.body.classList.add("-offline"),connectionStatusMessage(e,"offline"))}function connectionStatusMessage(e,s){const n="-hide",t="-animate";e.map((e=>{e.getAttribute("data-status")===s?(e.classList.remove(n),e.classList.add(t)):(e.classList.remove(t),e.classList.add(n))}))}function updateWebpushBell(e){webpushBell&&webpushPopupLink&&webpushDeniedInfo&&("hide"===e?(webpushBell.classList.add(classes.hide),webpushPopupLink.classList.add(classes.popupLock)):"lock"===e&&(webpushPopupLink.classList.add(classes.hide),webpushDeniedInfo.classList.remove(classes.hide),lockMessageEvent()))}function lockMessageEvent(){webpushBell&&webpushDeniedInfo&&webpushBell.addEventListener("click",(()=>{webpushDeniedInfo.classList.toggle(classes.active)}))}function webpushPopupTimeout(){"PushManager"in window&&"serviceWorker"
1in navigator&&$("js__webpushBell")&&setTimeout((function(){const e=getCookie("webpush_permission");getCookie("webpush_modal")||(!e||"granted"!==e&&"denied"!==e)&&loadModule("webpush_modal",!0,1)}),1e4)}
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.