import { ComponentConfigInterface } from '../../core/component/config'; import { ColorAccessor, NumericAccessor, StringAccessor } from '../../types/accessor'; import { FitMode, TrimMode } from '../../types/text'; import { TreemapDatum, TreemapNode, TreemapTileFunction } from './types'; export interface TreemapConfigInterface extends ComponentConfigInterface { id?: ((d: Datum, i: number) => string | number); value?: NumericAccessor; /** Array of accessor functions to defined the nested groups. Default: `[]` */ layers: StringAccessor[]; /** @deprecated Define `tileLabel` instead. * A function that accepts a value number and returns a string. Default: `(value: number) => `${value}`` */ numberFormat?: (value: number) => string; /** * Function to generate the label text for each tile. Receives the `TreemapNode` and returns a `string`. * Default: shows key and formatted value (e.g., "label: value"). */ tileLabel?: (node: TreemapNode) => string; /** Color accessor function for tiles. Default: `undefined` */ tileColor?: ColorAccessor>; /** D3 tile function (e.g. `treemapSquarify`, `treemapDice` from `d3-hierarchy`). Default: `undefined`. */ tileFunction?: TreemapTileFunction>; /** Comparator for sorting hierarchy nodes before layout. Receives two `HierarchyNode`s. Default: `undefined`. */ tileSort?: ((a: TreemapNode, b: TreemapNode) => number) | null; /** Padding passed to D3 treemap layout. Default: `2` */ tilePadding?: number; /** * Top padding passed to D3 treemap layout. * Useful to make room for internal node labels. * Default: `undefined` */ tilePaddingTop?: number; /** Append SVG `` element to tile rects. It will be shown when hovering over the tile. Default: `false` */ tileShowHtmlTooltip?: boolean; /** Label internal nodes. Default: `false` */ labelInternalNodes?: boolean; /** Label offset in the X direction. Default: `4` */ labelOffsetX?: number; /** Label offset in the Y direction. Default: `4` */ labelOffsetY?: number; /** How labels should fit within tiles: wrap or trim. Applicable only for leaf nodes. Default: `FitMode.Wrap` */ labelFit?: FitMode; /** Label trimming mode. Default: `TrimMode.Middle` */ labelTrimMode?: TrimMode; /** Border radius of the tiles in pixels. Default: `2` */ tileBorderRadius?: number; /** Minimum fraction of width for border radius. Default: `1/8` */ tileBorderRadiusFactor?: number; /** Enable lightness variance for sibling tiles. Default: `false` */ enableLightnessVariance?: boolean; /** Enable font size variation for leaf node labels based on value. Default: `false` */ enableTileLabelFontSizeVariation?: boolean; /** Small font size for leaf labels (used when `enableTileLabelFontSizeVariation` is `true`). Default: `8` */ tileLabelSmallFontSize?: number; /** Medium font size for leaf labels (used when `enableTileLabelFontSizeVariation` is `true`). Default: `12` */ tileLabelMediumFontSize?: number; /** Large font size for leaf labels (used when `enableTileLabelFontSizeVariation` is `true`). Default: `24` */ tileLabelLargeFontSize?: number; /** Flag for showing cursor:pointer to indicate leaf tiles are clickable. Default: `undefined` */ showTileClickAffordance?: boolean; /** Amount of lightness variation applied to sibling tiles when `enableLightnessVariance` is `true`. Default: `0.08` */ lightnessVariationAmount?: number; /** Minimum size for labels in pixels. Default: `20` */ minTileSizeForLabel?: number; } export declare const TreemapDefaultConfig: TreemapConfigInterface<unknown>;