ng-devui
Version:
DevUI components based on Angular
49 lines (48 loc) • 1.73 kB
TypeScript
import { PrefersColorSchemeMediaQuery } from './media-query';
import { Theme } from './theme';
import { IContextService, IEventBus, IStorageService } from './utils/index';
/**
* 负责CSS变量主题的装卸,主题元数据转换成主题数据
*/
export declare class ThemeService {
eventBus: IEventBus;
storage: IStorageService;
context: IContextService;
currentTheme: Theme;
contentElement: HTMLStyleElement;
colorTransitionElement: HTMLStyleElement;
darkChangeHiddenElement: HTMLStyleElement;
darkChangeShowElement: HTMLStyleElement;
extraData: {
[themeId: string]: {
cssVariables?: {
[varname: string]: string;
};
appendClasses?: Array<string>;
};
};
private _appendedClasses;
set appendClasses(classes: Array<string>);
get appendClasses(): Array<string>;
mediaQuery: PrefersColorSchemeMediaQuery;
constructor(eventBus?: IEventBus, storage?: IStorageService, context?: IContextService);
initializeTheme(specificThemeId?: string, allowDynamicTheme?: boolean): void;
formatCSSVariables(themeData: Theme['data']): string;
applyTheme(theme: Theme): void;
renderTheme(theme: Theme): void;
saveCustomTheme(customTheme: Theme): void;
private notify;
setEventBus(eb: IEventBus): void;
private addAppendClass;
private removeAppendedClass;
setExtraData(data: any, apply?: boolean): void;
private applyExtraData;
unloadTheme(): any;
registerMediaQuery(): void;
unregisterMediaQuery(): void;
private createColorTransition;
private themeHidden;
private themeShow;
private addColorTransition;
private removeColorTransition;
}