{ "version": 3, "sources": ["src/app/services/theme/theme.service.ts"], "sourcesContent": ["import { Injectable, computed, effect, signal } from '@angular/core';\r\nimport { LocalStorage } from 'ngx-webstorage';\r\n\r\nexport const LIGHT_THEME = 'light-theme';\r\nexport const DARK_THEME = 'dark-theme';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ThemeService {\r\n @LocalStorage('theme', undefined) private _theme: string | undefined;\r\n\r\n private _themeSignal = signal(undefined);\r\n\r\n isDarkTheme = computed(() => this._themeSignal() === DARK_THEME)\r\n\r\n constructor() {\r\n effect(() => {\r\n this._theme = this._themeSignal();\r\n const bodyElement = document.body;\r\n \r\n switch (this._themeSignal()) {\r\n case DARK_THEME:\r\n bodyElement.classList.remove(LIGHT_THEME);\r\n bodyElement.classList.add(DARK_THEME); \r\n break;\r\n case LIGHT_THEME:\r\n bodyElement.classList.remove(DARK_THEME);\r\n bodyElement.classList.add(LIGHT_THEME); \r\n break;\r\n default:\r\n break;\r\n }\r\n })\r\n }\r\n\r\n loadTheme(): void { \r\n switch (this._theme) {\r\n case DARK_THEME:\r\n this._themeSignal.set(DARK_THEME);\r\n break;\r\n case LIGHT_THEME:\r\n this._themeSignal.set(LIGHT_THEME)\r\n break;\r\n default:\r\n // const deviceModeIsDarkMode = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\r\n // deviceModeIsDarkMode ? this._themeSignal.set(DARK_THEME) : this._themeSignal.set(LIGHT_THEME);\r\n this._themeSignal.set(LIGHT_THEME)\r\n break;\r\n }\r\n }\r\n\r\n toggleTheme(): void {\r\n this._themeSignal.update(value => value === DARK_THEME ? LIGHT_THEME : DARK_THEME);\r\n }\r\n}\r\n"], "mappings": "gHAGO,IAAMA,EAAc,cACdC,EAAa,aAKbC,EAAP,MAAOA,CAAY,CAOrBC,aAAA,CAJQ,KAAAC,aAAeC,EAA2BC,MAAS,EAE3D,KAAAC,YAAcC,EAAS,IAAM,KAAKJ,aAAY,IAAOH,CAAU,EAG3DQ,EAAO,IAAK,CACR,KAAKC,OAAS,KAAKN,aAAY,EAC/B,IAAMO,EAAcC,SAASC,KAE7B,OAAQ,KAAKT,aAAY,EAAE,CACvB,KAAKH,EACDU,EAAYG,UAAUC,OAAOf,CAAW,EACxCW,EAAYG,UAAUE,IAAIf,CAAU,EACpC,MACJ,KAAKD,EACDW,EAAYG,UAAUC,OAAOd,CAAU,EACvCU,EAAYG,UAAUE,IAAIhB,CAAW,EACrC,MACJ,QACI,KACR,CACJ,CAAC,CACL,CAEAiB,WAAS,CACL,OAAQ,KAAKP,OAAM,CACf,KAAKT,EACD,KAAKG,aAAac,IAAIjB,CAAU,EAChC,MACJ,KAAKD,EACD,KAAKI,aAAac,IAAIlB,CAAW,EACjC,MACJ,QAGI,KAAKI,aAAac,IAAIlB,CAAW,EACjC,KACR,CACJ,CAEAmB,aAAW,CACP,KAAKf,aAAagB,OAAOC,GAASA,IAAUpB,EAAaD,EAAcC,CAAU,CACrF,yCA7CSC,EAAY,wBAAZA,EAAYoB,QAAZpB,EAAYqB,UAAAC,WAFT,MAAM,CAAA,EAEhB,IAAOtB,EAAPuB,EACwCC,EAAA,CAAzCC,EAAa,QAASrB,MAAS,CAAC,EAAAJ,EAAA,UAAA,SAAA,MAAA", "names": ["LIGHT_THEME", "DARK_THEME", "ThemeService", "constructor", "_themeSignal", "signal", "undefined", "isDarkTheme", "computed", "effect", "_theme", "bodyElement", "document", "body", "classList", "remove", "add", "loadTheme", "set", "toggleTheme", "update", "value", "factory", "\u0275fac", "providedIn", "_ThemeService", "__decorate", "LocalStorage"] }