@rb-mwindh/ngx-theme-manager
Version:
Angular component to switch between different theming stylesheets
58 lines (57 loc) • 2.05 kB
TypeScript
import { Theme } from '../theme';
import * as i0 from "@angular/core";
/**
* RbThemeRegistryService is an injectable service that allows for
* registering and unregistering themes, as well as providing access
* to the currently registered themes.
* It also provides an observable of themes that can be used
* to notify subscribers of changes to the registered themes.
*
* @internal
* @group Services
*/
export declare class ThemeRegistryService {
#private;
/**
* The observable that emits the collection of registered themes when it changes.
*/
readonly themes$: import("rxjs").Observable<Theme[]>;
/**
* Registers a new theme and emits the changed collection of themes.
*
* If a theme with the same ID is already registered,
* the registered theme will be merged with the new one.
*
* Themes without ID will be ignored.
*
* @param {Theme | undefined | null} theme - The new theme to register
*/
register(theme: Theme | undefined | null): void;
/**
* Removes the provided theme from the registry and emits the changed collection of themes.
*
* @param {Theme} theme - The theme to remove.
*/
unregister(theme: Theme): void;
/**
* Returns the collection of registered themes.
*
* @returns {Theme[]} A new array with all currently registered themes
* @remarks A new array is created every time this getter is called.
*/
get themes(): Theme[];
/**
* Returns the theme with the given ID, or null if no such theme is registered.
*
* @param {string | null} id - The ID of the theme to retrieve
*/
get(id: string | null): Theme | null;
/**
* Returns whether a theme with the given ID is currently registered.
*
* @param {string | null} id - The ID of the theme to check.
*/
has(id: string | null): boolean;
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeRegistryService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ThemeRegistryService>;
}