chartx
Version:
Data Visualization Chart Library
241 lines (236 loc) • 7.84 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _axis = _interopRequireDefault(require("../../core/axis"));
var _canvax = require("canvax");
var _tools = require("../../utils/tools");
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
var Axis = exports.default = /*#__PURE__*/function (_baseAxis) {
function Axis(opt, dataOrg) {
var _this;
(0, _classCallCheck2.default)(this, Axis);
_this = _callSuper(this, Axis, [opt, dataOrg]);
_canvax._.extend(true, _this, (0, _tools.getDefaultProps)(Axis.defaultProps()));
return _this;
}
//vals 参数可以是单个number 也可以是 多个
(0, _inherits2.default)(Axis, _baseAxis);
return (0, _createClass2.default)(Axis, [{
key: "addValToSection",
value: function addValToSection(vals) {
var _this2 = this;
if (!Array.isArray(vals)) {
vals = [vals];
}
;
//如果y不在当前datasection范围内,那么就要重新绘制
this.dataSection = [];
var allinSection = true;
vals.forEach(function (val) {
if (val > Math.max.apply(Math, (0, _toConsumableArray2.default)(_this2.dataSection)) || val < Math.min.apply(Math, (0, _toConsumableArray2.default)(_this2.dataSection))) {
allinSection = false;
_this2._addValToSection(val);
}
});
if (allinSection) {
//都在当前dataSection中, 就不需要做什么处理
return;
}
this._initHandle();
//this.draw();
//然后要检测下依附于这个轴的所有graphs,都要重新绘制
this._coord.reset();
this._coord.resetGraphsOfAxis(this);
}
}, {
key: "resetSection",
value: function resetSection() {
this.dataSection = [];
this.verniers = this._opt.verniers || [];
this.setDataSection();
this.calculateProps();
this._initHandle();
//this.draw(); //光重绘自己不够
this._coord.draw();
//然后要检测下依附于这个轴的所有graphs,都要重新绘制
this._coord.resetGraphsOfAxis(this);
}
}], [{
key: "defaultProps",
value: function defaultProps() {
return {
field: {
detail: '轴字段配置',
documentation: '目前x轴的field只支持单维度设置,也就是说只支持一条x轴',
default: []
},
layoutType: {
detail: '布局方式',
default: 'rule'
},
width: {
detail: '轴宽',
default: 0
},
height: {
detail: '轴高',
default: 0
},
enabled: {
detail: '是否显示轴',
default: true
},
animation: {
detail: '是否开启动画',
default: true
},
title: {
detail: '轴名称',
propertys: {
shapeType: "text",
textAlign: {
detail: '水平对齐方式',
default: 'center'
},
textBaseline: {
detail: '基线对齐方式',
default: 'middle'
},
strokeStyle: {
detail: '文本描边颜色',
default: null
},
lineHeight: {
detail: '行高',
default: 0
},
text: {
detail: '轴名称的内容',
default: ''
},
fontColor: {
detail: '颜色',
default: '#999'
},
fontSize: {
detail: '字体大小',
default: 12
}
}
},
tickLine: {
detail: '刻度线',
propertys: {
enabled: {
detail: '是否开启',
default: true
},
lineWidth: {
detail: '刻度线宽',
default: 1
},
lineLength: {
detail: '刻度线长度',
default: 4
},
distance: {
detail: '和前面一个元素的距离',
default: 2
},
strokeStyle: {
detail: '描边颜色',
default: '#e6e6e6'
}
}
},
axisLine: {
detail: '轴线配置',
propertys: {
enabled: {
detail: '是否有轴线',
default: true
},
position: {
detail: '轴线的位置',
documentation: 'default在align的位置(left,right),可选 "center" 和 具体的值',
default: 'default'
},
lineWidth: {
detail: '轴线宽度',
default: 1
},
strokeStyle: {
detail: '轴线的颜色',
default: '#e6e6e6'
}
}
},
label: {
detail: '刻度文本',
propertys: {
enabled: {
detail: '是否显示刻度文本',
default: true
},
fontColor: {
detail: '文本颜色',
default: '#999'
},
fontSize: {
detail: '字体大小',
default: 10
},
rotation: {
detail: '旋转角度',
default: 0
},
format: {
detail: 'label文本的格式化处理函数',
default: null
},
distance: {
detail: '和轴线之间的间距',
default: 2
},
textAlign: {
detail: '水平方向对齐方式',
default: 'center'
},
lineHeight: {
detail: '文本的行高',
default: 1
},
evade: {
detail: '是否开启逃避算法,目前的逃避只是隐藏',
default: true
},
alpha: {
detail: '透明度',
default: 1
}
}
},
filter: {
detail: '过滤函数',
documentation: '可以用来过滤哪些yaxis 的 节点是否显示已经颜色之类的',
default: null
},
trimLayout: {
detail: '自定义的显示规则函数',
documentation: '如果用户有手动的 trimLayout ,那么就全部visible为true,然后调用用户自己的过滤程序',
default: null
}
};
}
}]);
}(_axis.default);