(function() {
const htmlElem = document.querySelector('html')
window['setMode'] = (mode: string) => {
localStorage.setItem('theme', mode)
if (mode === 'dark') {
htmlElem.setAttribute('data-bs-theme', mode)
}
else if (mode === 'light') {
htmlElem.setAttribute('data-bs-theme', mode)
}
else if (mode === 'auto') {
const preferred = matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
htmlElem.setAttribute('data-bs-theme', preferred)
}
window['currentTheme'] = mode
};
window['currentTheme'] = localStorage.getItem("theme") || "auto"
window['setMode'](window['currentTheme'])
window['setCheckbox'] = (mode, element) => {
if (mode === 'light') {
element.innerHTML = `<i class="bi bi-brightness-high"></i>`
}
if (mode === 'dark') {
element.innerHTML = `<i class="bi bi-moon"></i>`
}
if (mode === 'auto') {
element.innerHTML = `<i class="bi bi-yin-yang"></i>`
}
const link: any = document.getElementById("prism-theme")
const preferred = matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
const stylesheet = window['currentTheme'] === 'dark' || (window['currentTheme'] === 'auto' && preferred === 'dark') ? "prism_dark.css" : "prism.css"
link.href = link.href.split("/").slice(0, -1).concat(stylesheet).join("/")
}
window['toggleDarkMode'] = (button) => {
const clickedOption = button.dataset.themePref
window['setMode'](clickedOption)
window['setCheckbox'](clickedOption, document.getElementById('dark-mode-switch'))
}
}())