{"version":3,"file":"Theming.js","sourceRoot":"","sources":["../../../TS/Theming/Theming.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,QAAQ;CAIpB;AAED,MAAM,OAAO,kBAAkB;CAG9B;AAED,MAAM,OAAO,OAAO;IAGT,UAAU;QACb,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAE7B,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAEzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,UAAU,CAAC,QAAgB;QAC9B,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE5C,OAAiB;YACb,CAAC,EAAE,KAAK,CAAC,GAAG;YACZ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;YAC9B,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;SACvC,CAAC;IACN,CAAC;IAEM,WAAW,CAAC,QAAgB;QAC/B,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE5C,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC;IAEM,aAAa,CAAC,KAA2B;QAC5C,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aAC5E;SACJ;IACL,CAAC;IAEM,cAAc,CAAC,SAAkB;QACpC,IAAI,aAAa,GAAG,YAAY,CAAC;QAEjC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAEzD,IAAI,SAAS,EAAE;YACX,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAEtD,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;SACrD;IACL,CAAC;CACJ","sourcesContent":["import { IJSModule } from \"../IJSModule.js\";\r\n\r\nexport class HSLColor {\r\n H: number;\r\n S: number;\r\n L: number;\r\n}\r\n\r\nexport class ThemePropertyModel {\r\n key: string;\r\n value: string;\r\n}\r\n\r\nexport class Theming implements IJSModule {\r\n public serviceName: string;\r\n\r\n public initialize(): boolean {\r\n this.serviceName = 'Theming';\r\n\r\n window['Theming'] = this;\r\n\r\n return true;\r\n }\r\n\r\n public parseColor(colorStr: string): HSLColor {\r\n let color = new window['w3color'](colorStr);\r\n\r\n return {\r\n H: color.hue,\r\n S: Math.round(color.sat * 100),\r\n L: Math.round(color.lightness * 100),\r\n };\r\n }\r\n\r\n public toHexString(colorStr: string): string {\r\n let color = new window['w3color'](colorStr);\r\n\r\n return color.toHexString();\r\n }\r\n\r\n public setThemeProps(props: ThemePropertyModel[]): void {\r\n if (props != null && props.length > 0) {\r\n for (let i = 0; i < props.length; i++) {\r\n document.documentElement.style.setProperty(props[i].key, props[i].value);\r\n }\r\n }\r\n }\r\n\r\n public toggleDarkMode(isEnabled: boolean): void {\r\n let darkModeClass = \"dark-theme\";\r\n\r\n document.documentElement.classList.remove(darkModeClass);\r\n\r\n if (isEnabled) {\r\n document.documentElement.classList.add(darkModeClass);\r\n\r\n document.documentElement.removeAttribute(\"style\");\r\n }\r\n }\r\n}\r\n"]}