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

43 lines
1.3 KiB
Java

import { clone, isPlainObject, lowerCase, mix } from '@antv/util';
import GrammarInteraction from './grammar-interaction';
var Interactions = {};
/**
* 根据交互行为名字获取对应的交互类
* @param name 交互名字
* @returns 交互类
*/
export function getInteraction(name) {
return Interactions[lowerCase(name)];
}
/**
* 注册交互行为
* @param name 交互行为名字
* @param interaction 交互类
*/
export function registerInteraction(name, interaction) {
Interactions[lowerCase(name)] = interaction;
}
/**
* 创建交互实例
* @param name 交互名
* @param view 交互应用的 View 实例
* @param cfg 交互行为配置
*/
export function createInteraction(name, view, cfg) {
var interaciton = getInteraction(name);
if (!interaciton) {
return null;
}
if (isPlainObject(interaciton)) {
// 如果不 clone 则会多个 interaction 实例共享 step 的定义
var steps = mix(clone(interaciton), cfg);
return new GrammarInteraction(view, steps);
}
else {
var cls = interaciton;
return new cls(view, cfg);
}
}
export { default as Interaction } from './interaction';
export { Action, registerAction, getActionClass } from './action';
//# sourceMappingURL=index.js.map