@antv/f2
Version:
Charts for mobile visualization.
167 lines (166 loc) • 5.99 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
var _jsx = require("../../jsx");
var _util = require("@antv/util");
var _geometry = _interopRequireDefault(require("../geometry"));
var _default = function _default(View) {
return /*#__PURE__*/function (_Geometry) {
(0, _inherits2.default)(Line, _Geometry);
var _super = (0, _createSuper2.default)(Line);
function Line() {
(0, _classCallCheck2.default)(this, Line);
return _super.apply(this, arguments);
}
(0, _createClass2.default)(Line, [{
key: "getDefaultCfg",
value: function getDefaultCfg() {
return {
geomType: 'line',
sortable: true
};
}
}, {
key: "splitPoints",
value: function splitPoints(points) {
var topPoints = [];
var bottomPoints = [];
for (var i = 0, len = points.length; i < len; i++) {
var point = points[i];
var x = point.x,
y = point.y;
topPoints.push((0, _objectSpread2.default)((0, _objectSpread2.default)({}, point), {}, {
x: x,
y: y[1]
}));
bottomPoints.push((0, _objectSpread2.default)((0, _objectSpread2.default)({}, point), {}, {
x: x,
y: y[0]
}));
}
return [topPoints, bottomPoints];
}
}, {
key: "splitNulls",
value: function splitNulls(points, connectNulls) {
if (connectNulls) {
var _tmpPoints = [];
for (var i = 0, len = points.length; i < len; i++) {
var point = points[i];
var y = point.y;
if ((0, _util.isArray)(y)) {
if (isNaN(y[0])) {
continue;
}
_tmpPoints.push(point);
continue;
}
if (isNaN(y)) {
continue;
}
_tmpPoints.push(point);
}
if (_tmpPoints.length) {
return [_tmpPoints];
}
return [];
}
var result = [];
var tmpPoints = [];
for (var _i = 0, _len = points.length; _i < _len; _i++) {
var _point = points[_i];
var _y = _point.y;
if ((0, _util.isArray)(_y)) {
if (isNaN(_y[0])) {
if (tmpPoints.length) {
result.push(tmpPoints);
tmpPoints = [];
}
continue;
}
tmpPoints.push(_point);
continue;
}
if (isNaN(_y)) {
if (tmpPoints.length) {
result.push(tmpPoints);
tmpPoints = [];
}
continue;
}
tmpPoints.push(_point);
}
if (tmpPoints.length) {
result.push(tmpPoints);
}
return result;
}
}, {
key: "mapping",
value: function mapping() {
var _this = this;
var records = (0, _get2.default)((0, _getPrototypeOf2.default)(Line.prototype), "mapping", this).call(this);
var props = this.props,
defaultConnectNulls = this.connectNulls;
var coord = props.coord,
_props$connectNulls = props.connectNulls,
connectNulls = _props$connectNulls === void 0 ? defaultConnectNulls : _props$connectNulls;
return records.map(function (record) {
var children = record.children;
// children 有可能为空
var _ref = children[0] || {},
size = _ref.size,
color = _ref.color,
shape = _ref.shape,
y = _ref.y;
// 极坐标时,需加入起点,从而闭合所绘图形
var points = coord.isPolar ? [].concat((0, _toConsumableArray2.default)(children), [children[0]]) : children;
var splitPoints = _this.splitNulls(points, connectNulls);
var newChildren = splitPoints.map(function (points) {
var _ref2 = (0, _util.isArray)(y) ? _this.splitPoints(points) : [points, undefined],
_ref3 = (0, _slicedToArray2.default)(_ref2, 2),
topPoints = _ref3[0],
bottomPoints = _ref3[1];
return {
size: size,
color: color,
shape: shape,
points: topPoints,
bottomPoints: bottomPoints
};
});
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, record), {}, {
children: newChildren
});
});
}
}, {
key: "render",
value: function render() {
var props = this.props;
var coord = props.coord;
var records = this.mapping();
var clip = this.getClip();
return (0, _jsx.jsx)(View, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
coord: coord,
records: records,
clip: clip
}));
}
}]);
return Line;
}(_geometry.default);
};
exports.default = _default;