UNPKG

85.8 kBSource Map (JSON)View Raw
1{"version":3,"file":"interface.js","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"","sourcesContent":["import { COMPONENT_TYPE, DIRECTION, LAYER } from './constant';\nimport {\n AxisLabelCfg,\n AxisLineCfg,\n AxisSubTickLineCfg,\n AxisTickLineCfg,\n AxisTitleCfg,\n ContinueLegendHandlerCfg,\n ContinueLegendLabelCfg,\n ContinueLegendRailCfg,\n ContinueLegendTrackCfg,\n Coordinate,\n CrosshairLineCfg,\n CrosshairTextBackgroundCfg,\n CrosshairTextCfg,\n EnhancedTextCfg,\n GridLineCfg,\n GroupComponent,\n HtmlComponent,\n ICanvas,\n IGroup,\n IShape,\n LegendBackgroundCfg,\n LegendItemNameCfg,\n LegendItemValueCfg,\n LegendMarkerCfg,\n LegendTitleCfg,\n LegendPageNavigatorCfg,\n PathCommand,\n Scale,\n ScaleConfig,\n ShapeAttrs,\n LineAnnotationTextCfg,\n TrendCfg,\n} from './dependents';\n\nimport { View } from './chart';\nimport { Facet } from './facet';\nimport Element from './geometry/element';\nimport { PaddingCalCtor } from './chart/layout/padding-cal';\n\n// ============================ 基础类型 ============================\n/** 通用对象 */\nexport interface LooseObject {\n [key: string]: any;\n}\n\n/** 一个点位置 */\nexport interface Point {\n readonly x: number;\n readonly y: number;\n}\n\n/** 画布范围 */\nexport interface Region {\n readonly start: Point;\n readonly end: Point;\n}\n\n/** 画布大小 */\nexport interface Size {\n readonly width: number;\n readonly height: number;\n}\n\n/** 带范围的点结构 */\nexport interface RangePoint {\n readonly x?: number | number[];\n readonly y?: number | number[];\n}\n\n/** 用户数据经过图形映射处理后的数据结构 */\nexport interface MappingDatum {\n /** 原始数据 */\n _origin: Datum;\n /** shape 的关键点信息 */\n points?: ShapeVertices;\n /** 相对于当前 shape 的下一个 shape 的关键点信息 */\n nextPoints?: ShapeVertices;\n /** x 轴的坐标 */\n x?: number[] | number;\n /** y 轴的坐标 */\n y?: number[] | number;\n /** 颜色 */\n color?: string;\n /** 渲染的 shape 类型 */\n shape?: string | string[];\n /** 大小 */\n size?: number;\n}\n\n/** 绘制 Shape 需要的图形、样式、关键点等信息 */\nexport interface ShapeInfo {\n /** x 坐标 */\n x: number | number[];\n /** y 坐标 */\n y: number | number[];\n /** 映射的 shape 类型 */\n shape?: string | string[];\n /** size 映射值 */\n size?: number;\n /** 映射的颜色值 */\n color?: string;\n /** 用户设置的图形样式 */\n style?: LooseObject;\n /** 是否在极坐标下 */\n isInCircle?: boolean;\n /** 对应的原始数据记录 */\n data?: Datum | Data;\n /** 存储进行图形映射后的数据 */\n mappingData?: MappingDatum | MappingDatum[];\n /** 构成 shape 的关键点 */\n points?: ShapeVertices;\n /** 下一个数据集对应的关键点 */\n nextPoints?: ShapeVertices;\n /** Geometry.Text 需要 */\n text?: string;\n /** 数据是否发生层叠 */\n isStack?: boolean;\n /** 是否连接空值,只对 Path Line Area 这三种 Geometry 生效。 */\n connectNulls?: boolean;\n /** shape 背景,只对 Interval Geometry 生效,目前只对 interval-rect shape 生效。 */\n background?: {\n style?: ShapeAttrs;\n };\n /** 是否展示单个孤立的数据点,只对 Path Line Area 这三种 Geometry 生效。 */\n showSinglePoint?: boolean;\n /** 默认的 shape 样式 */\n defaultStyle?: LooseObject;\n /** 自定义的数据,传入到 shapeInfo 中 */\n customInfo?: CustomOption;\n}\n\n/** 用户配置的动画,属性均可选 */\nexport interface AnimateCfg {\n /** 动画缓动函数 */\n readonly easing?: string | AnimateEasingCallback;\n /** 动画执行函数 */\n readonly animation?: string;\n /** 动画执行时间 */\n readonly duration?: number | AnimateDurationCallback;\n /** 动画延迟时间 */\n readonly delay?: number | AnimateDelayCallback;\n /** 动画执行结束后的回调函数 */\n readonly callback?: () => any;\n /** 动画是否重复 */\n readonly repeat?: boolean;\n}\n\n/** 传递给 G 的动画配置,duration 必须提供 */\nexport interface GAnimateCfg {\n /** 动画执行时间 */\n readonly duration: number;\n /** 动画缓动函数 */\n readonly easing?: string;\n /** 动画执行函数 */\n readonly animation?: string;\n /** 动画延迟时间 */\n readonly delay?: number;\n /** 动画执行结束后的回调函数 */\n readonly callback?: () => any;\n /** 动画是否重复 */\n readonly repeat?: boolean;\n}\n\n// ============================ Geometry 接口相关的类型定义 ============================\n/** 图形属性配置项定义,如 geometry.position({}) */\nexport interface AttributeOption {\n /** 映射的属性字段。 */\n fields?: string[];\n /** 回调函数。 */\n callback?: (...args) => any;\n /** 指定常量映射规则。 */\n values?: any[];\n}\n\n/** 数据调整配置项定义,`geometry.adjust({})` */\nexport interface AdjustOption {\n /** 数据调整类型。 */\n readonly type: AdjustType;\n /**\n * 该属性只对 'dodge' 类型生效,取 0 到 1 范围的值(相对于每个柱子宽度),用于控制一个分组中柱子之间的间距。\n *\n * ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*ps3pToOg2nwAAAAAAAAAAABkARQnAQ)\n */\n readonly marginRatio?: number;\n /**\n * 该属性只对 'dodge' 类型生效,声明以哪个数据字段为分组依据。\n */\n readonly dodgeBy?: string;\n /**\n * 该属性只对 'stack' 类型生效,用于控制是否对数据进行反序操作。\n */\n readonly reverseOrder?: boolean;\n}\n\n/** `geometry.style({})` 样式配置定义 */\nexport interface StyleOption {\n /** 映射的字段。 */\n readonly fields?: string[];\n /** 回调函数。 */\n readonly callback?: (...args) => LooseObject;\n /** 图形样式配置。 */\n readonly cfg?: LooseObject;\n}\n\n/** geometry.custom() custom 自定义的配置,可以传入任何数据 */\nexport type CustomOption = any;\n\n/** `geometry.tooltip({})` Tooltip 配置定义 */\nexport interface GeometryTooltipOption {\n /** 参与映射的字段。 */\n readonly fields: string[];\n /** 回调函数。 */\n readonly callback?: (...args) => LooseObject;\n}\n\nexport interface GeometryLabelLayoutCfg {\n /** label 布局类型。 */\n type: string;\n /** 各个布局函数开放给用户的配置。 */\n cfg?: LooseObject;\n}\n\n/** geometry.label({}) 配置属性 */\nexport interface GeometryLabelCfg {\n /**\n * 用于声明渲染的 label 类型。\n * 当用户使用了自定义的 label 类型,需要声明具体的 type 类型,否则会使用默认的 label 类型渲染。\n */\n type?: string;\n /** 相对数据点的偏移距离, polar 和 theta 坐标系下可使用百分比字符串。 */\n offset?: number | string;\n /** label 相对于数据点在 X 方向的偏移距离。 */\n offsetX?: number;\n /** label 相对于数据点在 Y 方向的偏移距离。 */\n offsetY?: number;\n /**\n * 展示的文本内容,如果不声明则按照参与映射的第一字段的值进行显示。\n * 当 content 为 IGroup 或者 IShape 类型时,请使用相对定位,即 x 和 y 坐标都设为 0,G2 内部会整体做最后的 label 进行定位的。\n * 示例: https://g2.antv.vision/zh/examples/pie/basic#pie-custome-label\n */\n content?: string | IGroup | IShape | GeometryLabelContentCallback;\n /** label 文本图形属性样式。 */\n style?: LooseObject;\n /** label 是否自动旋转,默认为 true。 */\n autoRotate?: boolean;\n /**\n * 当且仅当 `autoRotate` 为 false 时生效,用于设置文本的旋转角度,**弧度制**。\n */\n rotate?: number;\n /** 标签高度设置,仅当标签类型 type 为 pie 时生效;也可在主题中设置 pieLabels.labelHeight */\n labelHeight?: number;\n /**\n * 用于设置文本连接线的样式属性,null 表示不展示。\n */\n labelLine?: null | boolean | { style?: object };\n /** 只对极坐标下的文本生效,表示文本是否按照角度进行放射状显示,true 表示开启,false 表示关闭。 */\n labelEmit?: boolean;\n /**\n * 文本布局类型,支持多种布局函数组合使用。\n *\n * 目前提供了三种:'overlap','fixedOverlap','limitInShape':\n * 1. overlap: label 防遮挡,为了防止 label 之间相互覆盖,通过尝试向**四周偏移**来剔除放不下的 label。\n * 2. fixed-overlap: 不改变 label 位置的情况下对相互重叠的 label 进行调整。\n * 3. limit-in-shape: 剔除 shape 容纳不了的 label。\n *\n * @example\n * ```ts\n * layout: {\n * type: 'overlap',\n * },\n * ```\n */\n layout?: GeometryLabelLayoutCfg | GeometryLabelLayoutCfg[];\n /**\n * 用于绘制 label 背景\n */\n background?: {\n /**\n * 背景框 图形属性配置\n * - fill?: string; 背景框 填充色\n * - stroke?: string; 背景框 描边色\n * - lineWidth?: string; 背景框 描边宽度\n * - radius?: number | number[]; 背景框圆角,支持整数或数组形式\n */\n style?: ShapeAttrs;\n /** 背景框 内边距 */\n padding?: number | number[];\n };\n /**\n * 仅当 geometry 为 interval 时生效,指定当前 label 与当前图形的相对位置。\n */\n position?:\n | ((data: Datum, mappingData: MappingDatum, index: number) => IntervalGeometryLabelPosition)\n | IntervalGeometryLabelPosition;\n /** 动画配置。 */\n animate?: AnimateOption | false | null;\n}\n\n/** `geometry().label({})` 配置定义 */\nexport interface LabelOption {\n /** 映射的字段。 */\n fields?: string[];\n /** 回调函数。 */\n callback?: LabelCallback;\n cfg?: GeometryLabelCfg;\n}\n\n/** Geometry 下每个 state 的配置结构 */\nexport interface StateCfg {\n /** 状态样式配置。 */\n style?: object | StateStyleCallback;\n}\n\n/** geometry.state({}) 配置定义 */\nexport interface StateOption {\n /** 默认状态样式。 */\n default?: StateCfg;\n /** active 状态配置。 */\n active?: StateCfg;\n /** inactive 状态配置。 */\n inactive?: StateCfg;\n /** selected 状态配置。 */\n selected?: StateCfg;\n}\n\n/** interval label 的位置 */\nexport type IntervalGeometryLabelPosition = 'top' | 'bottom' | 'middle' | 'left' | 'right';\n/** G2 提供的 adjust 类型 */\nexport type AdjustType = 'stack' | 'jitter' | 'dodge' | 'symmetric';\n/** geometry.color() 图形属性回调函数定义 */\nexport type ColorAttrCallback = (...args) => string;\n/** geometry.shape() 图形属性回调函数定义 */\nexport type ShapeAttrCallback = (...args) => string | any[];\n/** geometry.size() 图形属性回调函数定义 */\nexport type SizeAttrCallback = (...args) => number;\n/** geometry.tooltip() 接口回调函数定义 */\nexport type TooltipCallback = (...args) => LooseObject;\n/** geometry.style() 接口回调函数定义 */\nexport type StyleCallback = (...args) => LooseObject;\n/** geometry.label() 接口回调函数定义 */\nexport type LabelCallback = (...args) => GeometryLabelCfg | null | undefined;\n/** geometry label 中 content 属性的回调函数类型定义 */\nexport type GeometryLabelContentCallback = (\n data: Datum,\n mappingData: MappingDatum,\n index: number\n) => string | IShape | IGroup;\n/** state 下 style 回调函数定义 */\nexport type StateStyleCallback = (element: Element) => LooseObject;\n\n// ============================ Geometry Shape 接口相关的类型定义 ============================\n/** 获取 shape marker 时需要的信息 */\nexport interface ShapeMarkerCfg {\n /** 颜色。 */\n color: string;\n /** 是否是极坐标。 */\n isInPolar: boolean;\n}\n\n/** 图形 marker 的配置信息。 */\nexport interface ShapeMarkerAttrs {\n /** marker 的形状。 */\n symbol: string | ShapeMarkerSymbol;\n /**\n * marker 的样式,`ShapeAttrs` 属性结构如下:\n *\n * ```ts\n * {\n * // x 坐标\n * x?: number;\n * // y 坐标\n * y?: number;\n * // 圆半径\n * r?: number;\n * // 描边颜色\n * stroke?: string | null;\n * // 描边透明度\n * strokeOpacity?: number;\n * // 填充颜色\n * fill?: string | null;\n * // 填充透明度\n * fillOpacity?: number;\n * // 整体透明度\n * opacity?: number;\n * // 线宽\n * lineWidth?: number;\n * // 指定如何绘制每一条线段末端\n * lineCap?: 'butt' | 'round' | 'square';\n * // 用来设置2个长度不为0的相连部分(线段,圆弧,曲线)如何连接在一起的属性(长度为0的变形部分,其指定的末端和控制点在同一位置,会被忽略)\n * lineJoin?: 'bevel' | 'round' | 'miter';\n * // 设置线的虚线样式,可以指定一个数组。一组描述交替绘制线段和间距(坐标空间单位)长度的数字。 如果数组元素的数量是奇数,数组的元素会被复制并重复。例如, [5, 15, 25] 会变成 [5, 15, 25, 5, 15, 25]。这个属性取决于浏览器是否支持 setLineDash() 函数。\n * lineDash?: number[] | null;\n * // Path 路径\n * path?: string | object[];\n * // 图形坐标点\n * points?: object[];\n * // 宽度\n * width?: number;\n * // 高度\n * height?: number;\n * // 阴影模糊效果程度\n * shadowBlur?: number;\n * // 阴影颜色\n * shadowColor?: string | null;\n * // 阴影 x 方向偏移量\n * shadowOffsetX?: number;\n * // 阴影 y 方向偏移量\n * shadowOffsetY?: number;\n * // 设置文本内容的当前对齐方式\n * textAlign?: 'start' | 'center' | 'end' | 'left' | 'right';\n * // 设置在绘制文本时使用的当前文本基线\n * textBaseline?: 'top' | 'hanging' | 'middle' | 'alphabetic' | 'ideographic' | 'bottom';\n * // 字体样式\n * fontStyle?: 'normal' | 'italic' | 'oblique';\n * // 文本字体大小\n * fontSize?: number;\n * // 文本字体\n * fontFamily?: string;\n * // 文本粗细\n * fontWeight?: 'normal' | 'bold' | 'bolder' | 'lighter' | number;\n * // 字体变体\n * fontVariant?: 'normal' | 'small-caps' | string;\n * // 文本行高\n * lineHeight?: number;\n * [key: string]: any;\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/g/blob/28e3178b616573e0fa6d59694f1aaca2baaa9766/packages/g-base/src/types.ts#L37|ShapeAttrs}\n */\n style: ShapeAttrs;\n}\n\n/** shape 关键点信息 */\nexport interface ShapePoint {\n /** 数据点映射后对应 x 的值。 */\n readonly x: number | number[];\n /** 数据点映射后对应 y 的值。 */\n readonly y?: number | number[];\n /** 数据在 y 方向的最小值。 */\n readonly y0?: number;\n size?: number;\n}\n\n/** 小提琴图 shape 关键点信息 */\nexport type ViolinShapePoint = ShapePoint & { _size?: number[] };\n\n/** 注册 ShapeFactory 需要实现的接口。 */\nexport interface RegisterShapeFactory {\n /** 默认的 shape 类型。 */\n readonly defaultShapeType: string;\n /** 返回绘制 shape 所有的关键点集合。 */\n readonly getDefaultPoints?: (pointInfo: ShapePoint) => Point[];\n /** 获取 shape 的默认绘制样式 */\n readonly getDefaultStyle?: (geometryTheme: LooseObject) => LooseObject;\n /** 获取 shape 对应的缩略图配置。 */\n readonly getMarker?: (shapeType: string, markerCfg: ShapeMarkerCfg) => ShapeMarkerAttrs;\n /** 创建具体的 G.Shape 实例。 */\n readonly drawShape?: (shapeType: string, cfg: ShapeInfo, container: IGroup) => IShape | IGroup;\n}\n\n/** 注册具体 shape 需要实现的接口。 */\nexport interface RegisterShape {\n /** 计算绘制需要的关键点,在注册具体的 shape 时由开发者自己定义。 */\n readonly getPoints?: (pointInfo: ShapePoint) => Point[];\n /** 获取 shape 对应的缩略图样式配置,在注册具体的 shape 时由开发者自己定义。 */\n readonly getMarker?: (markerCfg: ShapeMarkerCfg) => ShapeMarkerAttrs;\n /** 绘制函数。 */\n readonly draw: (cfg: ShapeInfo, container: IGroup) => IShape | IGroup | void;\n}\n\n/** Shape 接口定义。 */\nexport interface Shape extends RegisterShape {\n /** 坐标系对象。 */\n coordinate: Coordinate;\n /** 工具函数,将 0~1 path 转化成实际画布 path。 */\n parsePath: (path: any) => PathCommand[];\n /** 工具函数,0~1 的坐标点转换成实际画布坐标点。 */\n parsePoint: (point: Point) => Point;\n /** 工具函数,0~1 的坐标点集合转换成实际画布坐标点集合。 */\n parsePoints: (points: Point[]) => Point[];\n}\n\n/** ShapeFactory 接口定义。 */\nexport interface ShapeFactory extends RegisterShapeFactory {\n /** 工厂名。 */\n geometryType: string;\n /** 坐标系对象。 */\n coordinate: Coordinate;\n /** ShapeFactory 下所有的主题样式。 */\n theme: LooseObject;\n /** 根据名称获取具体的 shape 对象。 */\n getShape: (shapeType: string | string[]) => Shape;\n /** 获取构成 shape 的关键点。 */\n getShapePoints: (shapeType: string | string[], pointInfo: ShapePoint) => Point[];\n}\n\n/** 自定义 Shape marker 的函数 */\nexport type ShapeMarkerSymbol = (x: number, y: number, r: number) => PathCommand[];\n\n// ============================ Annotation 类型定义 ============================\n/** Annotation position 回调函数 */\nexport type AnnotationPositionCallback = (\n xScales: Scale[] | Record<string, Scale>,\n yScales: Scale[] | Record<string, Scale>\n) => [number | string, number | string];\n/** Annotation 位置相关属性的类型定义 */\nexport type AnnotationPosition =\n | [number | string, number | string]\n | Record<string, number | string>\n | AnnotationPositionCallback;\n\n/** Annotation 定义的通用属性,chart.annotation().line({}) */\nexport interface AnnotationBaseOption {\n readonly type?: string;\n /** 指定 annotation 是否绘制在 canvas 最上层,默认为 false, 即绘制在最下层 */\n readonly top?: boolean;\n /** 是否进行动画 */\n readonly animate?: boolean;\n /** 动画参数配置,当且仅当 `animate` 属性为 true,即动画开启时生效。 */\n readonly animateOption?: ComponentAnimateOption;\n /** x 方向的偏移量 */\n readonly offsetX?: number;\n /** y 方向的偏移量 */\n readonly offsetY?: number;\n}\n\n/** 使用 RegionPosition 定位的组件配置 */\nexport interface RegionPositionBaseOption extends AnnotationBaseOption {\n /** 起始位置 */\n readonly start: AnnotationPosition;\n /** 结束位置 */\n readonly end: AnnotationPosition;\n /** 图形样式属性 */\n readonly style?: ShapeAttrs;\n}\n\n/** 使用 PointPosition 定位的组件配置 */\nexport interface PointPositionBaseOption extends AnnotationBaseOption {\n /** Point 定位位置 */\n readonly position: AnnotationPosition;\n}\n\n/** 使用 Image Annotation 组件的配置定义 */\nexport interface ImageOption extends RegionPositionBaseOption {\n /** 图片路径 */\n readonly src: string;\n}\n\n/** 使用 Line Annotation 组件的配置定义 */\nexport interface LineOption extends RegionPositionBaseOption {\n /** 文本配置定义 */\n readonly text?: LineAnnotationTextCfg;\n}\n/** 使用 Arc Annotation 组件的配置定义 */\nexport type ArcOption = RegionPositionBaseOption;\n/** 使用 Region Annotation 组件的配置定义 */\nexport type RegionOption = RegionPositionBaseOption;\n/** 使用 Text Annotation 组件的配置定义 */\nexport interface TextOption extends PointPositionBaseOption, Omit<EnhancedTextCfg, 'content'> {\n content?: string | number | ((filteredData: object[]) => string | number);\n}\n/** 使用 DataMarker Annotation 组件的配置定义 */\nexport interface DataMarkerOption extends PointPositionBaseOption {\n /** point 设置 */\n readonly point?: null | { style?: ShapeAttrs };\n /** line 设置 */\n readonly line?: null | { style?: ShapeAttrs; length?: number };\n /** text 设置 */\n readonly text: null | EnhancedTextCfg;\n /** 文本超出绘制区域时,是否自动调节文本方向,默认为 true */\n readonly autoAdjust?: boolean;\n /** 朝向,默认为 upward,可选值为 'upward' 或者 'downward' */\n readonly direction?: 'upward' | 'downward';\n}\n/** 使用 DataRegion Annotation 组件的配置定义 */\nexport interface DataRegionOption extends RegionPositionBaseOption {\n /** line长度,default为 0 */\n readonly lineLength?: number;\n /** 标注区间的配置 */\n readonly region?: null | { style?: ShapeAttrs };\n /** 文本的配置 */\n readonly text?: null | EnhancedTextCfg;\n}\n/** 使用 RegionFilter Annotation 组件的配置定义 */\nexport interface RegionFilterOption extends RegionPositionBaseOption {\n /** 染色色值 */\n readonly color: string;\n /* 可选,设定regionFilter只对特定geom类型起作用,如apply:['area'] */\n readonly apply?: string[];\n}\n\n/** Shape Annotation 的配置 */\nexport interface ShapeAnnotationOption extends AnnotationBaseOption {\n /** 自定义 Annotation 绘制函数 */\n render: (\n container: IGroup,\n view: View,\n helpers: { parsePosition: (position: [string | number, string | number] | Datum) => Point }\n ) => void;\n}\n\n/**\n * Html Annotation 配置\n */\nexport interface HtmlAnnotationOption extends PointPositionBaseOption {\n /** 容器元素 */\n container?: string | HTMLElement;\n /** 自定义 HTML DOM 元素 */\n html: string | HTMLElement | ((container: HTMLElement, view: View) => void | string | HTMLElement);\n /** X 方向对齐 */\n alignX?: 'left' | 'middle' | 'right';\n /** Y 方向对齐 */\n alignY?: 'top' | 'middle' | 'bottom';\n /** X 方向偏移 */\n offsetX?: number;\n /** Y 方向偏移 */\n offsetY?: number;\n}\n\n// ============================ Chart && View 上的类型定义 ============================\n/** Tooltip 内容框的 css 样式定义 */\nexport interface TooltipDomStyles {\n 'g2-tooltip'?: LooseObject;\n 'g2-tooltip-title'?: LooseObject;\n 'g2-tooltip-list'?: LooseObject;\n 'g2-tooltip-list-item'?: LooseObject;\n 'g2-tooltip-marker'?: LooseObject;\n 'g2-tooltip-value'?: LooseObject;\n 'g2-tooltip-name'?: LooseObject;\n}\n\n/** 目前组件动画允许的参数配置 */\nexport interface ComponentAnimateCfg {\n /** 动画执行时间 */\n readonly duration?: number;\n /** 动画缓动函数 */\n readonly easing?: string;\n /** 动画延迟时间 */\n readonly delay?: number;\n}\n/** 组件各个动画类型配置 */\nexport interface ComponentAnimateOption {\n /** 初入场动画配置 */\n appear?: ComponentAnimateCfg;\n /** 更新动画配置 */\n update?: ComponentAnimateCfg;\n /** 更新后新入场的动画配置 */\n enter?: ComponentAnimateCfg;\n /** 离场动画配置 */\n leave?: ComponentAnimateCfg;\n}\n\n/** 列定义配置项 */\nexport interface ScaleOption extends ScaleConfig {\n /** 声明度量类型。 */\n type?: ScaleType;\n /**\n * 同步 scale。\n *\n * @example\n * ```ts\n * chart.scale({\n * x: { sync: true },\n * y: { sync: true },\n * x1: { sync: 'x1' },\n * x2: { sync: 'x1' },\n * });\n * ```\n *\n * 通过以上配置,我们会分别对 x 和 y 两个字段,x1 和 x2 两个字段进行同步度量操作。\n */\n sync?: boolean | string;\n /**\n * 只对 type: 'time' 的 scale 生效,强制显示最后的日期 tick。\n */\n showLast?: boolean;\n /**\n * 用于声明使用数据记录中的哪些字段来组成一条数据的唯一 id(如有多个字段,则使用 '-' 连接)。\n * 数据 id 用于标识 Element 图形元素,应用于 Geometry 中的图形元素 Element 更新。\n * 默认 G2 内部会有一套 ID 生成规则,如果不能满足用户需求,用户既可以使用该属性配置 id。\n * @example\n *\n * 下面的例子中,声明了将 'x' 和 'y' 字段的数值来作为每条数据记录的 id,即下面数据两条数据的 id 分别为:'1-23' 和 '2-2'。\n * ```ts\n * const data = [\n * { x: 1, y: 23, z: 'a' },\n * { x: 2, y: 2, z: 'b' },\n * ];\n *\n * chart.scale({\n * x: { key: true },\n * y: { key: true },\n * });\n * ```\n */\n key?: boolean;\n}\n\n/** Geometry 动画参数配置。geometry.animate() */\nexport interface AnimateOption {\n /** chart 初始化渲染时的入场动画,false/null 表示关闭入场动画。 */\n appear?: AnimateCfg | false | null;\n /** chart 发生更新时,新增元素的入场动画,false/null 表示关闭入场动画。 */\n enter?: AnimateCfg | false | null;\n /** 更新动画配置,false/null 表示关闭更新动画。 */\n update?: AnimateCfg | false | null;\n /** 销毁动画配置,false/null 表示关闭销毁动画。 */\n leave?: AnimateCfg | false | null;\n}\n\n/** 用于配置项式声明交互行为 */\nexport interface InteractionOption {\n /** 交互名称 */\n type: string;\n /** 交互配置 */\n cfg?: LooseObject;\n}\n\n/** 用于配置项式的 Geometry 创建方式 */\nexport interface GeometryOption {\n /** Geometry 的类型。 */\n type?: 'interval' | 'line' | 'path' | 'point' | 'area' | 'polygon' | 'schema' | 'edge' | 'heatmap' | string;\n /** position 通道映射规则,对应 `geometry.position()`。 */\n position?: string | AttributeOption;\n /** color 通道映射规则,对应 `geometry.color()`。 */\n color?: string | AttributeOption;\n /** shape 通道映射规则,对应 `geometry.shape()`。 */\n shape?: string | AttributeOption;\n /** size 通道映射规则,对应 `geometry.size()`。 */\n size?: number | string | AttributeOption;\n /** adjust 数据调整方式,对应 `geometry.adjust()`。 */\n adjust?: string | string[] | AdjustOption | AdjustOption[];\n /** style 样式配置,对应 `geometry.size()`。 */\n style?: StyleOption | LooseObject;\n /** tooltip 配置,对应 `geometry.tooltip()`。 */\n tooltip?: GeometryTooltipOption | boolean | string;\n /** Geometry 动画配置,对应 `geometry.animate()`。 */\n animate?: AnimateOption | boolean;\n /** Label 配置,对应 `geometry.label()`。 */\n label?: LabelOption | false | string;\n /** state 样式配置,对应 `geometry.state()`。 */\n state?: StateOption;\n /** 其他配置 */\n cfg?: {\n /** 是否对数据进行排序 */\n sortable?: boolean;\n /** 是否可见 */\n visible?: boolean;\n /** 是否连接空值,仅对 'line', 'area' 和 'path' 生效 */\n connectNulls?: boolean;\n };\n}\n\n/** 用于配置型式的 View 声明方式 */\nexport interface ViewOption {\n /** view 的唯一表示 ID */\n readonly id?: string;\n /** view 的绘制范围,起始点为左上角。 */\n readonly region?: Region;\n /**\n * 设置图表的内边距,使用方式参考 CSS 盒模型。\n * 下图黄色区域即为 padding 的范围。\n * ![](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*pYwiQrdXGJ8AAAAAAAAAAABkARQnAQ)\n *\n * @example\n * 1. padding: 20\n * 2. padding: [ 10, 30, 30 ]\n */\n readonly padding?: ViewPadding;\n /** 设置主题。 */\n readonly theme?: LooseObject | string;\n /** 是否可见。 */\n readonly visible?: boolean;\n /**\n * 图表组件、图形映射等相关的配置。\n */\n readonly options?: Options;\n}\n\n/** Chart 构造方法的入参 */\nexport interface ChartCfg\n extends Omit<ViewCfg, 'parent' | 'canvas' | 'foregroundGroup' | 'middleGroup' | 'backgroundGroup' | 'region'> {\n /** 指定 chart 绘制的 DOM,可以传入 DOM id,也可以直接传入 dom 实例。 */\n readonly container: string | HTMLElement;\n /** 图表宽度。 */\n readonly width?: number;\n /** 图表高度。 */\n readonly height?: number;\n /**\n * 图表是否自适应容器宽高,默认为 false,用户需要手动设置 width 和 height。\n * 当 `autoFit: true` 时,会自动取图表容器的宽高,如果用户设置了 height,那么会以用户设置的 height 为准。\n */\n readonly autoFit?: boolean;\n /** 指定渲染引擎,默认使用 canvas。 */\n readonly renderer?: Renderer;\n /** 设置设备像素比,默认取浏览器的值 `window.devicePixelRatio`。 */\n readonly pixelRatio?: number;\n /**\n * 是否开启局部刷新,默认开启。\n */\n readonly localRefresh?: boolean;\n /** 支持 CSS transform,开启后图表的交互以及事件将在页面设置了 css transform 属性时生效,默认关闭。 */\n readonly supportCSSTransform?: boolean;\n /**\n * 配置图表默认交互,仅支持字符串形式。\n */\n readonly defaultInteractions?: string[];\n}\n\nexport type SyncViewPaddingFn = (chart: View, views: View[], PC: PaddingCalCtor) => void;\n\n/** View 构造参数 */\nexport interface ViewCfg {\n /** View id,可以由外部传入 */\n readonly id?: string;\n /** 当前 view 的父级 view。 */\n readonly parent: View;\n /** canvas 实例。 */\n readonly canvas: ICanvas;\n /** 前景层 */\n readonly foregroundGroup: IGroup;\n /** 中间层 */\n readonly middleGroup: IGroup;\n /** 背景层 */\n readonly backgroundGroup: IGroup;\n /** view 的绘制范围 */\n readonly region?: Region;\n /** 是否对超出坐标系范围的 Geometry 进行剪切 */\n readonly limitInPlot?: boolean;\n /**\n * 设置图表的内边距,使用方式参考 CSS 盒模型。\n * 下图黄色区域即为 padding 的范围。\n * ![](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*pYwiQrdXGJ8AAAAAAAAAAABkARQnAQ)\n *\n * @example\n * 1. padding: 20\n * 2. padding: [ 10, 30, 30 ]\n */\n readonly padding?: ViewPadding;\n /**\n * 设置图表的内边距在padding的基础上增加appendPadding的调整。\n * @example\n * 1. padding: 20\n * 2. padding: [ 10, 30, 30 ]\n */\n readonly appendPadding?: ViewAppendPadding;\n /**\n * 是否同步子 view 的 padding,可以是 boolean / SyncViewPaddingFn\n * 比如:\n * view1 的 padding 10\n * view2 的 padding 20\n * 那么两个子 view 的 padding 统一变成最大的 20.\n *\n * 如果是 Funcion,则使用自定义的方式去计算子 view 的 padding,这个函数中去修改所有的 views autoPadding 值\n */\n readonly syncViewPadding?: boolean | SyncViewPaddingFn;\n /** 设置 view 实例主题。 */\n readonly theme?: LooseObject | string;\n /**\n * 图表组件、图形映射等相关的配置。\n */\n readonly options?: Options;\n /** 是否可见。 */\n readonly visible?: boolean;\n}\n\n/**\n * @ignore\n * 组件及布局的信息\n */\nexport interface ComponentOption {\n readonly id?: string;\n readonly component: GroupComponent | HtmlComponent;\n readonly layer: LAYER;\n direction: DIRECTION;\n readonly type: COMPONENT_TYPE;\n /* 其他的额外信息 */\n readonly extra?: any;\n}\n\n/** Legend marker 的配置结构 */\nexport interface MarkerCfg extends LegendMarkerCfg {\n /** 配置图例 marker 的 symbol 形状。 */\n symbol?: Marker | MarkerCallback;\n style?: ShapeAttrs | ((style: ShapeAttrs) => ShapeAttrs);\n}\n\n/** Legend item 各个图例项的数据结构 */\nexport interface LegendItem {\n /**\n * 唯一值,用于动画或者查找\n */\n id?: string;\n /** 名称 */\n name: string;\n /** 值 */\n value: any;\n /** 图形标记 */\n marker?: MarkerCfg;\n /** 初始是否处于未激活状态 */\n unchecked?: boolean;\n}\n\nexport interface G2LegendTitleCfg extends LegendTitleCfg {\n /** title 文本显示内容 */\n text?: string;\n}\n\n/**\n * 图例项配置\n */\nexport interface LegendCfg {\n /**\n * 是否为自定义图例,当该属性为 true 时,需要声明 items 属性。\n */\n readonly custom?: boolean;\n /**\n * 布局方式: horizontal,vertical\n */\n layout?: 'horizontal' | 'vertical';\n /**\n * 图例标题配置,默认不展示。\n *\n * 属性结构如下:\n *\n * ```ts\n * {\n * spacing?: number; // 标题同图例项的间距\n * style?: ShapeAttrs; // 文本样式配置项\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L639|LegendTitleCfg},\n */\n title?: G2LegendTitleCfg;\n /**\n * 背景框配置项。\n *\n * 属性结构如下:\n *\n * ```ts\n * {\n * padding?: number | number[]; // 背景的留白\n * style?: ShapeAttrs; // 背景样式配置项\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L652|LegendBackgroundCfg}\n */\n background?: LegendBackgroundCfg;\n /** 图例的位置。 */\n position?:\n | 'top'\n | 'top-left'\n | 'top-right'\n | 'right'\n | 'right-top'\n | 'right-bottom'\n | 'left'\n | 'left-top'\n | 'left-bottom'\n | 'bottom'\n | 'bottom-left'\n | 'bottom-right';\n /** 动画开关,默认关闭。 */\n animate?: boolean;\n /** 动画参数配置,当且仅当 `animate` 属性为 true,即动画开启时生效。 */\n animateOption?: ComponentAnimateOption;\n /**\n * **分类图例适用**,控制图例项水平方向的间距。\n */\n itemSpacing?: number;\n /**\n * **分类图例适用**,控制图例项垂直方向的间距。\n */\n itemMarginBottom?: number;\n /**\n * **分类图例适用**,图例项的最大宽度,超出则自动缩略。\n * `maxItemWidth` 可以是像素值;\n * 也可以是相对值(取 0 到 1 范围的数值),代表占图表宽度的多少\n */\n maxItemWidth?: number;\n /**\n * **分类图例适用**,图例项的宽度, 默认为 null,自动计算。\n */\n itemWidth?: number;\n /**\n * **分类图例适用**,图例的高度,默认为 null。\n */\n itemHeight?: number;\n /**\n * **分类图例适用**,图例项 name 文本的配置。\n * 属性结构如下:\n *\n * ```ts\n * {\n * spacing?: number; // 图例项 name 同后面 value 的间距\n * formatter?: (text: string, item: ListItem, index: number) => any; // 格式化文本函数\n * style?: ShapeAttrs; // 文本配置项\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L665|LegendItemNameCfg},\n */\n itemName?: LegendItemNameCfg;\n /**\n * **分类图例适用**,图例项 value 附加值的配置项。\n * 属性结构如下:\n *\n * ```ts\n * {\n * alignRight?: boolean; // 是否右对齐,默认为 false,仅当设置图例项宽度时生效\n * formatter?: (text: string, item: ListItem, index: number) => any; // 格式化文本函数\n * style?: ShapeAttrs; // 图例项附加值的配置\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L685|LegendItemValueCfg},\n */\n itemValue?: LegendItemValueCfg;\n /**\n * **分类图例适用**,图例项最大宽度设置。\n */\n maxWidth?: number;\n /**\n * **分类图例适用**,图例项最大高度设置。\n */\n maxHeight?: number;\n /**\n * **分类图例适用**,图例项最大宽度比例(以 view 的 bbox 宽度为参照,默认 0.25)。\n */\n maxWidthRatio?: number;\n /**\n * **分类图例适用**,图例项最大高度比例(以 view 的 bbox 高度为参照,默认 0.25)。\n */\n maxHeightRatio?: number;\n /**\n * **分类图例适用**,图例项的 marker 图标的配置。\n */\n marker?: MarkerCfg | ((name: string, index: number, item: { name: string; value: string } & MarkerCfg) => MarkerCfg);\n /**\n * **适用于分类图例**,当图例项过多时是否进行分页。\n */\n flipPage?: boolean;\n /**\n * **适用于分类图例**,图例分页器的样式设置。\n */\n pageNavigator?: LegendPageNavigatorCfg;\n /**\n * **分类图例适用**,用户自己配置图例项的内容。\n */\n items?: LegendItem[];\n /**\n * **分类图例适用**,是否将图例项逆序展示。\n */\n reversed?: boolean;\n\n /**\n * **连续图例适用**,选择范围的最小值。\n */\n min?: number;\n /**\n * **连续图例适用**,选择范围的最大值。\n */\n max?: number;\n /**\n * **连续图例适用**,选择的值。\n */\n value?: number[];\n /**\n * **连续图例适用**,选择范围的色块样式配置项。\n * 属性结构如下:\n *\n * ```ts\n * {\n * style?: ShapeAttrs; // 选定范围的样式\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L574|ContinueLegendTrackCfg}\n */\n track?: ContinueLegendTrackCfg;\n /**\n * **连续图例适用**,图例滑轨(背景)的样式配置项。\n * 属性结构如下:\n *\n * ```ts\n * {\n * type?: string; // rail 的类型,color, size\n * size?: number; // 滑轨的宽度\n * defaultLength?: number; // 滑轨的默认长度,,当限制了 maxWidth,maxHeight 时,不会使用这个属性会自动计算长度\n * style?: ShapeAttrs; // 滑轨的样式\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L595|ContinueLegendRailCfg},\n */\n rail?: ContinueLegendRailCfg;\n /**\n * **连续图例适用**,文本的配置项。\n * 属性结构如下:\n *\n * ```ts\n * {\n * // 文本同滑轨的对齐方式,有五种类型\n * // rail : 同滑轨对齐,在滑轨的两端\n * // top, bottom: 图例水平布局时有效\n * // left, right: 图例垂直布局时有效\n * align?: string;\n * spacing?: number; // 文本同滑轨的距离\n * style?: ShapeAttrs; // 文本样式\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L618|ContinueLegendLabelCfg}\n */\n label?: ContinueLegendLabelCfg;\n /**\n * **连续图例适用**,滑块的配置项。\n * 属性结构如下:\n *\n * ```ts\n * {\n * size?: number; // 滑块的大小\n * style?: ShapeAttrs; // 滑块的样式设置\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L582|ContinueLegendTrackCfg},\n */\n handler?: ContinueLegendHandlerCfg;\n /**\n * **连续图例适用**,滑块是否可以滑动。\n */\n slidable?: boolean;\n /** 图例 x 方向的偏移。 */\n offsetX?: number;\n /** 图例 y 方向的偏移。 */\n offsetY?: number;\n /** 图例在四个方向的偏移量 */\n padding?: number[];\n /**\n * 图例高亮状态,false 表示默认置灰,无或 true 表示高亮\n */\n selected?: {\n [key: string]: boolean;\n };\n}\n\n/**\n * Tooltip Crosshairs 的文本数据结构。\n */\nexport interface TooltipCrosshairsText extends CrosshairTextCfg {\n /** crosshairs 文本内容 */\n content?: string;\n}\n\n/**\n * 辅助线文本回调函数\n * @param type 对应当前 crosshairs 的类型,值为 'x' 或者 'y'\n * @param defaultContent 对应当前 crosshairs 默认的文本内容\n * @param items 对应当前 tooltip 内容框中的数据\n * @param currentPoint 对应当前坐标点\n * @returns 返回当前 crosshairs 对应的辅助线文本配置\n */\nexport type TooltipCrosshairsTextCallback = (\n type: string,\n defaultContent: any,\n items: any[],\n currentPoint: Point\n) => TooltipCrosshairsText;\n/** Tooltip crosshairs 配置结构 */\nexport interface TooltipCrosshairs {\n /**\n * crosshairs 的类型: `x` 表示 x 轴上的辅助线,`y` 表示 y 轴上的辅助项。\n * 以下是在不同坐标系下,crosshairs 各个类型的表现:\n *\n * | 坐标系 | type = 'x' | type = 'xy' | type = 'y' |\n * | ------------ | ------------- | ------------- |\n * | 直角坐标系 | ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*jmUBQ4nbtXsAAAAAAAAAAABkARQnAQ) | ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*RpWXT76ZSQgAAAAAAAAAAABkARQnAQ) | ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*Xjl8TLIJLuUAAAAAAAAAAABkARQnAQ) |\n * | 极坐标 | ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*zbMVSoKTyFsAAAAAAAAAAABkARQnAQ) | ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*k5EYRJspET0AAAAAAAAAAABkARQnAQ) | ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*n_TKQpUaXWEAAAAAAAAAAABkARQnAQ) |\n */\n type?: 'x' | 'y' | 'xy';\n /**\n * 辅助线的样式配置。\n * 属性结构如下:\n *\n * ```ts\n * {\n * style?: ShapeAttrs; // 线的样式配置\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L1177|CrosshairLineCfg}\n */\n line?: CrosshairLineCfg;\n /**\n * 辅助线文本配置,支持回调。\n */\n text?: TooltipCrosshairsText | TooltipCrosshairsTextCallback;\n /**\n * 辅助线文本背景配置。\n * 属性结构如下:\n *\n * ```ts\n * {\n * padding?: number | number[]; // 文本背景周围的留白\n * style?: ShapeAttrs; // 文本背景的样式\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L1185|CrosshairTextBackgroundCfg}\n */\n textBackground?: CrosshairTextBackgroundCfg;\n /** 辅助线是否跟随鼠标移动,默认为 false,即定位到数据点 */\n follow?: boolean;\n}\n\nexport type TooltipTitle = string | ((title: string, datum: Datum) => string);\n\nexport type TooltipItem = {\n /** 原始数据 */\n readonly data: Datum; // 原始数据\n /** 映射之后的数据 */\n readonly mappingData: Datum; // 映射后的数据\n /** tooltip item 中名称 */\n readonly name: string;\n /** tooltip item 中值 */\n readonly value: string | number;\n /** tooltip item 中颜色 */\n readonly color: string;\n /** tooltip item 中图标类型 */\n readonly marker: string;\n};\n\n/** chart.tooltip() 接口配置属性 */\nexport interface TooltipCfg {\n /**\n * 设置 tooltip 内容框是否跟随鼠标移动。\n * 默认为 true,跟随鼠标移动,false 则固定位置不随鼠标移动。\n */\n follow?: boolean;\n /** tooltip 是否允许鼠标滑入,默认为 false,不允许 */\n enterable?: boolean;\n /** tooltip 显示延迟(ms),默认为 16ms,建议在 enterable = true 的时候才设置 */\n showDelay?: number;\n /** 是否展示 tooltip 标题。 */\n showTitle?: boolean;\n /**\n * 设置 tooltip 的标题内容:如果值为数据字段名,则会展示数据中对应该字段的数值,如果数据中不存在该字段,则直接展示 title 值。\n * 同时支持传入方法,回调的方式返回字符串\n */\n title?: TooltipTitle;\n /** 设置 tooltip 的固定展示位置,相对于数据点。 */\n position?: 'top' | 'bottom' | 'left' | 'right';\n /** true 表示合并当前点对应的所有数据并展示,false 表示只展示离当前点最逼近的数据内容。 */\n shared?: boolean; // 是否只展示单条数据\n /** 是否展示 crosshairs。 */\n showCrosshairs?: boolean;\n /** 配置 tooltip 的 crosshairs,当且仅当 `showCrosshairs` 为 true 时生效。 */\n crosshairs?: TooltipCrosshairs;\n /** 是否渲染 tooltipMarkers。 */\n showMarkers?: boolean;\n /** tooltipMarker 的样式配置。 */\n marker?: object;\n /** 是否展示 tooltip 内容框 */\n showContent?: boolean | ((datum: Datum) => boolean);\n /** 自定义 tooltip 的容器。 */\n container?: string | HTMLElement;\n /** 用于指定图例容器的模板,自定义模板时必须包含各个 dom 节点的 class。 */\n containerTpl?: string;\n /** 每项记录的默认模板,自定义模板时必须包含各个 dom 节点的 class。 */\n itemTpl?: string;\n /** 传入各个 dom 的样式。 */\n domStyles?: TooltipDomStyles;\n /** tooltip 偏移量。 */\n offset?: number;\n /** 是否将 tooltip items 逆序 */\n reversed?: boolean;\n /** 是否显示空值的 tooltip 项目 */\n showNil?: boolean;\n /** 在 tooltip 渲染之前,对最终的 items 进行自定义处理(比如排序、过滤、格式化等) */\n customItems?: (originalItems: TooltipItem[]) => TooltipItem[];\n /** 支持自定义模板 */\n customContent?: (title: string, data: any[]) => string | HTMLElement;\n}\n\n/** 坐标系配置 */\nexport interface CoordinateOption {\n /** 坐标系类型 */\n type?: 'polar' | 'theta' | 'rect' | 'cartesian' | 'helix';\n /** 坐标系配置项,目前常用于极坐标。 */\n cfg?: CoordinateCfg;\n /**\n * 坐标系变换操作:\n * 1. rotate 表示旋转,使用弧度制。\n * 2. scale 表示沿着 x 和 y 方向的缩放比率。\n * 3. reflect 表示沿 x 方向镜像或者沿 y 轴方向映射。\n * 4. transpose 表示 x,y 轴置换。\n */\n actions?: CoordinateActions[];\n}\n\n/** 极坐标系支持的配置属性 */\nexport interface CoordinateCfg {\n /**\n * 用于极坐标,配置起始弧度。\n */\n startAngle?: number;\n /**\n * 用于极坐标,配置结束弧度。\n */\n endAngle?: number;\n /**\n * 用于极坐标,配置极坐标半径,0 - 1 范围的数值。\n */\n radius?: number;\n /**\n * 用于极坐标,极坐标内半径,0 -1 范围的数值。\n */\n innerRadius?: number;\n}\n\n/** 坐标轴网格线的配置属性 */\nexport interface AxisGridCfg {\n /**\n * 线的样式。\n * 属性结构如下:\n *\n * ```ts\n * {\n * type?: string; // 栅格线的类型,'line' 或者 'circle'\n * style?: ShapeAttrs; // 栅格线的样式配置项\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L407|GridLineCfg}\n */\n line?: GridLineCfg;\n /**\n * 两个栅格线间的填充色。\n */\n alternateColor?: string | string[];\n /**\n * 对于 circle 是否关闭 grid。\n */\n closed?: boolean;\n /**\n * 是否同刻度线对齐,如果值为 false,则会显示在两个刻度中间。\n * ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*YX6fS4GTTvMAAAAAAAAAAABkARQnAQ)\n */\n alignTick?: boolean;\n}\n\n/** 坐标轴配置属性,chart.axis() */\nexport interface AxisCfg {\n /**\n * 是否渲染在画布顶层,防止部分图形中,需要将 axis 显示在图形上面,避免被图形遮挡\n */\n top?: boolean;\n /**\n * 适用于直角坐标系,设置坐标轴的位置。\n */\n position?: 'top' | 'bottom' | 'right' | 'left';\n /**\n * 坐标轴线的配置项,null 表示不展示。\n * 属性结构如下:\n *\n * ```ts\n * {\n * style?: ShapeAttrs; // 坐标轴线的样式配置项\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L91|AxisLineCfg}\n */\n line?: AxisLineCfg | null;\n /**\n * 坐标轴刻度线线的配置项,null 表示不展示。\n * 属性结构如下:\n *\n * ```ts\n * {\n * style?: ShapeAttrs; // 坐标轴刻度线的样式配置项\n * alignTick?: boolean; // 是否同 tick 对齐\n * length?: number; // 长度\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L103|AxisTickLineCfg}\n */\n tickLine?: AxisTickLineCfg | null;\n /**\n * 坐标轴子刻度线的配置项,null 表示不展示。\n * 属性结构如下:\n *\n * ```ts\n * {\n * style?: ShapeAttrs; // 坐标轴刻度线的样式配置项\n * count?: number; // 子刻度个数\n * length?: number; // 子刻度线长度\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L169|AxisSubTickLineCfg}\n */\n subTickLine?: AxisSubTickLineCfg | null;\n /**\n * 标题的配置项,null 表示不展示。\n * 属性结构如下:\n *\n * ```ts\n * {\n * offset?: number; // 标题距离坐标轴的距离\n * style?: ShapeAttrs; // 标题文本配置项\n * autoRotate?: boolean; // 是否自动旋转\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L191|AxisTitleCfg}\n */\n title?: AxisTitleCfg | null;\n /**\n * 文本标签的配置项,null 表示不展示。\n * 属性结构如下:\n *\n * ```ts\n * {\n * // 坐标轴文本的样式\n * style?: ShapeAttrs;\n * // label 的偏移量\n * offset?: number;\n * // 文本旋转角度\n * rotate?: number;\n * // 格式化函数\n * formatter?: (text: string, item: ListItem, index: number) => any;\n * // 是否自动旋转,默认 false\n * autoRotate?: boolean | (isVertical: boolean, labelGroup: IGroup, limitLength?: number) => boolean; | string;\n * // 是否自动隐藏,默认 true\n * autoHide?: boolean | (isVertical: boolean, labelGroup: IGroup, limitLength?: number) => boolean; | string;\n * // 是否自动省略,默认 false\n * autoEllipsis?: boolean | (isVertical: boolean, labelGroup: IGroup, limitLength?: number) => boolean; | string;\n * }\n * ```\n *\n * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L127|AxisLabelCfg}\n */\n label?: AxisLabelCfg | null;\n /** 坐标轴网格线的配置项,null 表示不展示。 */\n grid?: AxisGridCfg | null;\n /** 动画开关,默认开启。 */\n animate?: boolean;\n /** 动画参数配置。 */\n animateOption?: ComponentAnimateOption;\n /** 标记坐标轴 label 的方向,左侧为 1,右侧为 -1。 */\n verticalFactor?: number;\n /**\n * 配置坐标轴垂直方向的最大限制长度,对文本自适应有很大影响。\n * 1. 可以直接设置像素值,如 100;\n * 2. 也可设置绝对值,如 0.2,如果是 x 轴,则相对于图表的高度,如果是 y 轴,则相对于图表的宽度\n *\n * 在 G2 中,x 轴的文本默认最大高度为图表高度的 1/2,y 轴的文本默认最大长度为图表宽度的 1/3\n */\n verticalLimitLength?: number;\n}\n\nexport interface SliderCfg {\n /** slider 高度 */\n readonly height?: number;\n\n /** 滑块背景区域配置 */\n readonly trendCfg?: Omit<TrendCfg, 'data'> & { data?: number[] };\n /** 滑块背景样式 */\n readonly backgroundStyle?: any;\n /** 滑块前景样式 */\n readonly foregroundStyle?: any;\n /** 滑块两个操作块样式 */\n readonly handlerStyle?: any;\n /** 文本样式 */\n readonly textStyle?: any;\n /** 允许滑动位置的最小值 */\n readonly minLimit?: number;\n /** 允许滑动位置的最大值 */\n readonly maxLimit?: number;\n /** 滑块初始化的起始位置 */\n readonly start?: number;\n /** 滑块初始化的结束位置 */\n readonly end?: number;\n /** 布局的 padding */\n readonly padding?: number[];\n /** 滑块文本格式化函数 */\n formatter?: (val: any, datum: Datum, idx: number) => any;\n}\n\n/**\n * 事件 payload\n */\nexport type EventPayload = LooseObject & {\n /** 触发事件的来源 */\n source?: string;\n};\n\nexport type EventCallback = (event: LooseObject) => void;\n/**\n * todo: 事件名可穷举,后续需要补充\n * 事件配置项\n */\nexport interface EventCfg {\n [key: string]: EventCallback;\n}\n\n/**\n * 缩略轴的配置项\n */\nexport type SliderOption = SliderCfg | boolean;\n\n/** 滚动条组件配置项 */\nexport interface ScrollbarCfg {\n /** 滚动条类型,默认 horizontal */\n type?: 'horizontal' | 'vertical';\n /** 宽度,在 vertical 下生效 */\n width?: number;\n /** 高度,在 horizontal 下生效 */\n height?: number;\n /** 可选 padding */\n padding?: Padding;\n /** 对应水平滚动条,为 X 轴每个分类字段的宽度;对于垂直滚动条,为 X 轴每个分类字段的高度 */\n categorySize?: number;\n /** 滚动的时候是否开启动画,默认跟随 view 中 animate 配置 */\n animate?: boolean;\n /** 主题样式设置, 暂不提供 hover 高亮滑块样式配置 */\n style?: {\n /** 滑道颜色 */\n trackColor?: string;\n /** 滑块颜色 */\n thumbColor?: string;\n /** 滑块高亮样式,对应主题的 hover.style.thumbColor */\n thumbHighlightColor?: string;\n // 是否圆角,'round'\n lineCap?: string;\n };\n}\n\n/** 滚动条配置 */\nexport type ScrollbarOption = ScrollbarCfg | boolean;\n\n/** 配置项声明式 */\nexport interface Options {\n /** 数据源配置。 */\n readonly data?: Data;\n /** 设置数据过滤条件,以 data 中的数据属性为 key。 */\n readonly filters?: Record<string, FilterCondition>;\n /** 坐标轴配置,以 data 中的数据属性为 key。 */\n readonly axes?: Record<string, AxisOption> | boolean;\n /** 图例配置,以 data 中的数据属性为 key。 */\n readonly legends?: AllLegendsOptions;\n /** 列定义配置,用于配置数值的类型等,以 data 中的数据属性为 key。 */\n readonly scales?: Record<string, ScaleOption>;\n /** Tooltip 配置。 */\n readonly tooltip?: TooltipOption;\n /** 坐标系配置。 */\n readonly coordinate?: CoordinateOption;\n /** 静态辅助元素声明。 */\n readonly annotations?: (\n | ArcOption\n | RegionFilterOption\n | ImageOption\n | LineOption\n | TextOption\n | RegionOption\n | DataMarkerOption\n | DataRegionOption\n )[];\n /** Geometry 配置 */\n readonly geometries?: GeometryOption[];\n /** 开启/关闭动画,默认开启 */\n readonly animate?: boolean;\n /** 配置需要使用的交互行为 */\n readonly interactions?: InteractionOption[];\n /** 事件配置 */\n readonly events?: EventCfg;\n\n /** 缩略轴的配置 */\n readonly slider?: SliderOption;\n\n /** 滚动条配置 */\n readonly scrollbar?: ScrollbarOption;\n\n /** 子 View */\n readonly views?: ViewOption[];\n\n /** 分面 */\n readonly facets?: (RectCfg | MirrorCfg | CircleCfg | ListCfg | TreeCfg)[];\n\n /** 其他自定义的 option */\n readonly [name: string]: any;\n}\n\n/** 支持的 Marker 类型 */\nexport type Marker =\n | 'circle'\n | 'square'\n | 'diamond'\n | 'triangle'\n | 'triangle-down'\n | 'hexagon'\n | 'bowtie'\n | 'cross'\n | 'tick'\n | 'plus'\n | 'hyphen'\n | 'line';\n/** 自定义 Marker 的回调函数定义 */\nexport type MarkerCallback = (x: number, y: number, r: number) => PathCommand;\n/** chart.tooltip() 参数类型 */\nexport type TooltipOption = TooltipCfg | boolean;\n/* 筛选器函数类型定义 */\nexport type FilterCondition = (value: any, datum: Datum, idx?: number) => boolean;\n/** chart.axis() 参数类型 */\nexport type AxisOption = AxisCfg | boolean;\n/** chart.legend() 参数类型 */\nexport type LegendOption = LegendCfg | boolean;\n/** Options 中 legends 的配置定义 */\nexport type AllLegendsOptions = LegendCfg | Record<string, LegendOption> | boolean;\n/** G2 支持的度量类型 */\nexport type ScaleType =\n | 'linear'\n | 'cat'\n | 'category'\n | 'identity'\n | 'log'\n | 'pow'\n | 'time'\n | 'timeCat'\n | 'quantize'\n | 'quantile';\n\nexport type CoordinateRotate = ['rotate', number];\nexport type CoordinateReflect = ['reflect', 'x' | 'y'];\nexport type CoordinateScale = ['scale', number, number];\nexport type CoordinateTranspose = ['transpose'];\n/** 坐标系支持的 action 配置 */\nexport type CoordinateActions = CoordinateRotate | CoordinateReflect | CoordinateScale | CoordinateTranspose;\n\n// ============================ Facet 分面相关类型定义 ============================\n// 分面基类\nexport type FacetCtor = new (view: View, cfg: any) => Facet;\n\nexport interface Condition {\n readonly field: string;\n readonly value: any;\n readonly values: any[];\n}\n\nexport type FacetDataFilter = (data: Datum[]) => boolean;\n\n/**\n * 默认的基础配置\n */\nexport interface FacetCfg<D> {\n /** 布局类型。 */\n readonly type?: string;\n /** view 创建回调。 */\n readonly eachView: (innerView: View, facet?: D) => any;\n /** facet view padding。 */\n readonly padding?: ViewPadding;\n /** 是否显示标题。 */\n readonly showTitle?: boolean;\n /** facet 数据划分维度。 */\n readonly fields: string[];\n}\n\n/**\n * Facet title 配置项\n */\nexport interface FacetTitle {\n /** x 方向偏移。 */\n readonly offsetX?: number;\n /** y 方向偏移。 */\n readonly offsetY?: number;\n /** 文本样式。 */\n readonly style?: object;\n readonly formatter?: (val: any) => any;\n}\n\n/**\n * 分面数据\n */\nexport interface FacetData {\n /** 分面类型。 */\n readonly type: string;\n /** 当前分面子 view 的数据。 */\n readonly data: object[];\n /** 当前分面子 view 的范围。 */\n readonly region: Region;\n /** 当前分面子 view 的 padding。 */\n readonly padding?: number;\n /** 当前 facet 对应生成的 view。 */\n view?: View;\n\n // facet data\n /** 分面行字段。 */\n readonly rowField: string;\n /** 分面列字段。 */\n readonly columnField: string;\n /** 当前行分面的枚举值。 */\n readonly rowValue: string;\n /** 当前列分面的枚举值。 */\n readonly columnValue: string;\n /** 当前行索引。 */\n readonly rowIndex: number;\n /** 当前列索引。 */\n readonly columnIndex: number;\n /** 当前行字段的枚举值长度。 */\n readonly rowValuesLength: number;\n /** 当前列字段的枚举值长度。 */\n readonly columnValuesLength: number;\n}\n\n// ===================== rect 相关类型定义 =====================\n/** rect 分面类型配置 */\nexport interface RectCfg extends FacetCfg<RectData> {\n /** 行标题的样式。 */\n readonly columnTitle?: FacetTitle;\n /** 列标题的样式。 */\n readonly rowTitle?: FacetTitle;\n}\n\nexport interface RectData extends FacetData {}\n\n// ===================== mirror 相关类型定义 =====================\n/** mirror 分面类型配置 */\nexport interface MirrorCfg extends FacetCfg<MirrorData> {\n /** 是否转置。 */\n readonly transpose?: boolean;\n /** 标题样式。 */\n readonly title?: FacetTitle;\n}\n\nexport interface MirrorData extends FacetData {}\n\n// ===================== list 相关类型定义 =====================\n/** list 分面类型配置 */\nexport interface ListCfg extends FacetCfg<ListData> {\n /** 指定每行可显示分面的个数,超出时会自动换行。 */\n readonly cols?: number;\n /** 每个分面标题配置。 */\n readonly title?: FacetTitle;\n}\n\nexport interface ListData extends FacetData {\n readonly total?: number;\n}\n\n// ===================== matrix 相关类型定义 =====================\n/** matrix 分面类型配置 */\nexport interface MatrixCfg extends FacetCfg<MirrorData> {\n /** 列标题的样式 */\n readonly columnTitle?: FacetTitle;\n /** 列标题的样式 */\n readonly rowTitle?: FacetTitle;\n}\n\nexport interface MatrixData extends FacetData {}\n\n// ===================== circle 相关类型定义 =====================\n/** circle 分面类型配置 */\nexport interface CircleCfg extends FacetCfg<CircleData> {\n /** 分面标题配置。 */\n readonly title?: FacetTitle;\n}\n\nexport interface CircleData extends FacetData {}\n\n// ===================== tree 相关类型定义 =====================\n\nexport interface Line {\n readonly style?: ShapeAttrs;\n readonly smooth?: boolean;\n}\n/** tree 分面类型配置 */\nexport interface TreeCfg extends FacetCfg<TreeData> {\n readonly line?: Line;\n readonly title?: FacetTitle;\n}\n\nexport interface TreeData extends FacetData {\n children?: TreeData[];\n originColIndex?: number;\n}\n\n/**\n * facet object map\n */\nexport interface FacetCfgMap {\n /** rect 类型分面配置 */\n readonly rect: RectCfg;\n /** mirror 类型分面配置 */\n readonly mirror: MirrorCfg;\n /** list 类型分面配置 */\n readonly list: ListCfg;\n /** matrix 类型分面配置 */\n readonly matrix: MatrixCfg;\n /** circle 类型分面配置 */\n readonly circle: CircleCfg;\n /** tree 类型分面配置 */\n readonly tree: TreeCfg;\n}\n\n// ============================ 主题样式表定义 ============================\nexport interface StyleSheet {\n /** 背景色 */\n backgroundColor?: string;\n /** 主题色 */\n brandColor?: string;\n /** 辅助色 */\n subColor?: string;\n /** 分类色板 1,在数据量小于等于 10 时使用 */\n paletteQualitative10?: string[];\n /** 分类色板 2,在数据量大于 10 时使用 */\n paletteQualitative20?: string[];\n /** 语义色 */\n paletteSemanticRed?: string;\n /** 语义色 */\n paletteSemanticGreen?: string;\n /** 语义色 */\n paletteSemanticYellow?: string;\n /** (单色)顺序色板 */\n paletteSequence?: string[];\n /** 字体 */\n fontFamily?: string;\n\n // -------------------- 坐标轴 --------------------\n /** 坐标轴线颜色 */\n axisLineBorderColor?: string;\n /** 坐标轴线粗细 */\n axisLineBorder?: number;\n /** 坐标轴线 lineDash 设置 */\n axisLineDash?: number[];\n\n /** 坐标轴标题颜色 */\n axisTitleTextFillColor?: string;\n /** 坐标轴标题文本字体大小 */\n axisTitleTextFontSize?: number;\n /** 坐标轴标题文本行高 */\n axisTitleTextLineHeight?: number;\n /** 坐标轴标题文本字体粗细 */\n axisTitleTextFontWeight?: number | string;\n /** 坐标轴标题距离坐标轴文本的间距 */\n axisTitleSpacing?: number;\n\n /** 坐标轴刻度线颜色 */\n axisTickLineBorderColor?: string;\n /** 坐标轴刻度线长度 */\n axisTickLineLength?: number;\n /** 坐标轴刻度线粗细 */\n axisTickLineBorder?: number;\n\n /** 坐标轴次刻度线颜色 */\n axisSubTickLineBorderColor?: string;\n /** 坐标轴次刻度线长度 */\n axisSubTickLineLength?: number;\n /** 坐标轴次刻度线粗细 */\n axisSubTickLineBorder?: number;\n\n /** 坐标轴刻度文本颜色 */\n axisLabelFillColor?: string;\n /** 坐标轴刻度文本字体大小 */\n axisLabelFontSize?: number;\n /** 坐标轴刻度文本行高 */\n axisLabelLineHeight?: number;\n /** 坐标轴刻度文本字体粗细 */\n axisLabelFontWeight?: number | string;\n /** 坐标轴刻度文本距离坐标轴线的间距 */\n axisLabelOffset: number;\n\n /** 坐标轴网格线颜色 */\n axisGridBorderColor?: string;\n /** 坐标轴网格线粗细 */\n axisGridBorder?: number;\n /** 坐标轴网格线虚线设置 */\n axisGridLineDash?: number[];\n\n // -------------------- 图例 --------------------\n /** 图例标题颜色 */\n legendTitleTextFillColor?: string;\n /** 图例标题文本字体大小 */\n legendTitleTextFontSize?: number;\n /** 图例标题文本行高 */\n legendTitleTextLineHeight?: number;\n /** 图例标题文本字体粗细 */\n legendTitleTextFontWeight?: number | string;\n\n /** 图例 marker 颜色 */\n legendMarkerColor?: string;\n /** 图例 marker 距离图例文本的间距 */\n legendMarkerSpacing?: number;\n /** 图例 marker 默认半径大小 */\n legendMarkerSize?: number;\n /** 图例 'circle' marker 半径 */\n legendCircleMarkerSize?: number;\n /** 图例 'square' marker 半径 */\n legendSquareMarkerSize?: number;\n /** 图例 'line' marker 半径 */\n legendLineMarkerSize?: number;\n\n /** 图例项文本颜色 */\n legendItemNameFillColor?: string;\n /** 图例项文本字体大小 */\n legendItemNameFontSize?: number;\n /** 图例项文本行高 */\n legendItemNameLineHeight?: number;\n /** 图例项粗细 */\n legendItemNameFontWeight?: number | string;\n /** 图例项之间的水平间距 */\n legendItemSpacing?: number;\n /** 图例项垂直方向的间隔 */\n legendItemMarginBottom?: number;\n /** 图例与图表绘图区域的偏移距离 */\n legendPadding?: number[];\n /** 水平布局的图例与绘图区域偏移距离 */\n legendHorizontalPadding?: number[];\n /** 垂直布局的图例与绘图区域偏移距离 */\n legendVerticalPadding?: number[];\n\n /** 图例分页器 marker 大小 */\n legendPageNavigatorMarkerSize: number;\n /** 图例分页器 marker 非激活状态填充色 */\n legendPageNavigatorMarkerInactiveFillColor: string;\n /** 图例分页器 marker 非激活状态填充色透明度 */\n legendPageNavigatorMarkerInactiveFillOpacity: number;\n /** 图例分页器 marker 填充色 */\n legendPageNavigatorMarkerFillColor: string;\n /** 图例分页器 marker 填充色透明度 */\n legendPageNavigatorMarkerFillOpacity: number;\n /** 图例分页器文本颜色 */\n legendPageNavigatorTextFillColor: string;\n /** 图例分页器文本字体大小 */\n legendPageNavigatorTextFontSize: number;\n\n /** 连续图例滑块填充色 */\n sliderRailFillColor?: string;\n /** 连续图例滑块边框粗细 */\n sliderRailBorder?: number;\n /** 连续图例滑块边框颜色 */\n sliderRailBorderColor?: string;\n /** 连续图例滑块宽度 */\n sliderRailWidth?: number;\n /** 连续图例滑块高度 */\n sliderRailHeight?: number;\n\n /** 连续图例文本颜色 */\n sliderLabelTextFillColor?: string;\n /** 连续图例文本字体大小 */\n sliderLabelTextFontSize?: number;\n /** 连续图例文本行高 */\n sliderLabelTextLineHeight?: number;\n /** 连续图例文本字体粗细 */\n sliderLabelTextFontWeight?: number | string;\n\n /** 连续图例滑块颜色 */\n sliderHandlerFillColor?: string;\n /** 连续图例滑块宽度 */\n sliderHandlerWidth?: number;\n /** 连续图例滑块高度 */\n sliderHandlerHeight?: number;\n /** 连续图例滑块边框粗细 */\n sliderHandlerBorder?: number;\n /** 连续图例滑块边框颜色 */\n sliderHandlerBorderColor?: string;\n\n // -------------------- Annotation,图形标注 --------------------\n /** arc 图形标注描边颜色 */\n annotationArcBorderColor?: string;\n /** arc 图形标注粗细 */\n annotationArcBorder?: number;\n\n /** line 图形标注颜色 */\n annotationLineBorderColor?: string;\n /** line 图形标注粗细 */\n annotationLineBorder?: number;\n /** lube 图形标注的虚线间隔 */\n annotationLineDash?: number[];\n\n /** text 图形标注文本颜色 */\n annotationTextFillColor?: string;\n /** text 图形标注文本字体大小 */\n annotationTextFontSize?: number;\n /** text 图形标注文本行高 */\n annotationTextLineHeight?: number;\n /** text 图形标注文本字体粗细 */\n annotationTextFontWeight?: number | string;\n\n /** text 图形标注文本边框颜色 */\n annotationTextBorderColor?: string;\n /** text 图形标注文本边框粗细 */\n annotationTextBorder?: number;\n\n /** region 图形标注填充颜色 */\n annotationRegionFillColor?: string;\n /** region 图形标注填充颜色透明色 */\n annotationRegionFillOpacity?: number;\n /** region 图形标注描边粗细 */\n annotationRegionBorder?: number;\n /** region 图形标注描边颜色 */\n annotationRegionBorderColor?: string;\n\n /** dataMarker 图形标注的连接线长度 */\n annotationDataMarkerLineLength?: number;\n\n // -------------------- Tooltip --------------------\n /** tooltip crosshairs 辅助线颜色 */\n tooltipCrosshairsBorderColor?: string;\n /** tooltip crosshairs 辅助线粗细 */\n tooltipCrosshairsBorder?: number;\n /** tooltip crosshairs 辅助线虚线间隔 */\n tooltipCrosshairsLineDash?: number[];\n\n /** tooltip 内容框背景色 */\n tooltipContainerFillColor?: string;\n /** tooltip 内容框背景透明度 */\n tooltipContainerFillOpacity?: number;\n /** tooltip 内容框阴影 */\n tooltipContainerShadow?: string;\n /** tooltip 内容框圆角 */\n tooltipContainerBorderRadius?: number;\n\n /** tooltip 文本颜色 */\n tooltipTextFillColor?: string;\n /** tooltip 文本字体大小 */\n tooltipTextFontSize?: number;\n /** tooltip 文本行高 */\n tooltipTextLineHeight?: number;\n /** tooltip 文本字体粗细 */\n tooltipTextFontWeight?: number | string;\n\n // -------------------- Geometry labels --------------------\n /** Geometry label 文本颜色 */\n labelFillColor?: string;\n /** Geometry label 暗色文本颜色 */\n labelFillColorDark?: string;\n /** Geometry label 亮色文本颜色 */\n labelFillColorLight?: string;\n /** Geometry label 文本字体大小 */\n labelFontSize?: number;\n /** Geometry label 文本行高 */\n labelLineHeight?: number;\n /** Geometry label 文本字体粗细 */\n labelFontWeight?: number | string;\n /** Geometry label 文本描边颜色 */\n labelBorderColor?: string;\n /** Geometry label 文本描边粗细 */\n labelBorder?: number;\n\n /** Geometry innerLabel 文本颜色 */\n innerLabelFillColor?: string;\n /** Geometry innerLabel 文本字体大小 */\n innerLabelFontSize?: number;\n /** Geometry innerLabel 文本行高 */\n innerLabelLineHeight?: number;\n /** Geometry innerLabel 文本字体粗细 */\n innerLabelFontWeight?: number | string;\n /** Geometry innerLabel 文本描边颜色 */\n innerLabelBorderColor?: string;\n /** Geometry innerLabel 文本描边粗细 */\n innerLabelBorder?: number;\n\n /** Geometry overflowLabel 文本颜色 */\n overflowLabelFillColor?: string;\n /** Geometry overflowLabel 暗色文本颜色 */\n overflowLabelFillColorDark?: string;\n /** Geometry overflowLabel 亮色文本颜色 */\n overflowLabelFillColorLight?: string;\n /** Geometry overflowLabel 文本字体大小 */\n overflowLabelFontSize?: number;\n /** Geometry overflowLabel 文本行高 */\n overflowLabelLineHeight?: number;\n /** Geometry overflowLabel 文本字体粗细 */\n overflowLabelFontWeight?: number | string;\n /** Geometry overflowLabel 文本描边颜色 */\n overflowLabelBorderColor?: string;\n /** Geometry overflowLabel 文本描边粗细 */\n overflowLabelBorder?: number;\n\n /** Geometry label 文本连接线粗细 */\n labelLineBorder?: number;\n /** Geometry label 文本连接线颜色 */\n labelLineBorderColor?: string;\n\n // -------------------- Slider 组件样式--------------------\n /** slider 滑道高度 */\n cSliderRailHieght?: number;\n /** slider 滑道背景色 */\n cSliderBackgroundFillColor?: string;\n /** slider 滑道背景色透明度 */\n cSliderBackgroundFillOpacity?: number;\n /** slider 滑道前景色 */\n cSliderForegroundFillColor?: string;\n /** slider 滑道前景色透明度 */\n cSliderForegroundFillOpacity?: number;\n\n // slider handlerStyle 手柄样式\n /** slider 手柄高度 */\n cSliderHandlerHeight?: number;\n /** Slider 手柄宽度 */\n cSliderHandlerWidth?: number;\n /** Slider 手柄背景色 */\n cSliderHandlerFillColor?: string;\n /** Slider 手柄背景色透明度 */\n cSliderHandlerFillOpacity?: number;\n /** Slider 手柄高亮背景色 */\n cSliderHandlerHighlightFillColor?: string;\n /** Slider 手柄边框色 */\n cSliderHandlerBorderColor?: string;\n /** Slider 手柄边框粗细 */\n cSliderHandlerBorder?: number;\n /** Slider 手柄边框圆角 */\n cSliderHandlerBorderRadius?: number;\n\n // slider textStyle 字体标签样式\n /** Slider 字体标签颜色 */\n cSliderTextFillColor?: string;\n /** Slider 字体标签透明度 */\n cSliderTextFillOpacity?: number;\n /** Slider 字体标签大小 */\n cSliderTextFontSize?: number;\n /** Slider 字体标签行高 */\n cSliderTextLineHeight?: number;\n /** Slider 字体标签字重 */\n cSliderTextFontWeight?: number | string;\n /** Slider 字体标签描边色 */\n cSliderTextBorderColor?: string;\n /** Slider 字体标签描边粗细 */\n cSliderTextBorder?: number;\n\n // -------------------- Scrollbar 组件样式--------------------\n /** 滚动条 滚道填充色 */\n scrollbarTrackFillColor?: string;\n /** 滚动条 滑块填充色 */\n scrollbarThumbFillColor?: string;\n /** 滚动条 滑块高亮填充色 */\n scrollbarThumbHighlightFillColor?: string;\n\n // -------------------- Geometry 图形样式--------------------\n /** 点图的大小范围 */\n pointSizeRange?: [number, number];\n /** 点图填充颜色 */\n pointFillColor?: string;\n /** 点图填充颜色透明度 */\n pointFillOpacity?: number;\n /** 点图大小 */\n pointSize?: number;\n /** 点图描边粗细 */\n pointBorder?: number;\n /** 点图描边颜色 */\n pointBorderColor?: string;\n /** 点图描边透明度 */\n pointBorderOpacity?: number;\n\n /** 点图 active 状态下填充颜色 */\n pointActiveFillColor?: string;\n /** 点图 active 状态下填充颜色透明度 */\n pointActiveFillOpacity?: number;\n /** 点图 active 状态下大小 */\n pointActiveSize?: number;\n /** 点图 active 状态下描边粗细 */\n pointActiveBorder?: number;\n /** 点图 active 状态下描边颜色 */\n pointActiveBorderColor?: string;\n /** 点图 active 状态下描边透明度 */\n pointActiveBorderOpacity?: number;\n\n /** 点图 selected 状态下填充颜色 */\n pointSelectedFillColor?: string;\n /** 点图 selected 状态下填充颜色透明度 */\n pointSelectedFillOpacity?: number;\n /** 点图 selected 状态下大小 */\n pointSelectedSize?: number;\n /** 点图 selected 状态下描边粗细 */\n pointSelectedBorder?: number;\n /** 点图 selected 状态下描边颜色 */\n pointSelectedBorderColor?: string;\n /** 点图 selected 状态下描边透明度 */\n pointSelectedBorderOpacity?: number;\n\n /** 点图 inactive 状态下填充颜色 */\n pointInactiveFillColor?: string;\n /** 点图 inactive 状态下填充颜色透明度 */\n pointInactiveFillOpacity?: number;\n /** 点图 inactive 状态下大小 */\n pointInactiveSize?: number;\n /** 点图 inactive 状态下描边粗细 */\n pointInactiveBorder?: number;\n /** 点图 inactive 状态下描边颜色 */\n pointInactiveBorderColor?: string;\n /** 点图 inactive 状态下描边透明度 */\n pointInactiveBorderOpacity?: number;\n\n /** 描边点图大小 */\n hollowPointSize?: number;\n /** 描边点图描边粗细 */\n hollowPointBorder?: number;\n /** 描边点图描边颜色 */\n hollowPointBorderColor?: string;\n /** 描边点图描边透明度 */\n hollowPointBorderOpacity?: number;\n /** 描边点图填充颜色 */\n hollowPointFillColor?: string;\n /** 描边点图填充透明度 */\n hollowPointFillOpacity?: number;\n\n /** 点 描边 active 状态下大小 */\n hollowPointActiveSize?: number;\n /** 点 描边 active 状态下描边粗细 */\n hollowPointActiveBorder?: number;\n /** 点 描边 active 状态下描边颜色 */\n hollowPointActiveBorderColor?: string;\n /** 点 描边 active 状态下描边透明度 */\n hollowPointActiveBorderOpacity?: number;\n\n /** 点 描边 selected 状态下大小 */\n hollowPointSelectedSize?: number;\n /** 点 描边 selected 状态下描边粗细 */\n hollowPointSelectedBorder?: number;\n /** 点 描边 selected 状态下描边颜色 */\n hollowPointSelectedBorderColor?: string;\n /** 点 描边 selected 状态下描边透明度 */\n hollowPointSelectedBorderOpacity?: number;\n\n /** 点 描边 inactive 状态下大小 */\n hollowPointInactiveSize?: number;\n /** 点 描边 inactive 状态下描边粗细 */\n hollowPointInactiveBorder?: number;\n /** 点 描边 inactive 状态下描边颜色 */\n hollowPointInactiveBorderColor?: string;\n /** 点 描边 inactive 状态下描边透明度 */\n hollowPointInactiveBorderOpacity?: number;\n\n /** 线图粗细 */\n lineBorder?: number;\n /** 线图颜色 */\n lineBorderColor?: string;\n /** 线图透明度 */\n lineBorderOpacity?: number;\n\n /** 线图 active 状态下粗细 */\n lineActiveBorder?: number;\n /** 线图 active 状态下颜色 */\n lineActiveBorderColor?: string;\n /** 线图 active 状态下透明度 */\n lineActiveBorderOpacity?: number;\n\n /** 线图 selected 状态下粗细 */\n lineSelectedBorder?: number;\n /** 线图 selected 状态下颜色 */\n lineSelectedBorderColor?: string;\n /** 线图 selected 状态下透明度 */\n lineSelectedBorderOpacity?: number;\n\n /** 线图 inactive 状态下粗细 */\n lineInactiveBorder?: number;\n /** 线图 inactive 状态下颜色 */\n lineInactiveBorderColor?: string;\n /** 线图 inactive 状态下透明度 */\n lineInactiveBorderOpacity?: number;\n\n areaBorder?: number;\n /** area 边框颜色 */\n areaBorderColor?: string;\n /** area 边框透明度 */\n areaBorderOpacity?: number;\n /** area 填充颜色 */\n areaFillColor?: string;\n /** area 填充透明度 */\n areaFillOpacity?: number;\n\n /** area Active 状态下边框粗细 */\n areaActiveBorder?: number;\n /** area Active 状态下边框颜色 */\n areaActiveBorderColor?: string;\n /** area Active 状态下边框透明度 */\n areaActiveBorderOpacity?: number;\n /** area Active 状态下填充颜色 */\n areaActiveFillColor?: string;\n /** area Active 状态下填充透明度 */\n areaActiveFillOpacity?: number;\n\n /** area selected 状态下边框粗细 */\n areaSelectedBorder?: number;\n /** area selected 状态下边框颜色 */\n areaSelectedBorderColor?: string;\n /** area selected 状态下边框透明度 */\n areaSelectedBorderOpacity?: number;\n /** area selected 状态下填充颜色 */\n areaSelectedFillColor?: string;\n /** area selected 状态下填充透明度 */\n areaSelectedFillOpacity?: number;\n\n /** area inactive 状态下边框粗细 */\n areaInactiveBorder?: number;\n /** area inactive 状态下边框颜色 */\n areaInactiveBorderColor?: string;\n /** area inactive 状态下边框透明度 */\n areaInactiveBorderOpacity?: number;\n /** area inactive 状态下填充颜色 */\n areaInactiveFillColor?: string;\n /** area inactive 状态下填充透明度 */\n areaInactiveFillOpacity?: number;\n\n /** hollowArea 边框粗细 */\n hollowAreaBorder?: number;\n /** hollowArea 边框颜色 */\n hollowAreaBorderColor?: string;\n /** hollowArea 边框透明度 */\n hollowAreaBorderOpacity?: number;\n\n /** hollowArea Active 状态下边框粗细 */\n hollowAreaActiveBorder?: number;\n /** hollowArea Active 状态下边框颜色 */\n hollowAreaActiveBorderColor?: string;\n /** hollowArea Active 状态下边框透明度 */\n hollowAreaActiveBorderOpacity?: number;\n\n /** hollowArea selected 状态下边框粗细 */\n hollowAreaSelectedBorder?: number;\n /** hollowArea selected 状态下边框颜色 */\n hollowAreaSelectedBorderColor?: string;\n /** hollowArea selected 状态下边框透明度 */\n hollowAreaSelectedBorderOpacity?: number;\n\n /** hollowArea inactive 状态下边框粗细 */\n hollowAreaInactiveBorder?: number;\n /** hollowArea inactive 状态下边框颜色 */\n hollowAreaInactiveBorderColor?: string;\n /** hollowArea inactive 状态下边框透明度 */\n hollowAreaInactiveBorderOpacity?: number;\n\n /** interval 边框粗细 */\n intervalBorder?: number;\n /** interval 边框颜色 */\n intervalBorderColor?: string;\n /** interval 边框透明度 */\n intervalBorderOpacity?: number;\n /** interval 填充颜色 */\n intervalFillColor?: string;\n /** interval 填充透明度 */\n intervalFillOpacity?: number;\n\n /** interval active 状态下边框粗细 */\n intervalActiveBorder?: number;\n /** interval active 状态下边框颜色 */\n intervalActiveBorderColor?: string;\n /** interval active 状态下边框透明度 */\n intervalActiveBorderOpacity?: number;\n /** interval active 状态下填充颜色 */\n intervalActiveFillColor?: string;\n /** interval active 状态下填充透明度 */\n intervalActiveFillOpacity?: number;\n\n /** interval selected 状态下边框粗细 */\n intervalSelectedBorder?: number;\n /** interval selected 状态下边框颜色 */\n intervalSelectedBorderColor?: string;\n /** interval selected 状态下边框透明度 */\n intervalSelectedBorderOpacity?: number;\n /** interval selected 状态下填充颜色 */\n intervalSelectedFillColor?: string;\n /** interval selected 状态下填充透明度 */\n intervalSelectedFillOpacity?: number;\n\n /** interval inactive 状态下边框粗细 */\n intervalInactiveBorder?: number;\n /** interval inactive 状态下边框颜色 */\n intervalInactiveBorderColor?: string;\n /** interval inactive 状态下边框透明度 */\n intervalInactiveBorderOpacity?: number;\n /** interval inactive 状态下填充颜色 */\n intervalInactiveFillColor?: string;\n /** interval inactive 状态下填充透明度 */\n intervalInactiveFillOpacity?: number;\n\n /** hollowInterval 边框粗细 */\n hollowIntervalBorder?: number;\n /** hollowInterval 边框颜色 */\n hollowIntervalBorderColor?: string;\n /** hollowInterval 边框透明度 */\n hollowIntervalBorderOpacity?: number;\n /** hollowInterval 填充颜色 */\n hollowIntervalFillColor?: string;\n /** hollowInterval 填充透明度 */\n hollowIntervalFillOpacity?: number;\n\n /** hollowInterval active 状态下边框粗细 */\n hollowIntervalActiveBorder?: number;\n /** hollowInterval active 状态下边框颜色 */\n hollowIntervalActiveBorderColor?: string;\n /** hollowInterval active 状态下边框透明度 */\n hollowIntervalActiveBorderOpacity?: number;\n\n /** hollowInterval selected 状态下边框粗细 */\n hollowIntervalSelectedBorder?: number;\n /** hollowInterval selected 状态下边框颜色 */\n hollowIntervalSelectedBorderColor?: string;\n /** hollowInterval selected 状态下边框透明度 */\n hollowIntervalSelectedBorderOpacity?: number;\n\n /** hollowInterval inactive 状态下边框粗细 */\n hollowIntervalInactiveBorder?: number;\n /** hollowInterval inactive 状态下边框颜色 */\n hollowIntervalInactiveBorderColor?: string;\n /** hollowInterval inactive 状态下边框透明度 */\n hollowIntervalInactiveBorderOpacity?: number;\n}\n\n/** createTheme 主题样式表配置 */\nexport type StyleSheetCfg = Pick<\n StyleSheet,\n | 'backgroundColor'\n | 'subColor'\n | 'brandColor'\n | 'paletteQualitative10'\n | 'paletteQualitative20'\n | 'paletteSemanticRed'\n | 'paletteSemanticGreen'\n | 'paletteSemanticYellow'\n | 'paletteSequence'\n | 'fontFamily'\n>;\n\n// ============================ 交互相关的类型定义 ============================\n/** 交互反馈的定义 */\nexport interface IAction {\n /**\n * 初始化\n */\n init();\n /**\n * 交互 action (反馈)的名称\n */\n name: string;\n /**\n * 上下文\n */\n context: IInteractionContext;\n /**\n * 销毁函数\n */\n destroy();\n}\n\n/** 交互上下文的接口定义 */\nexport interface IInteractionContext extends LooseObject {\n /** 事件对象 */\n event: LooseObject;\n /**\n * 当前的 view\n */\n view: View;\n /** 交互相关的 Actions */\n actions: IAction[];\n /**\n * 缓存属性,用于上下文传递信息\n * @param key 键名\n * @param value 值\n */\n cache(key: string, value?: any);\n /**\n * 获取 action\n * @param name - action 的名称\n * @returns 指定 name 的 Action\n */\n getAction(name): IAction;\n /**\n * 获取当前的点\n * @returns 返回当前的点\n */\n getCurrentPoint(): Point;\n /**\n * 获取当前的图形\n */\n getCurrentShape(): IShape;\n /**\n * 添加 action\n * @param action 指定交互 action\n */\n addAction(action: IAction);\n /**\n * 移除 action\n * @param action 移除的 action\n */\n removeAction(action: IAction);\n /**\n * 事件触发时是否在 view 内部\n */\n isInPlot();\n /**\n * 是否在组件的包围盒内\n * @param name 组件名,可省略\n */\n isInComponent(name?: string);\n /**\n * 是否在指定的图形内\n * @param name shape 的名称\n */\n isInShape(name);\n /**\n * 销毁\n */\n destroy();\n}\n\n/** G 的渲染类型 */\nexport type Renderer = 'svg' | 'canvas';\n/** 数据的定义 */\nexport type Datum = Record<string, any>;\nexport type Data = Datum[];\nexport type ActionCallback = (context: IInteractionContext) => void;\nexport type Padding = [number, number, number, number];\nexport type ViewPadding = number | number[] | 'auto';\nexport type ViewAppendPadding = number | number[];\nexport type Position = [number, number];\nexport type AttributeType = 'position' | 'size' | 'color' | 'shape';\nexport type ShapeVertices = RangePoint[] | Point[] | Point[][];\n/** easing 的回调函数, 入参 data 为对应的原始数据记录 */\nexport type AnimateEasingCallback = (data: Datum) => string;\n/** delay 的回调函数, 入参 data 为对应的原始数据记录 */\nexport type AnimateDelayCallback = (data: Datum) => number;\n/** duration 的回调函数, 入参 data 为对应的原始数据记录 */\nexport type AnimateDurationCallback = (data: Datum) => number;\n"]}
\No newline at end of file