UNPKG

@visactor/vmind

Version:

<div align="center"> <a href="https://github.com/VisActor#gh-light-mode-only" target="_blank"> <img alt="VisActor Logo" width="200" src="https://github.com/VisActor/.github/blob/main/profile/logo_500_200_light.svg"/> </a> <a href="https://githu

49 lines (40 loc) 2.98 kB
import { isArray, isNumber } from "@visactor/vutils"; import { ChartType } from "../../types"; export const isStackChartInAxes = (series, chartType) => !(chartType !== ChartType.DualAxisChart || !series.length) && series.every((s => { var _a; return (null == s ? void 0 : s.type) === (null === (_a = series[0]) || void 0 === _a ? void 0 : _a.type) && (!1 !== s.stack && "bar" === s.type || !!s.stack) && (null == s ? void 0 : s.seriesField) && !(isArray(s.xField) && s.xField.includes(s.seriesField)); })); export const isStackChart = (spec, chartType, cell) => { const {seriesField: seriesField, type: type, series: series = [], stack: stack} = spec || {}; return "common" === type && [ ChartType.BarChart, ChartType.AreaChart, ChartType.LineChart ].includes(chartType) ? null == series ? void 0 : series.every((s => !((!1 === (null == s ? void 0 : s.stack) || "bar" !== s.type) && !(null == s ? void 0 : s.stack) || isArray(cell.x) && cell.x.length > 1))) : (!1 !== stack && (chartType === ChartType.BarChart || "bar" === type) || !!stack) && seriesField && !(isArray(cell.x) && cell.x.includes(seriesField)); }; export const isPercentChart = (spec, chartType, cell) => { const {type: type, series: series = [], seriesField: seriesField} = spec || {}; return "common" === type && [ ChartType.BarChart, ChartType.AreaChart, ChartType.LineChart ].includes(chartType) ? null == series ? void 0 : series.every((s => !!(null == s ? void 0 : s.percent))) : !(!(null == spec ? void 0 : spec.percent) || seriesField && isArray(cell.x) && cell.x.includes(seriesField)); }; const getYSeries = (series, yField) => (null != series ? series : []).find((s => s.yField === yField || isArray(s.yField) && s.yField.includes(yField))); export const isStackSeries = (spec, yField) => { const ySeries = getYSeries(null == spec ? void 0 : spec.series, yField); if (ySeries) { const {xField: xField, seriesField: seriesField, type: type, stack: stack} = ySeries; return (!1 !== stack && "bar" === type || !!stack) && seriesField && !(isArray(xField) && xField.includes(seriesField)); } return !1; }; export const isPercenSeries = (spec, yField) => { const ySeries = getYSeries(null == spec ? void 0 : spec.series, yField); if (ySeries) { const {percent: percent, seriesField: seriesField, xField: xField} = ySeries; return !(!percent || seriesField && isArray(xField) && xField.includes(seriesField)); } return !1; }; export const sumDimensionValues = (dataset, measureId, getValue = (v => Math.abs(v))) => { let validCount = 0; const sum = dataset.reduce(((prev, cur) => { const numValue = Number(cur[measureId]), isValidNumber = isNumber(numValue) && !isNaN(numValue) && "" !== cur[measureId], value = isValidNumber ? getValue(numValue) : 0; return isValidNumber && validCount++, prev + value; }), 0); return validCount > 0 ? sum : null; }; //# sourceMappingURL=utils.js.map