123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { Injectable } from '@angular/core';
- @Injectable({
- providedIn: 'root',
- })
- export class ThemesService {
- themes: ColorTheme[];
- currentTheme: ColorTheme;
- constructor() {
- this.themes = [
- {
- value: 'neutral',
- label: 'themeNeutral',
- },
- {
- value: 'modern',
- label: 'themeModern',
- },
- {
- value: 'classic',
- label: 'themeClassic',
- },
- ];
- this.selectTheme(this.themes[0]);
- }
- selectTheme(theme: ColorTheme) {
- this.currentTheme = theme;
- document.body.setAttribute('data-theme', theme.value); // Needed to let ngb-popover and ngb-modals work properly with themes
- }
- getAvailableThemes(): ColorTheme[] {
- return this.themes;
- }
- getCurrentTheme(): ColorTheme {
- return this.currentTheme;
- }
- }
- export interface ColorTheme {
- value: string;
- label: string; // Key in the JSON localization for the label
- }
|