PageSourceSearch

https://wereldfietser.nl/apps/site/build/site-cyGw6gVE.js

js wereldfietser.nl collected 2026-10-02 11:30:11 UTC 21,772 bytes, 381 lines download raw bytes

1var S=t=>{throw TypeError(t)};var x=(t,e,o)=>e.has(t)||S("Cannot "+o);var v=(t,e,o)=>(x(t,e,"read from private field"),o?o.call(t):e.get(t)),E=(t,e,o)=>e.has(t)?S("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,o),A=(t,e,o,r)=>(x(t,e,"write to private field"),r?r.call(t,o):e.set(t,o),o),T=(t,e,o)=>(x(t,e,"access private method"),o);function I(t){for(let e of Object.keys(t).filter(o=>t[o])){let o=document.querySelectorAll(`script[type ="text/plain"][data-cookie-category="${e}"]`);for(let r of o){let i=document.createElement("script");i.textContent=r.innerHTML,i.setAttribute("type","text/javascript");for(let a of r.attributes){let n=a.nodeName;n!=="type"&&i.setAttribute(n,r[n]||r.getAttribute(n))}r.parentNode.replaceChild(i,r)}}}function F(t){document.body.classList.add("cookie-consent-opened"),t.tagName.toLowerCase()==="dialog"?t.showModal():(t.setAttribute("open",""),t.parentNode.setAttribute("open",""))}function M(t){t.tagName.toLowerCase()==="dialog"?t.close():(t.removeAttribute("open"),t.parentNode.removeAttribute("open")),document.body.classList.remove("cookie-consent-opened")}function k(t,e){for(;t.firstChild;)t.firstChild.remove();t.appendChild(document.createTextNode(e))}async function B(t){let e=document.documentElement.getAttribute("lang")||"en";return await(await fetch(`${document.baseURI}_/site-application/site/${t}/cookie-consent`,{headers:{"Accept-Language":e}})).json()}class N{constructor(e){this.permissions=e}hasPermission(e){return!!this.permissions[e]}}class j extends HTMLElement{constructor(){super(),this.didFirstRender=!1,this.categories={},this.dialogSummary="",this.dialogTitle="",this.dialogHeader="",this.dialogFooter="",this.saveText="save",this.expandText="expand",this.acceptAllText="accept all",this.promiseQueue=[],this.submitted=null,this.initialRender=()=>{let e=window.localStorage.getItem("cookie-consent");e?this.cookieConsent=JSON.parse(e):this.cookieConsent={};let o=this.attachShadow({mode:"open"}),r=document.createElement("style");r.innerHTML=`
2        :host {
3          --color-primary: var(--cookie-consent-color-primary, var(--theme-color-primary, #4681f4));
4          --color-success: hsl(141, 41%, 56%);
5          --color-success-hover: hsl(141, 41%, 61%);
6          color: #333;
7          font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
8          font-size: .875rem;
9          line-height: 1.6;
10        }
11
12        dialog,
13        dialog * {
14          box-sizing: border-box;
15          max-inline-size: 60ch;
16        }
17
18        form, summary, details, ul, li, p, a, h1, h2, h3, h4 {
19          margin: 0;
20          padding: 0;
21        }
22
23        .dialog-polyfill-wrapper {
24          --dialog-poly-fill-pad: 1rem;
25          background: rgba(0,0,0,0.6);
26          display: none;
27          justify-content: center;
28          height: 100vh;
29          left: 0;
30          padding: var(--dialog-poly-fill-pad);
31          position: fixed;
32          top: 0;
33          width: calc(100vw - var(--dialog-poly-fill-pad) * 2);
34          z-index: 99999;
35        }
36
37        .dialog-polyfill-wrapper[open] {
38          display: flex;
39        }
40
41        .dialog-polyfill[open] {
42          --dialog-polyfill-bottom-offset: 8rem;
43          --dialog-polyfill-max-height: calc(100vh - calc(var(--dialog-poly-fill-pad) * 2) - var(--dialog-polyfill-bottom-offset));
44          margin-bottom: var(--dialog-polyfill-bottom-offset);
45          margin-top: auto;
46          max-height: var(--dialog-polyfill-max-height);
47          position: relative;
48        }
49
50        .dialog-polyfill[open],
51        dialog[open] {
52          --pad: calc(1rem + 1.5vw);
53          background: #fff;
54          border: none !important;
55          border-radius: 1rem;
56          box-shadow: 0 0 #0000, 0 0 #0000, 0 25px 50px -12px rgba(0, 0, 0, 0.25);
57          margin-inline: clamp(1rem, auto, 50%);
58          max-inline-size: none;
59          padding: var(--pad) calc(var(--pad) / 2) calc(var(--pad) * 6 + 1rem) var(--pad);
60          width: clamp(288px, calc(100% - 2rem), 60ch);
61        }
62
63        @media screen and (min-width: 400px) {
64           .dialog-polyfill[open],
65           dialog[open] {
66              padding-block-end: calc(var(--pad) * 2 + 2.5rem);
67           }
68        }
69
70        h1 {
71          display: flex;
72          flex-direction: column;
73          font-size: 1.25rem;
74          margin-right: 1rem;
75          position: sticky;
76          top: 0;
77        }
78
79        h1:after {
80          align-self: stretch;
81          background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
82          content: "";
83          height: 2rem;
84        }
85
86        p {
87          color: #555;
88        }
89
90        a {
91          color: var(--color-primary);
92          text-decoration: underline;
93        }
94
95        input[type="submit"] {
96          -webkit-appearance: none;
97          -webkit-border-radius: 0;
98        }
99
100        button.show-settings,
101        input[type="submit"] {
102          --bg-color: #333;
103          --border-color: var(--bg-color);
104          --color: #fff;
105          background-color: var(--bg-color);
106          border: thin solid var(--border-color);
107          border-radius: .25em;
108          color: var(--color);
109          cursor: pointer;
110          font-weight: bolder;
111          font-size: 1rem;
112          padding: .75rem 1rem;
113          transition-duration: 200ms;
114          transition-property: background, border, color;
115        }
116
117        button.show-settings,
118        input[type=submit].save,
119        input[type=submit].save-all {
120          bottom: var(--pad);
121          position: absolute;
122          right: var(--pad);
123          width: calc(100% - var(--pad) * 2);
124        }
125
126        @media screen and (min-width: 400px) {
127          button.show-settings,
128          input[type=submit].save,
129          input[type=submit].save-all {
130            width: calc(50% - var(--pad) - .5rem);
131          }
132        }
133
134        input[type=submit].save,
135        button.show-settings {
136          --bg-color: #fff;
137          --border-color: #333;
138          --color: #333;
139          bottom: 5rem;
140        }
141
142        @media screen and (min-width: 400px) {
143          input[type=submit].save,
144          input[type=submit].save-all,
145          button.show-settings {
146            bottom: var(--pad);
147          }
148        }
149
150        input[type=submit].save-all {
151          --bg-color: var(--color-primary);
152          --border-color: var(--color-primary);
153          position: absolute;
154          left: var(--pad);
155        }
156
157        button.show-settings:hover,
158        input[type="submit"]:hover {
159          --bg-color: #333;
160          --border-color: #333;
161          --color: #fff;
162        }
163
164        input[type="checkbox"] {
165          display: none;
166        }
167
168        header,
169        footer {
170         color: #555;
171        }
172
173        footer {
174          margin-top: 1rem;
175        }
176
177        header:empty,
178        footer:empty {
179          display: none;
180        }
181
182        form {
183          display: flex;
184          flex-direction: column;
185          gap: 1rem;
186        }
187
188        p.summary {
189          margin-top: -1rem;
190        }
191
192        .settings {
193          margin-top: -2rem;
194        }
195
196        form.summary .settings {
197          display: none;
198        }
199
200        form:not(.summary) .summary {
201          display: none;
202        }
203
204        form.summary,
205        .settings article {
206          display: flex;
207          flex-direction: column;
208          gap: .5rem;
209          max-height: calc(var(--dialog-polyfill-max-height, 100vh) - 15rem);
210          padding-right: calc(var(--pad) / 2);
211          overflow: auto;
212        }
213
214        .category-list {
215          border-top: 1px solid #ccc;
216          margin-top: 1rem;
217        }
218
219        .category-list li {
220          display: flex;
221          list-style: none;
222        }
223
224        .category {
225          border-bottom: 1px solid #ccc;
226          display: flex;
227          flex-direction: column;
228          padding: .5rem 0 .5rem .5rem;
229          position: relative;
230          transition: all 200ms;
231          width: 100%;
232        }
233
234        button.collapse {
235          --color: #333;
236          background: none;
237          border: none;
238          cursor: pointer;
239          height: 2.5rem;
240          padding: 0;
241          position: absolute;
242          right: 0;
243          top: 0;
244          width: 3rem;
245        }
246
247        button.collapse:hover {
248          --color: var(--color-primary);
249        }
250
251        button.collapse:after,
252        button.collapse:before {
253          background-color: var(--color);
254          border-radius: 0.03em;
255          content: "";
256          height: .16em;
257          pointer-events: none;
258          position: absolute;
259          right: .75rem;
260          top: 1.625rem;
261          transition: 200ms ease-in-out all;
262          width: 1em;
263        }
264
265        button.collapse:after {
266          transform: rotate(90deg);
267        }
268
269        .category.collapsed button.collapse:after {
270          transform: rotate(180deg);
271        }
272
273        .category label {
274          cursor: pointer;
275          display: flex;
276          padding: .5rem .5rem .5rem 3rem;
277          gap: .5rem;
278          position: relative;
279          width: calc(100% - 3rem);
280        }
281
282        .category label:after,
283        .category label:before {
284          left: 0;
285          position: absolute;
286          top: .6666rem;
287        }
288
289        .category label:hover:before {
290          background-color: #555;
291        }
292
293        .category input:checked + label:before {
294          background-color: var(--color-success);
295        }
296
297        .category input:checked + label:hover:before {
298          background-color: var(--color-success-hover);
299        }
300
301        .category input:checked + label:after {
302          transform: translateX(125%);
303        }
304
305        .category label h4 {
306          color: #777;
307          transition: inherit;
308        }
309
310        .category label:hover h4 {
311          color: #333;
312          text-decoration: underline;
313        }
314
315        .category input:checked + label h4 {
316          color: #333;
317        }
318
319        .category input:checked + label:hover h4 {
320          color: #777;
321        }
322
323        .category label:before {
324          background-color: #777;
325          border-radius: .7rem;
326          content: "";
327          height: 1.2rem;
328          width: 2.25rem;
329          z-index: 1;
330        }
331
332        .category label:after {
333          background-color: #fff;
334          border-radius: 50%;
335          box-shadow: 0 0 .25em rgba(0, 0, 0, .25);
336          content: "";
337          height: .8rem;
338          left: .2rem;
339          top: .89583rem;
340          transition: transform 200ms ease;
341          width: .8rem;
342          z-index: 2;
343        }
344
345        .category label:hover:after {
346          box-shadow: none;
347        }
348
349        .category > p {
350          display: none;
351          margin-block-end: .5rem;
352          padding-inline: 3rem 1rem;
353        }
354
355        .category.collapsed > p {
356          display: block;
357          font-size: smaller;
358        }
359    `.replace(/\s\s+/g," ").trim(),o.appendChild(r);let i;if(typeof HTMLDialogElement=="function")i=document.createElement("dialog"),o.appendChild(i);else{i=document.createElement("div"),i.classList.add("dialog-polyfill");let f=document.createElement("div");f.classList.add("dialog-polyfill-wrapper"),f.appendChild(i),o.appendChild(f)}i.setAttribute("id","dialog");let a=document.createElement("h1"),n=document.createElement("header"),c=document.createElement("footer"),l=document.createElement("p");k(a,this.dialogTitle),k(l,this.dialogSummary),k(n,this.dialogHeader),k(c,this.dialogFooter);let s=document.createElement("form");s.id="form",s.setAttribute("action","post"),s.addEventListener("submit",f=>{f.preventDefault(),this.cookieConsent={};let w=new FormData(s);for(let L of Object.keys(this.categories))this.cookieConsent[L]=w.get(`category[${L}]`)==="1";for(window.localStorage.setItem("cookie-consent",JSON.stringify(this.cookieConsent)),this.submitted=new N(this.cookieConsent);this.promiseQueue.length>0;)this.promiseQueue.shift().call(null,this.submitted);I(this.cookieConsent),M(i)});let m=document.createElement("ul");m.id="category-list",m.classList.add("category-list"),s.appendChild(m),s.classList.add("summary");let h=document.createElement("p"),p=document.createElement("div"),g=document.createElement("article");h.classList.add("summary"),p.classList.add("settings");let b=document.createElement("input");b.setAttribute("type","submit"),b.setAttribute("value",this.saveText),b.classList.add("save");let d=document.createElement("input");d.setAttribute("type","submit"),d.setAttribute("value",this.acceptAllText),d.classList.add("save-all"),d.autofocus=!0,d.addEventListener("click",()=>{let f=s.getElementsByTagName("input");for(let w of f)w.type==="checkbox"&&(w.checked=!0)});let y=document.createElement("button");y.setAttribute("type","button"),y.appendChild(document.createTextNode(this.expandText)),y.addEventListener("click",()=>{s.classList.remove("summary")}
359),y.classList.add("show-settings"),h.appendChild(l),h.appendChild(y),s.appendChild(a),s.appendChild(h),s.appendChild(p),s.appendChild(d),g.appendChild(n),g.appendChild(m),g.appendChild(c),p.appendChild(g),p.appendChild(b),i.appendChild(s),Object.keys(this.cookieConsent).length>0&&I(this.cookieConsent)},this.render=(e,o)=>{let r=this.shadowRoot.getElementById("dialog"),i=this.shadowRoot.getElementById("category-list"),a=this.shadowRoot.getElementById("form");if(e==="close"){M(r);return}let n=Object.keys(this.cookieConsent).length>0;if(e!=="open"&&n){for(this.submitted=new N(this.cookieConsent);this.promiseQueue.length>0;)this.promiseQueue.shift().call(null,this.submitted);return}if(Object.keys(this.categories).length===0)return;if(!n)for(let l of Object.keys(this.categories))this.cookieConsent[l]=!0;for(o==="settings"&&a.classList.remove("summary");i.firstChild;)i.firstChild.remove();let c=Object.keys(this.categories);c.sort((l,s)=>this.categories[l].name.localeCompare(this.categories[s].name));for(let l of c){let s=document.createElement("li"),m=document.createElement("div"),h=document.createElement("label"),p=document.createElement("button"),g=document.createElement("h4"),b=document.createElement("p"),d=document.createElement("input");p.setAttribute("type","button"),p.classList.add("collapse"),p.addEventListener("click",()=>m.classList.toggle("collapsed")),g.appendChild(document.createTextNode(this.categories[l].name)),b.appendChild(document.createTextNode(this.categories[l].description)),h.setAttribute("for",`category[${l}]`),h.appendChild(g),d.setAttribute("type","checkbox"),d.setAttribute("name",`category[${l}]`),d.setAttribute("id",`category[${l}]`),d.setAttribute("value","1"),m.appendChild(d),m.appendChild(h),m.appendChild(p),m.appendChild(b),m.classList.add("category"),s.appendChild(m),i.appendChild(s),this.cookieConsent[l]&&(d.checked=!0)}F(r)}}connectedCallback(){B(this.siteId).then(e=>{this.dialogTitle=e.title,this.dialogSummary=e.summary,this.dialogHeader=e.header,this.dialogFooter=e.footer,this.categories=e.categories,this.acceptAllText=e.accept_all,this.saveText=e.save,this.expandText=e.expand,this.initialRender(),this.render(),this.didFirstRender=!0})}attributeChangedCallback(){this.didFirstRender&&this.render()}get siteId(){return this.getAttribute("siteId")}static get observedAttributes(){return["siteId"]}open(e){this.submitted=null,this.render("open",e)}hide(){this.render("close")}permissions(){return this.submitted?Promise.resolve(this.submitted):new Promise(e=>this.promiseQueue.push(e))}}const P={"www.youtube-nocookie.com":()=>!0,"player.vimeo.com":t=>t.searchParams.get("dnt")==="1"},D='<svg version="1.1" id="svg8" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 24 24" xml:space="preserve"><style>.st0{fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round}</style><path class="st0" d="M18 13.2c-.6 2.7-3 4.8-5.9 4.8C8.7 18 6 15.3 6 12c0-3.1 2.4-5.7 5.5-6"/><path class="st0" d="M8.7 10.8c-.2 0-.3-.1-.3-.3 0-.2.1-.3.3-.3s.3.1.3.3c0 .2-.1.3-.3.3zM17.2 7.2c-.2 0-.3-.1-.3-.3s.1-.3.3-.3.3.1.3.3-.1.3-.3.3zM12.1 16.2c-.3 0-.6-.3-.6-.6s.3-.6.6-.6.6.3.6.6-.3.6-.6.6zM9 13.8h0M15.1 13.8h0M11.5 12h0M17.5 10.2h0M15.1 8.4h0M11.5 6c-.3.9.3 1.8 1.3 1.8-1.3 2.1-.1 4.2 3 3.9 0 1.5 1.5 1.8 2.2 1.5"/><g id="g1439" transform="translate(0 -290.65)"><path id="path1433" d="M12 290.6c-6.6 0-12 5.4-12 12s5.4 12 12 12 12-5.4 12-12-5.4-12-12-12zm0 2.4c2.2 0 4.3.8 5.9 2L4.4 308.5c-1.3-1.6-2-3.7-2-5.9 0-5.3 4.3-9.6 9.6-9.6zm7.6 3.8c1.3 1.6 2 3.7 2 5.9 0 5.3-4.3 9.6-9.6 9.6-2.2 0-4.3-.8-5.9-2l13.5-13.5z" fill="#666"/></g></svg>';function H(t){document.readyState!=="loading"?t():window.addEventListener("DOMContentLoaded",t)}function $(t){let e=P[t.host];return e?e(t):!1}class U extends HTMLElement{constructor(){super(),this.rendered=!1,this.createRoot=()=>{let e;if(this.rendered)for(;this.firstChild;)this.firstChild.remove();e=document.createElement("div"),this.appendChild(e);let o=document.createElement("style");return o.innerHTML=`
360        iframe-consent iframe:not([width]) {
361          width: 100%;
362        }
363
364        figure.iframe-consent {
365          all: unset;
366          background-color: #eee;
367          background-repeat: no-repeat;
368          background-size: 2rem;
369          background-position: center center;
370          cursor: pointer;
371          outline: medium solid #ccc;
372          box-sizing: border-box;
373          display: inline-block;
374          margin: 0;
375          text-align: center;
376        }
377
378        figure.iframe-consent:hover {
379            filter: invert(15%);
380        }
381      `.replace(/\s\s+/g," ").trim(),e.appendChild(o),this.rendered=!0,e},this.renderIframe=()=>{let e=this.createRoot(),o=document.createElement("iframe");for(let r of this.attributes)r.nodeName!=="cookieless"&&o.setAttribute(r.nodeName,this.getAttribute(r.nodeName));e.appendChild(o)},this.renderError=()=>{let e=this.createRoot(),o=document.createElement("figure"),r=document.createElement("img");for(let i of["width","height"])this.hasAttribute(i)&&r.setAttribute(i,this.getAttribute(i));r.setAttribute("style","visibility:hidden"),o.classList.add("iframe-consent"),o.addEventListener("click",()=>{let i=document.getElementsByTagName("cookie-consent").item(0);i&&(i.open("settings"),i.permissions().then(a=>{a.hasPermission("third_party")&&this.renderIframe()}))}),o.setAttribute("style",`background-image: url("data:image/svg+xml;base64,${btoa(D)}");`),e.appendChild(o),o.appendChild(r)}}connectedCallback(){let e=new URL(document.baseURI),o=new URL(this.getAttribute("src"),e);if(e.origin===o.origin){this.renderIframe();return}if(this.getAttribute("cookieless")==="cookieless"||$(o)){this.renderIframe();return}H(()=>{const r=document.getElementsByTagName("cookie-consent").item(0);r&&r.permissions().then(i=>{i.hasPermission("third_party")?this.renderIframe():this.renderError()})})}}async function R(t,e,o,r,i){const a=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({identifier:e,platform:o,application:r,push:i})});if(!a.ok)throw new Error(`Failed to register device, got response code ${a.status}, with ${await a.text()}`)}function O(){var r,i,a,n,c,l,s;const t=window.navigator.userAgent;let e="Unknown",o="";return t.includes("Firefox")?(e="Firefox",o=(r=t.match(/Firefox\/([\d.]+)/))==null?void 0:r[1]):t.includes("Edg")?(e="Edge",o=(i=t.match(/Edg\/([\d.]+)/))==null?void 0:i[1]):t.includes("OPR")||t.includes("Opera")?(e="Opera",o=(a=t.match(/(OPR|Opera)\/([\d.]+)/))==null?void 0:a[2]):t.includes("Chrome")&&!t.includes("Edg")?(e="Chrome",o=(n=t.match(/Chrome\/([\d.]+)/))==null?void 0:n[1]):t.includes("Safari")&&!t.includes("Chrome")?(e="Safari",o=(c=t.match(/Version\/([\d.]+)/))==null?void 0:c[1]):(t.includes("MSIE")||t.includes("Trident"))&&(e="Explorer",o=((l=t.match(/MSIE ([\d.]+)/))==null?void 0:l[1])||((s=t.match(/rv:([\d.]+)/))==null?void 0:s[1])),{name:e,version:o}}var u,C,z;class Q extends HTMLElement{constructor(){super();E(this,C);E(this,u);A(this,u,localStorage.getItem("deviceId")),v(this,u)||(A(this,u,crypto.randomUUID()),localStorage.setItem("deviceId",v(this,u)))}connectedCallback(){T(this,C,z).call(this)}}u=new WeakMap,C=new WeakSet,z=async function(){const o=this.shadowRoot.querySelector(".wrapper");let r=Notification.permission;
381if(r==="granted")try{r=await(await navigator.serviceWorker.getRegistration(this.getAttribute("service-worker"))).pushManager.getSubscription()===null?"unsubscribed":"subscribed"}catch{r="unsubscribed"}o.dataset.state=r,this.shadowRoot.querySelectorAll(":where(.state-default, .state-unsubscribed) button").forEach(i=>i.addEventListener("click",async()=>{const a=await navigator.serviceWorker.register(this.getAttribute("service-worker")),n=await Notification.requestPermission();if(n!=="granted"){o.dataset.state=n;return}const c=await a.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:this.getAttribute("application-server-key")}),l=O();await R(this.getAttribute("endpoint"),v(this,u),{name:"web",model:l.name,version:l.version},{},{token:c.toJSON(),platform:"web"}),o.dataset.state="subscribed"})),this.shadowRoot.querySelectorAll(".state-subscribed button").forEach(i=>i.addEventListener("click",async()=>{const n=await(await navigator.serviceWorker.getRegistration(this.getAttribute("service-worker"))).pushManager.getSubscription();n&&await n.unsubscribe();const c=O();await R(this.getAttribute("endpoint"),v(this,u),{name:"web",model:c.name,version:c.version},{},null),o.dataset.state="unsubscribed"}))};customElements.define("g2site-cookie-consent",j);customElements.define("g2site-iframe-consent",U);customElements.define("g2site-feed-push-subscription",Q);

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.