| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- "use strict";
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.filterNonNumber = filterNonNumber;
- exports.deepMerge = deepMerge;
- exports.mulAdd = mulAdd;
- exports.mergeSameStackData = mergeSameStackData;
- exports.getTwoPointDistance = getTwoPointDistance;
- exports.getLinearGradientColor = getLinearGradientColor;
- exports.getPolylineLength = getPolylineLength;
- exports.getPointToLineDistance = getPointToLineDistance;
- exports.initNeedSeries = initNeedSeries;
- exports.radianToAngle = radianToAngle;
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
- var _util = require("@jiaminghi/c-render/lib/plugin/util");
- function filterNonNumber(array) {
- return array.filter(function (n) {
- return typeof n === 'number';
- });
- }
- function deepMerge(target, merged) {
- for (var key in merged) {
- if (target[key] && (0, _typeof2["default"])(target[key]) === 'object') {
- deepMerge(target[key], merged[key]);
- continue;
- }
- if ((0, _typeof2["default"])(merged[key]) === 'object') {
- target[key] = (0, _util.deepClone)(merged[key], true);
- continue;
- }
- target[key] = merged[key];
- }
- return target;
- }
- function mulAdd(nums) {
- nums = filterNonNumber(nums);
- return nums.reduce(function (all, num) {
- return all + num;
- }, 0);
- }
- function mergeSameStackData(item, series) {
- var stack = item.stack;
- if (!stack) return (0, _toConsumableArray2["default"])(item.data);
- var stacks = series.filter(function (_ref) {
- var s = _ref.stack;
- return s === stack;
- });
- var index = stacks.findIndex(function (_ref2) {
- var d = _ref2.data;
- return d === item.data;
- });
- var datas = stacks.splice(0, index + 1).map(function (_ref3) {
- var data = _ref3.data;
- return data;
- });
- var dataLength = datas[0].length;
- return new Array(dataLength).fill(0).map(function (foo, i) {
- return mulAdd(datas.map(function (d) {
- return d[i];
- }));
- });
- }
- function getTwoPointDistance(pointOne, pointTwo) {
- var minusX = Math.abs(pointOne[0] - pointTwo[0]);
- var minusY = Math.abs(pointOne[1] - pointTwo[1]);
- return Math.sqrt(minusX * minusX + minusY * minusY);
- }
- function getLinearGradientColor(ctx, begin, end, color) {
- if (!ctx || !begin || !end || !color.length) return;
- var colors = color;
- typeof colors === 'string' && (colors = [color, color]);
- var linearGradientColor = ctx.createLinearGradient.apply(ctx, (0, _toConsumableArray2["default"])(begin).concat((0, _toConsumableArray2["default"])(end)));
- var colorGap = 1 / (colors.length - 1);
- colors.forEach(function (c, i) {
- return linearGradientColor.addColorStop(colorGap * i, c);
- });
- return linearGradientColor;
- }
- function getPolylineLength(points) {
- var lineSegments = new Array(points.length - 1).fill(0).map(function (foo, i) {
- return [points[i], points[i + 1]];
- });
- var lengths = lineSegments.map(function (item) {
- return getTwoPointDistance.apply(void 0, (0, _toConsumableArray2["default"])(item));
- });
- return mulAdd(lengths);
- }
- function getPointToLineDistance(point, linePointOne, linePointTwo) {
- var a = getTwoPointDistance(point, linePointOne);
- var b = getTwoPointDistance(point, linePointTwo);
- var c = getTwoPointDistance(linePointOne, linePointTwo);
- return 0.5 * Math.sqrt((a + b + c) * (a + b - c) * (a + c - b) * (b + c - a)) / c;
- }
- function initNeedSeries(series, config, type) {
- series = series.filter(function (_ref4) {
- var st = _ref4.type;
- return st === type;
- });
- series = series.map(function (item) {
- return deepMerge((0, _util.deepClone)(config, true), item);
- });
- return series.filter(function (_ref5) {
- var show = _ref5.show;
- return show;
- });
- }
- function radianToAngle(radian) {
- return radian / Math.PI * 180;
- }
|