@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
63 lines (62 loc) • 2.33 kB
TypeScript
import { BaseState } from './BaseState';
import { AdaptableObject } from './Common/AdaptableObject';
import { TypeHint } from './Common/Types';
/**
* Shipped AdapTable theme names.
*/
export type SystemThemeName = TypeHint<string, 'light' | 'dark' | 'os'>;
/**
* Theme section of Adaptable State
*/
export interface ThemeState extends BaseState {
/**
* Name of current Theme or theme set at startup; leave blank if using 'Light Theme', set to 'dark' for 'Dark Theme'
*/
CurrentTheme?: SystemThemeName;
/**
* Which shipped themes are available; pass theme name string, or `{ Name, AgThemeMode? }` to pair a custom AG Grid theme mode; leave unset for all shipped themes
*/
SystemThemes?: (SystemThemeEntry | AdaptableTheme)[];
/**
* Custom themes provided by developers (deprecated)
*
* @deprecated Will be removed in next major version. Customise shipped `light` / `dark` themes via CSS variable overrides instead.
*/
UserThemes?: AdaptableTheme[];
}
/**
* Pairing options between AG Grid and AdapTable themes
*/
export interface SystemThemeOptions {
/**
* Shipped theme this entry configures: `light`, `dark`, or `os`
*/
Name: SystemThemeName;
/**
* AG Grid theme mode to apply when this theme is selected; valid values are `light`, `dark`, `dark-blue` or any custom theme mode defined in AG Grid
*/
AgThemeMode?: TypeHint<string, 'light' | 'dark' | 'dark-blue'>;
/**
* Ag Grid theme to apply when loading theme; relevant only when using legacy AG Grid themes
*
* @deprecated no longer used with new AG Grid Theming API
*/
AgGridClassName?: string;
}
/**
* Configures a shipped system theme: a theme name, or an object with AG Grid pairing options
*/
export type SystemThemeEntry = SystemThemeName | SystemThemeOptions;
/**
* Used for creating Custom Themes (deprecated)
*
* @deprecated User-defined themes are deprecated; customise shipped themes via CSS variables and use SystemThemeOptions for AG Grid pairing
*/
export interface AdaptableTheme extends AdaptableObject {
Name: string;
Description: string;
AgGridClassName?: string;
CSSVariables?: Record<string, string>;
Variant?: 'light' | 'dark';
AgThemeMode?: TypeHint<string, 'light' | 'dark' | 'dark-blue'>;
}