@antv/g2
Version:
the Grammar of Graphics in Javascript
69 lines • 2.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCallbackAction = exports.unregisterAction = exports.registerAction = exports.getActionClass = exports.createAction = void 0;
var tslib_1 = require("tslib");
var callback_1 = tslib_1.__importDefault(require("./callback"));
var util_1 = require("@antv/util");
// Action 类的缓存
var ActionCache = {};
/**
* 根据名称获取 Action 实例
* @param actionName - action 的名称
* @param context 上下文
* @returns Action 实例
*/
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;
}
exports.createAction = createAction;
/**
* 根据 action 的 name 获取定义的类
* @param actionName action 的 name
*/
function getActionClass(actionName) {
var actionOption = ActionCache[actionName];
return (0, util_1.get)(actionOption, 'ActionClass');
}
exports.getActionClass = getActionClass;
/**
* 注册 Action
* @param actionName - action 的名称
* @param ActionClass - 继承自 action 的类
*/
function registerAction(actionName, ActionClass, cfg) {
ActionCache[actionName] = {
ActionClass: ActionClass,
cfg: cfg,
};
}
exports.registerAction = registerAction;
/**
* 取消注册 Action
* @param actionName action 名称
*/
function unregisterAction(actionName) {
delete ActionCache[actionName];
}
exports.unregisterAction = unregisterAction;
/**
* 根据回调函数获取 Action 实例
* @param callback - action 的回调函数
* @param context 上下文
* @returns Action 实例
*/
function createCallbackAction(callback, context) {
var action = new callback_1.default(context);
action.callback = callback;
action.name = 'callback';
return action;
}
exports.createCallbackAction = createCallbackAction;
//# sourceMappingURL=register.js.map