PageSourceSearch

https://static.zeit.de/p/zeit.web/js/colorscheme.5dff58aa11a69ad4.js

js zeit.de collected 2026-09-24 06:49:36 UTC 2,301 bytes, 1 lines download raw bytes

1(()=>{"use strict";function e(e){let t={},s=function(){try{let t="__some_random_key_you_are_not_going_to_use__";return e().setItem(t,t),e().removeItem(t),!0}catch(e){return!1}}();return{getItem:function(o){return s?e().getItem(o):Object.prototype.hasOwnProperty.call(t,o)?t[o]:null},setItem:function(o,c){s?e().setItem(o,c):t[o]=String(c)},removeItem:function(o){s?e().removeItem(o):delete t[o]},supported:s}}let t={local:e(()=>localStorage),session:e(()=>sessionStorage)};new class{constructor(){this.scheme=null,this.store=t.local.supported,this.disabled=this.validate(document.documentElement.dataset.colorScheme),this.buttons=[],document.addEventListener("readystatechange",this),window.addEventListener("colorscheme",this),this.get()}handleEvent(e){switch(e.type){case"colorscheme":this.set(e.detail);break;case"readystatechange":this.initUI(),document.removeEventListener("readystatechange",this);break;case"click":this.set(e.target.value,!0),window.dispatchEvent(new CustomEvent("colorscheme",{detail:e.target.value}))}}get(){if(this.store){let e=t.local.getItem("color-scheme");this.validate(e)&&this.set(e)}this.dispatch("get")}set(e,s){this.disabled||e===this.scheme||(!e||this.validate(e))&&(this.scheme&&document.documentElement.classList.remove(`color-scheme-${this.scheme}`),e?(this.store&&t.local.setItem("color-scheme",e),document.documentElement.classList.add(`color-scheme-${e}`),this.scheme=e):(this.store&&t.local.removeItem("color-scheme"),this.scheme=null),s&&this.dispatch("set"),this.select())}initUI(){if(this.colorschemeControlWrapper=document.querySelector("#js-colorscheme-toggle"),this.colorschemeControlWrapper){if(!this.store||this.disabled){let e=this.colorschemeControlWrapper.parentNode,t=e.parentNode;1===t.childElementCount?t.remove():e.remove()}else this.buttons=this.colorschemeControlWrapper.querySelectorAll(".buttongroup-button"),this.colorschemeControlWrapper.addEventListener("click",this);this.select()}}select(){this.buttons.forEach(e=>{let t=e.value===this.scheme||!e.value&&!this.scheme;e.parentNode.classList.toggle("buttongroup-item--active",t)})}validate(e){return["light","dark"].indexOf(e)>-1}dispatch(e){"zappi"in window&&"function"==typeof window.zappi.postMessage&&window.zappi.postMessage({type:"colorscheme",action:e,scheme:this.scheme})}}})();

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.