PageSourceSearch

https://obr.education/wp-content/plugins/cookie-consent/main-function-set.js?ver=1.4

js obr.education collected 2026-10-03 17:34:06 UTC 3,757 bytes, 125 lines download raw bytes

1const analytics = ["analytics_storage"]
2const marketing = ["ad_storage", "ad_user_data", "ad_personalization", "personalization_storage"]
3const required = ["functionality_storage", "security_storage"]
4let k
5
6function initialSet() {
7    const majorButton = document.querySelector(".cookie-wrapper .major-button")
8    const minorButton = document.querySelector(".cookie-wrapper .minor-button")
9
10    majorButton.addEventListener("click", acceptAll)
11    minorButton.addEventListener("click", () => {
12        openOptions(majorButton, minorButton)
13    }, { once: true });
14
15    toggleBanner()
16    createAccordions()
17
18    for (let button of document.querySelectorAll(".content-options .selector")) {
19        button.addEventListener("click", () => {
20            updateConsent(button.parentElement.parentElement, button.parentElement.parentElement.classList.contains("active"))
21            button.parentElement.parentElement.classList.toggle("active")
22        })
23    }
24}
25
26function updateConsent(optionElement, state) {
27
28    const consentObject = JSON.parse(localStorage.getItem("consent"))
29    const consentOption = optionElement.getAttribute("data-consent")
30    let consentArray
31
32    switch (consentOption) {
33        case "required":
34            consentArray = required
35            return;
36        case "analytics":
37            consentArray = analytics
38            break;
39        case "marketing":
40            consentArray = marketing
41            break;
42        default:
43            console.error("consentOption Broke")
44            break;
45    }
46
47    for (let option of consentArray) {
48
49        if (state)
50            consentObject[option] = "denied"
51        else
52            consentObject[option] = "granted"
53    }
54
55    localStorage.setItem("consent", JSON.stringify(consentObject))
56
57    setConsent("update", consentObject)
58
59}
60
61function changeAll(state) {
62    let consentObject = JSON.parse(localStorage.getItem("consent"))
63
64    for (let key in consentObject) {
65        if (key != "functionality_storage" && key != "security_storage")
66            consentObject[key] = state
67    }
68
69    localStorage.setItem("consent", JSON.stringify(consentObject))
70    setConsent("update", consentObject)
71    toggleBanner()
72}
73
74function acceptAll() {
75    changeAll("granted")
76}
77
78function denyAll() {
79    changeAll("denied")
80}
81
82function toggleBanner() {
83    document.querySelector(".cookie-wrapper").classList.toggle("active")
84}
85
86function createAccordions() {
87    for (let item of document.querySelectorAll(".accordion")) {
88        item.querySelector(".heading").addEventListener("click", () => {
89            toggleAccordion(item);
90        });
91    }
92}
93
94function toggleAccordion(parent) {
95    if (parent.classList.contains("active")) closeAccordion(parent);
96    else openAccordion(parent);
97}
98
99function openAccordion(parent) {
100    for (let item of document.querySelectorAll(".accordion")) {
101        closeAccordion(item);
102    }
103    let content = parent.querySelector(".content");
104    content.style.height = content.scrollHeight + "px";
105    parent.classList.add("active");
106}
107
108function closeAccordion(parent) {
109    let content = parent.querySelector(".content");
110    content.style.height = "0px";
111    parent.classList.remove("active");
112}
113
114function openOptions(majorButton, minorButton) {
115    majorButton.removeEventListener('click', acceptAll)
116
117    majorButton.innerText = document.getElementById("major-button-alt").innerText
118    majorButton.addEventListener("click", toggleBanner)
119
120    minorButton.innerText = document.getElementById("minor-button-alt").innerText
121    minorButton.addEventListener("click", denyAll)
122
123    document.querySelector(".cookie-wrapper .general-text").classList.add("active")
124    document.querySelector(".cookie-wrapper .content-options").classList.add("active")
125}

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.