@visactor/vseed 0.4.3 → 0.4.5
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 +2 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/builder/builder/builder.d.ts +2 -15248
- package/dist/esm/builder/builder/builder.js.map +1 -1
- package/dist/esm/builder/register/all.js +4 -1
- package/dist/esm/builder/register/all.js.map +1 -1
- package/dist/esm/builder/register/chartType/index.d.ts +3 -0
- package/dist/esm/builder/register/chartType/index.js +4 -1
- package/dist/esm/builder/register/chartType/raceDonut.d.ts +5 -0
- package/dist/esm/builder/register/chartType/raceDonut.js +9 -0
- package/dist/esm/builder/register/chartType/raceDonut.js.map +1 -0
- package/dist/esm/builder/register/chartType/raceLine.d.ts +5 -0
- package/dist/esm/builder/register/chartType/raceLine.js +9 -0
- package/dist/esm/builder/register/chartType/raceLine.js.map +1 -0
- package/dist/esm/builder/register/chartType/racePie.d.ts +5 -0
- package/dist/esm/builder/register/chartType/racePie.js +9 -0
- package/dist/esm/builder/register/chartType/racePie.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/index.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/index.js +4 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/raceDonut.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/raceDonut.js +33 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/raceDonut.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/raceLine.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/raceLine.js +36 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/raceLine.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/racePie.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/racePie.js +33 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/racePie.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.js +4 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceBar.js +0 -3
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceBar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceColumn.js +0 -3
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceColumn.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceDonut.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceDonut.js +74 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceDonut.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceLine.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceLine.js +89 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceLine.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/racePie.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/racePie.js +74 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/racePie.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/index.d.ts +3 -0
- package/dist/esm/pipeline/spec/chart/pipeline/index.js +4 -1
- package/dist/esm/pipeline/spec/chart/pipeline/raceBar.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipeline/raceBar.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/raceColumn.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipeline/raceColumn.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/raceDonut.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipeline/raceDonut.js +21 -0
- package/dist/esm/pipeline/spec/chart/pipeline/raceDonut.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/raceLine.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipeline/raceLine.js +25 -0
- package/dist/esm/pipeline/spec/chart/pipeline/raceLine.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/racePie.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipeline/racePie.js +21 -0
- package/dist/esm/pipeline/spec/chart/pipeline/racePie.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/raceScatter.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipeline/raceScatter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/splitLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/boxLegend.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/heatmapColorLegend.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/pointState.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/pointStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/index.d.ts +5 -3
- package/dist/esm/pipeline/spec/chart/pipes/player/index.js +5 -3
- package/dist/esm/pipeline/spec/chart/pipes/player/isPlayer.d.ts +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/player/isPlayer.js +8 -7
- package/dist/esm/pipeline/spec/chart/pipes/player/isPlayer.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/{playerXY.d.ts → playerBar.d.ts} +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/{playerYX.js → playerBar.js} +6 -7
- package/dist/esm/pipeline/spec/chart/pipes/player/playerBar.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/playerColumn.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/{playerXY.js → playerColumn.js} +6 -7
- package/dist/esm/pipeline/spec/chart/pipes/player/playerColumn.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/{playerYX.d.ts → playerLine.d.ts} +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerLine.js +144 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/playerLine.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/{playerYY.d.ts → playerPie.d.ts} +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerPie.js +174 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/playerPie.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/playerScatter.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/{playerYY.js → playerScatter.js} +7 -7
- package/dist/esm/pipeline/spec/chart/pipes/player/playerScatter.js.map +1 -0
- package/dist/esm/pipeline/spec/table/pipes/corner/titleOnDimension.js.map +1 -1
- package/dist/esm/theme/dark/dark.js +10 -5
- package/dist/esm/theme/dark/dark.js.map +1 -1
- package/dist/esm/theme/dark/raceLine.d.ts +182 -0
- package/dist/esm/theme/dark/raceLine.js +39 -0
- package/dist/esm/theme/dark/raceLine.js.map +1 -0
- package/dist/esm/theme/dark/racePie.d.ts +157 -0
- package/dist/esm/theme/dark/racePie.js +18 -0
- package/dist/esm/theme/dark/racePie.js.map +1 -0
- package/dist/esm/theme/light/light.js +6 -1
- package/dist/esm/theme/light/light.js.map +1 -1
- package/dist/esm/theme/light/raceLine.d.ts +182 -0
- package/dist/esm/theme/light/raceLine.js +39 -0
- package/dist/esm/theme/light/raceLine.js.map +1 -0
- package/dist/esm/theme/light/racePie.d.ts +157 -0
- package/dist/esm/theme/light/racePie.js +18 -0
- package/dist/esm/theme/light/racePie.js.map +1 -0
- package/dist/esm/types/builder/builder.d.ts +1 -1
- package/dist/esm/types/builder/builder.js.map +1 -1
- package/dist/esm/types/chartType/column/zColumn.d.ts +1 -0
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +1 -0
- package/dist/esm/types/chartType/index.d.ts +7 -0
- package/dist/esm/types/chartType/index.js +3 -0
- package/dist/esm/types/chartType/raceBar/raceBar.d.ts +2 -2
- package/dist/esm/types/chartType/raceBar/zRaceBar.d.ts +1 -0
- package/dist/esm/types/chartType/raceColumn/raceColumn.d.ts +106 -3
- package/dist/esm/types/chartType/raceColumn/zRaceColumn.d.ts +1 -0
- package/dist/esm/types/chartType/raceDonut/index.d.ts +2 -0
- package/dist/esm/types/chartType/raceDonut/index.js +1 -0
- package/dist/esm/types/chartType/raceDonut/raceDonut.d.ts +75 -0
- package/dist/esm/types/chartType/raceDonut/zRaceDonut.d.ts +387 -0
- package/dist/esm/types/chartType/raceDonut/zRaceDonut.js +23 -0
- package/dist/esm/types/chartType/raceDonut/zRaceDonut.js.map +1 -0
- package/dist/esm/types/chartType/raceLine/index.d.ts +2 -0
- package/dist/esm/types/chartType/raceLine/index.js +1 -0
- package/dist/esm/types/chartType/raceLine/raceLine.d.ts +122 -0
- package/dist/esm/types/chartType/raceLine/raceLine.js +0 -0
- package/dist/esm/types/chartType/raceLine/zRaceLine.d.ts +1904 -0
- package/dist/esm/types/chartType/raceLine/zRaceLine.js +35 -0
- package/dist/esm/types/chartType/raceLine/zRaceLine.js.map +1 -0
- package/dist/esm/types/chartType/racePie/index.d.ts +2 -0
- package/dist/esm/types/chartType/racePie/index.js +1 -0
- package/dist/esm/types/chartType/racePie/racePie.d.ts +75 -0
- package/dist/esm/types/chartType/racePie/racePie.js +0 -0
- package/dist/esm/types/chartType/racePie/zRacePie.d.ts +387 -0
- package/dist/esm/types/chartType/racePie/zRacePie.js +23 -0
- package/dist/esm/types/chartType/racePie/zRacePie.js.map +1 -0
- package/dist/esm/types/chartType/raceScatter/raceScatter.d.ts +84 -0
- package/dist/esm/types/chartType/raceScatter/zRaceScatter.d.ts +1 -0
- package/dist/esm/types/chartType/sunburst/sunburst.d.ts +1 -1
- package/dist/esm/types/properties/chartType/chartType.d.ts +4 -1
- package/dist/esm/types/properties/chartType/chartType.js +3 -0
- package/dist/esm/types/properties/chartType/chartType.js.map +1 -1
- package/dist/esm/types/properties/config/config.d.ts +2276 -44
- package/dist/esm/types/properties/config/config.js +4 -1
- package/dist/esm/types/properties/config/config.js.map +1 -1
- package/dist/esm/types/properties/config/player/player.d.ts +2 -2
- package/dist/esm/types/properties/config/player/zPlayer.d.ts +1 -0
- package/dist/esm/types/properties/config/player/zPlayer.js +1 -0
- package/dist/esm/types/properties/config/player/zPlayer.js.map +1 -1
- package/dist/esm/types/properties/config/race.d.ts +2279 -44
- package/dist/esm/types/properties/config/race.js +10 -3
- package/dist/esm/types/properties/config/race.js.map +1 -1
- package/dist/esm/types/properties/dimensions/index.d.ts +2 -0
- package/dist/esm/types/properties/dimensions/raceDonutDimension.d.ts +14 -0
- package/dist/esm/types/properties/dimensions/raceDonutDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/racePieDimension.d.ts +14 -0
- package/dist/esm/types/properties/dimensions/racePieDimension.js +0 -0
- package/dist/esm/types/properties/measures/hierarchyMeasure.d.ts +10 -0
- package/dist/esm/types/properties/measures/hierarchyMeasure.js +0 -0
- package/dist/esm/types/properties/measures/index.d.ts +3 -1
- package/dist/esm/types/properties/measures/raceDonutMeasure.d.ts +2 -0
- package/dist/esm/types/properties/measures/raceDonutMeasure.js +0 -0
- package/dist/esm/types/properties/measures/racePieMeasure.d.ts +2 -0
- package/dist/esm/types/properties/measures/racePieMeasure.js +0 -0
- package/dist/esm/types/properties/theme/customTheme.d.ts +7159 -2695
- package/dist/esm/types/vseed.d.ts +2 -2
- package/dist/esm/types/zVseed.d.ts +2 -5
- package/dist/esm/types/zVseed.js +7 -4
- package/dist/esm/types/zVseed.js.map +1 -1
- package/dist/umd/index.js +1029 -154
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerXY.js.map +0 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerYX.js.map +0 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerYY.js.map +0 -1
- package/dist/esm/types/properties/measures/hierarchyMeasures.d.ts +0 -4
- /package/dist/esm/types/{properties/measures/hierarchyMeasures.js → chartType/raceDonut/raceDonut.js} +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { isPivotChart, isVTable } from "../../../../utils/index.js";
|
|
2
|
-
const isPlayer = (context)=>{
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
const isPlayer = (playerPipe, defaultPipe)=>(spec, context)=>{
|
|
3
|
+
const { vseed, advancedVSeed } = context;
|
|
4
|
+
const { encoding } = advancedVSeed;
|
|
5
|
+
const hasPlayerEncoding = encoding.player && encoding.player.length > 0;
|
|
6
|
+
const isStandardChart = !isVTable(vseed) && !isPivotChart(vseed);
|
|
7
|
+
if (hasPlayerEncoding && isStandardChart) return playerPipe(spec, context);
|
|
8
|
+
return defaultPipe(spec, context);
|
|
9
|
+
};
|
|
9
10
|
export { isPlayer };
|
|
10
11
|
|
|
11
12
|
//# sourceMappingURL=isPlayer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/player/isPlayer.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/player/isPlayer.ts"],"sourcesContent":["import { isPivotChart, isVTable } from 'src/pipeline/utils'\nimport type {
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/player/isPlayer.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/player/isPlayer.ts"],"sourcesContent":["import { isPivotChart, isVTable } from 'src/pipeline/utils'\nimport type { VChartSpecPipe } from 'src/types'\n\nexport const isPlayer = (playerPipe: VChartSpecPipe, defaultPipe: VChartSpecPipe): VChartSpecPipe => {\n return (spec, context) => {\n const { vseed, advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n const hasPlayerEncoding = encoding.player && encoding.player.length > 0\n const isStandardChart = !isVTable(vseed) && !isPivotChart(vseed)\n\n if (hasPlayerEncoding && isStandardChart) {\n return playerPipe(spec, context)\n }\n\n return defaultPipe(spec, context)\n }\n}\n"],"names":["isPlayer","playerPipe","defaultPipe","spec","context","vseed","advancedVSeed","encoding","hasPlayerEncoding","isStandardChart","isVTable","isPivotChart"],"mappings":";AAGO,MAAMA,WAAW,CAACC,YAA4BC,cAC5C,CAACC,MAAMC;QACZ,MAAM,EAAEC,KAAK,EAAEC,aAAa,EAAE,GAAGF;QACjC,MAAM,EAAEG,QAAQ,EAAE,GAAGD;QAErB,MAAME,oBAAoBD,SAAS,MAAM,IAAIA,SAAS,MAAM,CAAC,MAAM,GAAG;QACtE,MAAME,kBAAkB,CAACC,SAASL,UAAU,CAACM,aAAaN;QAE1D,IAAIG,qBAAqBC,iBACvB,OAAOR,WAAWE,MAAMC;QAG1B,OAAOF,YAAYC,MAAMC;IAC3B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { VChartSpecPipe } from '../../../../../types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const playerBar: VChartSpecPipe;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { groupBy, uniqueBy } from "remeda";
|
|
2
|
-
import { isPivotChart, isVTable } from "../../../../utils/index.js";
|
|
3
2
|
import { datasetYX } from "../dataset/index.js";
|
|
4
|
-
const
|
|
5
|
-
const {
|
|
3
|
+
const playerBar = (spec, context)=>{
|
|
4
|
+
const { advancedVSeed } = context;
|
|
6
5
|
const { dimensions = [], datasetReshapeInfo, chartType, encoding } = advancedVSeed;
|
|
7
6
|
const baseConfig = advancedVSeed.config[chartType];
|
|
8
7
|
const result = datasetYX(spec, context);
|
|
9
|
-
if (!baseConfig || !baseConfig.player
|
|
8
|
+
if (!baseConfig || !baseConfig.player) return result;
|
|
10
9
|
const { player } = baseConfig;
|
|
11
10
|
const id = datasetReshapeInfo[0].id;
|
|
12
11
|
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
|
@@ -27,7 +26,7 @@ const playerYX = (spec, context)=>{
|
|
|
27
26
|
return {
|
|
28
27
|
data: {
|
|
29
28
|
id: id,
|
|
30
|
-
values: sortedItems.slice(0, maxCount)
|
|
29
|
+
values: false === maxCount ? sortedItems : sortedItems.slice(0, maxCount)
|
|
31
30
|
}
|
|
32
31
|
};
|
|
33
32
|
});
|
|
@@ -178,6 +177,6 @@ const playerYX = (spec, context)=>{
|
|
|
178
177
|
}
|
|
179
178
|
};
|
|
180
179
|
};
|
|
181
|
-
export {
|
|
180
|
+
export { playerBar };
|
|
182
181
|
|
|
183
|
-
//# sourceMappingURL=
|
|
182
|
+
//# sourceMappingURL=playerBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/player/playerBar.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/player/playerBar.ts"],"sourcesContent":["import type { IPlayerSpec, ISpec } from '@visactor/vchart'\nimport { groupBy, uniqueBy } from 'remeda'\nimport type { Player, VChartSpecPipe } from 'src/types'\nimport { datasetYX } from '../dataset'\n\nexport const playerBar: VChartSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { dimensions = [], datasetReshapeInfo, chartType, encoding } = advancedVSeed\n\n const baseConfig = advancedVSeed.config[chartType] as { player: Player }\n const result = datasetYX(spec, context)\n\n if (!baseConfig || !baseConfig.player) {\n return result\n }\n const { player } = baseConfig\n const id = datasetReshapeInfo[0].id\n const { unfoldInfo, foldInfo } = datasetReshapeInfo[0]\n const { encodingPlayer, encodingY } = unfoldInfo\n const { measureValue } = foldInfo\n const {\n maxCount,\n autoPlay = true,\n interval = 1000,\n loop = false,\n position,\n railColor,\n trackColor,\n sliderHandleColor,\n sliderHandleBorderColor,\n startButtonColor,\n pauseButtonColor,\n backwardButtonColor,\n forwardButtonColor,\n } = player\n const duration = interval\n const exchangeDuration = interval * 0.6\n\n const dataGroups = groupBy(advancedVSeed.dataset, (item) => item[encodingPlayer])\n if (result.data && 'values' in result.data) {\n result.data.values = []\n }\n\n const yValues = uniqueBy(\n advancedVSeed.dataset.map((d) => d[encodingY]),\n (item) => item,\n )\n const specs = Object.values(dataGroups).map((items) => {\n // 如果当前items中不存在yValues中的值, 则填充为0, 保证每组都有同样的yValue, 都有对应的数据\n const filledItems = items.map((item) => ({\n ...item,\n [encodingY]: yValues.find((yValue) => yValue === item[encodingY]) || 0,\n }))\n const sortedItems = filledItems.sort((a, b) => b[measureValue] - a[measureValue])\n\n return {\n data: {\n id: id,\n values: maxCount === false ? sortedItems : sortedItems.slice(0, maxCount as number),\n },\n }\n })\n\n const dataKey = dimensions.filter((d) => !encoding.player?.includes(d.id)).map((d) => d.id)\n const textSize = 36\n const padding = 12\n\n return {\n ...result,\n dataKey,\n stackCornerRadius: undefined,\n animationUpdate: {\n bar: [\n {\n type: 'update',\n options: { excludeChannels: ['y'] },\n easing: 'linear',\n duration,\n },\n {\n channel: ['y'],\n easing: 'circInOut',\n duration: exchangeDuration,\n },\n ],\n },\n animationEnter: {\n bar: [\n {\n type: 'moveIn',\n duration: exchangeDuration,\n easing: 'circInOut',\n options: {\n direction: 'y',\n orient: 'negative',\n },\n },\n ],\n },\n animationExit: {\n bar: [\n {\n type: 'moveOut',\n options: {\n direction: 'x',\n },\n duration: exchangeDuration,\n },\n {\n type: 'moveOut',\n options: {\n direction: 'y',\n orient: 'negative',\n },\n duration: exchangeDuration,\n },\n {\n type: 'fadeOut',\n duration: exchangeDuration,\n },\n ],\n },\n customMark: [\n {\n type: 'text',\n dataId: 'year',\n style: {\n textBaseline: 'bottom',\n fontSize: textSize,\n textAlign: 'right',\n fontFamily: 'PingFang SC',\n fontWeight: 600,\n text: (datum: any) => datum[encodingPlayer],\n x: (_datum: any, ctx: any) => {\n return ctx.vchart.getChart().getCanvasRect()?.width - padding\n },\n y: (_datum: any, ctx: any) => {\n return ctx.vchart.getChart().getCanvasRect()?.height - padding - textSize\n },\n fill: 'rgb(100, 100, 100)',\n fillOpacity: 0.25,\n },\n },\n ],\n player: {\n visible: true,\n auto: autoPlay,\n interval: interval,\n loop: loop,\n alternate: false,\n position: 'middle',\n orient: position,\n type: 'discrete',\n specs,\n controller: {\n visible: true,\n start: { visible: true, order: 0, style: { fill: startButtonColor } },\n pause: { visible: true, order: 1, style: { fill: pauseButtonColor } },\n backward: { visible: true, order: 2, style: { fill: backwardButtonColor } },\n forward: { visible: true, order: 3, position: 'end', style: { fill: forwardButtonColor } },\n },\n slider: {\n visible: true,\n railStyle: {\n visible: true,\n fill: railColor,\n [position === 'top' || position === 'bottom' ? 'height' : 'width']: 2,\n },\n trackStyle: {\n visible: true,\n fill: trackColor,\n [position === 'top' || position === 'bottom' ? 'height' : 'width']: 2,\n },\n handlerStyle: {\n visible: true,\n lineWidth: 2,\n stroke: sliderHandleBorderColor,\n fill: sliderHandleColor,\n size: 9,\n },\n },\n } as IPlayerSpec,\n } as unknown as ISpec\n}\n"],"names":["playerBar","spec","context","advancedVSeed","dimensions","datasetReshapeInfo","chartType","encoding","baseConfig","result","datasetYX","player","id","unfoldInfo","foldInfo","encodingPlayer","encodingY","measureValue","maxCount","autoPlay","interval","loop","position","railColor","trackColor","sliderHandleColor","sliderHandleBorderColor","startButtonColor","pauseButtonColor","backwardButtonColor","forwardButtonColor","duration","exchangeDuration","dataGroups","groupBy","item","yValues","uniqueBy","d","specs","Object","items","filledItems","yValue","sortedItems","a","b","dataKey","textSize","padding","undefined","datum","_datum","ctx"],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { groupBy, uniqueBy } from "remeda";
|
|
2
|
-
import { isPivotChart, isVTable } from "../../../../utils/index.js";
|
|
3
2
|
import { datasetXY } from "../dataset/index.js";
|
|
4
|
-
const
|
|
5
|
-
const {
|
|
3
|
+
const playerColumn = (spec, context)=>{
|
|
4
|
+
const { advancedVSeed } = context;
|
|
6
5
|
const { dimensions = [], datasetReshapeInfo, chartType, encoding } = advancedVSeed;
|
|
7
6
|
const baseConfig = advancedVSeed.config[chartType];
|
|
8
7
|
const result = datasetXY(spec, context);
|
|
9
|
-
if (!baseConfig || !baseConfig.player
|
|
8
|
+
if (!baseConfig || !baseConfig.player) return result;
|
|
10
9
|
const { player } = baseConfig;
|
|
11
10
|
const id = datasetReshapeInfo[0].id;
|
|
12
11
|
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
|
@@ -25,7 +24,7 @@ const playerXY = (spec, context)=>{
|
|
|
25
24
|
return {
|
|
26
25
|
data: {
|
|
27
26
|
id: id,
|
|
28
|
-
values: sortedItems.slice(0, maxCount)
|
|
27
|
+
values: false === maxCount ? sortedItems : sortedItems.slice(0, maxCount)
|
|
29
28
|
}
|
|
30
29
|
};
|
|
31
30
|
});
|
|
@@ -195,6 +194,6 @@ const playerXY = (spec, context)=>{
|
|
|
195
194
|
}
|
|
196
195
|
};
|
|
197
196
|
};
|
|
198
|
-
export {
|
|
197
|
+
export { playerColumn };
|
|
199
198
|
|
|
200
|
-
//# sourceMappingURL=
|
|
199
|
+
//# sourceMappingURL=playerColumn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/player/playerColumn.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/player/playerColumn.ts"],"sourcesContent":["import type { IPlayerSpec, ISpec } from '@visactor/vchart'\nimport { groupBy, uniqueBy } from 'remeda'\nimport type { Player, VChartSpecPipe } from 'src/types'\nimport { datasetXY } from '../dataset'\n\nexport const playerColumn: VChartSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { dimensions = [], datasetReshapeInfo, chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { player: Player }\n const result = datasetXY(spec, context)\n\n if (!baseConfig || !baseConfig.player) {\n return result\n }\n const { player } = baseConfig\n\n const id = datasetReshapeInfo[0].id\n const { unfoldInfo, foldInfo } = datasetReshapeInfo[0]\n const { encodingPlayer, encodingX } = unfoldInfo\n const { measureValue } = foldInfo\n const {\n maxCount,\n autoPlay = true,\n interval = 1000,\n loop = false,\n position,\n railColor,\n trackColor,\n sliderHandleColor,\n sliderHandleBorderColor,\n startButtonColor,\n pauseButtonColor,\n backwardButtonColor,\n forwardButtonColor,\n } = player\n\n const dataGroups = groupBy(advancedVSeed.dataset, (item) => item[encodingPlayer])\n if (result.data && 'values' in result.data) {\n result.data.values = []\n }\n\n const xValues = uniqueBy(\n advancedVSeed.dataset.map((d) => d[encodingX]),\n (item) => item,\n )\n const specs = Object.values(dataGroups).map((items) => {\n // 如果当前items中不存在xValues中的值, 则填充为0, 保证每组都有同样的xValue, 都有对应的数据\n const filledItems = items.map((item) => ({\n ...item,\n [encodingX]: xValues.find((xValue) => xValue === item[encodingX]) || 0,\n }))\n const sortedItems = filledItems.sort((a, b) => b[measureValue] - a[measureValue])\n return {\n data: {\n id: id,\n values: maxCount === false ? sortedItems : sortedItems.slice(0, maxCount as number),\n },\n }\n })\n\n const duration = interval\n const exchangeDuration = interval * 0.6\n\n const dataKey = dimensions.filter((d) => !encoding.player?.includes(d.id)).map((d) => d.id)\n\n const textSize = 36\n const padding = 12\n return {\n ...result,\n dataKey,\n stackCornerRadius: undefined,\n animationUpdate: {\n bar: [\n {\n type: 'update',\n options: { excludeChannels: ['x'] },\n easing: 'linear',\n duration,\n },\n {\n channel: ['x'],\n easing: 'circInOut',\n duration: exchangeDuration,\n },\n ],\n point: [\n {\n type: 'update',\n easing: 'linear',\n duration,\n },\n ],\n line: [\n {\n type: 'update',\n easing: 'linear',\n duration,\n },\n ],\n axis: {\n duration: exchangeDuration,\n easing: 'circInOut',\n },\n },\n animationEnter: {\n bar: [\n {\n type: 'moveIn',\n duration: exchangeDuration,\n easing: 'circInOut',\n options: {\n direction: 'x',\n orient: 'negative',\n },\n },\n ],\n },\n animationExit: {\n bar: [\n {\n type: 'moveOut',\n options: {\n direction: 'y',\n orient: 'negative',\n },\n duration: exchangeDuration,\n },\n {\n type: 'moveOut',\n options: {\n direction: 'x',\n orient: 'negative',\n },\n duration: exchangeDuration,\n },\n {\n type: 'fadeOut',\n duration: exchangeDuration,\n },\n ],\n },\n customMark: [\n {\n type: 'text',\n dataId: 'year',\n style: {\n textBaseline: 'bottom',\n fontSize: textSize,\n textAlign: 'right',\n text: (datum: any) => datum[encodingPlayer],\n x: (_datum: any, ctx: any) => {\n return ctx.vchart.getChart().getCanvasRect()?.width - padding\n },\n y: (_datum: any, _ctx: any) => {\n return textSize + padding\n },\n fill: 'rgb(100, 100, 100)',\n fillOpacity: 0.25,\n },\n },\n ],\n player: {\n visible: true,\n auto: autoPlay,\n interval: interval,\n loop: loop,\n alternate: false,\n position: 'middle',\n orient: position,\n type: 'discrete',\n specs,\n controller: {\n visible: true,\n start: { visible: true, order: 0, style: { fill: startButtonColor } },\n pause: { visible: true, order: 1, style: { fill: pauseButtonColor } },\n backward: { visible: true, order: 2, style: { fill: backwardButtonColor } },\n forward: { visible: true, order: 3, position: 'end', style: { fill: forwardButtonColor } },\n },\n slider: {\n visible: true,\n railStyle: {\n visible: true,\n fill: railColor,\n [position === 'top' || position === 'bottom' ? 'height' : 'width']: 2,\n },\n trackStyle: {\n visible: true,\n fill: trackColor,\n [position === 'top' || position === 'bottom' ? 'height' : 'width']: 2,\n },\n handlerStyle: {\n visible: true,\n lineWidth: 2,\n stroke: sliderHandleBorderColor,\n fill: sliderHandleColor,\n size: 9,\n },\n },\n } as IPlayerSpec,\n } as unknown as ISpec\n}\n"],"names":["playerColumn","spec","context","advancedVSeed","dimensions","datasetReshapeInfo","chartType","encoding","baseConfig","result","datasetXY","player","id","unfoldInfo","foldInfo","encodingPlayer","encodingX","measureValue","maxCount","autoPlay","interval","loop","position","railColor","trackColor","sliderHandleColor","sliderHandleBorderColor","startButtonColor","pauseButtonColor","backwardButtonColor","forwardButtonColor","dataGroups","groupBy","item","xValues","uniqueBy","d","specs","Object","items","filledItems","xValue","sortedItems","a","b","duration","exchangeDuration","dataKey","textSize","padding","undefined","datum","_datum","ctx","_ctx"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { VChartSpecPipe } from '../../../../../types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const playerLine: VChartSpecPipe;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { datasetXY } from "../dataset/index.js";
|
|
2
|
+
const playerLine = (spec, context)=>{
|
|
3
|
+
const { advancedVSeed } = context;
|
|
4
|
+
const { datasetReshapeInfo, chartType } = advancedVSeed;
|
|
5
|
+
const baseConfig = advancedVSeed.config[chartType];
|
|
6
|
+
const result = datasetXY(spec, context);
|
|
7
|
+
if (!baseConfig || !baseConfig.player) return result;
|
|
8
|
+
const { player } = baseConfig;
|
|
9
|
+
const id = datasetReshapeInfo[0].id;
|
|
10
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
|
11
|
+
const { encodingX } = unfoldInfo;
|
|
12
|
+
const { maxCount = false, autoPlay = true, interval, loop = false, position, railColor, trackColor, sliderHandleColor, sliderHandleBorderColor, startButtonColor, pauseButtonColor, backwardButtonColor, forwardButtonColor } = player;
|
|
13
|
+
const uniqueXValues = Array.from(new Set(advancedVSeed.dataset.map((d)=>d[encodingX]))).sort((a, b)=>a > b ? 1 : -1);
|
|
14
|
+
const step = 1;
|
|
15
|
+
const specs = [];
|
|
16
|
+
result.data = [
|
|
17
|
+
{
|
|
18
|
+
id: id,
|
|
19
|
+
values: []
|
|
20
|
+
}
|
|
21
|
+
];
|
|
22
|
+
if (false === maxCount) for(let currentSize = 2; currentSize <= uniqueXValues.length; currentSize += step){
|
|
23
|
+
const currentXValues = uniqueXValues.slice(0, currentSize);
|
|
24
|
+
const frameData = advancedVSeed.dataset.filter((d)=>currentXValues.includes(d[encodingX]));
|
|
25
|
+
specs.push({
|
|
26
|
+
data: {
|
|
27
|
+
id: id,
|
|
28
|
+
values: frameData
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
else if (uniqueXValues.length <= maxCount) {
|
|
33
|
+
const limitCount = uniqueXValues.length;
|
|
34
|
+
for(let currentSize = 2; currentSize <= limitCount; currentSize += step){
|
|
35
|
+
const currentXValues = uniqueXValues.slice(0, currentSize);
|
|
36
|
+
const frameData = advancedVSeed.dataset.filter((d)=>currentXValues.includes(d[encodingX]));
|
|
37
|
+
specs.push({
|
|
38
|
+
data: {
|
|
39
|
+
id: id,
|
|
40
|
+
values: frameData
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
} else {
|
|
45
|
+
const limitCount = maxCount;
|
|
46
|
+
for(let currentSize = 2; currentSize < limitCount; currentSize += step){
|
|
47
|
+
const currentXValues = uniqueXValues.slice(0, currentSize);
|
|
48
|
+
const frameData = advancedVSeed.dataset.filter((d)=>currentXValues.includes(d[encodingX]));
|
|
49
|
+
specs.push({
|
|
50
|
+
data: {
|
|
51
|
+
id: id,
|
|
52
|
+
values: frameData
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
for(let i = 0; i <= uniqueXValues.length - limitCount; i += step){
|
|
57
|
+
const currentXValues = uniqueXValues.slice(i, i + limitCount);
|
|
58
|
+
const frameData = advancedVSeed.dataset.filter((d)=>currentXValues.includes(d[encodingX]));
|
|
59
|
+
specs.push({
|
|
60
|
+
data: {
|
|
61
|
+
id: id,
|
|
62
|
+
values: frameData
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const duration = interval;
|
|
68
|
+
return {
|
|
69
|
+
...result,
|
|
70
|
+
stackCornerRadius: void 0,
|
|
71
|
+
animationUpdate: {
|
|
72
|
+
duration
|
|
73
|
+
},
|
|
74
|
+
point: {
|
|
75
|
+
visible: false
|
|
76
|
+
},
|
|
77
|
+
player: {
|
|
78
|
+
visible: true,
|
|
79
|
+
auto: autoPlay,
|
|
80
|
+
interval: interval,
|
|
81
|
+
loop: loop,
|
|
82
|
+
alternate: false,
|
|
83
|
+
position: 'middle',
|
|
84
|
+
orient: position,
|
|
85
|
+
type: 'discrete',
|
|
86
|
+
specs,
|
|
87
|
+
controller: {
|
|
88
|
+
visible: true,
|
|
89
|
+
start: {
|
|
90
|
+
visible: true,
|
|
91
|
+
order: 0,
|
|
92
|
+
style: {
|
|
93
|
+
fill: startButtonColor
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
pause: {
|
|
97
|
+
visible: true,
|
|
98
|
+
order: 1,
|
|
99
|
+
style: {
|
|
100
|
+
fill: pauseButtonColor
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
backward: {
|
|
104
|
+
visible: true,
|
|
105
|
+
order: 2,
|
|
106
|
+
style: {
|
|
107
|
+
fill: backwardButtonColor
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
forward: {
|
|
111
|
+
visible: true,
|
|
112
|
+
order: 3,
|
|
113
|
+
position: 'end',
|
|
114
|
+
style: {
|
|
115
|
+
fill: forwardButtonColor
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
slider: {
|
|
120
|
+
visible: true,
|
|
121
|
+
railStyle: {
|
|
122
|
+
visible: true,
|
|
123
|
+
fill: railColor,
|
|
124
|
+
['top' === position || 'bottom' === position ? 'height' : 'width']: 2
|
|
125
|
+
},
|
|
126
|
+
trackStyle: {
|
|
127
|
+
visible: true,
|
|
128
|
+
fill: trackColor,
|
|
129
|
+
['top' === position || 'bottom' === position ? 'height' : 'width']: 2
|
|
130
|
+
},
|
|
131
|
+
handlerStyle: {
|
|
132
|
+
visible: true,
|
|
133
|
+
lineWidth: 2,
|
|
134
|
+
stroke: sliderHandleBorderColor,
|
|
135
|
+
fill: sliderHandleColor,
|
|
136
|
+
size: 9
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
export { playerLine };
|
|
143
|
+
|
|
144
|
+
//# sourceMappingURL=playerLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/player/playerLine.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/player/playerLine.ts"],"sourcesContent":["import type { IPlayerSpec, ISpec } from '@visactor/vchart'\nimport type { Player, VChartSpecPipe } from 'src/types'\nimport { datasetXY } from '../dataset'\n\nexport const playerLine: VChartSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { datasetReshapeInfo, chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { player: Player }\n const result = datasetXY(spec, context)\n\n if (!baseConfig || !baseConfig.player) {\n return result\n }\n const { player } = baseConfig\n\n const id = datasetReshapeInfo[0].id\n const { unfoldInfo } = datasetReshapeInfo[0]\n const { encodingX } = unfoldInfo\n\n const {\n maxCount = false,\n autoPlay = true,\n interval,\n loop = false,\n position,\n railColor,\n trackColor,\n sliderHandleColor,\n sliderHandleBorderColor,\n startButtonColor,\n pauseButtonColor,\n backwardButtonColor,\n forwardButtonColor,\n } = player\n\n // 数据分组的依据有比较大的改变\n // X轴由2个逐渐增加\n // 从而保证每次更新时, X轴会自然的移动\n\n // 1. 获取所有唯一的 X 轴值并排序\n const uniqueXValues = Array.from(new Set(advancedVSeed.dataset.map((d) => d[encodingX]))).sort((a, b) => {\n // 假设X轴是数字或可以比较的\n return a > b ? 1 : -1\n })\n\n // 2. 生成specs\n // X轴由2个逐渐增加 -> 窗口大小 maxCount (默认20?)\n // 每次移动1个 -> step = 1\n const step = 1\n const specs: any[] = []\n\n // 我们清空默认数据,由 player 控制\n // 但是我们需要在初始状态下提供结构\n result.data = [\n {\n id: id,\n values: [], // 初始为空,由 player 填充第一帧\n },\n ]\n\n // 如果 maxCount 为 false,则不进行限制,显示所有数据\n // 或者如果X轴点数小于 maxCount,直接作为一个frame\n if (maxCount === false) {\n // 即使没有maxCount限制,我们也要模拟数据逐个增加的过程\n // 否则就没有动画效果了,直接显示最终结果\n // 所以这里我们需要生成一系列 specs,从 2 个点一直增加到所有点\n for (let currentSize = 2; currentSize <= uniqueXValues.length; currentSize += step) {\n // 窗口从 0 开始,长度为 currentSize\n const currentXValues = uniqueXValues.slice(0, currentSize)\n const frameData = advancedVSeed.dataset.filter((d) => currentXValues.includes(d[encodingX]))\n\n specs.push({\n data: {\n id: id,\n values: frameData,\n },\n })\n }\n } else if (uniqueXValues.length <= (maxCount as number)) {\n // 如果数据总量本身就小于等于 maxCount,那也是逐步增加到全部显示\n const limitCount = uniqueXValues.length\n for (let currentSize = 2; currentSize <= limitCount; currentSize += step) {\n // 窗口从 0 开始,长度为 currentSize\n const currentXValues = uniqueXValues.slice(0, currentSize)\n const frameData = advancedVSeed.dataset.filter((d) => currentXValues.includes(d[encodingX]))\n\n specs.push({\n data: {\n id: id,\n values: frameData,\n },\n })\n }\n } else {\n const limitCount = maxCount as number\n // 阶段1: 增长阶段 (Growing Phase)\n // 从 2 个点开始,逐渐增加到 maxCount 个点\n // 每次增加 step 个点 (或者尽量接近 step,这里简化为 i 代表当前窗口大小)\n // 假设初始窗口大小为 2\n for (let currentSize = 2; currentSize < limitCount; currentSize += step) {\n // 窗口从 0 开始,长度为 currentSize\n const currentXValues = uniqueXValues.slice(0, currentSize)\n const frameData = advancedVSeed.dataset.filter((d) => currentXValues.includes(d[encodingX]))\n\n specs.push({\n data: {\n id: id,\n values: frameData,\n },\n })\n }\n\n // 阶段2: 滑动阶段 (Sliding Phase)\n // 窗口大小固定为 maxCount,窗口起始位置向右移动\n for (let i = 0; i <= uniqueXValues.length - limitCount; i += step) {\n // 获取当前窗口的 X 值范围\n const currentXValues = uniqueXValues.slice(i, i + limitCount)\n // 过滤出这些 X 值对应的数据\n const frameData = advancedVSeed.dataset.filter((d) => currentXValues.includes(d[encodingX]))\n\n specs.push({\n data: {\n id: id,\n values: frameData,\n },\n })\n }\n }\n\n const duration = interval\n\n // 样式部分复用 playerXY\n return {\n ...result,\n stackCornerRadius: undefined,\n animationUpdate: {\n duration,\n },\n point: {\n visible: false,\n },\n player: {\n visible: true,\n auto: autoPlay,\n interval: interval,\n loop: loop,\n alternate: false,\n position: 'middle',\n orient: position,\n type: 'discrete',\n specs,\n controller: {\n visible: true,\n start: { visible: true, order: 0, style: { fill: startButtonColor } },\n pause: { visible: true, order: 1, style: { fill: pauseButtonColor } },\n backward: { visible: true, order: 2, style: { fill: backwardButtonColor } },\n forward: { visible: true, order: 3, position: 'end', style: { fill: forwardButtonColor } },\n },\n slider: {\n visible: true,\n railStyle: {\n visible: true,\n fill: railColor,\n [position === 'top' || position === 'bottom' ? 'height' : 'width']: 2,\n },\n trackStyle: {\n visible: true,\n fill: trackColor,\n [position === 'top' || position === 'bottom' ? 'height' : 'width']: 2,\n },\n handlerStyle: {\n visible: true,\n lineWidth: 2,\n stroke: sliderHandleBorderColor,\n fill: sliderHandleColor,\n size: 9,\n },\n },\n } as IPlayerSpec,\n } as unknown as ISpec\n}\n"],"names":["playerLine","spec","context","advancedVSeed","datasetReshapeInfo","chartType","baseConfig","result","datasetXY","player","id","unfoldInfo","encodingX","maxCount","autoPlay","interval","loop","position","railColor","trackColor","sliderHandleColor","sliderHandleBorderColor","startButtonColor","pauseButtonColor","backwardButtonColor","forwardButtonColor","uniqueXValues","Array","Set","d","a","b","step","specs","currentSize","currentXValues","frameData","limitCount","i","duration","undefined"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { VChartSpecPipe } from '../../../../../types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const playerPie: VChartSpecPipe;
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { groupBy } from "remeda";
|
|
2
|
+
import { datasetXY } from "../dataset/index.js";
|
|
3
|
+
const playerPie = (spec, context)=>{
|
|
4
|
+
const { advancedVSeed } = context;
|
|
5
|
+
const { dimensions = [], datasetReshapeInfo, chartType, encoding } = advancedVSeed;
|
|
6
|
+
const baseConfig = advancedVSeed.config[chartType];
|
|
7
|
+
const result = datasetXY(spec, context);
|
|
8
|
+
if (!baseConfig || !baseConfig.player) return result;
|
|
9
|
+
const { player } = baseConfig;
|
|
10
|
+
const id = datasetReshapeInfo[0].id;
|
|
11
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
|
12
|
+
const { encodingPlayer } = unfoldInfo;
|
|
13
|
+
const { maxCount, autoPlay = true, interval = 1000, loop = false, position, railColor, trackColor, sliderHandleColor, sliderHandleBorderColor, startButtonColor, pauseButtonColor, backwardButtonColor, forwardButtonColor } = player;
|
|
14
|
+
const dataGroups = groupBy(advancedVSeed.dataset, (item)=>item[encodingPlayer]);
|
|
15
|
+
if (result.data && 'values' in result.data) result.data.values = [];
|
|
16
|
+
const specs = Object.keys(dataGroups).sort().map((key)=>{
|
|
17
|
+
const items = dataGroups[key];
|
|
18
|
+
const sortedItems = items;
|
|
19
|
+
return {
|
|
20
|
+
data: {
|
|
21
|
+
id: id,
|
|
22
|
+
values: false === maxCount ? sortedItems : sortedItems.slice(0, maxCount)
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
const duration = interval;
|
|
27
|
+
const exchangeDuration = 0.6 * interval;
|
|
28
|
+
const dataKey = dimensions.filter((d)=>!encoding.player?.includes(d.id)).map((d)=>d.id);
|
|
29
|
+
const textSize = 36;
|
|
30
|
+
const padding = 12;
|
|
31
|
+
return {
|
|
32
|
+
...result,
|
|
33
|
+
dataKey,
|
|
34
|
+
stackCornerRadius: void 0,
|
|
35
|
+
animationUpdate: {
|
|
36
|
+
pie: [
|
|
37
|
+
{
|
|
38
|
+
type: 'update',
|
|
39
|
+
options: {
|
|
40
|
+
excludeChannels: [
|
|
41
|
+
'angle',
|
|
42
|
+
'startAngle',
|
|
43
|
+
'endAngle'
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
easing: 'linear',
|
|
47
|
+
duration
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
channel: [
|
|
51
|
+
'angle',
|
|
52
|
+
'startAngle',
|
|
53
|
+
'endAngle'
|
|
54
|
+
],
|
|
55
|
+
easing: 'circInOut',
|
|
56
|
+
duration: exchangeDuration
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
point: [
|
|
60
|
+
{
|
|
61
|
+
type: 'update',
|
|
62
|
+
easing: 'linear',
|
|
63
|
+
duration
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
line: [
|
|
67
|
+
{
|
|
68
|
+
type: 'update',
|
|
69
|
+
easing: 'linear',
|
|
70
|
+
duration
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
animationEnter: {
|
|
75
|
+
pie: [
|
|
76
|
+
{
|
|
77
|
+
type: 'update',
|
|
78
|
+
duration: exchangeDuration,
|
|
79
|
+
easing: 'circInOut'
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
animationExit: {
|
|
84
|
+
pie: [
|
|
85
|
+
{
|
|
86
|
+
type: 'fadeOut',
|
|
87
|
+
duration: exchangeDuration
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
customMark: [
|
|
92
|
+
{
|
|
93
|
+
type: 'text',
|
|
94
|
+
dataId: 'year',
|
|
95
|
+
style: {
|
|
96
|
+
textBaseline: 'bottom',
|
|
97
|
+
fontSize: textSize,
|
|
98
|
+
textAlign: 'right',
|
|
99
|
+
text: (datum)=>datum[encodingPlayer],
|
|
100
|
+
x: (_datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.width - padding,
|
|
101
|
+
y: (_datum, _ctx)=>textSize + padding,
|
|
102
|
+
fill: 'rgb(100, 100, 100)',
|
|
103
|
+
fillOpacity: 0.25
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
player: {
|
|
108
|
+
visible: true,
|
|
109
|
+
auto: autoPlay,
|
|
110
|
+
interval: interval,
|
|
111
|
+
loop: loop,
|
|
112
|
+
alternate: false,
|
|
113
|
+
position: 'middle',
|
|
114
|
+
orient: position,
|
|
115
|
+
type: 'discrete',
|
|
116
|
+
specs,
|
|
117
|
+
controller: {
|
|
118
|
+
visible: true,
|
|
119
|
+
start: {
|
|
120
|
+
visible: true,
|
|
121
|
+
order: 0,
|
|
122
|
+
style: {
|
|
123
|
+
fill: startButtonColor
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
pause: {
|
|
127
|
+
visible: true,
|
|
128
|
+
order: 1,
|
|
129
|
+
style: {
|
|
130
|
+
fill: pauseButtonColor
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
backward: {
|
|
134
|
+
visible: true,
|
|
135
|
+
order: 2,
|
|
136
|
+
style: {
|
|
137
|
+
fill: backwardButtonColor
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
forward: {
|
|
141
|
+
visible: true,
|
|
142
|
+
order: 3,
|
|
143
|
+
position: 'end',
|
|
144
|
+
style: {
|
|
145
|
+
fill: forwardButtonColor
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
slider: {
|
|
150
|
+
visible: true,
|
|
151
|
+
railStyle: {
|
|
152
|
+
visible: true,
|
|
153
|
+
fill: railColor,
|
|
154
|
+
['top' === position || 'bottom' === position ? 'height' : 'width']: 2
|
|
155
|
+
},
|
|
156
|
+
trackStyle: {
|
|
157
|
+
visible: true,
|
|
158
|
+
fill: trackColor,
|
|
159
|
+
['top' === position || 'bottom' === position ? 'height' : 'width']: 2
|
|
160
|
+
},
|
|
161
|
+
handlerStyle: {
|
|
162
|
+
visible: true,
|
|
163
|
+
lineWidth: 2,
|
|
164
|
+
stroke: sliderHandleBorderColor,
|
|
165
|
+
fill: sliderHandleColor,
|
|
166
|
+
size: 9
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
export { playerPie };
|
|
173
|
+
|
|
174
|
+
//# sourceMappingURL=playerPie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/player/playerPie.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/player/playerPie.ts"],"sourcesContent":["import type { IPlayerSpec, ISpec } from '@visactor/vchart'\nimport { groupBy } from 'remeda'\nimport type { Player, VChartSpecPipe } from 'src/types'\nimport { datasetXY } from '../dataset'\n\nexport const playerPie: VChartSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { dimensions = [], datasetReshapeInfo, chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { player: Player }\n const result = datasetXY(spec, context)\n\n if (!baseConfig || !baseConfig.player) {\n return result\n }\n const { player } = baseConfig\n\n const id = datasetReshapeInfo[0].id\n const { unfoldInfo } = datasetReshapeInfo[0]\n const { encodingPlayer } = unfoldInfo\n const {\n maxCount,\n autoPlay = true,\n interval = 1000,\n loop = false,\n position,\n railColor,\n trackColor,\n sliderHandleColor,\n sliderHandleBorderColor,\n startButtonColor,\n pauseButtonColor,\n backwardButtonColor,\n forwardButtonColor,\n } = player\n\n const dataGroups = groupBy(advancedVSeed.dataset, (item) => item[encodingPlayer])\n if (result.data && 'values' in result.data) {\n result.data.values = []\n }\n\n const specs = Object.keys(dataGroups)\n .sort()\n .map((key) => {\n const items = dataGroups[key]\n const sortedItems = items\n return {\n data: {\n id: id,\n values: maxCount === false ? sortedItems : sortedItems.slice(0, maxCount as number),\n },\n }\n })\n\n const duration = interval\n const exchangeDuration = interval * 0.6\n\n const dataKey = dimensions.filter((d) => !encoding.player?.includes(d.id)).map((d) => d.id)\n\n const textSize = 36\n const padding = 12\n return {\n ...result,\n dataKey,\n stackCornerRadius: undefined,\n animationUpdate: {\n pie: [\n {\n type: 'update',\n options: { excludeChannels: ['angle', 'startAngle', 'endAngle'] },\n easing: 'linear',\n duration,\n },\n {\n channel: ['angle', 'startAngle', 'endAngle'],\n easing: 'circInOut',\n duration: exchangeDuration,\n },\n ],\n point: [\n {\n type: 'update',\n easing: 'linear',\n duration,\n },\n ],\n line: [\n {\n type: 'update',\n easing: 'linear',\n duration,\n },\n ],\n },\n animationEnter: {\n pie: [\n {\n type: 'update',\n duration: exchangeDuration,\n easing: 'circInOut',\n },\n ],\n },\n animationExit: {\n pie: [\n {\n type: 'fadeOut',\n duration: exchangeDuration,\n },\n ],\n },\n customMark: [\n {\n type: 'text',\n dataId: 'year',\n style: {\n textBaseline: 'bottom',\n fontSize: textSize,\n textAlign: 'right',\n text: (datum: any) => datum[encodingPlayer],\n x: (_datum: any, ctx: any) => {\n return ctx.vchart.getChart().getCanvasRect()?.width - padding\n },\n y: (_datum: any, _ctx: any) => {\n return textSize + padding\n },\n fill: 'rgb(100, 100, 100)',\n fillOpacity: 0.25,\n },\n },\n ],\n player: {\n visible: true,\n auto: autoPlay,\n interval: interval,\n loop: loop,\n alternate: false,\n position: 'middle',\n orient: position,\n type: 'discrete',\n specs,\n controller: {\n visible: true,\n start: { visible: true, order: 0, style: { fill: startButtonColor } },\n pause: { visible: true, order: 1, style: { fill: pauseButtonColor } },\n backward: { visible: true, order: 2, style: { fill: backwardButtonColor } },\n forward: { visible: true, order: 3, position: 'end', style: { fill: forwardButtonColor } },\n },\n slider: {\n visible: true,\n railStyle: {\n visible: true,\n fill: railColor,\n [position === 'top' || position === 'bottom' ? 'height' : 'width']: 2,\n },\n trackStyle: {\n visible: true,\n fill: trackColor,\n [position === 'top' || position === 'bottom' ? 'height' : 'width']: 2,\n },\n handlerStyle: {\n visible: true,\n lineWidth: 2,\n stroke: sliderHandleBorderColor,\n fill: sliderHandleColor,\n size: 9,\n },\n },\n } as IPlayerSpec,\n } as unknown as ISpec\n}\n"],"names":["playerPie","spec","context","advancedVSeed","dimensions","datasetReshapeInfo","chartType","encoding","baseConfig","result","datasetXY","player","id","unfoldInfo","encodingPlayer","maxCount","autoPlay","interval","loop","position","railColor","trackColor","sliderHandleColor","sliderHandleBorderColor","startButtonColor","pauseButtonColor","backwardButtonColor","forwardButtonColor","dataGroups","groupBy","item","specs","Object","key","items","sortedItems","duration","exchangeDuration","dataKey","d","textSize","padding","undefined","datum","_datum","ctx","_ctx"],"mappings":"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"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { groupBy } from "remeda";
|
|
2
|
-
import { isPivotChart, isVTable } from "../../../../utils/index.js";
|
|
3
2
|
import { datasetScatter } from "../dataset/index.js";
|
|
4
|
-
const
|
|
5
|
-
const {
|
|
3
|
+
const playerScatter = (spec, context)=>{
|
|
4
|
+
const { advancedVSeed } = context;
|
|
6
5
|
const { datasetReshapeInfo, dimensions = [], chartType, encoding } = advancedVSeed;
|
|
7
6
|
const baseConfig = advancedVSeed.config[chartType];
|
|
8
7
|
const result = datasetScatter(spec, context);
|
|
9
|
-
if (!baseConfig || !baseConfig.player
|
|
8
|
+
if (!baseConfig || !baseConfig.player) return result;
|
|
10
9
|
const { player } = baseConfig;
|
|
11
10
|
const id = datasetReshapeInfo[0].id;
|
|
12
11
|
const { unfoldInfo } = datasetReshapeInfo[0];
|
|
13
12
|
const { encodingPlayer } = unfoldInfo;
|
|
14
13
|
const { autoPlay = true, interval = 1000, loop = false, position, railColor, trackColor, sliderHandleColor, sliderHandleBorderColor, startButtonColor, pauseButtonColor, backwardButtonColor, forwardButtonColor } = player;
|
|
14
|
+
const { maxCount } = player;
|
|
15
15
|
const dataGroups = groupBy(advancedVSeed.dataset, (item)=>item[encodingPlayer]);
|
|
16
16
|
if (result.data && 'values' in result.data) result.data.values = [];
|
|
17
17
|
const specs = Object.values(dataGroups).map((items)=>({
|
|
18
18
|
data: {
|
|
19
19
|
id: id,
|
|
20
|
-
values: items
|
|
20
|
+
values: maxCount ? items.slice(0, maxCount) : items
|
|
21
21
|
}
|
|
22
22
|
}));
|
|
23
23
|
const duration = interval;
|
|
@@ -172,6 +172,6 @@ const playerYY = (spec, context)=>{
|
|
|
172
172
|
}
|
|
173
173
|
};
|
|
174
174
|
};
|
|
175
|
-
export {
|
|
175
|
+
export { playerScatter };
|
|
176
176
|
|
|
177
|
-
//# sourceMappingURL=
|
|
177
|
+
//# sourceMappingURL=playerScatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/player/playerScatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/player/playerScatter.ts"],"sourcesContent":["import type { IPlayerSpec, ISpec } from '@visactor/vchart'\nimport { groupBy } from 'remeda'\nimport type { Player, VChartSpecPipe } from 'src/types'\nimport { datasetScatter } from '../dataset'\n\nexport const playerScatter: VChartSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { datasetReshapeInfo, dimensions = [], chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { player: Player }\n const result = datasetScatter(spec, context)\n\n if (!baseConfig || !baseConfig.player) {\n return result\n }\n const { player } = baseConfig\n\n const id = datasetReshapeInfo[0].id\n const { unfoldInfo } = datasetReshapeInfo[0]\n const { encodingPlayer } = unfoldInfo\n const {\n autoPlay = true,\n interval = 1000,\n loop = false,\n position,\n railColor,\n trackColor,\n sliderHandleColor,\n sliderHandleBorderColor,\n startButtonColor,\n pauseButtonColor,\n backwardButtonColor,\n forwardButtonColor,\n } = player\n\n const { maxCount } = player\n\n const dataGroups = groupBy(advancedVSeed.dataset, (item) => item[encodingPlayer])\n if (result.data && 'values' in result.data) {\n result.data.values = []\n }\n const specs = Object.values(dataGroups).map((items) => ({\n data: {\n id: id,\n values: maxCount ? items.slice(0, maxCount) : items,\n },\n }))\n\n const duration = interval\n const exchangeDuration = interval * 0.6\n const dataKey = dimensions.filter((d) => !encoding.player?.includes(d.id)).map((d) => d.id)\n const padding = 12\n const textSize = 36\n return {\n ...result,\n dataKey,\n stackCornerRadius: undefined,\n animationUpdate: {\n bar: [\n {\n type: 'update',\n options: { excludeChannels: ['x'] },\n easing: 'linear',\n duration,\n },\n {\n channel: ['x'],\n easing: 'circInOut',\n duration: exchangeDuration,\n },\n ],\n point: [\n {\n type: 'update',\n easing: 'linear',\n duration,\n },\n ],\n line: [\n {\n type: 'update',\n easing: 'linear',\n duration,\n },\n ],\n axis: {\n duration: exchangeDuration,\n easing: 'circInOut',\n },\n },\n animationEnter: {\n bar: [\n {\n type: 'moveIn',\n duration: exchangeDuration,\n easing: 'circInOut',\n options: {\n direction: 'x',\n orient: 'negative',\n },\n },\n ],\n },\n animationExit: {\n bar: [\n {\n type: 'fadeOut',\n duration: exchangeDuration,\n },\n ],\n },\n customMark: [\n {\n type: 'text',\n dataId: 'year',\n style: {\n textBaseline: 'bottom',\n fontSize: textSize,\n textAlign: 'right',\n fontFamily: 'PingFang SC',\n fontWeight: 600,\n text: (datum: any) => datum[encodingPlayer],\n x: (datum: any, ctx: any) => {\n return ctx.vchart.getChart().getCanvasRect()?.width - padding\n },\n y: (datum: any, ctx: any) => {\n return ctx.vchart.getChart().getCanvasRect()?.height - padding - textSize\n },\n fill: 'grey',\n fillOpacity: 0.5,\n },\n },\n ],\n player: {\n visible: true,\n auto: autoPlay,\n interval: interval,\n loop: loop,\n alternate: false,\n position: 'middle',\n orient: position,\n type: 'discrete',\n specs,\n controller: {\n visible: true,\n start: { visible: true, order: 0, style: { fill: startButtonColor } },\n pause: { visible: true, order: 1, style: { fill: pauseButtonColor } },\n backward: { visible: true, order: 2, style: { fill: backwardButtonColor } },\n forward: { visible: true, order: 3, position: 'end', style: { fill: forwardButtonColor } },\n },\n slider: {\n visible: true,\n railStyle: {\n visible: true,\n fill: railColor,\n [position === 'top' || position === 'bottom' ? 'height' : 'width']: 2,\n },\n trackStyle: {\n visible: true,\n fill: trackColor,\n [position === 'top' || position === 'bottom' ? 'height' : 'width']: 2,\n },\n handlerStyle: {\n visible: true,\n lineWidth: 2,\n stroke: sliderHandleBorderColor,\n fill: sliderHandleColor,\n size: 9,\n },\n },\n } as IPlayerSpec,\n } as unknown as ISpec\n}\n"],"names":["playerScatter","spec","context","advancedVSeed","datasetReshapeInfo","dimensions","chartType","encoding","baseConfig","result","datasetScatter","player","id","unfoldInfo","encodingPlayer","autoPlay","interval","loop","position","railColor","trackColor","sliderHandleColor","sliderHandleBorderColor","startButtonColor","pauseButtonColor","backwardButtonColor","forwardButtonColor","maxCount","dataGroups","groupBy","item","specs","Object","items","duration","exchangeDuration","dataKey","d","padding","textSize","undefined","datum","ctx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/table/pipes/corner/titleOnDimension.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/corner/titleOnDimension.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/table/pipes/corner/titleOnDimension.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/corner/titleOnDimension.ts"],"sourcesContent":["import type { PivotTableSpecPipe } from 'src/types'\n\nexport const titleOnDimension: PivotTableSpecPipe = (spec) => {\n const { rows = [], columns = [] } = spec\n\n return {\n ...spec,\n corner: {\n titleOnDimension: (rows as any[]).length <= 1 && (columns as any[]).length >= 1 ? 'column' : 'row',\n },\n }\n}\n"],"names":["titleOnDimension","spec","rows","columns"],"mappings":"AAEO,MAAMA,mBAAuC,CAACC;IACnD,MAAM,EAAEC,OAAO,EAAE,EAAEC,UAAU,EAAE,EAAE,GAAGF;IAEpC,OAAO;QACL,GAAGA,IAAI;QACP,QAAQ;YACN,kBAAmBC,KAAe,MAAM,IAAI,KAAMC,QAAkB,MAAM,IAAI,IAAI,WAAW;QAC/F;IACF;AACF"}
|