"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const preprocessor = require("./preprocessor.js");
const BrushView = require("./BrushView.js");
const BrushModel = require("./BrushModel.js");
const visualEncoding = require("./visualEncoding.js");
const Brush = require("../toolbox/feature/Brush.js");
const featureManager = require("../toolbox/featureManager.js");
const util = require("../../../../../../zrender@5.4.4/node_modules/zrender/lib/core/util.js");
function install(registers) {
  registers.registerComponentView(BrushView.default);
  registers.registerComponentModel(BrushModel.default);
  registers.registerPreprocessor(preprocessor.default);
  registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, visualEncoding.default);
  registers.registerAction({
    type: "brush",
    event: "brush",
    update: "updateVisual"
  }, function(payload, ecModel) {
    ecModel.eachComponent({
      mainType: "brush",
      query: payload
    }, function(brushModel) {
      brushModel.setAreas(payload.areas);
    });
  });
  registers.registerAction({
    type: "brushSelect",
    event: "brushSelected",
    update: "none"
  }, util.noop);
  registers.registerAction({
    type: "brushEnd",
    event: "brushEnd",
    update: "none"
  }, util.noop);
  featureManager.registerFeature("brush", Brush.default);
}
exports.install = install;
