import AxisView from "../axis/AxisView.mjs";
import CartesianAxisPointer from "./CartesianAxisPointer.mjs";
import AxisPointerModel from "./AxisPointerModel.mjs";
import AxisPointerView from "./AxisPointerView.mjs";
import { isArray } from "../../../../../../zrender@5.4.4/node_modules/zrender/lib/core/util.mjs";
import { collect } from "./modelHelper.mjs";
import axisTrigger from "./axisTrigger.mjs";
function install(registers) {
  AxisView.registerAxisPointerClass("CartesianAxisPointer", CartesianAxisPointer);
  registers.registerComponentModel(AxisPointerModel);
  registers.registerComponentView(AxisPointerView);
  registers.registerPreprocessor(function(option) {
    if (option) {
      (!option.axisPointer || option.axisPointer.length === 0) && (option.axisPointer = {});
      var link = option.axisPointer.link;
      if (link && !isArray(link)) {
        option.axisPointer.link = [link];
      }
    }
  });
  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, function(ecModel, api) {
    ecModel.getComponent("axisPointer").coordSysAxesInfo = collect(ecModel, api);
  });
  registers.registerAction({
    type: "updateAxisPointer",
    event: "updateAxisPointer",
    update: ":updateAxisPointer"
  }, axisTrigger);
}
export {
  install
};
