681 lines
19 KiB
TypeScript
681 lines
19 KiB
TypeScript
![]() |
import { Attribute, Coordinate, ICanvas, IGroup, Scale } from '../dependents';
|
|||
|
import { AxisOption, ComponentOption, CoordinateCfg, CoordinateOption, Data, Datum, FacetCfgMap, FilterCondition, LegendOption, LooseObject, Options, Point, Region, ScaleOption, TooltipOption, ViewCfg, ViewPadding } from '../interface';
|
|||
|
import { LAYER } from '../constant';
|
|||
|
import Base from '../base';
|
|||
|
import { Facet } from '../facet';
|
|||
|
import Geometry from '../geometry/base';
|
|||
|
import { Interaction } from '../interaction';
|
|||
|
import { BBox } from '../util/bbox';
|
|||
|
import Annotation from './controller/annotation';
|
|||
|
import { Controller } from './controller/base';
|
|||
|
import CoordinateController from './controller/coordinate';
|
|||
|
import { Layout } from './layout';
|
|||
|
/**
|
|||
|
* G2 视图 View 类
|
|||
|
*/
|
|||
|
export declare class View extends Base {
|
|||
|
/** view id,全局唯一。 */
|
|||
|
id: string;
|
|||
|
/** 父级 view,如果没有父级,则为空。 */
|
|||
|
parent: View;
|
|||
|
/** 所有的子 view。 */
|
|||
|
views: View[];
|
|||
|
/** 所有的 geometry 实例。 */
|
|||
|
geometries: Geometry[];
|
|||
|
/** 所有的组件 controllers。 */
|
|||
|
controllers: Controller[];
|
|||
|
/** 所有的 Interaction 实例。 */
|
|||
|
interactions: Record<string, Interaction>;
|
|||
|
/** view 区域空间。 */
|
|||
|
viewBBox: BBox;
|
|||
|
/** 坐标系的位置大小,ViewBBox - padding = coordinateBBox。 */
|
|||
|
coordinateBBox: BBox;
|
|||
|
/** view 的 padding 大小,传入的配置(不是解析之后的值)。 */
|
|||
|
padding: ViewPadding;
|
|||
|
/** G.Canvas 实例。 */
|
|||
|
canvas: ICanvas;
|
|||
|
/** 存储自动计算的 padding 值 */
|
|||
|
autoPadding: number[];
|
|||
|
/** 三层 Group 图形中的背景层。 */
|
|||
|
backgroundGroup: IGroup;
|
|||
|
/** 三层 Group 图形中的中间层。 */
|
|||
|
middleGroup: IGroup;
|
|||
|
/** 三层 Group 图形中的前景层。 */
|
|||
|
foregroundGroup: IGroup;
|
|||
|
/** 是否对超出坐标系范围的 Geometry 进行剪切 */
|
|||
|
limitInPlot: boolean;
|
|||
|
/**
|
|||
|
* 标记 view 的大小位置范围,均是 0 ~ 1 范围,便于开发者使用,起始点为左上角。
|
|||
|
*/
|
|||
|
protected region: Region;
|
|||
|
/** 主题配置,存储当前主题配置。 */
|
|||
|
protected themeObject: LooseObject;
|
|||
|
protected options: Options;
|
|||
|
/** 过滤之后的数据 */
|
|||
|
protected filteredData: Data;
|
|||
|
/** 配置开启的组件插件,默认为全局配置的组件。 */
|
|||
|
private usedControllers;
|
|||
|
/** 所有的 scales */
|
|||
|
private scalePool;
|
|||
|
/** 布局函数 */
|
|||
|
protected layoutFunc: Layout;
|
|||
|
/** 生成的坐标系实例,{@link https://github.com/antvis/coord/blob/master/src/coord/base.ts|Coordinate} */
|
|||
|
protected coordinateInstance: Coordinate;
|
|||
|
/** Coordinate 相关的控制器类,负责坐标系实例的创建、更新、变换等 */
|
|||
|
protected coordinateController: CoordinateController;
|
|||
|
/** 分面类实例 */
|
|||
|
protected facetInstance: Facet;
|
|||
|
/** 当前鼠标是否在 plot 内(CoordinateBBox) */
|
|||
|
private isPreMouseInPlot;
|
|||
|
/** 默认标识位,用于判定数据是否更新 */
|
|||
|
private isDataChanged;
|
|||
|
/** 用于判断坐标系范围是否发生变化的标志位 */
|
|||
|
private isCoordinateChanged;
|
|||
|
/** 从当前这个 view 创建的 scale key */
|
|||
|
private createdScaleKeys;
|
|||
|
constructor(props: ViewCfg);
|
|||
|
/**
|
|||
|
* 设置 layout 布局函数
|
|||
|
* @param layout 布局函数
|
|||
|
* @returns void
|
|||
|
*/
|
|||
|
setLayout(layout: Layout): void;
|
|||
|
/**
|
|||
|
* 生命周期:初始化
|
|||
|
* @returns voids
|
|||
|
*/
|
|||
|
init(): void;
|
|||
|
/**
|
|||
|
* 生命周期:渲染流程,渲染过程需要处理数据更新的情况。
|
|||
|
* render 函数仅仅会处理 view 和子 view。
|
|||
|
* @param isUpdate 是否触发更新流程。
|
|||
|
*/
|
|||
|
render(isUpdate?: boolean): void;
|
|||
|
/**
|
|||
|
* 生命周期:清空图表上所有的绘制内容,但是不销毁图表,chart 仍可使用。
|
|||
|
* @returns void
|
|||
|
*/
|
|||
|
clear(): void;
|
|||
|
/**
|
|||
|
* 生命周期:销毁,完全无法使用。
|
|||
|
* @returns void
|
|||
|
*/
|
|||
|
destroy(): void;
|
|||
|
/**
|
|||
|
* 显示或者隐藏整个 view。
|
|||
|
* @param visible 是否可见
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
changeVisible(visible: boolean): View;
|
|||
|
/**
|
|||
|
* 装载数据源。
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* view.data([{ city: '杭州', sale: 100 }, { city: '上海', sale: 110 } ]);
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param data 数据源,json 数组。
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
data(data: Data): View;
|
|||
|
/**
|
|||
|
* @deprecated
|
|||
|
* This method will be removed at G2 V4.1. Replaced by {@link #data(data)}
|
|||
|
*/
|
|||
|
source(data: Data): View;
|
|||
|
/**
|
|||
|
* 设置数据筛选规则。
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* view.filter('city', (value: any, datum: Datum) => value !== '杭州');
|
|||
|
*
|
|||
|
* // 删除 'city' 字段对应的筛选规则。
|
|||
|
* view.filter('city', null);
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param field 数据字段
|
|||
|
* @param condition 筛选规则
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
filter(field: string, condition: FilterCondition | null): View;
|
|||
|
/**
|
|||
|
* 开启或者关闭坐标轴。
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* view.axis(false); // 不展示坐标轴
|
|||
|
* ```
|
|||
|
* @param field 坐标轴开关
|
|||
|
*/
|
|||
|
axis(field: boolean): View;
|
|||
|
/**
|
|||
|
* 对特定的某条坐标轴进行配置。
|
|||
|
*
|
|||
|
* @example
|
|||
|
* ```ts
|
|||
|
* view.axis('city', false); // 不展示 'city' 字段对应的坐标轴
|
|||
|
*
|
|||
|
* // 将 'city' 字段对应的坐标轴的标题隐藏
|
|||
|
* view.axis('city', {
|
|||
|
* title: null,
|
|||
|
* });
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param field 要配置的坐标轴对应的字段名称
|
|||
|
* @param axisOption 坐标轴具体配置,更详细的配置项可以参考:https://github.com/antvis/component#axis
|
|||
|
*/
|
|||
|
axis(field: string, axisOption: AxisOption): View;
|
|||
|
/**
|
|||
|
* 对图例进行整体配置。
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* view.legend(false); // 关闭图例
|
|||
|
*
|
|||
|
* view.legend({
|
|||
|
* position: 'right',
|
|||
|
* }); // 图例进行整体配置
|
|||
|
* ```
|
|||
|
* @param field
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
legend(field: LegendOption): View;
|
|||
|
/**
|
|||
|
* 对特定的图例进行配置。
|
|||
|
*
|
|||
|
* @example
|
|||
|
* ```ts
|
|||
|
* view.legend('city', false); // 关闭某个图例,通过数据字段名进行关联
|
|||
|
*
|
|||
|
* // 对特定的图例进行配置
|
|||
|
* view.legend('city', {
|
|||
|
* position: 'right',
|
|||
|
* });
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param field 图例对应的数据字段名称
|
|||
|
* @param legendOption 图例配置,更详细的配置项可以参考:https://github.com/antvis/component#axis
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
legend(field: string, legendOption: LegendOption): View;
|
|||
|
/**
|
|||
|
* 批量设置 scale 配置。
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* view.scale({
|
|||
|
* sale: {
|
|||
|
* min: 0,
|
|||
|
* max: 100,
|
|||
|
* }
|
|||
|
* });
|
|||
|
* ```
|
|||
|
* Scale 的详细配置项可以参考:https://github.com/antvis/scale#api
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
scale(field: Record<string, ScaleOption>): View;
|
|||
|
/**
|
|||
|
* 为特性的数据字段进行 scale 配置。
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* view.scale('sale', {
|
|||
|
* min: 0,
|
|||
|
* max: 100,
|
|||
|
* });
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
scale(field: string, scaleOption: ScaleOption): View;
|
|||
|
/**
|
|||
|
* tooltip 提示信息配置。
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* view.tooltip(false); // 关闭 tooltip
|
|||
|
*
|
|||
|
* view.tooltip({
|
|||
|
* shared: true
|
|||
|
* });
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param cfg Tooltip 配置,更详细的配置项参考:https://github.com/antvis/component#tooltip
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
tooltip(cfg: boolean | TooltipOption): View;
|
|||
|
/**
|
|||
|
* 辅助标记配置。
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* view.annotation().line({
|
|||
|
* start: ['min', 85],
|
|||
|
* end: ['max', 85],
|
|||
|
* style: {
|
|||
|
* stroke: '#595959',
|
|||
|
* lineWidth: 1,
|
|||
|
* lineDash: [3, 3],
|
|||
|
* },
|
|||
|
* });
|
|||
|
* ```
|
|||
|
* 更详细的配置项:https://github.com/antvis/component#annotation
|
|||
|
* @returns [[Annotation]]
|
|||
|
*/
|
|||
|
annotation(): Annotation;
|
|||
|
/**
|
|||
|
* @deprecated
|
|||
|
* This method will be removed at G2 V4.1. Replaced by {@link #guide()}
|
|||
|
*/
|
|||
|
guide(): Annotation;
|
|||
|
/**
|
|||
|
* 坐标系配置。
|
|||
|
*
|
|||
|
* @example
|
|||
|
* ```ts
|
|||
|
* view.coordinate({
|
|||
|
* type: 'polar',
|
|||
|
* cfg: {
|
|||
|
* radius: 0.85,
|
|||
|
* },
|
|||
|
* actions: [
|
|||
|
* [ 'transpose' ],
|
|||
|
* ],
|
|||
|
* });
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param option
|
|||
|
* @returns
|
|||
|
*/
|
|||
|
coordinate(option?: CoordinateOption): CoordinateController;
|
|||
|
/**
|
|||
|
* 声明坐标系类型,并进行配置。
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* // 直角坐标系,并进行转置变换
|
|||
|
* view.coordinate('rect').transpose();
|
|||
|
*
|
|||
|
* // 默认创建直角坐标系
|
|||
|
* view.coordinate();
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param type 坐标系类型
|
|||
|
* @param [coordinateCfg] 坐标系配置
|
|||
|
* @returns
|
|||
|
*/
|
|||
|
coordinate(type: string, coordinateCfg?: CoordinateCfg): CoordinateController;
|
|||
|
/**
|
|||
|
* @deprecated
|
|||
|
* This method will be removed at G2 V4.1. Replaced by {@link #coordinate()}
|
|||
|
*/
|
|||
|
coord(type: string | CoordinateOption, coordinateCfg?: CoordinateCfg): CoordinateController;
|
|||
|
/**
|
|||
|
* view 分面绘制。
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* view.facet('rect', {
|
|||
|
* rowField: 'province',
|
|||
|
* columnField: 'category',
|
|||
|
* eachView: (innerView: View, facet?: FacetData) => {
|
|||
|
* innerView.line().position('city*sale');
|
|||
|
* },
|
|||
|
* });
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param type 分面类型
|
|||
|
* @param cfg 分面配置, [[FacetCfgMap]]
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
facet<T extends keyof FacetCfgMap>(type: T, cfg: FacetCfgMap[T]): View;
|
|||
|
animate(status: boolean): View;
|
|||
|
/**
|
|||
|
* 更新配置项,用于配置项式声明。
|
|||
|
* @param options 配置项
|
|||
|
*/
|
|||
|
updateOptions(options: Options): this;
|
|||
|
/**
|
|||
|
* 往 `view.options` 属性中存储配置项。
|
|||
|
* @param name 属性名称
|
|||
|
* @param opt 属性值
|
|||
|
* @returns view
|
|||
|
*/
|
|||
|
option(name: string, opt: any): View;
|
|||
|
/**
|
|||
|
* 设置主题。
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* view.theme('dark'); // 'dark' 需要事先通过 `registerTheme()` 接口注册完成
|
|||
|
*
|
|||
|
* view.theme({ defaultColor: 'red' });
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param theme 主题名或者主题配置
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
theme(theme: string | LooseObject): View;
|
|||
|
/**
|
|||
|
* Call the interaction based on the interaction name
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* view.interaction('my-interaction', { extra: 'hello world' });
|
|||
|
* ```
|
|||
|
* 详细文档可以参考:https://g2.antv.vision/zh/docs/manual/tutorial/interaction
|
|||
|
* @param name interaction name
|
|||
|
* @param cfg interaction config
|
|||
|
* @returns
|
|||
|
*/
|
|||
|
interaction(name: string, cfg?: LooseObject): View;
|
|||
|
/**
|
|||
|
* 移除当前 View 的 interaction
|
|||
|
* ```ts
|
|||
|
* view.removeInteraction('my-interaction');
|
|||
|
* ```
|
|||
|
* @param name interaction name
|
|||
|
*/
|
|||
|
removeInteraction(name: string): void;
|
|||
|
/**
|
|||
|
* 修改数据,数据更新逻辑,数据更新仅仅影响当前这一层的 view
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* view.changeData([{ city: '北京', sale: '200' }]);
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param data
|
|||
|
* @returns void
|
|||
|
*/
|
|||
|
changeData(data: Data): void;
|
|||
|
/**
|
|||
|
* 创建子 view
|
|||
|
*
|
|||
|
* ```ts
|
|||
|
* const innerView = view.createView({
|
|||
|
* start: { x: 0, y: 0 },
|
|||
|
* end: { x: 0.5, y: 0.5 },
|
|||
|
* padding: 8,
|
|||
|
* });
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param cfg
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
createView(cfg?: Partial<ViewCfg>): View;
|
|||
|
/**
|
|||
|
* @deprecated
|
|||
|
* This method will be removed at G2 V4.1. Replaced by {@link #createView()}
|
|||
|
*/
|
|||
|
view(cfg?: Partial<ViewCfg>): View;
|
|||
|
/**
|
|||
|
* 删除一个子 view
|
|||
|
* @param view
|
|||
|
* @return removedView
|
|||
|
*/
|
|||
|
removeView(view: View): View;
|
|||
|
/**
|
|||
|
* 获取当前坐标系实例。
|
|||
|
* @returns [[Coordinate]]
|
|||
|
*/
|
|||
|
getCoordinate(): Coordinate;
|
|||
|
/**
|
|||
|
* 获取当前 view 的主题配置。
|
|||
|
* @returns themeObject
|
|||
|
*/
|
|||
|
getTheme(): LooseObject;
|
|||
|
/**
|
|||
|
* 获得 x 轴字段的 scale 实例。
|
|||
|
* @returns view 中 Geometry 对于的 x scale
|
|||
|
*/
|
|||
|
getXScale(): Scale;
|
|||
|
/**
|
|||
|
* 获取 y 轴字段的 scales 实例。
|
|||
|
* @returns view 中 Geometry 对于的 y scale 数组
|
|||
|
*/
|
|||
|
getYScales(): Scale[];
|
|||
|
/**
|
|||
|
* 获取 x 轴或者 y 轴对应的所有 scale 实例。
|
|||
|
* @param dimType x | y
|
|||
|
* @returns x 轴或者 y 轴对应的所有 scale 实例。
|
|||
|
*/
|
|||
|
getScalesByDim(dimType: 'x' | 'y'): Record<string, Scale>;
|
|||
|
/**
|
|||
|
* 根据字段名去获取 scale 实例。
|
|||
|
* @param field 数据字段名称
|
|||
|
* @param key id
|
|||
|
*/
|
|||
|
getScaleByField(field: string, key?: string): Scale;
|
|||
|
/**
|
|||
|
* 返回所有配置信息。
|
|||
|
* @returns 所有的 view API 配置。
|
|||
|
*/
|
|||
|
getOptions(): Options;
|
|||
|
/**
|
|||
|
* 获取 view 的数据(过滤后的数据)。
|
|||
|
* @returns 处理过滤器之后的数据。
|
|||
|
*/
|
|||
|
getData(): Data;
|
|||
|
/**
|
|||
|
* 获得绘制的层级 group。
|
|||
|
* @param layer 层级名称。
|
|||
|
* @returns 对应层级的 Group。
|
|||
|
*/
|
|||
|
getLayer(layer: LAYER): IGroup;
|
|||
|
/**
|
|||
|
* 对外暴露方法,判断一个点是否在绘图区域(即坐标系范围)内部。
|
|||
|
* @param point 坐标点
|
|||
|
*/
|
|||
|
isPointInPlot(point: Point): boolean;
|
|||
|
/**
|
|||
|
* 获得所有的 legend 对应的 attribute 实例。
|
|||
|
* @returns 维度字段的 Attribute 数组
|
|||
|
*/
|
|||
|
getLegendAttributes(): Attribute[];
|
|||
|
/**
|
|||
|
* 获取所有的分组字段的 scale 实例。
|
|||
|
* @returns 获得分组字段的 scale 实例数组。
|
|||
|
*/
|
|||
|
getGroupScales(): Scale[];
|
|||
|
/**
|
|||
|
* 获取 G.Canvas 实例。
|
|||
|
* @returns G.Canvas 画布实例。
|
|||
|
*/
|
|||
|
getCanvas(): ICanvas;
|
|||
|
/**
|
|||
|
* 获得根节点 view。
|
|||
|
*/
|
|||
|
getRootView(): View;
|
|||
|
/**
|
|||
|
* 获取该数据在可视化后,对应的画布坐标点。
|
|||
|
* @param data 原始数据记录
|
|||
|
* @returns 对应的画布坐标点
|
|||
|
*/
|
|||
|
getXY(data: Datum): Point;
|
|||
|
/**
|
|||
|
* 获取 name 对应的 controller 实例
|
|||
|
* @param name
|
|||
|
*/
|
|||
|
getController(name: string): Controller;
|
|||
|
/**
|
|||
|
* 显示 point 坐标点对应的 tooltip。
|
|||
|
* @param point 画布坐标点
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
showTooltip(point: Point): View;
|
|||
|
/**
|
|||
|
* 隐藏 tooltip。
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
hideTooltip(): View;
|
|||
|
/**
|
|||
|
* 将 tooltip 锁定到当前位置不能移动。
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
lockTooltip(): View;
|
|||
|
/**
|
|||
|
* 将 tooltip 锁定解除。
|
|||
|
* @returns View
|
|||
|
*/
|
|||
|
unlockTooltip(): View;
|
|||
|
/**
|
|||
|
* 是否锁定 tooltip。
|
|||
|
* @returns 是否锁定
|
|||
|
*/
|
|||
|
isTooltipLocked(): boolean;
|
|||
|
/**
|
|||
|
* 获取当前 point 对应的 tooltip 数据项。
|
|||
|
* @param point 坐标点
|
|||
|
* @returns tooltip 数据项
|
|||
|
*/
|
|||
|
getTooltipItems(point: Point): any[];
|
|||
|
/**
|
|||
|
* 获取逼近的点的数据集合
|
|||
|
* @param point 当前坐标点
|
|||
|
* @returns 数据
|
|||
|
*/
|
|||
|
getSnapRecords(point: Point): any[];
|
|||
|
/**
|
|||
|
* 获取所有的 pure component 组件,用于布局。
|
|||
|
*/
|
|||
|
getComponents(): ComponentOption[];
|
|||
|
/**
|
|||
|
* 将 data 数据进行过滤。
|
|||
|
* @param data
|
|||
|
* @returns 过滤之后的数据
|
|||
|
*/
|
|||
|
filterData(data: Data): Data;
|
|||
|
/**
|
|||
|
* 对某一个字段进行过滤
|
|||
|
* @param field
|
|||
|
* @param data
|
|||
|
*/
|
|||
|
filterFieldData(field: string, data: Data): Data;
|
|||
|
/**
|
|||
|
* 调整 coordinate 的坐标范围。
|
|||
|
*/
|
|||
|
adjustCoordinate(): void;
|
|||
|
protected paint(isUpdate: boolean): void;
|
|||
|
/**
|
|||
|
* 替换处理 view 的布局,最终是计算各个 view 的 coordinateBBox 和 coordinateInstance
|
|||
|
* @param isUpdate
|
|||
|
*/
|
|||
|
protected renderLayoutRecursive(isUpdate: boolean): void;
|
|||
|
/**
|
|||
|
* 最终递归绘制组件和图形
|
|||
|
* @param isUpdate
|
|||
|
*/
|
|||
|
protected renderPaintRecursive(isUpdate: boolean): void;
|
|||
|
/**
|
|||
|
* 创建 scale,递归到顶层 view 去创建和缓存 scale
|
|||
|
* @param field
|
|||
|
* @param data
|
|||
|
* @param scaleDef
|
|||
|
* @param key
|
|||
|
*/
|
|||
|
protected createScale(field: string, data: Data, scaleDef: ScaleOption, key: string): Scale;
|
|||
|
/**
|
|||
|
* 递归渲染中的数据处理
|
|||
|
* @param isUpdate
|
|||
|
*/
|
|||
|
private renderDataRecursive;
|
|||
|
/**
|
|||
|
* 计算 region,计算实际的像素范围坐标
|
|||
|
* @private
|
|||
|
*/
|
|||
|
private calculateViewBBox;
|
|||
|
/**
|
|||
|
* 初始化事件机制:G 4.0 底层内置支持 name:event 的机制,那么只要所有组件都有自己的 name 即可。
|
|||
|
*
|
|||
|
* G2 的事件只是获取事件委托,然后在 view 嵌套结构中,形成事件冒泡机制。
|
|||
|
* 当前 view 只委托自己 view 中的 Component 和 Geometry 事件,并向上冒泡
|
|||
|
* @private
|
|||
|
*/
|
|||
|
private initEvents;
|
|||
|
private onCanvasEvent;
|
|||
|
/**
|
|||
|
* 初始化插件
|
|||
|
*/
|
|||
|
private initComponentController;
|
|||
|
private createViewEvent;
|
|||
|
/**
|
|||
|
* 触发事件之后
|
|||
|
* @param evt
|
|||
|
*/
|
|||
|
private onDelegateEvents;
|
|||
|
/**
|
|||
|
* 处理 PLOT_EVENTS
|
|||
|
* plot event 需要处理所有的基础事件,并判断是否在画布中,然后再决定是否要 emit。
|
|||
|
* 对于 mouseenter、mouseleave 比较特殊,需要做一下数学比较。
|
|||
|
* @param e
|
|||
|
*/
|
|||
|
private doPlotEvent;
|
|||
|
/**
|
|||
|
* 处理筛选器,筛选数据
|
|||
|
* @private
|
|||
|
*/
|
|||
|
private doFilterData;
|
|||
|
/**
|
|||
|
* 初始化 Geometries
|
|||
|
* @private
|
|||
|
*/
|
|||
|
private initGeometries;
|
|||
|
/**
|
|||
|
* 根据 Geometry 的所有字段创建 scales
|
|||
|
* 如果存在,则更新,不存在则创建
|
|||
|
*/
|
|||
|
private createOrUpdateScales;
|
|||
|
/**
|
|||
|
* 处理 scale 同步逻辑
|
|||
|
*/
|
|||
|
private syncScale;
|
|||
|
/**
|
|||
|
* 获得 Geometry 中的 scale 对象
|
|||
|
*/
|
|||
|
private getGeometryScales;
|
|||
|
private getScaleFields;
|
|||
|
private getGroupedFields;
|
|||
|
/**
|
|||
|
* 调整 scale 配置
|
|||
|
* @private
|
|||
|
*/
|
|||
|
private adjustScales;
|
|||
|
/**
|
|||
|
* 调整分类 scale 的 range,防止超出坐标系外面
|
|||
|
* @private
|
|||
|
*/
|
|||
|
private adjustCategoryScaleRange;
|
|||
|
/**
|
|||
|
* 根据 options 配置、Geometry 字段配置,自动生成 components
|
|||
|
* @param isUpdate 是否是更新
|
|||
|
* @private
|
|||
|
*/
|
|||
|
private initComponents;
|
|||
|
private doLayout;
|
|||
|
/**
|
|||
|
* 创建坐标系
|
|||
|
* @private
|
|||
|
*/
|
|||
|
private createCoordinate;
|
|||
|
/**
|
|||
|
* 根据 options 配置自动渲染 geometry
|
|||
|
* @private
|
|||
|
*/
|
|||
|
private paintGeometries;
|
|||
|
/**
|
|||
|
* 最后的绘制组件
|
|||
|
* @param isUpdate
|
|||
|
*/
|
|||
|
private renderComponents;
|
|||
|
/**
|
|||
|
* 渲染分面,会在其中进行数据分面,然后进行子 view 创建
|
|||
|
* @param isUpdate
|
|||
|
*/
|
|||
|
private renderFacet;
|
|||
|
private initOptions;
|
|||
|
private createGeometry;
|
|||
|
/**
|
|||
|
* scale key 的创建方式
|
|||
|
* @param field
|
|||
|
*/
|
|||
|
private getScaleKey;
|
|||
|
}
|
|||
|
/**
|
|||
|
* 注册 geometry 组件
|
|||
|
* @param name
|
|||
|
* @param Ctor
|
|||
|
* @returns Geometry
|
|||
|
*/
|
|||
|
export declare function registerGeometry(name: string, Ctor: any): void;
|
|||
|
export default View;
|