import { ConvertibleUnit, FormatOptions, Unit } from '@dynatrace-sdk/units'; import { HoneycombTileData, HoneycombTileShape } from './honeycomb.js'; import { HoneycombToolbarConfig } from './toolbar.js'; import type { TruncationMode } from '../../../typography/text-ellipsis/TextEllipsis.js'; import { ChartUnit } from '../../core/types/chart-unit.js'; import { ColorPalette, ColorToken } from '../../core/types/color-palette.js'; import type { ColorRuleProps } from '../../core/types/color-rule.js'; import { ColoredRange } from '../../core/types/colored-range.js'; import { Formatter } from '../../core/types/formatter.js'; import { HoneycombLegendProps } from '../slots/HoneycombLegend.js'; export type HoneycombTooltipMetadata = HoneycombTileData & { id: string; name: string; color: ColorToken; }; /** * @internal */ export interface HoneycombSlotsConfig { legend: HoneycombLegendProps | undefined; toolbar: HoneycombToolbarConfig | undefined; colorRules: ColorRuleProps[]; } /** * The interface needed after everything is configured * @internal */ export interface HoneycombRequiredConfigProps { /** * The shape of the honeycomb tiles. * @defaultValue 'hexagon' */ shape: HoneycombTileShape; colorScheme: ColorPalette | Record | ColoredRange[]; toolbar: HoneycombToolbarConfig | undefined; legend: HoneycombLegendProps; /** * Custom formatter for honeycomb's tiles values */ formatter: Formatter | FormatOptions | undefined; /** * The custom unit for honeycomb's tiles values. */ unit: ChartUnit; /** Truncation mode to apply */ truncationMode: TruncationMode; /** The min value to display */ min: 'data-min' | number | undefined; /** The max value to display */ max: 'data-max' | number | undefined; /** Show/hide labels and values within the nodes */ showLabels: boolean; colorRules: ColorRuleProps[]; }