MCPcopy
hub / github.com/DevCloudFE/ng-devui / renderTheme

Method renderTheme

devui/theme/theme-service.ts:113–133  ·  view source on GitHub ↗
(theme: Theme)

Source from the content-addressed store, hash-verified

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);

Callers 1

applyThemeMethod · 0.95

Calls 3

formatCSSVariablesMethod · 0.95
applyExtraDataMethod · 0.95
saveCustomThemeMethod · 0.95

Tested by

no test coverage detected