UNPKG

@antv/f2

Version:

Charts for mobile visualization.

167 lines (166 loc) 5.99 kB
"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;