(theme: Theme)
| 111 | } |
| 112 | |
| 113 | renderTheme(theme: Theme) { |
| 114 | this.currentTheme = theme; |
| 115 | if (!this.contentElement) { |
| 116 | const styleElement = document.getElementById(THEME_KEY.styleElementId); |
| 117 | if (styleElement) { |
| 118 | this.contentElement = <HTMLStyleElement>styleElement; |
| 119 | } else { |
| 120 | this.contentElement = document.createElement('style'); |
| 121 | this.contentElement.id = THEME_KEY.styleElementId; |
| 122 | document.head.appendChild(this.contentElement); |
| 123 | } |
| 124 | |
| 125 | } |
| 126 | this.contentElement.innerText = ':root { ' + this.formatCSSVariables(theme.data) + ' }'; |
| 127 | this.contentElement.setAttribute(THEME_KEY.uiThemeAttributeName, this.currentTheme.id); |
| 128 | document.body.setAttribute(THEME_KEY.uiThemeAttributeName, this.currentTheme.id); |
| 129 | |
| 130 | // 用于挂载额外变量和类名 |
| 131 | this.applyExtraData(); |
| 132 | this.saveCustomTheme(this.currentTheme); |
| 133 | } |
| 134 | |
| 135 | saveCustomTheme(customTheme: Theme) { |
| 136 | this.storage.trySetLocalStorage(THEME_KEY.userLastPreferTheme, customTheme.id); |
no test coverage detected