58 lines
1.9 KiB
Plaintext
58 lines
1.9 KiB
Plaintext
define(function (require) {
|
|
|
|
var axisDefault = require('./axisDefault');
|
|
var zrUtil = require('zrender/core/util');
|
|
var ComponentModel = require('../model/Component');
|
|
var layout = require('../util/layout');
|
|
|
|
// FIXME axisType is fixed ?
|
|
var AXIS_TYPES = ['value', 'category', 'time', 'log'];
|
|
|
|
/**
|
|
* Generate sub axis model class
|
|
* @param {string} axisName 'x' 'y' 'radius' 'angle' 'parallel'
|
|
* @param {module:echarts/model/Component} BaseAxisModelClass
|
|
* @param {Function} axisTypeDefaulter
|
|
* @param {Object} [extraDefaultOption]
|
|
*/
|
|
return function (axisName, BaseAxisModelClass, axisTypeDefaulter, extraDefaultOption) {
|
|
|
|
zrUtil.each(AXIS_TYPES, function (axisType) {
|
|
|
|
BaseAxisModelClass.extend({
|
|
|
|
type: axisName + 'Axis.' + axisType,
|
|
|
|
mergeDefaultAndTheme: function (option, ecModel) {
|
|
var layoutMode = this.layoutMode;
|
|
var inputPositionParams = layoutMode
|
|
? layout.getLayoutParams(option) : {};
|
|
|
|
var themeModel = ecModel.getTheme();
|
|
zrUtil.merge(option, themeModel.get(axisType + 'Axis'));
|
|
zrUtil.merge(option, this.getDefaultOption());
|
|
|
|
option.type = axisTypeDefaulter(axisName, option);
|
|
|
|
if (layoutMode) {
|
|
layout.mergeLayoutParam(option, inputPositionParams, layoutMode);
|
|
}
|
|
},
|
|
|
|
defaultOption: zrUtil.mergeAll(
|
|
[
|
|
{},
|
|
axisDefault[axisType + 'Axis'],
|
|
extraDefaultOption
|
|
],
|
|
true
|
|
)
|
|
});
|
|
});
|
|
|
|
ComponentModel.registerSubTypeDefaulter(
|
|
axisName + 'Axis',
|
|
zrUtil.curry(axisTypeDefaulter, axisName)
|
|
);
|
|
};
|
|
}); |