UNPKG

vega-typings

Version:

Typings for Vega.

211 lines (177 loc) 5.53 kB
import { GroupEncodeEntry, GuideEncodeEntry, SignalRef, TextEncodeEntry } from '../index.js'; import { Encode, Text } from './encode.js'; import { AlignValue, AnchorValue, ColorValue, FontStyleValue, FontWeightValue, NumberValue, StringValue, TextBaselineValue } from './values.js'; export type TitleOrient = 'none' | 'left' | 'right' | 'top' | 'bottom'; export type TitleAnchor = null | 'start' | 'middle' | 'end'; export type TitleFrame = 'bounds' | 'group'; export interface Title extends BaseTitle { /** * The title text. */ text: Text | SignalRef; /** * The subtitle text. */ subtitle?: Text | SignalRef; /** * A mark name property to apply to the title text mark. (**Deprecated.**) */ name?: string; /** * A boolean flag indicating if the title element should respond to input events such as mouse hover. (**Deprecated.**) */ interactive?: boolean; /** * A mark style property to apply to the title text mark. If not specified, a default style of `"group-title"` is applied. (**Deprecated**) */ style?: string | string[]; /** * Mark definitions for custom title encoding. */ encode?: TitleEncode | Encode<TextEncodeEntry>; // second entry is **deprecated** } export interface TitleEncode { /** * Custom encoding for the title container group. */ group?: GuideEncodeEntry<GroupEncodeEntry>; /** * Custom encoding for the title text. */ title?: GuideEncodeEntry<TextEncodeEntry>; /** * Custom encoding for the subtitle text. */ subtitle?: GuideEncodeEntry<TextEncodeEntry>; } export interface BaseTitle { /** * The anchor position for placing the title and subtitle text. One of `"start"`, `"middle"`, or `"end"`. For example, with an orientation of top these anchor positions map to a left-, center-, or right-aligned title. */ anchor?: AnchorValue; /** * The reference frame for the anchor position, one of `"bounds"` (to anchor relative to the full bounding box) or `"group"` (to anchor relative to the group width or height). */ frame?: TitleFrame | StringValue; /** * The orthogonal offset in pixels by which to displace the title group from its position along the edge of the chart. */ offset?: NumberValue; /** * Default title orientation (`"top"`, `"bottom"`, `"left"`, or `"right"`) */ orient?: TitleOrient | SignalRef; // ---------- ARIA ---------- /** * A boolean flag indicating if [ARIA attributes](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA) should be included (SVG output only). * If `false`, the "aria-hidden" attribute will be set on the output SVG group, removing the title from the ARIA accessibility tree. * * __Default value:__ `true` */ aria?: boolean; // ---------- Shared Text Properties ---------- /** * Horizontal text alignment for title text. One of `"left"`, `"center"`, or `"right"`. */ align?: AlignValue; /** * Angle in degrees of title and subtitle text. */ angle?: NumberValue; /** * Vertical text baseline for title and subtitle text. One of `"alphabetic"` (default), `"top"`, `"middle"`, `"bottom"`, `"line-top"`, or `"line-bottom"`. The `"line-top"` and `"line-bottom"` values operate similarly to `"top"` and `"bottom"`, but are calculated relative to the *lineHeight* rather than *fontSize* alone. */ baseline?: TextBaselineValue; /** * Delta offset for title and subtitle text x-coordinate. */ dx?: NumberValue; /** * Delta offset for title and subtitle text y-coordinate. */ dy?: NumberValue; /** * The maximum allowed length in pixels of title and subtitle text. * * @minimum 0 */ limit?: NumberValue; // ---------- Title Text ---------- /** * Text color for title text. */ color?: ColorValue; /** * Font name for title text. */ font?: StringValue; /** * Font size in pixels for title text. * * @minimum 0 */ fontSize?: NumberValue; /** * Font style for title text. */ fontStyle?: FontStyleValue; /** * Font weight for title text. * This can be either a string (e.g `"bold"`, `"normal"`) or a number (`100`, `200`, `300`, ..., `900` where `"normal"` = `400` and `"bold"` = `700`). */ fontWeight?: FontWeightValue; /** * Line height in pixels for multi-line title text or title text with `"line-top"` or `"line-bottom"` baseline. */ lineHeight?: NumberValue; // ---------- Subtitle Text ---------- /** * Text color for subtitle text. */ subtitleColor?: ColorValue; /** * Font name for subtitle text. */ subtitleFont?: StringValue; /** * Font size in pixels for subtitle text. * * @minimum 0 */ subtitleFontSize?: NumberValue; /** * Font style for subtitle text. */ subtitleFontStyle?: FontStyleValue; /** * Font weight for subtitle text. * This can be either a string (e.g `"bold"`, `"normal"`) or a number (`100`, `200`, `300`, ..., `900` where `"normal"` = `400` and `"bold"` = `700`). */ subtitleFontWeight?: FontWeightValue; /** * Line height in pixels for multi-line subtitle text. */ subtitleLineHeight?: NumberValue; /** * The padding in pixels between title and subtitle text. */ subtitlePadding?: NumberValue; /** * The integer z-index indicating the layering of the title group relative to other axis, mark, and legend groups. * * __Default value:__ `0`. * * @TJS-type integer * @minimum 0 */ zindex?: number; }