mirror of
				https://github.com/msberends/AMR.git
				synced 2025-10-31 10:08:12 +01:00 
			
		
		
		
	Built site for AMR@2.1.1.9063: 640888f
				
					
				
			This commit is contained in:
		
							
								
								
									
										85
									
								
								lightswitch.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								lightswitch.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,85 @@ | ||||
|  | ||||
| /*! | ||||
|  * Color mode toggler for Bootstrap's docs (https://getbootstrap.com/) | ||||
|  * Copyright 2011-2023 The Bootstrap Authors | ||||
|  * Licensed under the Creative Commons Attribution 3.0 Unported License. | ||||
|  * Updates for {pkgdown} by the {bslib} authors, also licensed under CC-BY-3.0. | ||||
|  */ | ||||
|  | ||||
| const getStoredTheme = () => localStorage.getItem('theme') | ||||
| const setStoredTheme = theme => localStorage.setItem('theme', theme) | ||||
|  | ||||
| const getPreferredTheme = () => { | ||||
|   const storedTheme = getStoredTheme() | ||||
|   if (storedTheme) { | ||||
|     return storedTheme | ||||
|   } | ||||
|  | ||||
|   return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' | ||||
| } | ||||
|  | ||||
| const setTheme = theme => { | ||||
|   if (theme === 'auto') { | ||||
|     document.documentElement.setAttribute('data-bs-theme', (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light')) | ||||
|   } else { | ||||
|     document.documentElement.setAttribute('data-bs-theme', theme) | ||||
|   } | ||||
| } | ||||
|  | ||||
| function bsSetupThemeToggle () { | ||||
|   'use strict' | ||||
|  | ||||
|   const showActiveTheme = (theme, focus = false) => { | ||||
|     var activeLabel, activeIcon; | ||||
|  | ||||
|     document.querySelectorAll('[data-bs-theme-value]').forEach(element => { | ||||
|       const buttonTheme = element.getAttribute('data-bs-theme-value') | ||||
|       const isActive = buttonTheme == theme | ||||
|        | ||||
|       element.classList.toggle('active', isActive) | ||||
|       element.setAttribute('aria-pressed', isActive) | ||||
|  | ||||
|       if (isActive) { | ||||
|         activeLabel = element.textContent; | ||||
|         activeIcon = element.querySelector('span').classList.value; | ||||
|       } | ||||
|     }) | ||||
|  | ||||
|     const themeSwitcher = document.querySelector('#dropdown-lightswitch') | ||||
|     if (!themeSwitcher) { | ||||
|       return | ||||
|     } | ||||
|  | ||||
|     themeSwitcher.setAttribute('aria-label', activeLabel) | ||||
|     themeSwitcher.querySelector('span').classList.value = activeIcon; | ||||
|  | ||||
|     if (focus) { | ||||
|       themeSwitcher.focus() | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => { | ||||
|     const storedTheme = getStoredTheme() | ||||
|     if (storedTheme !== 'light' && storedTheme !== 'dark') { | ||||
|       setTheme(getPreferredTheme()) | ||||
|     } | ||||
|   }) | ||||
|  | ||||
|   window.addEventListener('DOMContentLoaded', () => { | ||||
|     showActiveTheme(getPreferredTheme()) | ||||
|  | ||||
|     document | ||||
|       .querySelectorAll('[data-bs-theme-value]') | ||||
|       .forEach(toggle => { | ||||
|         toggle.addEventListener('click', () => { | ||||
|           const theme = toggle.getAttribute('data-bs-theme-value') | ||||
|           setTheme(theme) | ||||
|           setStoredTheme(theme) | ||||
|           showActiveTheme(theme, true) | ||||
|         }) | ||||
|       }) | ||||
|   }) | ||||
| } | ||||
|  | ||||
| setTheme(getPreferredTheme()); | ||||
| bsSetupThemeToggle(); | ||||
		Reference in New Issue
	
	Block a user