packages/charts/src/utils/themes/get_charts_theme.ts (15 lines of code) (raw):

/* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License * 2.0 and the Server Side Public License, v 1; you may not use this file except * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ import { AMSTERDAM_DARK_THEME } from './amsterdam_dark_theme'; import { AMSTERDAM_LIGHT_THEME } from './amsterdam_light_theme'; import { DARK_THEME } from './dark_theme'; import { LIGHT_THEME } from './light_theme'; import type { Theme } from './theme'; /** * Returns charts `Theme` given theme `name` and `darkMode` * @public */ export function getChartsTheme({ name, darkMode }: { name: string; darkMode: boolean }): Theme; /** * Returns charts `Theme` given theme `themeName` and `colorMode` * @public */ export function getChartsTheme(themeName: string, colorMode: 'DARK' | 'LIGHT'): Theme; /** * Returns charts `Theme` * @public */ export function getChartsTheme( theme: { name: string; darkMode: boolean } | string, colorMode?: 'DARK' | 'LIGHT', ): Theme { const { name, darkMode } = typeof theme !== 'string' ? theme : { name: theme, darkMode: colorMode === 'DARK' }; if (name.toLowerCase().includes('amsterdam')) return darkMode ? AMSTERDAM_DARK_THEME : AMSTERDAM_LIGHT_THEME; return darkMode ? DARK_THEME : LIGHT_THEME; }