'use strict';

var parallelPreprocessor = require('../../coord/parallel/parallelPreprocessor.js');
var ParallelView = require('./ParallelView.js');
var ParallelModel = require('../../coord/parallel/ParallelModel.js');
var parallelCreator = require('../../coord/parallel/parallelCreator.js');
var axisModelCreator = require('../../coord/axisModelCreator.js');
var AxisModel = require('../../coord/parallel/AxisModel.js');
var ParallelAxisView = require('../axis/ParallelAxisView.js');
var parallelAxisAction = require('../axis/parallelAxisAction.js');

var defaultAxisOption = {
  type: 'value',
  areaSelectStyle: {
    width: 20,
    borderWidth: 1,
    borderColor: 'rgba(160,197,232)',
    color: 'rgba(160,197,232)',
    opacity: 0.3
  },
  realtime: true,
  z: 10
};
function install(registers) {
  registers.registerComponentView(ParallelView.default);
  registers.registerComponentModel(ParallelModel.default);
  registers.registerCoordinateSystem('parallel', parallelCreator.default);
  registers.registerPreprocessor(parallelPreprocessor.default);
  registers.registerComponentModel(AxisModel.default);
  registers.registerComponentView(ParallelAxisView.default);
  axisModelCreator.default(registers, 'parallel', AxisModel.default, defaultAxisOption);
  parallelAxisAction.installParallelActions(registers);
}

exports.install = install;
