NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/@antv/g2/esm/interaction/grammar-interaction.d.ts
2023-09-14 14:47:11 +08:00

149 lines
3.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { View } from '../chart';
import { ActionCallback, IAction, IInteractionContext } from '../interface';
import Interaction from './interaction';
/** 交互环节的定义 */
export interface InteractionStep {
/**
* 触发事件,支持 viewchart 的各种事件,也支持 document、window 的事件
*/
trigger: string;
/**
* 是否可以触发 action
* @param context - 交互的上下文
*/
isEnable?: (context: IInteractionContext) => boolean;
/**
* 反馈,支持三种方式:
* - action:method : action 的名字和方法的组合
* - [action1:method1, action2:method]
* - ActionCallback: 回调函数
*/
action: string | string[] | ActionCallback;
/**
* 回调函数action 执行后执行
*/
callback?: (context: IInteractionContext) => void;
/**
* @private
* 不需要用户传入,通过上面的属性计算出来的属性
*/
actionObject?: ActionObject | ActionObject[];
/**
* 在一个环节内是否只允许执行一次
*/
once?: boolean;
/**
* 是否增加节流
*/
throttle?: ThrottleOption;
/**
* 是否延迟
*/
debounce?: DebounceOption;
}
/**
* debounce 的配置
*/
export interface DebounceOption {
/**
* 等待时间
*/
wait: number;
/**
* 是否马上执行
*/
immediate?: boolean;
}
/**
* throttle 的配置
*/
export interface ThrottleOption {
/**
* 等待时间
*/
wait: number;
/**
* 马上就执行
*/
leading?: boolean;
/**
* 执行完毕后再执行一次
*/
trailing?: boolean;
}
/** 缓存 action 对象,仅用于当前文件 */
interface ActionObject {
/**
* 缓存的 action
*/
action: IAction;
/**
* action 的方法
*/
methodName: string;
}
/** 交互的所有环节 */
export interface InteractionSteps {
/**
* 显示交互可以进行
*/
showEnable?: InteractionStep[];
/**
* 交互开始
*/
start?: InteractionStep[];
/**
* 交互持续
*/
processing?: InteractionStep[];
/**
* 交互结束
*/
end?: InteractionStep[];
/**
* 交互回滚
*/
rollback?: InteractionStep[];
}
/**
* 支持语法的交互类
*/
export default class GrammarInteraction extends Interaction {
private steps;
/** 当前执行到的阶段 */
currentStepName: string;
/**
* 当前交互的上下文
*/
context: IInteractionContext;
private callbackCaches;
private emitCaches;
constructor(view: View, steps: InteractionSteps);
/**
* 初始化
*/
init(): void;
/**
* 清理资源
*/
destroy(): void;
/**
* 绑定事件
*/
protected initEvents(): void;
/**
* 清理绑定的事件
*/
protected clearEvents(): void;
private initContext;
private isAllowStep;
private isAllowExcute;
private enterStep;
private afterExecute;
private getKey;
private getActionCallback;
private bindEvent;
private offEvent;
}
export {};