DigitalData.UserManager/DigitalData.UserManager.NgWebUI/ClientApp/.angular/cache/17.3.0/babel-webpack/b17fba3975deea478561bcfad94cd684884f8093229f6206cded9b0d96905221.json

1 line
2.4 KiB
JSON

{"ast":null,"code":"import { PLATFORM_ID } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport * as i0 from \"@angular/core\";\nexport class ColorModeService {\n constructor(platformId, rendererFactory, document) {\n this.platformId = platformId;\n this.rendererFactory = rendererFactory;\n this.document = document;\n this.themeSubject = new BehaviorSubject(GetLocalTheme());\n this.themeChanges$ = this.themeSubject.asObservable();\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n setTheme(theme) {\n localStorage.setItem('theme', theme);\n this.updateTheme();\n }\n updateTheme() {\n this.themeSubject.next(GetLocalTheme());\n let theme = GetLocalTheme();\n ColorModeService.ThemeChangeSubscribers.forEach(sbc => sbc(theme));\n const element = this.document.documentElement;\n if (theme === Theme.Auto) {\n const preferredTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? Theme.Dark : Theme.Light;\n this.renderer.setAttribute(element, 'data-bs-theme', preferredTheme);\n } else {\n this.renderer.setAttribute(element, 'data-bs-theme', theme);\n }\n }\n static #_ = this.ThemeChangeSubscribers = new Array();\n static #_2 = this.ɵfac = function ColorModeService_Factory(t) {\n return new (t || ColorModeService)(i0.ɵɵinject(PLATFORM_ID), i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(DOCUMENT));\n };\n static #_3 = this.ɵprov = /*@__PURE__*/i0.ɵɵdefineInjectable({\n token: ColorModeService,\n factory: ColorModeService.ɵfac,\n providedIn: 'root'\n });\n}\nexport var Theme = /*#__PURE__*/function (Theme) {\n Theme[\"Dark\"] = \"dark\";\n Theme[\"Light\"] = \"light\";\n Theme[\"Auto\"] = \"auto\";\n return Theme;\n}(Theme || {});\nexport const ParseTheme = value => {\n switch (value) {\n case Theme.Dark:\n return Theme.Dark;\n case Theme.Light:\n return Theme.Light;\n case Theme.Auto:\n return Theme.Auto;\n default:\n return undefined;\n }\n};\nexport function GetLocalTheme() {\n let sTheme = localStorage.getItem('theme');\n if (sTheme === null) return Theme.Dark;\n return ParseTheme(sTheme) ?? Theme.Dark;\n}\nexport const GetWinDefaultTheme = () => window.matchMedia('(prefers-color-scheme: dark)').matches ? Theme.Dark : Theme.Light;","map":null,"metadata":{},"sourceType":"module","externalDependencies":[]}