@revolist/revogrid
Version:
Virtual reactive data grid spreadsheet component - RevoGrid.
53 lines (52 loc) • 1.38 kB
JavaScript
/*!
* Built by Revolist OU ❤️
*/
import { ThemeCompact } from "./theme.compact";
import { ThemeDefault } from "./theme.default";
import { ThemeMaterial } from "./theme.material";
export const DEFAULT_THEME = 'default';
export const allowedThemes = [
DEFAULT_THEME,
'material',
'compact',
'darkMaterial',
'darkCompact',
];
export default class ThemeService {
get theme() {
return this.currentTheme;
}
get rowSize() {
return this.customRowSize || this.currentTheme.defaultRowSize;
}
set rowSize(size) {
this.customRowSize = size;
}
constructor(cfg) {
this.customRowSize = 0;
this.customRowSize = cfg.rowSize;
this.register('default');
}
register(theme) {
const parsedTheme = getTheme(theme);
switch (parsedTheme) {
case 'material':
case 'darkMaterial':
this.currentTheme = new ThemeMaterial();
break;
case 'compact':
case 'darkCompact':
this.currentTheme = new ThemeCompact();
break;
default:
this.currentTheme = new ThemeDefault();
break;
}
}
}
export function getTheme(theme) {
if (theme && allowedThemes.indexOf(theme) > -1) {
return theme;
}
return DEFAULT_THEME;
}