@antv/g2
Version:
the Grammar of Graphics in Javascript
60 lines • 1.63 kB
JavaScript
import CallbackAction from './callback';
import { get } from '@antv/util';
// Action 类的缓存
var ActionCache = {};
/**
* 根据名称获取 Action 实例
* @param actionName - action 的名称
* @param context 上下文
* @returns Action 实例
*/
export function createAction(actionName, context) {
var actionOption = ActionCache[actionName];
var action = null;
if (actionOption) {
var ActionClass = actionOption.ActionClass, cfg = actionOption.cfg;
action = new ActionClass(context, cfg);
action.name = actionName;
action.init();
}
return action;
}
/**
* 根据 action 的 name 获取定义的类
* @param actionName action 的 name
*/
export function getActionClass(actionName) {
var actionOption = ActionCache[actionName];
return get(actionOption, 'ActionClass');
}
/**
* 注册 Action
* @param actionName - action 的名称
* @param ActionClass - 继承自 action 的类
*/
export function registerAction(actionName, ActionClass, cfg) {
ActionCache[actionName] = {
ActionClass: ActionClass,
cfg: cfg,
};
}
/**
* 取消注册 Action
* @param actionName action 名称
*/
export function unregisterAction(actionName) {
delete ActionCache[actionName];
}
/**
* 根据回调函数获取 Action 实例
* @param callback - action 的回调函数
* @param context 上下文
* @returns Action 实例
*/
export function createCallbackAction(callback, context) {
var action = new CallbackAction(context);
action.callback = callback;
action.name = 'callback';
return action;
}
//# sourceMappingURL=register.js.map