@visactor/vseed 0.1.40 → 0.1.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +3 -3
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/builder/builder/builder.d.ts +3211 -349
- package/dist/esm/pipeline/advanced/chart/pipeline/column.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/column.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/common.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/common.js +22 -0
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/common.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/index.d.ts +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/index.js +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortLegend.js +1 -19
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortLegend.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortXBand.d.ts +1 -2
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortXBand.js +2 -20
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortXBand.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortYBand.js +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortYBand.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/regressionLine/regressionLine.js +28 -1
- package/dist/esm/pipeline/advanced/chart/pipes/regressionLine/regressionLine.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js +0 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/area.js +7 -4
- package/dist/esm/pipeline/spec/chart/pipeline/area.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/areaPercent.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/areaPercent.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/bar.js +4 -2
- package/dist/esm/pipeline/spec/chart/pipeline/bar.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/barParallel.js +4 -2
- package/dist/esm/pipeline/spec/chart/pipeline/barParallel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/barPercent.js +4 -2
- package/dist/esm/pipeline/spec/chart/pipeline/barPercent.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/column.js +8 -4
- package/dist/esm/pipeline/spec/chart/pipeline/column.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/columnParallel.js +4 -2
- package/dist/esm/pipeline/spec/chart/pipeline/columnParallel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/columnPercent.js +4 -2
- package/dist/esm/pipeline/spec/chart/pipeline/columnPercent.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/donut.js +3 -1
- package/dist/esm/pipeline/spec/chart/pipeline/donut.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/funnel.js +2 -1
- package/dist/esm/pipeline/spec/chart/pipeline/funnel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/histogram.js +7 -4
- package/dist/esm/pipeline/spec/chart/pipeline/histogram.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/line.js +7 -4
- package/dist/esm/pipeline/spec/chart/pipeline/line.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/pie.js +4 -2
- package/dist/esm/pipeline/spec/chart/pipeline/pie.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/radar.js +3 -1
- package/dist/esm/pipeline/spec/chart/pipeline/radar.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/rose.js +3 -1
- package/dist/esm/pipeline/spec/chart/pipeline/rose.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/roseParallel.js +3 -1
- package/dist/esm/pipeline/spec/chart/pipeline/roseParallel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/scatter.js +11 -4
- package/dist/esm/pipeline/spec/chart/pipeline/scatter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/index.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/annotation/index.js +2 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/splitLine.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/annotation/splitLine.js +172 -0
- package/dist/esm/pipeline/spec/chart/pipes/annotation/splitLine.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/index.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/index.js +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/pivot.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/pivot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/index.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/index.js +3 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js +13 -0
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js +38 -32
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotTitle.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotTitle.js +28 -0
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotTitle.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/region/addRegionPadding.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/region/addRegionPadding.js +10 -0
- package/dist/esm/pipeline/spec/chart/pipes/region/addRegionPadding.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/region/index.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/region/index.js +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.js +150 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/common.d.ts +4 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/common.js +21 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/common.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js +98 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/index.d.ts +4 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/index.js +4 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js +98 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.d.ts +16 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js +159 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.d.ts +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js +5 -5
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.d.ts +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js +1 -6
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js.map +1 -1
- package/dist/esm/theme/common/color.d.ts +4 -0
- package/dist/esm/theme/common/color.js +6 -2
- package/dist/esm/theme/common/color.js.map +1 -1
- package/dist/esm/theme/common/regressionLine.d.ts +8 -4
- package/dist/esm/theme/common/regressionLine.js +60 -8
- package/dist/esm/theme/common/regressionLine.js.map +1 -1
- package/dist/esm/theme/common/table.d.ts +6 -0
- package/dist/esm/theme/common/table.js +4 -1
- package/dist/esm/theme/common/table.js.map +1 -1
- package/dist/esm/theme/dark/dark.js +8 -6
- package/dist/esm/theme/dark/dark.js.map +1 -1
- package/dist/esm/theme/light/light.js +8 -6
- package/dist/esm/theme/light/light.js.map +1 -1
- package/dist/esm/types/advancedVSeed.d.ts +1028 -37
- package/dist/esm/types/advancedVSeed.js +2 -2
- package/dist/esm/types/advancedVSeed.js.map +1 -1
- package/dist/esm/types/chartType/column/column.d.ts +6 -1
- package/dist/esm/types/chartType/column/zColumn.d.ts +25 -0
- package/dist/esm/types/chartType/column/zColumn.js +2 -1
- package/dist/esm/types/chartType/column/zColumn.js.map +1 -1
- package/dist/esm/types/chartType/histogram/histogram.d.ts +7 -3
- package/dist/esm/types/chartType/histogram/zHistogram.d.ts +19 -4
- package/dist/esm/types/chartType/histogram/zHistogram.js +3 -2
- package/dist/esm/types/chartType/histogram/zHistogram.js.map +1 -1
- package/dist/esm/types/chartType/scatter/scatter.d.ts +21 -1
- package/dist/esm/types/chartType/scatter/zScatter.d.ts +94 -0
- package/dist/esm/types/chartType/scatter/zScatter.js +5 -1
- package/dist/esm/types/chartType/scatter/zScatter.js.map +1 -1
- package/dist/esm/types/properties/annotation/annotationHorizontalLine.d.ts +13 -0
- package/dist/esm/types/properties/config/area.d.ts +6 -0
- package/dist/esm/types/properties/config/bar.d.ts +9 -0
- package/dist/esm/types/properties/config/boxplot.d.ts +3 -0
- package/dist/esm/types/properties/config/color/color.d.ts +8 -0
- package/dist/esm/types/properties/config/color/color.js.map +1 -1
- package/dist/esm/types/properties/config/column.d.ts +141 -2
- package/dist/esm/types/properties/config/column.js +6 -3
- package/dist/esm/types/properties/config/column.js.map +1 -1
- package/dist/esm/types/properties/config/config.d.ts +449 -9
- package/dist/esm/types/properties/config/dualAxis.d.ts +3 -0
- package/dist/esm/types/properties/config/funnel.d.ts +3 -0
- package/dist/esm/types/properties/config/heatmap.d.ts +3 -0
- package/dist/esm/types/properties/config/histogram.d.ts +132 -9
- package/dist/esm/types/properties/config/histogram.js +2 -2
- package/dist/esm/types/properties/config/histogram.js.map +1 -1
- package/dist/esm/types/properties/config/line.d.ts +3 -0
- package/dist/esm/types/properties/config/pie.d.ts +9 -0
- package/dist/esm/types/properties/config/pivotGrid/pivotGrid.d.ts +3 -0
- package/dist/esm/types/properties/config/pivotGrid/pivotGrid.js +4 -1
- package/dist/esm/types/properties/config/pivotGrid/pivotGrid.js.map +1 -1
- package/dist/esm/types/properties/config/rose.d.ts +6 -0
- package/dist/esm/types/properties/config/scatter.d.ts +133 -0
- package/dist/esm/types/properties/config/scatter.js +3 -1
- package/dist/esm/types/properties/config/scatter.js.map +1 -1
- package/dist/esm/types/properties/regressionLine/{histogramRegressionLine.d.ts → ecdfRegressionLine.d.ts} +2 -7
- package/dist/esm/types/properties/regressionLine/index.d.ts +7 -2
- package/dist/esm/types/properties/regressionLine/index.js +1 -1
- package/dist/esm/types/properties/regressionLine/kdeRegressionLine.d.ts +40 -0
- package/dist/esm/types/properties/regressionLine/linearRegressionLine.d.ts +53 -0
- package/dist/esm/types/properties/regressionLine/logisticRegressionLine.d.ts +53 -0
- package/dist/esm/types/properties/regressionLine/logisticRegressionLine.js +0 -0
- package/dist/esm/types/properties/regressionLine/lowessRegressionLine.d.ts +53 -0
- package/dist/esm/types/properties/regressionLine/lowessRegressionLine.js +0 -0
- package/dist/esm/types/properties/regressionLine/polynomialRegressionLine.d.ts +57 -0
- package/dist/esm/types/properties/regressionLine/polynomialRegressionLine.js +0 -0
- package/dist/esm/types/properties/regressionLine/zRegressionLine.d.ts +199 -0
- package/dist/esm/types/properties/regressionLine/zRegressionLine.js +32 -0
- package/dist/esm/types/properties/regressionLine/zRegressionLine.js.map +1 -0
- package/dist/esm/types/properties/theme/customTheme.d.ts +898 -18
- package/dist/esm/types/zVseed.d.ts +138 -4
- package/dist/umd/index.js +1889 -279
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/histogramRegressionLine.d.ts +0 -2
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/histogramRegressionLine.js +0 -126
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/histogramRegressionLine.js.map +0 -1
- package/dist/esm/types/properties/regressionLine/zHistogramRegressionLine.d.ts +0 -11
- package/dist/esm/types/properties/regressionLine/zHistogramRegressionLine.js +0 -17
- package/dist/esm/types/properties/regressionLine/zHistogramRegressionLine.js.map +0 -1
- /package/dist/esm/{pipeline/advanced/chart/pipes/analysis/sort.d.ts → types/properties/regressionLine/ecdfRegressionLine.js} +0 -0
- /package/dist/esm/{pipeline/advanced/chart/pipes/analysis/sort.js → types/properties/regressionLine/kdeRegressionLine.js} +0 -0
- /package/dist/esm/types/properties/regressionLine/{histogramRegressionLine.js → linearRegressionLine.js} +0 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { isNullish } from "remeda";
|
|
2
|
+
import { array, clamper, regressionLinear, regressionLogistic, regressionLowess, regressionPolynomial } from "@visactor/vutils";
|
|
3
|
+
const generateRegressionLinePipe = (type, regressionFunction, getOptions)=>(spec, context)=>{
|
|
4
|
+
const result = {
|
|
5
|
+
...spec
|
|
6
|
+
};
|
|
7
|
+
const { advancedVSeed } = context;
|
|
8
|
+
const { chartType, regressionLine } = advancedVSeed;
|
|
9
|
+
const lineTheme = advancedVSeed.config[chartType]?.regressionLine;
|
|
10
|
+
if (!regressionLine || !regressionLine[type]) return result;
|
|
11
|
+
const lineList = array(regressionLine[type]);
|
|
12
|
+
if (!result.customMark) result.customMark = [];
|
|
13
|
+
lineList.forEach((line, lineIndex)=>{
|
|
14
|
+
const theme = lineTheme.linearRegressionLine ?? {};
|
|
15
|
+
const { color, lineWidth, lineDash, text, textColor, textFontSize, textFontWeight, confidenceIntervalOpacity, confidenceIntervalVisible = theme.confidenceIntervalVisible } = line;
|
|
16
|
+
const childrenMarks = [];
|
|
17
|
+
result.customMark.push({
|
|
18
|
+
type: 'group',
|
|
19
|
+
interactive: false,
|
|
20
|
+
zIndex: 500,
|
|
21
|
+
name: `${type}-${lineIndex}`,
|
|
22
|
+
style: {
|
|
23
|
+
data: (datum, ctx)=>{
|
|
24
|
+
const vchart = ctx.vchart;
|
|
25
|
+
const chart = vchart.getChart();
|
|
26
|
+
const s = chart.getAllSeries()[0];
|
|
27
|
+
if (s) {
|
|
28
|
+
const rect = s.getRegion().getLayoutRect();
|
|
29
|
+
const segments = [];
|
|
30
|
+
if (0 === rect.width || 0 === rect.height) return segments;
|
|
31
|
+
const start = s.getRegion().getLayoutStartPoint();
|
|
32
|
+
const yClamper = clamper(start.y, start.y + rect.height);
|
|
33
|
+
const colorAttrOptions = s.getColorAttribute();
|
|
34
|
+
const groups = s.getSeriesKeys();
|
|
35
|
+
const data = s.getViewData()?.latestData;
|
|
36
|
+
const fieldX = s.fieldX?.[0];
|
|
37
|
+
const fieldY = s.fieldY?.[0];
|
|
38
|
+
if (!groups.length) groups.push(void 0);
|
|
39
|
+
groups.forEach((group)=>{
|
|
40
|
+
const groupData = data.filter((d)=>d[colorAttrOptions?.field] === group);
|
|
41
|
+
if (!groupData.length) return;
|
|
42
|
+
const { confidenceInterval, evaluateGrid } = regressionFunction(groupData, (datum)=>datum?.[fieldX], (datum)=>datum?.[fieldY], getOptions?.(line));
|
|
43
|
+
const N = Math.max(3, Math.floor(groupData.length / 4));
|
|
44
|
+
const mainColor = color ?? colorAttrOptions?.scale?.scale(group);
|
|
45
|
+
const lineData = evaluateGrid(N);
|
|
46
|
+
const linePoints = lineData.map((ld)=>{
|
|
47
|
+
const d = {
|
|
48
|
+
[fieldX]: ld.x,
|
|
49
|
+
[fieldY]: ld.y
|
|
50
|
+
};
|
|
51
|
+
return {
|
|
52
|
+
x: s.dataToPositionX(d) + start.x,
|
|
53
|
+
y: yClamper(s.dataToPositionY(d) + start.y)
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
segments.push({
|
|
57
|
+
color: mainColor,
|
|
58
|
+
linePoints
|
|
59
|
+
});
|
|
60
|
+
if (confidenceIntervalVisible) {
|
|
61
|
+
const intervalData = confidenceInterval(N);
|
|
62
|
+
const areaPoints = intervalData.map((datum)=>{
|
|
63
|
+
const d = {
|
|
64
|
+
[fieldX]: datum.x,
|
|
65
|
+
[fieldY]: datum.lower
|
|
66
|
+
};
|
|
67
|
+
return {
|
|
68
|
+
x: s.dataToPositionX(d) + start.x,
|
|
69
|
+
y: yClamper(s.dataToPositionY(d) + start.y),
|
|
70
|
+
y1: yClamper(s.dataToPositionY({
|
|
71
|
+
[fieldY]: datum.upper
|
|
72
|
+
}) + start.y)
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
segments[segments.length - 1].areaPoints = areaPoints;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
return segments;
|
|
79
|
+
}
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
children: childrenMarks
|
|
84
|
+
});
|
|
85
|
+
if (confidenceIntervalVisible) childrenMarks.push({
|
|
86
|
+
type: 'area',
|
|
87
|
+
interactive: false,
|
|
88
|
+
zIndex: 500,
|
|
89
|
+
style: {
|
|
90
|
+
lineWidth: lineWidth ?? theme.lineWidth,
|
|
91
|
+
lineDash: lineDash ?? theme.lineDash,
|
|
92
|
+
fillOpacity: confidenceIntervalOpacity ?? theme.confidenceIntervalOpacity,
|
|
93
|
+
fill: 'red',
|
|
94
|
+
segments: (datum, ctx, opt)=>{
|
|
95
|
+
const parentNode = opt.mark?._product?.parent;
|
|
96
|
+
if (parentNode?.attribute?.data?.length) return parentNode.attribute.data.map((d)=>({
|
|
97
|
+
points: d.areaPoints ?? [],
|
|
98
|
+
fill: d.color
|
|
99
|
+
}));
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
childrenMarks.push({
|
|
105
|
+
type: 'line',
|
|
106
|
+
interactive: false,
|
|
107
|
+
zIndex: 500,
|
|
108
|
+
style: {
|
|
109
|
+
lineWidth: lineWidth ?? theme.lineWidth,
|
|
110
|
+
lineDash: lineDash ?? theme.lineDash,
|
|
111
|
+
stroke: 'red',
|
|
112
|
+
segments: (datum, ctx, opt)=>{
|
|
113
|
+
const parentNode = opt.mark?._product?.parent;
|
|
114
|
+
if (parentNode?.attribute?.data?.length) return parentNode.attribute.data.map((d)=>({
|
|
115
|
+
points: d.linePoints,
|
|
116
|
+
stroke: d.color
|
|
117
|
+
}));
|
|
118
|
+
return [];
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
if (!isNullish(text)) childrenMarks.push({
|
|
123
|
+
type: 'text',
|
|
124
|
+
interactive: false,
|
|
125
|
+
zIndex: 500,
|
|
126
|
+
style: {
|
|
127
|
+
textAlign: 'end',
|
|
128
|
+
fill: textColor ?? theme.textColor,
|
|
129
|
+
fontSize: textFontSize ?? theme.textFontSize,
|
|
130
|
+
fontWeight: textFontWeight ?? theme.textFontWeight,
|
|
131
|
+
text: text,
|
|
132
|
+
x: (datum, ctx, opt)=>{
|
|
133
|
+
const parentNode = opt.mark?._product?.parent;
|
|
134
|
+
if (parentNode?.attribute?.data?.length) {
|
|
135
|
+
const point = parentNode.attribute.data[parentNode.attribute.data.length - 1].linePoints;
|
|
136
|
+
return point[point.length - 1]?.x;
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
y: (datum, ctx, opt)=>{
|
|
140
|
+
const parentNode = opt.mark?._product?.parent;
|
|
141
|
+
if (parentNode?.attribute?.data?.length) {
|
|
142
|
+
const point = parentNode.attribute.data[parentNode.attribute.data.length - 1].linePoints;
|
|
143
|
+
return point[point.length - 1]?.y;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
return result;
|
|
150
|
+
};
|
|
151
|
+
const linearRegressionLine = generateRegressionLinePipe('linearRegressionLine', regressionLinear);
|
|
152
|
+
const lowessRegressionLine = generateRegressionLinePipe('lowessRegressionLine', regressionLowess);
|
|
153
|
+
const polynomialRegressionLine = generateRegressionLinePipe('polynomialRegressionLine', regressionPolynomial, (lineConfig)=>({
|
|
154
|
+
degree: lineConfig.degree ?? 2
|
|
155
|
+
}));
|
|
156
|
+
const logisticRegressionLine = generateRegressionLinePipe('logisticRegressionLine', regressionLogistic);
|
|
157
|
+
export { generateRegressionLinePipe, linearRegressionLine, logisticRegressionLine, lowessRegressionLine, polynomialRegressionLine };
|
|
158
|
+
|
|
159
|
+
//# sourceMappingURL=linearRegressionLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.ts"],"sourcesContent":["import type { ICartesianSeries, IChart, IScatterChartSpec, IVChart } from '@visactor/vchart'\nimport { isNullish } from 'remeda'\nimport {\n array,\n clamper,\n regressionLinear,\n regressionLowess,\n regressionPolynomial,\n regressionLogistic,\n} from '@visactor/vutils'\nimport type {\n Datum,\n SpecPipe,\n RegressionLineConfig,\n LinearRegressionLine,\n SpecPipelineContext,\n PolynomialRegressionLine,\n} from 'src/types'\n\nexport const generateRegressionLinePipe = (\n type: 'linearRegressionLine' | 'lowessRegressionLine' | 'polynomialRegressionLine' | 'logisticRegressionLine',\n regressionFunction: (\n arr: Datum[],\n xAccessor: (d: Datum) => number,\n yAccessor: (d: Datum) => number,\n options?: any,\n ) => {\n confidenceInterval: (N: number) => { lower: number; upper: number; x: number }[]\n evaluateGrid: (N: number) => { x: number; y: number }[]\n },\n getOptions?: (lineConfig: any) => any,\n): SpecPipe => {\n return ((spec: Partial<IScatterChartSpec>, context: SpecPipelineContext): Partial<IScatterChartSpec> => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { chartType, regressionLine } = advancedVSeed\n const lineTheme = advancedVSeed.config[chartType as 'scatter']?.regressionLine as RegressionLineConfig\n\n if (!regressionLine || !regressionLine[type]) {\n return result\n }\n\n const lineList = array(regressionLine[type])\n\n if (!result.customMark) {\n result.customMark = []\n }\n\n lineList.forEach((line, lineIndex) => {\n const theme = (lineTheme.linearRegressionLine ?? {}) as LinearRegressionLine\n const {\n color,\n lineWidth,\n lineDash,\n text,\n textColor,\n textFontSize,\n textFontWeight,\n confidenceIntervalOpacity,\n confidenceIntervalVisible = theme.confidenceIntervalVisible,\n } = line as LinearRegressionLine\n\n const childrenMarks: any[] = []\n\n ;(result.customMark as any[]).push({\n type: 'group',\n interactive: false,\n zIndex: 500,\n name: `${type}-${lineIndex}`,\n style: {\n data: (datum: any, ctx: any) => {\n const vchart = ctx.vchart as IVChart\n const chart = vchart.getChart() as IChart\n const s = chart.getAllSeries()[0] as ICartesianSeries\n\n if (s) {\n const rect = s.getRegion().getLayoutRect()\n const segments: {\n areaPoints?: { x: number; y: number; y1: number }[]\n linePoints: { x: number; y: number }[]\n color: string\n }[] = []\n\n if (rect.width === 0 || rect.height === 0) {\n return segments\n }\n\n const start = s.getRegion().getLayoutStartPoint()\n const yClamper = clamper(start.y, start.y + rect.height)\n const colorAttrOptions = s.getColorAttribute()\n const groups: (string | undefined)[] = s.getSeriesKeys()\n const data = s.getViewData()?.latestData as Datum[]\n const fieldX = s.fieldX?.[0]\n const fieldY = s.fieldY?.[0]\n\n if (!groups.length) {\n groups.push(undefined)\n }\n\n groups.forEach((group) => {\n const groupData = data.filter((d: Datum) => d[colorAttrOptions?.field] === group)\n\n if (!groupData.length) {\n return\n }\n const { confidenceInterval, evaluateGrid } = regressionFunction(\n groupData,\n (datum: Datum) => datum?.[fieldX],\n (datum: Datum) => datum?.[fieldY],\n getOptions?.(line),\n )\n const N = Math.max(3, Math.floor(groupData.length / 4))\n const mainColor = color ?? colorAttrOptions?.scale?.scale(group)\n\n const lineData = evaluateGrid(N)\n const linePoints = lineData.map((ld: Datum) => {\n const d = { [fieldX]: ld.x, [fieldY]: ld.y }\n return {\n x: s.dataToPositionX(d)! + start.x,\n y: yClamper(s.dataToPositionY(d)! + start.y),\n }\n })\n\n segments.push({\n color: mainColor,\n linePoints,\n })\n\n if (confidenceIntervalVisible) {\n const intervalData = confidenceInterval(N)\n const areaPoints = intervalData.map((datum: Datum) => {\n const d = { [fieldX]: datum.x, [fieldY]: datum.lower }\n return {\n x: s.dataToPositionX(d)! + start.x,\n y: yClamper(s.dataToPositionY(d)! + start.y),\n y1: yClamper(s.dataToPositionY({ [fieldY]: datum.upper })! + start.y),\n }\n })\n\n segments[segments.length - 1].areaPoints = areaPoints\n }\n })\n\n return segments\n }\n return []\n },\n },\n children: childrenMarks,\n })\n\n if (confidenceIntervalVisible) {\n childrenMarks.push({\n type: 'area',\n interactive: false,\n zIndex: 500,\n style: {\n lineWidth: lineWidth ?? theme.lineWidth,\n lineDash: lineDash ?? theme.lineDash,\n fillOpacity: confidenceIntervalOpacity ?? theme.confidenceIntervalOpacity,\n fill: 'red', // vrender bug,必须要设置一个全局的fill,才会绘制\n segments: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.length) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return parentNode.attribute.data.map((d: any) => {\n return {\n points: d.areaPoints ?? [],\n fill: d.color,\n }\n })\n }\n\n return []\n },\n },\n })\n }\n\n childrenMarks.push({\n type: 'line',\n interactive: false,\n zIndex: 500,\n style: {\n lineWidth: lineWidth ?? theme.lineWidth,\n lineDash: lineDash ?? theme.lineDash,\n stroke: 'red', // vrender bug,必须要设置一个全局的stroke,才会绘制\n segments: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.length) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return parentNode.attribute.data.map((d: any) => {\n return {\n points: d.linePoints,\n stroke: d.color,\n }\n })\n }\n\n return []\n },\n },\n })\n\n if (!isNullish(text)) {\n childrenMarks.push({\n type: 'text',\n interactive: false,\n zIndex: 500,\n style: {\n textAlign: 'end',\n fill: textColor ?? theme.textColor,\n fontSize: textFontSize ?? theme.textFontSize,\n fontWeight: textFontWeight ?? theme.textFontWeight,\n text: text,\n x: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.length) {\n const point = parentNode.attribute.data[parentNode.attribute.data.length - 1].linePoints\n return point[point.length - 1]?.x\n }\n\n return undefined\n },\n y: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.length) {\n const point = parentNode.attribute.data[parentNode.attribute.data.length - 1].linePoints\n return point[point.length - 1]?.y\n }\n\n return undefined\n },\n },\n })\n }\n })\n\n return result\n }) as SpecPipe\n}\n\nexport const linearRegressionLine: SpecPipe = generateRegressionLinePipe('linearRegressionLine', regressionLinear)\nexport const lowessRegressionLine: SpecPipe = generateRegressionLinePipe('lowessRegressionLine', regressionLowess)\nexport const polynomialRegressionLine: SpecPipe = generateRegressionLinePipe(\n 'polynomialRegressionLine',\n regressionPolynomial,\n (lineConfig: PolynomialRegressionLine) => {\n return { degree: lineConfig.degree ?? 2 }\n },\n)\nexport const logisticRegressionLine: SpecPipe = generateRegressionLinePipe('logisticRegressionLine', regressionLogistic)\n"],"names":["generateRegressionLinePipe","type","regressionFunction","getOptions","spec","context","result","advancedVSeed","chartType","regressionLine","lineTheme","lineList","array","line","lineIndex","theme","color","lineWidth","lineDash","text","textColor","textFontSize","textFontWeight","confidenceIntervalOpacity","confidenceIntervalVisible","childrenMarks","datum","ctx","vchart","chart","s","rect","segments","start","yClamper","clamper","colorAttrOptions","groups","data","fieldX","fieldY","undefined","group","groupData","d","confidenceInterval","evaluateGrid","N","Math","mainColor","lineData","linePoints","ld","intervalData","areaPoints","opt","parentNode","isNullish","point","linearRegressionLine","regressionLinear","lowessRegressionLine","regressionLowess","polynomialRegressionLine","regressionPolynomial","lineConfig","logisticRegressionLine","regressionLogistic"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { Dimensions, FoldInfo, Measures, SpecPipe, UnfoldInfo } from '../../../../../types';
|
|
2
2
|
export declare const tooltip: SpecPipe;
|
|
3
|
-
export declare const createDimensionContent: (measures: Measures, foldInfo: FoldInfo, unfoldInfo: UnfoldInfo) => {
|
|
3
|
+
export declare const createDimensionContent: (dimensions: Dimensions, measures: Measures, foldInfo: FoldInfo, unfoldInfo: UnfoldInfo) => {
|
|
4
4
|
visible: boolean;
|
|
5
5
|
shapeType: string;
|
|
6
6
|
hasShape: boolean;
|
|
7
|
-
key: (v: unknown) => string;
|
|
7
|
+
key: string | ((v: unknown) => string) | undefined;
|
|
8
8
|
value: (v: unknown) => string;
|
|
9
9
|
}[];
|
|
10
10
|
export declare const createMarkContent: (tooltip: string[], dimensions: Dimensions, measures: Measures, foldInfo: FoldInfo, unfoldInfo: UnfoldInfo) => ({
|
|
@@ -25,23 +25,23 @@ const tooltip_tooltip = (spec, context)=>{
|
|
|
25
25
|
title: {
|
|
26
26
|
visible: true
|
|
27
27
|
},
|
|
28
|
-
content: createDimensionContent(measures, foldInfo, unfoldInfo)
|
|
28
|
+
content: createDimensionContent(dimensions, measures, foldInfo, unfoldInfo)
|
|
29
29
|
}
|
|
30
30
|
};
|
|
31
31
|
return result;
|
|
32
32
|
};
|
|
33
|
-
const createDimensionContent = (measures, foldInfo, unfoldInfo)=>{
|
|
34
|
-
const { measureId, measureValue } = foldInfo;
|
|
33
|
+
const createDimensionContent = (dimensions, measures, foldInfo, unfoldInfo)=>{
|
|
34
|
+
const { measureId, measureValue, foldMap } = foldInfo;
|
|
35
35
|
const { encodingColor } = unfoldInfo;
|
|
36
36
|
return [
|
|
37
37
|
{
|
|
38
38
|
visible: true,
|
|
39
39
|
shapeType: 'rectRound',
|
|
40
40
|
hasShape: true,
|
|
41
|
-
key: (v)=>{
|
|
41
|
+
key: dimensions.some((d)=>'color' === d.encoding) ? (v)=>{
|
|
42
42
|
const datum = v;
|
|
43
43
|
return datum && datum[encodingColor] || '';
|
|
44
|
-
},
|
|
44
|
+
} : Object.values(foldMap)[0],
|
|
45
45
|
value: (v)=>{
|
|
46
46
|
const datum = v;
|
|
47
47
|
if (!datum) return '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltip.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltip.ts"],"sourcesContent":["import { pipe, uniqueBy } from 'remeda'\nimport { createFormatterByMeasure, findAllMeasures, findMeasureById } from '../../../../utils'\nimport type { Datum, Dimensions, FoldInfo, Measures, SpecPipe, Tooltip, UnfoldInfo } from 'src/types'\nimport { ORIGINAL_DATA } from 'src/dataReshape'\n\nexport const tooltip: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { measures, datasetReshapeInfo, chartType, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n const { foldInfo, unfoldInfo } = datasetReshapeInfo[0] as unknown as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n result.tooltip = {\n visible: enable,\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions,\n findAllMeasures(vseed.measures),\n foldInfo,\n unfoldInfo,\n ),\n },\n dimension: {\n title: {\n visible: true,\n },\n content: createDimensionContent(measures, foldInfo, unfoldInfo),\n },\n }\n return result\n}\n\nexport const createDimensionContent = (measures: Measures
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltip.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltip.ts"],"sourcesContent":["import { pipe, uniqueBy } from 'remeda'\nimport { createFormatterByMeasure, findAllMeasures, findMeasureById } from '../../../../utils'\nimport type { Datum, Dimensions, FoldInfo, Measures, SpecPipe, Tooltip, UnfoldInfo } from 'src/types'\nimport { ORIGINAL_DATA } from 'src/dataReshape'\n\nexport const tooltip: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { measures, datasetReshapeInfo, chartType, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n const { foldInfo, unfoldInfo } = datasetReshapeInfo[0] as unknown as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n result.tooltip = {\n visible: enable,\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions,\n findAllMeasures(vseed.measures),\n foldInfo,\n unfoldInfo,\n ),\n },\n dimension: {\n title: {\n visible: true,\n },\n content: createDimensionContent(dimensions, measures, foldInfo, unfoldInfo),\n },\n }\n return result\n}\n\nexport const createDimensionContent = (\n dimensions: Dimensions,\n measures: Measures,\n foldInfo: FoldInfo,\n unfoldInfo: UnfoldInfo,\n) => {\n const { measureId, measureValue, foldMap } = foldInfo\n const { encodingColor } = unfoldInfo\n\n return [\n {\n visible: true,\n shapeType: 'rectRound',\n hasShape: true,\n key: dimensions.some((d) => d.encoding === 'color')\n ? (v: unknown) => {\n const datum = v as Datum\n return (datum && (datum[encodingColor] as string)) || ''\n }\n : Object.values(foldMap)[0],\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n },\n ]\n}\n\nexport const createMarkContent = (\n tooltip: string[],\n dimensions: Dimensions,\n measures: Measures,\n foldInfo: FoldInfo,\n unfoldInfo: UnfoldInfo,\n) => {\n const dims = pipe(\n dimensions.filter((item) => tooltip.includes(item.id)),\n uniqueBy((item) => item.id),\n uniqueBy((item) => item.alias),\n )\n const meas = pipe(\n measures.filter((item) => tooltip.includes(item.id)),\n uniqueBy((item) => item.id),\n uniqueBy((item) => item.alias),\n )\n\n const dimContent = dims.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const datum = v as Datum\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return datum && (datum[item.id] as string)\n },\n value: (v: unknown) => {\n const datum = v as Datum\n return datum && (datum[item.id] as string)\n },\n }))\n\n const meaContent = meas.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: item.alias || item.id,\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const id = item.id\n if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) {\n return ''\n }\n const originalData = datum[ORIGINAL_DATA] as Datum\n const value = originalData[id] as string | number\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }))\n\n const defaultContent = {\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const { measureName } = foldInfo\n const { encodingColor: colorName } = unfoldInfo\n\n const datum = v as Datum\n return (datum && (datum[measureName || colorName] as string)) || ''\n },\n value: (v: unknown) => {\n const { measureId, measureValue } = foldInfo\n\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }\n\n return [...dimContent, defaultContent, ...meaContent]\n}\n"],"names":["tooltip","spec","context","result","advancedVSeed","vseed","measures","datasetReshapeInfo","chartType","dimensions","encoding","baseConfig","enable","foldInfo","unfoldInfo","createMarkContent","findAllMeasures","createDimensionContent","measureId","measureValue","foldMap","encodingColor","d","v","datum","Object","value","id","measure","findMeasureById","formatter","createFormatterByMeasure","dims","pipe","item","uniqueBy","meas","dimContent","meaContent","ORIGINAL_DATA","originalData","defaultContent","measureName","colorName","String"],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ const tooltipPrimary = (spec, context)=>{
|
|
|
26
26
|
title: {
|
|
27
27
|
visible: true
|
|
28
28
|
},
|
|
29
|
-
content: createDimensionContent(measures, foldInfoList[0], unfoldInfo)
|
|
29
|
+
content: createDimensionContent(dimensions, measures, foldInfoList[0], unfoldInfo)
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
return result;
|
|
@@ -57,7 +57,7 @@ const tooltipSecondary = (spec, context)=>{
|
|
|
57
57
|
title: {
|
|
58
58
|
visible: true
|
|
59
59
|
},
|
|
60
|
-
content: createDimensionContent(measures, foldInfoList[1], unfoldInfo)
|
|
60
|
+
content: createDimensionContent(dimensions, measures, foldInfoList[1], unfoldInfo)
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
63
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.ts"],"sourcesContent":["import { isNullish } from 'remeda'\nimport { createDimensionContent, createMarkContent } from './tooltip'\nimport type { FoldInfo, SpecPipe, Tooltip, UnfoldInfo } from 'src/types'\nimport { findAllMeasures } from 'src/pipeline/utils'\n\nexport const tooltipPrimary: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { measures, datasetReshapeInfo, chartType, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n const foldInfoList = datasetReshapeInfo[0].foldInfoList as FoldInfo[]\n const unfoldInfo = datasetReshapeInfo[0].unfoldInfo\n\n result.tooltip = {\n visible: enable,\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions,\n findAllMeasures(vseed.measures),\n foldInfoList[0],\n unfoldInfo,\n ),\n },\n dimension: {\n title: {\n visible: true,\n },\n content: createDimensionContent(measures, foldInfoList[0], unfoldInfo),\n },\n }\n return result\n}\n\nexport const tooltipSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { measures, datasetReshapeInfo, chartType, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n if (isNullish(datasetReshapeInfo[0].foldInfoList?.[1])) {\n return result\n }\n\n const foldInfoList = datasetReshapeInfo[0].foldInfoList as FoldInfo[]\n const unfoldInfo = datasetReshapeInfo[0].unfoldInfo as UnfoldInfo\n result.tooltip = {\n visible: enable,\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions,\n findAllMeasures(vseed.measures),\n foldInfoList[1],\n unfoldInfo,\n ),\n },\n dimension: {\n title: {\n visible: true,\n },\n content: createDimensionContent(measures, foldInfoList[1], unfoldInfo),\n },\n }\n return result\n}\n"],"names":["tooltipPrimary","spec","context","result","advancedVSeed","vseed","measures","datasetReshapeInfo","chartType","dimensions","encoding","baseConfig","tooltip","enable","foldInfoList","unfoldInfo","createMarkContent","findAllMeasures","createDimensionContent","tooltipSecondary","isNullish"],"mappings":";;;AAKO,MAAMA,iBAA2B,CAACC,MAAMC;IAC7C,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;IACjC,MAAM,EAAEI,QAAQ,EAAEC,kBAAkB,EAAEC,SAAS,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGN;IAC1E,MAAMO,aAAaP,cAAc,MAAM,CAACI,UAAU;IAClD,MAAM,EAAEI,UAAU;QAAE,QAAQ;IAAK,CAAC,EAAE,GAAGD;IACvC,MAAM,EAAEE,MAAM,EAAE,GAAGD;IAEnB,MAAME,eAAeP,kBAAkB,CAAC,EAAE,CAAC,YAAY;IACvD,MAAMQ,aAAaR,kBAAkB,CAAC,EAAE,CAAC,UAAU;IAEnDJ,OAAO,OAAO,GAAG;QACf,SAASU;QACT,MAAM;YACJ,OAAO;gBACL,SAAS;YACX;YACA,SAASG,kBACPN,SAAS,OAAO,IAAI,EAAE,EACtBD,YACAQ,gBAAgBZ,MAAM,QAAQ,GAC9BS,YAAY,CAAC,EAAE,EACfC;QAEJ;QACA,WAAW;YACT,OAAO;gBACL,SAAS;YACX;YACA,SAASG,
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.ts"],"sourcesContent":["import { isNullish } from 'remeda'\nimport { createDimensionContent, createMarkContent } from './tooltip'\nimport type { FoldInfo, SpecPipe, Tooltip, UnfoldInfo } from 'src/types'\nimport { findAllMeasures } from 'src/pipeline/utils'\n\nexport const tooltipPrimary: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { measures, datasetReshapeInfo, chartType, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n const foldInfoList = datasetReshapeInfo[0].foldInfoList as FoldInfo[]\n const unfoldInfo = datasetReshapeInfo[0].unfoldInfo\n\n result.tooltip = {\n visible: enable,\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions,\n findAllMeasures(vseed.measures),\n foldInfoList[0],\n unfoldInfo,\n ),\n },\n dimension: {\n title: {\n visible: true,\n },\n content: createDimensionContent(dimensions, measures, foldInfoList[0], unfoldInfo),\n },\n }\n return result\n}\n\nexport const tooltipSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { measures, datasetReshapeInfo, chartType, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n if (isNullish(datasetReshapeInfo[0].foldInfoList?.[1])) {\n return result\n }\n\n const foldInfoList = datasetReshapeInfo[0].foldInfoList as FoldInfo[]\n const unfoldInfo = datasetReshapeInfo[0].unfoldInfo as UnfoldInfo\n result.tooltip = {\n visible: enable,\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions,\n findAllMeasures(vseed.measures),\n foldInfoList[1],\n unfoldInfo,\n ),\n },\n dimension: {\n title: {\n visible: true,\n },\n content: createDimensionContent(dimensions, measures, foldInfoList[1], unfoldInfo),\n },\n }\n return result\n}\n"],"names":["tooltipPrimary","spec","context","result","advancedVSeed","vseed","measures","datasetReshapeInfo","chartType","dimensions","encoding","baseConfig","tooltip","enable","foldInfoList","unfoldInfo","createMarkContent","findAllMeasures","createDimensionContent","tooltipSecondary","isNullish"],"mappings":";;;AAKO,MAAMA,iBAA2B,CAACC,MAAMC;IAC7C,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;IACjC,MAAM,EAAEI,QAAQ,EAAEC,kBAAkB,EAAEC,SAAS,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGN;IAC1E,MAAMO,aAAaP,cAAc,MAAM,CAACI,UAAU;IAClD,MAAM,EAAEI,UAAU;QAAE,QAAQ;IAAK,CAAC,EAAE,GAAGD;IACvC,MAAM,EAAEE,MAAM,EAAE,GAAGD;IAEnB,MAAME,eAAeP,kBAAkB,CAAC,EAAE,CAAC,YAAY;IACvD,MAAMQ,aAAaR,kBAAkB,CAAC,EAAE,CAAC,UAAU;IAEnDJ,OAAO,OAAO,GAAG;QACf,SAASU;QACT,MAAM;YACJ,OAAO;gBACL,SAAS;YACX;YACA,SAASG,kBACPN,SAAS,OAAO,IAAI,EAAE,EACtBD,YACAQ,gBAAgBZ,MAAM,QAAQ,GAC9BS,YAAY,CAAC,EAAE,EACfC;QAEJ;QACA,WAAW;YACT,OAAO;gBACL,SAAS;YACX;YACA,SAASG,uBAAuBT,YAAYH,UAAUQ,YAAY,CAAC,EAAE,EAAEC;QACzE;IACF;IACA,OAAOZ;AACT;AAEO,MAAMgB,mBAA6B,CAAClB,MAAMC;IAC/C,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;IACjC,MAAM,EAAEI,QAAQ,EAAEC,kBAAkB,EAAEC,SAAS,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGN;IAC1E,MAAMO,aAAaP,cAAc,MAAM,CAACI,UAAU;IAClD,MAAM,EAAEI,UAAU;QAAE,QAAQ;IAAK,CAAC,EAAE,GAAGD;IACvC,MAAM,EAAEE,MAAM,EAAE,GAAGD;IAEnB,IAAIQ,UAAUb,kBAAkB,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,GACnD,OAAOJ;IAGT,MAAMW,eAAeP,kBAAkB,CAAC,EAAE,CAAC,YAAY;IACvD,MAAMQ,aAAaR,kBAAkB,CAAC,EAAE,CAAC,UAAU;IACnDJ,OAAO,OAAO,GAAG;QACf,SAASU;QACT,MAAM;YACJ,OAAO;gBACL,SAAS;YACX;YACA,SAASG,kBACPN,SAAS,OAAO,IAAI,EAAE,EACtBD,YACAQ,gBAAgBZ,MAAM,QAAQ,GAC9BS,YAAY,CAAC,EAAE,EACfC;QAEJ;QACA,WAAW;YACT,OAAO;gBACL,SAAS;YACX;YACA,SAASG,uBAAuBT,YAAYH,UAAUQ,YAAY,CAAC,EAAE,EAAEC;QACzE;IACF;IACA,OAAOZ;AACT"}
|
|
@@ -65,12 +65,7 @@ const createMarkContent = (tooltip, dimensions, measures, locale, foldInfoList)=
|
|
|
65
65
|
visible: true,
|
|
66
66
|
hasShape: true,
|
|
67
67
|
shapeType: 'rectRound',
|
|
68
|
-
key: (
|
|
69
|
-
const { measureId, foldMap } = foldInfo;
|
|
70
|
-
const datum = v;
|
|
71
|
-
const id = datum[measureId];
|
|
72
|
-
return foldMap[id] || id;
|
|
73
|
-
},
|
|
68
|
+
key: Object.values(foldInfo.foldMap)[0],
|
|
74
69
|
value: (v)=>{
|
|
75
70
|
const { measureId, measureValue } = foldInfo;
|
|
76
71
|
const datum = v;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipScatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipScatter.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport { createFormatterByMeasure, findAllMeasures, findMeasureById } from '../../../../utils'\nimport type { Datum, Dimensions, FoldInfo, Locale, Measures, SpecPipe, Tooltip, UnfoldInfo } from 'src/types'\nimport { ORIGINAL_DATA } from 'src/dataReshape'\n\nexport const tooltipScatter: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n const { foldInfoList } = datasetReshapeInfo[0] as unknown as {\n foldInfoList: FoldInfo[]\n unfoldInfo: UnfoldInfo\n }\n\n result.tooltip = {\n visible: enable,\n\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions,\n findAllMeasures(vseed.measures),\n locale,\n foldInfoList,\n ),\n },\n dimension: {\n visible: false,\n },\n }\n return result\n}\n\nexport const createMarkContent = (\n tooltip: string[],\n dimensions: Dimensions,\n measures: Measures,\n locale: Locale,\n foldInfoList: FoldInfo[],\n) => {\n const dims = uniqueBy(\n dimensions.filter((item) => tooltip.includes(item.id)),\n (item) => item.id,\n )\n const meas = uniqueBy(\n measures.filter((item) => tooltip.includes(item.id)),\n (item) => item.id,\n )\n\n const dimContent = dims.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const datum = v as Datum\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return datum && (datum[item.id] as string)\n },\n value: (v: unknown) => {\n const datum = v as Datum\n return datum && (datum[item.id] as string)\n },\n }))\n\n const meaContent = meas.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: item.alias || item.id,\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const id = item.id\n if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) {\n return ''\n }\n const originalData = datum[ORIGINAL_DATA] as Datum\n const value = originalData[id] as string | number\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }))\n\n const foldMeaContent = foldInfoList.map((foldInfo) => {\n return {\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipScatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipScatter.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport { createFormatterByMeasure, findAllMeasures, findMeasureById } from '../../../../utils'\nimport type { Datum, Dimensions, FoldInfo, Locale, Measures, SpecPipe, Tooltip, UnfoldInfo } from 'src/types'\nimport { ORIGINAL_DATA } from 'src/dataReshape'\n\nexport const tooltipScatter: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n const { foldInfoList } = datasetReshapeInfo[0] as unknown as {\n foldInfoList: FoldInfo[]\n unfoldInfo: UnfoldInfo\n }\n\n result.tooltip = {\n visible: enable,\n\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions,\n findAllMeasures(vseed.measures),\n locale,\n foldInfoList,\n ),\n },\n dimension: {\n visible: false,\n },\n }\n return result\n}\n\nexport const createMarkContent = (\n tooltip: string[],\n dimensions: Dimensions,\n measures: Measures,\n locale: Locale,\n foldInfoList: FoldInfo[],\n) => {\n const dims = uniqueBy(\n dimensions.filter((item) => tooltip.includes(item.id)),\n (item) => item.id,\n )\n const meas = uniqueBy(\n measures.filter((item) => tooltip.includes(item.id)),\n (item) => item.id,\n )\n\n const dimContent = dims.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const datum = v as Datum\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return datum && (datum[item.id] as string)\n },\n value: (v: unknown) => {\n const datum = v as Datum\n return datum && (datum[item.id] as string)\n },\n }))\n\n const meaContent = meas.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: item.alias || item.id,\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const id = item.id\n if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) {\n return ''\n }\n const originalData = datum[ORIGINAL_DATA] as Datum\n const value = originalData[id] as string | number\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }))\n\n const foldMeaContent = foldInfoList.map((foldInfo) => {\n return {\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: Object.values(foldInfo.foldMap)[0],\n value: (v: unknown) => {\n const { measureId, measureValue } = foldInfo\n\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }\n })\n return [...dimContent, ...foldMeaContent, ...meaContent]\n}\n"],"names":["tooltipScatter","spec","context","result","advancedVSeed","vseed","datasetReshapeInfo","chartType","locale","dimensions","encoding","baseConfig","tooltip","enable","foldInfoList","createMarkContent","findAllMeasures","measures","dims","uniqueBy","item","meas","dimContent","v","datum","meaContent","id","ORIGINAL_DATA","originalData","value","measure","findMeasureById","formatter","createFormatterByMeasure","foldMeaContent","foldInfo","Object","measureId","measureValue"],"mappings":"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"}
|
|
@@ -5,8 +5,12 @@ export declare const getDarkLinearColorScheme: () => string[];
|
|
|
5
5
|
export declare const getLightColor: () => {
|
|
6
6
|
linearColorScheme: string[];
|
|
7
7
|
colorScheme: string[];
|
|
8
|
+
positiveColor: string;
|
|
9
|
+
negativeColor: string;
|
|
8
10
|
};
|
|
9
11
|
export declare const getDarkColor: () => {
|
|
10
12
|
linearColorScheme: string[];
|
|
11
13
|
colorScheme: string[];
|
|
14
|
+
positiveColor: string;
|
|
15
|
+
negativeColor: string;
|
|
12
16
|
};
|
|
@@ -32,11 +32,15 @@ const getDarkLinearColorScheme = ()=>[
|
|
|
32
32
|
];
|
|
33
33
|
const getLightColor = ()=>({
|
|
34
34
|
linearColorScheme: getLightLinearColorScheme(),
|
|
35
|
-
colorScheme: getLightColorScheme()
|
|
35
|
+
colorScheme: getLightColorScheme(),
|
|
36
|
+
positiveColor: '#7E5DFF',
|
|
37
|
+
negativeColor: '#EB3373'
|
|
36
38
|
});
|
|
37
39
|
const getDarkColor = ()=>({
|
|
38
40
|
linearColorScheme: getDarkLinearColorScheme(),
|
|
39
|
-
colorScheme: getDarkColorScheme()
|
|
41
|
+
colorScheme: getDarkColorScheme(),
|
|
42
|
+
positiveColor: '#7E5DFF',
|
|
43
|
+
negativeColor: '#EB3373'
|
|
40
44
|
});
|
|
41
45
|
export { getDarkColor, getDarkColorScheme, getDarkLinearColorScheme, getLightColor, getLightColorScheme, getLightLinearColorScheme };
|
|
42
46
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme/common/color.js","sources":["webpack://@visactor/vseed/./src/theme/common/color.ts"],"sourcesContent":["export const getLightColorScheme = () => [\n '#8D72F6',\n '#5766EC',\n '#66A3FE',\n '#51D5E6',\n '#4EC0B3',\n '#F9DF90',\n '#F9AD71',\n '#ED8888',\n '#E9A0C3',\n '#D77DD3',\n]\nexport const getDarkColorScheme = () => [\n '#2E62F1',\n '#4DC36A',\n '#FF8406',\n '#FFCC00',\n '#4F44CF',\n '#5AC8FA',\n '#003A8C',\n '#B08AE2',\n '#FF6341',\n '#98DD62',\n]\nexport const getLightLinearColorScheme = () => ['#C2CEFF', '#5766EC']\nexport const getDarkLinearColorScheme = () => ['#A0CEFF', '#2E62F1']\nexport const getLightColor = () => ({\n linearColorScheme: getLightLinearColorScheme(),\n colorScheme: getLightColorScheme(),\n})\nexport const getDarkColor = () => ({\n linearColorScheme: getDarkLinearColorScheme(),\n colorScheme: getDarkColorScheme(),\n})\n"],"names":["getLightColorScheme","getDarkColorScheme","getLightLinearColorScheme","getDarkLinearColorScheme","getLightColor","getDarkColor"],"mappings":"AAAO,MAAMA,sBAAsB,IAAM;QACvC;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;AACM,MAAMC,qBAAqB,IAAM;QACtC;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;AACM,MAAMC,4BAA4B,IAAM;QAAC;QAAW;KAAU;AAC9D,MAAMC,2BAA2B,IAAM;QAAC;QAAW;KAAU;AAC7D,MAAMC,gBAAgB,IAAO;QAClC,mBAAmBF;QACnB,aAAaF;
|
|
1
|
+
{"version":3,"file":"theme/common/color.js","sources":["webpack://@visactor/vseed/./src/theme/common/color.ts"],"sourcesContent":["export const getLightColorScheme = () => [\n '#8D72F6',\n '#5766EC',\n '#66A3FE',\n '#51D5E6',\n '#4EC0B3',\n '#F9DF90',\n '#F9AD71',\n '#ED8888',\n '#E9A0C3',\n '#D77DD3',\n]\nexport const getDarkColorScheme = () => [\n '#2E62F1',\n '#4DC36A',\n '#FF8406',\n '#FFCC00',\n '#4F44CF',\n '#5AC8FA',\n '#003A8C',\n '#B08AE2',\n '#FF6341',\n '#98DD62',\n]\nexport const getLightLinearColorScheme = () => ['#C2CEFF', '#5766EC']\nexport const getDarkLinearColorScheme = () => ['#A0CEFF', '#2E62F1']\nexport const getLightColor = () => ({\n linearColorScheme: getLightLinearColorScheme(),\n colorScheme: getLightColorScheme(),\n positiveColor: '#7E5DFF',\n negativeColor: '#EB3373',\n})\nexport const getDarkColor = () => ({\n linearColorScheme: getDarkLinearColorScheme(),\n colorScheme: getDarkColorScheme(),\n positiveColor: '#7E5DFF',\n negativeColor: '#EB3373',\n})\n"],"names":["getLightColorScheme","getDarkColorScheme","getLightLinearColorScheme","getDarkLinearColorScheme","getLightColor","getDarkColor"],"mappings":"AAAO,MAAMA,sBAAsB,IAAM;QACvC;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;AACM,MAAMC,qBAAqB,IAAM;QACtC;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;AACM,MAAMC,4BAA4B,IAAM;QAAC;QAAW;KAAU;AAC9D,MAAMC,2BAA2B,IAAM;QAAC;QAAW;KAAU;AAC7D,MAAMC,gBAAgB,IAAO;QAClC,mBAAmBF;QACnB,aAAaF;QACb,eAAe;QACf,eAAe;IACjB;AACO,MAAMK,eAAe,IAAO;QACjC,mBAAmBF;QACnB,aAAaF;QACb,eAAe;QACf,eAAe;IACjB"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import type { RegressionLineConfig } from '../../types/properties/regressionLine';
|
|
2
|
+
export declare const getDefaultRegressionLine: () => {
|
|
3
|
+
lineWidth: number;
|
|
4
|
+
textFontSize: number;
|
|
5
|
+
textFontWeight: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const getLightRegressionLine: () => Partial<RegressionLineConfig>;
|
|
8
|
+
export declare const getDarkRegressionLine: () => Partial<RegressionLineConfig>;
|
|
@@ -1,16 +1,68 @@
|
|
|
1
|
-
const
|
|
1
|
+
const getDefaultRegressionLine = ()=>({
|
|
2
2
|
lineWidth: 2,
|
|
3
3
|
textFontSize: 12,
|
|
4
4
|
textFontWeight: 400
|
|
5
5
|
});
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
const getLightRegressionLine = ()=>({
|
|
7
|
+
kdeRegressionLine: {
|
|
8
|
+
...getDefaultRegressionLine(),
|
|
9
|
+
textColor: '#364159'
|
|
10
|
+
},
|
|
11
|
+
ecdfRegressionLine: {
|
|
12
|
+
...getDefaultRegressionLine(),
|
|
13
|
+
textColor: '#364159'
|
|
14
|
+
},
|
|
15
|
+
linearRegressionLine: {
|
|
16
|
+
...getDefaultRegressionLine(),
|
|
17
|
+
textColor: '#364159',
|
|
18
|
+
confidenceIntervalOpacity: 0.2
|
|
19
|
+
},
|
|
20
|
+
lowessRegressionLine: {
|
|
21
|
+
...getDefaultRegressionLine(),
|
|
22
|
+
textColor: '#364159',
|
|
23
|
+
confidenceIntervalOpacity: 0.2
|
|
24
|
+
},
|
|
25
|
+
polynomialRegressionLine: {
|
|
26
|
+
...getDefaultRegressionLine(),
|
|
27
|
+
textColor: '#364159',
|
|
28
|
+
confidenceIntervalOpacity: 0.2
|
|
29
|
+
},
|
|
30
|
+
logisticRegressionLine: {
|
|
31
|
+
...getDefaultRegressionLine(),
|
|
32
|
+
textColor: '#364159',
|
|
33
|
+
confidenceIntervalOpacity: 0.2
|
|
34
|
+
}
|
|
9
35
|
});
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
36
|
+
const getDarkRegressionLine = ()=>({
|
|
37
|
+
kdeRegressionLine: {
|
|
38
|
+
...getDefaultRegressionLine(),
|
|
39
|
+
textColor: '#FFFFFF'
|
|
40
|
+
},
|
|
41
|
+
ecdfRegressionLine: {
|
|
42
|
+
...getDefaultRegressionLine(),
|
|
43
|
+
textColor: '#FFFFFF'
|
|
44
|
+
},
|
|
45
|
+
linearRegressionLine: {
|
|
46
|
+
...getDefaultRegressionLine(),
|
|
47
|
+
textColor: '#FFFFFF',
|
|
48
|
+
confidenceIntervalOpacity: 0.2
|
|
49
|
+
},
|
|
50
|
+
lowessRegressionLine: {
|
|
51
|
+
...getDefaultRegressionLine(),
|
|
52
|
+
textColor: '#FFFFFF',
|
|
53
|
+
confidenceIntervalOpacity: 0.2
|
|
54
|
+
},
|
|
55
|
+
polynomialRegressionLine: {
|
|
56
|
+
...getDefaultRegressionLine(),
|
|
57
|
+
textColor: '#FFFFFF',
|
|
58
|
+
confidenceIntervalOpacity: 0.2
|
|
59
|
+
},
|
|
60
|
+
logisticRegressionLine: {
|
|
61
|
+
...getDefaultRegressionLine(),
|
|
62
|
+
textColor: '#FFFFFF',
|
|
63
|
+
confidenceIntervalOpacity: 0.2
|
|
64
|
+
}
|
|
13
65
|
});
|
|
14
|
-
export {
|
|
66
|
+
export { getDarkRegressionLine, getDefaultRegressionLine, getLightRegressionLine };
|
|
15
67
|
|
|
16
68
|
//# sourceMappingURL=regressionLine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme/common/regressionLine.js","sources":["webpack://@visactor/vseed/./src/theme/common/regressionLine.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"theme/common/regressionLine.js","sources":["webpack://@visactor/vseed/./src/theme/common/regressionLine.ts"],"sourcesContent":["import type { RegressionLineConfig } from 'src/types/properties/regressionLine'\n\nexport const getDefaultRegressionLine = () => {\n return {\n lineWidth: 2,\n textFontSize: 12,\n textFontWeight: 400,\n }\n}\n\nexport const getLightRegressionLine = (): Partial<RegressionLineConfig> => {\n return {\n kdeRegressionLine: {\n ...getDefaultRegressionLine(),\n textColor: '#364159',\n },\n ecdfRegressionLine: {\n ...getDefaultRegressionLine(),\n textColor: '#364159',\n },\n linearRegressionLine: {\n ...getDefaultRegressionLine(),\n textColor: '#364159',\n confidenceIntervalOpacity: 0.2,\n },\n lowessRegressionLine: {\n ...getDefaultRegressionLine(),\n textColor: '#364159',\n confidenceIntervalOpacity: 0.2,\n },\n polynomialRegressionLine: {\n ...getDefaultRegressionLine(),\n textColor: '#364159',\n confidenceIntervalOpacity: 0.2,\n },\n logisticRegressionLine: {\n ...getDefaultRegressionLine(),\n textColor: '#364159',\n confidenceIntervalOpacity: 0.2,\n },\n }\n}\n\nexport const getDarkRegressionLine = (): Partial<RegressionLineConfig> => {\n return {\n kdeRegressionLine: {\n ...getDefaultRegressionLine(),\n textColor: '#FFFFFF',\n },\n ecdfRegressionLine: {\n ...getDefaultRegressionLine(),\n textColor: '#FFFFFF',\n },\n linearRegressionLine: {\n ...getDefaultRegressionLine(),\n textColor: '#FFFFFF',\n confidenceIntervalOpacity: 0.2,\n },\n lowessRegressionLine: {\n ...getDefaultRegressionLine(),\n textColor: '#FFFFFF',\n confidenceIntervalOpacity: 0.2,\n },\n polynomialRegressionLine: {\n ...getDefaultRegressionLine(),\n textColor: '#FFFFFF',\n confidenceIntervalOpacity: 0.2,\n },\n logisticRegressionLine: {\n ...getDefaultRegressionLine(),\n textColor: '#FFFFFF',\n confidenceIntervalOpacity: 0.2,\n },\n }\n}\n"],"names":["getDefaultRegressionLine","getLightRegressionLine","getDarkRegressionLine"],"mappings":"AAEO,MAAMA,2BAA2B,IAC/B;QACL,WAAW;QACX,cAAc;QACd,gBAAgB;IAClB;AAGK,MAAMC,yBAAyB,IAC7B;QACL,mBAAmB;YACjB,GAAGD,0BAA0B;YAC7B,WAAW;QACb;QACA,oBAAoB;YAClB,GAAGA,0BAA0B;YAC7B,WAAW;QACb;QACA,sBAAsB;YACpB,GAAGA,0BAA0B;YAC7B,WAAW;YACX,2BAA2B;QAC7B;QACA,sBAAsB;YACpB,GAAGA,0BAA0B;YAC7B,WAAW;YACX,2BAA2B;QAC7B;QACA,0BAA0B;YACxB,GAAGA,0BAA0B;YAC7B,WAAW;YACX,2BAA2B;QAC7B;QACA,wBAAwB;YACtB,GAAGA,0BAA0B;YAC7B,WAAW;YACX,2BAA2B;QAC7B;IACF;AAGK,MAAME,wBAAwB,IAC5B;QACL,mBAAmB;YACjB,GAAGF,0BAA0B;YAC7B,WAAW;QACb;QACA,oBAAoB;YAClB,GAAGA,0BAA0B;YAC7B,WAAW;QACb;QACA,sBAAsB;YACpB,GAAGA,0BAA0B;YAC7B,WAAW;YACX,2BAA2B;QAC7B;QACA,sBAAsB;YACpB,GAAGA,0BAA0B;YAC7B,WAAW;YACX,2BAA2B;QAC7B;QACA,0BAA0B;YACxB,GAAGA,0BAA0B;YAC7B,WAAW;YACX,2BAA2B;QAC7B;QACA,wBAAwB;YACtB,GAAGA,0BAA0B;YAC7B,WAAW;YACX,2BAA2B;QAC7B;IACF"}
|
|
@@ -43,6 +43,9 @@ export declare const getLightPivotChartGridConfig: () => {
|
|
|
43
43
|
headerBackgroundColor: string;
|
|
44
44
|
hoverHeaderBackgroundColor: any;
|
|
45
45
|
hoverHeaderInlineBackgroundColor: any;
|
|
46
|
+
titleFontColor: any;
|
|
47
|
+
titleFontSize: any;
|
|
48
|
+
titleFontWeight: string;
|
|
46
49
|
};
|
|
47
50
|
export declare const getDarkPivotChartGridConfig: () => {
|
|
48
51
|
outlineBorderLineWidth: number;
|
|
@@ -53,4 +56,7 @@ export declare const getDarkPivotChartGridConfig: () => {
|
|
|
53
56
|
headerBackgroundColor: string;
|
|
54
57
|
hoverHeaderBackgroundColor: any;
|
|
55
58
|
hoverHeaderInlineBackgroundColor: any;
|
|
59
|
+
titleFontColor: any;
|
|
60
|
+
titleFontSize: any;
|
|
61
|
+
titleFontWeight: string;
|
|
56
62
|
};
|
|
@@ -38,7 +38,10 @@ const pickPivotChartGridConfig = (tableConfig)=>({
|
|
|
38
38
|
headerFontColor: tableConfig.headerFontColor,
|
|
39
39
|
headerBackgroundColor: 'transparent',
|
|
40
40
|
hoverHeaderBackgroundColor: tableConfig.hoverHeaderBackgroundColor,
|
|
41
|
-
hoverHeaderInlineBackgroundColor: tableConfig.hoverHeaderInlineBackgroundColor
|
|
41
|
+
hoverHeaderInlineBackgroundColor: tableConfig.hoverHeaderInlineBackgroundColor,
|
|
42
|
+
titleFontColor: tableConfig.headerFontColor,
|
|
43
|
+
titleFontSize: tableConfig.headerFontSize,
|
|
44
|
+
titleFontWeight: 'bold'
|
|
42
45
|
});
|
|
43
46
|
const getLightPivotChartGridConfig = ()=>pickPivotChartGridConfig(getLightTableConfig());
|
|
44
47
|
const getDarkPivotChartGridConfig = ()=>pickPivotChartGridConfig(getDarkTableConfig());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme/common/table.js","sources":["webpack://@visactor/vseed/./src/theme/common/table.ts"],"sourcesContent":["export const getDefaultTableConfig = () => ({\n bodyFontSize: 12,\n bodyBackgroundColor: 'transparent',\n headerFontSize: 12,\n})\n\nexport const getLightTableConfig = () => ({\n ...getDefaultTableConfig(),\n borderColor: '#e3e5eb',\n\n bodyFontColor: '#141414',\n\n headerFontColor: '#21252c',\n headerBackgroundColor: '#f6f7f9',\n\n hoverBodyBackgroundColor: '#bedaff',\n hoverBodyInlineBackgroundColor: '#bedaff33',\n hoverHeaderBackgroundColor: '#D9DDE4',\n hoverHeaderInlineBackgroundColor: '#D9DDE455',\n\n selectedBorderColor: '#4080ff',\n selectedBackgroundColor: '#bedaff33',\n\n backgroundColor: 'transparent',\n})\n\nexport const getDarkTableConfig = () => ({\n ...getDefaultTableConfig(),\n borderColor: '#4b4e53',\n\n bodyFontColor: '#fdfdfd',\n headerFontColor: '#fdfdfd',\n headerBackgroundColor: '#36393e',\n\n hoverBodyBackgroundColor: '#4284ff66',\n hoverBodyInlineBackgroundColor: '#4284ff10',\n hoverHeaderBackgroundColor: '#6f7984cc',\n hoverHeaderInlineBackgroundColor: '#4b4f54',\n\n selectedBorderColor: '#3073f2',\n selectedBackgroundColor: '#4284ff33',\n})\n\nconst pickPivotChartGridConfig = (tableConfig: any) => {\n return {\n outlineBorderLineWidth: 0,\n frameCornerRadius: 0,\n borderColor: tableConfig.borderColor,\n bodyFontColor: tableConfig.bodyFontColor,\n headerFontColor: tableConfig.headerFontColor,\n headerBackgroundColor: 'transparent',\n hoverHeaderBackgroundColor: tableConfig.hoverHeaderBackgroundColor,\n hoverHeaderInlineBackgroundColor: tableConfig.hoverHeaderInlineBackgroundColor,\n }\n}\n\nexport const getLightPivotChartGridConfig = () => {\n return pickPivotChartGridConfig(getLightTableConfig())\n}\n\nexport const getDarkPivotChartGridConfig = () => {\n return pickPivotChartGridConfig(getDarkTableConfig())\n}\n"],"names":["getDefaultTableConfig","getLightTableConfig","getDarkTableConfig","pickPivotChartGridConfig","tableConfig","getLightPivotChartGridConfig","getDarkPivotChartGridConfig"],"mappings":"AAAO,MAAMA,wBAAwB,IAAO;QAC1C,cAAc;QACd,qBAAqB;QACrB,gBAAgB;IAClB;AAEO,MAAMC,sBAAsB,IAAO;QACxC,GAAGD,uBAAuB;QAC1B,aAAa;QAEb,eAAe;QAEf,iBAAiB;QACjB,uBAAuB;QAEvB,0BAA0B;QAC1B,gCAAgC;QAChC,4BAA4B;QAC5B,kCAAkC;QAElC,qBAAqB;QACrB,yBAAyB;QAEzB,iBAAiB;IACnB;AAEO,MAAME,qBAAqB,IAAO;QACvC,GAAGF,uBAAuB;QAC1B,aAAa;QAEb,eAAe;QACf,iBAAiB;QACjB,uBAAuB;QAEvB,0BAA0B;QAC1B,gCAAgC;QAChC,4BAA4B;QAC5B,kCAAkC;QAElC,qBAAqB;QACrB,yBAAyB;IAC3B;AAEA,MAAMG,2BAA2B,CAACC,cACzB;QACL,wBAAwB;QACxB,mBAAmB;QACnB,aAAaA,YAAY,WAAW;QACpC,eAAeA,YAAY,aAAa;QACxC,iBAAiBA,YAAY,eAAe;
|
|
1
|
+
{"version":3,"file":"theme/common/table.js","sources":["webpack://@visactor/vseed/./src/theme/common/table.ts"],"sourcesContent":["export const getDefaultTableConfig = () => ({\n bodyFontSize: 12,\n bodyBackgroundColor: 'transparent',\n headerFontSize: 12,\n})\n\nexport const getLightTableConfig = () => ({\n ...getDefaultTableConfig(),\n borderColor: '#e3e5eb',\n\n bodyFontColor: '#141414',\n\n headerFontColor: '#21252c',\n headerBackgroundColor: '#f6f7f9',\n\n hoverBodyBackgroundColor: '#bedaff',\n hoverBodyInlineBackgroundColor: '#bedaff33',\n hoverHeaderBackgroundColor: '#D9DDE4',\n hoverHeaderInlineBackgroundColor: '#D9DDE455',\n\n selectedBorderColor: '#4080ff',\n selectedBackgroundColor: '#bedaff33',\n\n backgroundColor: 'transparent',\n})\n\nexport const getDarkTableConfig = () => ({\n ...getDefaultTableConfig(),\n borderColor: '#4b4e53',\n\n bodyFontColor: '#fdfdfd',\n headerFontColor: '#fdfdfd',\n headerBackgroundColor: '#36393e',\n\n hoverBodyBackgroundColor: '#4284ff66',\n hoverBodyInlineBackgroundColor: '#4284ff10',\n hoverHeaderBackgroundColor: '#6f7984cc',\n hoverHeaderInlineBackgroundColor: '#4b4f54',\n\n selectedBorderColor: '#3073f2',\n selectedBackgroundColor: '#4284ff33',\n})\n\nconst pickPivotChartGridConfig = (tableConfig: any) => {\n return {\n outlineBorderLineWidth: 0,\n frameCornerRadius: 0,\n borderColor: tableConfig.borderColor,\n bodyFontColor: tableConfig.bodyFontColor,\n headerFontColor: tableConfig.headerFontColor,\n\n headerBackgroundColor: 'transparent',\n hoverHeaderBackgroundColor: tableConfig.hoverHeaderBackgroundColor,\n hoverHeaderInlineBackgroundColor: tableConfig.hoverHeaderInlineBackgroundColor,\n\n titleFontColor: tableConfig.headerFontColor,\n titleFontSize: tableConfig.headerFontSize,\n titleFontWeight: 'bold',\n }\n}\n\nexport const getLightPivotChartGridConfig = () => {\n return pickPivotChartGridConfig(getLightTableConfig())\n}\n\nexport const getDarkPivotChartGridConfig = () => {\n return pickPivotChartGridConfig(getDarkTableConfig())\n}\n"],"names":["getDefaultTableConfig","getLightTableConfig","getDarkTableConfig","pickPivotChartGridConfig","tableConfig","getLightPivotChartGridConfig","getDarkPivotChartGridConfig"],"mappings":"AAAO,MAAMA,wBAAwB,IAAO;QAC1C,cAAc;QACd,qBAAqB;QACrB,gBAAgB;IAClB;AAEO,MAAMC,sBAAsB,IAAO;QACxC,GAAGD,uBAAuB;QAC1B,aAAa;QAEb,eAAe;QAEf,iBAAiB;QACjB,uBAAuB;QAEvB,0BAA0B;QAC1B,gCAAgC;QAChC,4BAA4B;QAC5B,kCAAkC;QAElC,qBAAqB;QACrB,yBAAyB;QAEzB,iBAAiB;IACnB;AAEO,MAAME,qBAAqB,IAAO;QACvC,GAAGF,uBAAuB;QAC1B,aAAa;QAEb,eAAe;QACf,iBAAiB;QACjB,uBAAuB;QAEvB,0BAA0B;QAC1B,gCAAgC;QAChC,4BAA4B;QAC5B,kCAAkC;QAElC,qBAAqB;QACrB,yBAAyB;IAC3B;AAEA,MAAMG,2BAA2B,CAACC,cACzB;QACL,wBAAwB;QACxB,mBAAmB;QACnB,aAAaA,YAAY,WAAW;QACpC,eAAeA,YAAY,aAAa;QACxC,iBAAiBA,YAAY,eAAe;QAE5C,uBAAuB;QACvB,4BAA4BA,YAAY,0BAA0B;QAClE,kCAAkCA,YAAY,gCAAgC;QAE9E,gBAAgBA,YAAY,eAAe;QAC3C,eAAeA,YAAY,cAAc;QACzC,iBAAiB;IACnB;AAGK,MAAMC,+BAA+B,IACnCF,yBAAyBF;AAG3B,MAAMK,8BAA8B,IAClCH,yBAAyBD"}
|