PageSourceSearch

https://charityretail.org.uk/vendor/statamic-cookie-dialog/cookie_dialog.js

js charityretail.org.uk collected 2026-10-02 07:35:54 UTC 4,264 bytes, 1 lines download raw bytes

1let p=!1,g;function b(){r.addEventListener("cancel",e=>{p||e.preventDefault()}),r.addEventListener("click",({target:e})=>{p&&e.nodeName==="DIALOG"&&e.close("dismiss")}),document.addEventListener("keydown",e=>{e.key==="Escape"&&!p&&e.preventDefault()}),r.addEventListener("close",q);const o=r.querySelector("#accept-all-btn"),t=r.querySelector("#save-preferences-btn");o.addEventListener("click",()=>{y(O(),!0),r.close()}),t.addEventListener("click",()=>{y(w()),r.close()})}function S(){const o=document.querySelectorAll("[data-cookie-group]");for(const t of o){const e=t.querySelector("input[type='checkbox']"),n=t.querySelectorAll("[data-cookie] input[type='checkbox']");for(const c of n)c.addEventListener("change",()=>{e.checked=[...n].some(u=>u.checked)});e.addEventListener("change",()=>{for(const c of n)c.checked=e.checked})}}function C(){x(),r.showModal(),r.classList.remove("es-opacity-0"),r.classList.remove("es-translate-y-10")}function q(){r.classList.add("es-opacity-0"),r.classList.add("es-translate-y-10"),g=void 0}function f(){try{return JSON.parse(N("cookie-consent"))}catch{return null}}function A(o,t){var e,n,c,u;for(const i of document.querySelectorAll("template[data-requires-cookie], template[data-requires-cookie-group]")){const d=(e=i.dataset.requiresCookie)==null?void 0:e.split("|"),l=(n=i.dataset.requiresCookieGroup)==null?void 0:n.split("|"),k=!d||d.every(s=>o.includes(s)),a=!l||l.every(s=>t.includes(s));k&&a&&(i.before(i.content),i.remove())}for(const i of document.querySelectorAll("[data-denied-cookie], [data-denied-cookie-group]")){const d=(c=i.dataset.deniedCookie)==null?void 0:c.split("|"),l=(u=i.dataset.deniedCookieGroup)==null?void 0:u.split("|"),k=!d||d.every(s=>o.includes(s)),a=!l||l.every(s=>t.includes(s));k&&a&&i.remove()}}function O(){return h("[data-cookie]")}function w(){return h("[data-cookie-group]:has(input:checked) [data-cookie]:has(input:checked)")}function D(){return document.querySelector("[data-cookie-version]").dataset.cookieVersion}function E(){return!!document.querySelector("dialog[data-enabled]")}function h(o){const t=document.querySelectorAll(o);return Array.from(t).map(e=>e.dataset.cookie)}function L(){const o=document.querySelectorAll("[data-cookie-group]"),t={};for(const e of o){const n=e.dataset.cookieGroup,c={};t[n]=c;for(const u of e.querySelectorAll("[data-cookie]"))c[u.dataset.cookie]=!1}return t}function y(o,t=!1){var d,l;const e=m.allowedCookies,n=(d=f())==null?void 0:d.version,c=L();for(const[k,a]of Object.entries(c)){if(Object.keys(a).length===0){a["*"]=t||!!document.querySelector(`[data-cookie-group="${k}"]:has(:checked)`);continue}for(const s of Object.keys(a))o.includes(s)&&(a[s]=!0)}const u={cookies:c,timestamp:Date.now(),version:D()};j("cookie-consent",JSON.stringify(u),365);const i=m.allowedCookies;if(JSON.stringify(e)!==JSON.stringify(i)||n!=((l=f())==null?void 0:l.version)){g!=null?g&&location.reload():E()?e.filter(s=>!i.includes(s)).length>0&&location.reload():location.reload();const k=Object.entries(c).filter(([a,s])=>Object.values(s).every(v=>v)).map(([a,s])=>a);A(o,k)}}function j(o,t,e){let n="";if(e){const c=new Date;c.setTime(c.getTime()+e*24*60*60*1e3),n=`; expires=${c.toUTCString()}; SameSite=Lax`}t=encodeURIComponent(t),document.cookie=`${o}=${t||""}${n}; path=/`}function N(o){const t=document.cookie.match(new RegExp("(^| )"+o+"=([^;]+)"));return t?decodeURIComponent(t[2]):null}function x(){const o=f();if(!o)return;const t=o.cookies;for(const[e,n]of Object.entries(t)){const c=document.querySelector(`[data-cookie-group="${e}"]`);if(!c)continue;const u=c.querySelector("input[type='checkbox']");for(const[i,d]of Object.entries(n)){const l=c.querySelector(`[data-cookie="${i}"] input[type='checkbox']`);l&&(l.checked=d)}u.checked=Object.values(n).some(i=>i)}}const r=document.querySelector("dialog#cookie-dialog");r&&r.hasAttribute("data-enabled")&&C();b();S();const m={showDialog:o=>{p=!0,g=o,C()},get allowedCookies(){const o=f();return o?Object.entries(o.cookies).flatMap(([t,e])=>Object.entries(e).filter(([n,c])=>c).map(([n,c])=>n)):[]},get allowedGroups(){const o=f();return o?Object.entries(o.cookies).filter(([t,e])=>Object.values(e).every(n=>n)).map(([t,e])=>t):[]},get cookiePreferences(){return f()}};globalThis.CookieDialog=m;

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.