@visactor/vseed 0.3.15 → 0.4.0
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 +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/builder/builder/builder.d.ts +1212 -302
- 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/circlePacking.d.ts +5 -0
- package/dist/esm/builder/register/chartType/circlePacking.js +9 -0
- package/dist/esm/builder/register/chartType/circlePacking.js.map +1 -0
- 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/sunburst.d.ts +5 -0
- package/dist/esm/builder/register/chartType/sunburst.js +9 -0
- package/dist/esm/builder/register/chartType/sunburst.js.map +1 -0
- package/dist/esm/builder/register/chartType/treeMap.d.ts +5 -0
- package/dist/esm/builder/register/chartType/treeMap.js +9 -0
- package/dist/esm/builder/register/chartType/treeMap.js.map +1 -0
- package/dist/esm/dataReshape/constant.d.ts +2 -0
- package/dist/esm/dataReshape/constant.js +3 -1
- package/dist/esm/dataReshape/constant.js.map +1 -1
- package/dist/esm/dataReshape/unfoldDimensions.js +8 -2
- package/dist/esm/dataReshape/unfoldDimensions.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/circlePacking.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/circlePacking.js +33 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/circlePacking.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/index.d.ts +6 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/index.js +7 -4
- package/dist/esm/pipeline/advanced/chart/pipeline/raceBar.js +33 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/raceBar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/raceColumn.js +34 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/raceColumn.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/raceScatter.js +28 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/raceScatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js +1 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/sunburst.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/sunburst.js +33 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/sunburst.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/treeMap.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/treeMap.js +33 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/treeMap.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/circlePacking.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/circlePacking.js +27 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/circlePacking.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/index.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/index.js +4 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/index.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/sunburst.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/sunburst.js +27 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/sunburst.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/treeMap.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/treeMap.js +27 -0
- package/dist/esm/pipeline/advanced/chart/pipes/config/treeMap.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/hierarchy.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/hierarchy.js +75 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/hierarchy.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.d.ts +4 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.js +5 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceBar.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceBar.js +81 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceBar.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceColumn.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceColumn.js +81 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceColumn.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceScatter.d.ts +3 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceScatter.js +83 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/raceScatter.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/index.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/index.js +3 -1
- package/dist/esm/pipeline/spec/chart/pipeline/circlePacking.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/circlePacking.js +34 -0
- package/dist/esm/pipeline/spec/chart/pipeline/circlePacking.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 +3 -3
- package/dist/esm/pipeline/spec/chart/pipeline/raceBar.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/raceColumn.js +3 -3
- package/dist/esm/pipeline/spec/chart/pipeline/raceColumn.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/raceScatter.js +14 -7
- package/dist/esm/pipeline/spec/chart/pipeline/raceScatter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/sunburst.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/sunburst.js +34 -0
- package/dist/esm/pipeline/spec/chart/pipeline/sunburst.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/treeMap.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipeline/treeMap.js +37 -0
- package/dist/esm/pipeline/spec/chart/pipeline/treeMap.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/axes/bandAxisStyle.js +6 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/bandAxisStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/linearAxisStyle.js +6 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/linearAxisStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js +5 -2
- package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js +5 -2
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchy.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchy.js +114 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchy.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/index.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/dataset/index.js +2 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/circlePacking.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/circlePacking.js +36 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/circlePacking.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/index.d.ts +3 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/index.js +4 -1
- package/dist/esm/pipeline/spec/chart/pipes/{player/playerYBand.d.ts → init/sunburst.d.ts} +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/sunburst.js +44 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/sunburst.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/{player/playerXBand.d.ts → init/treeMap.d.ts} +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/treeMap.js +26 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/treeMap.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/index.d.ts +4 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/index.js +5 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/labelCirclePacking.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelCirclePacking.js +23 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelCirclePacking.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/{player/playerYLinear.d.ts → label/labelSunburst.d.ts} +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/labelSunburst.js +26 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelSunburst.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapGroup.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapGroup.js +31 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapGroup.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapLeaf.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapLeaf.js +68 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelTreeMapLeaf.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/player/index.d.ts +0 -4
- package/dist/esm/pipeline/spec/chart/pipes/player/index.js +0 -4
- package/dist/esm/pipeline/spec/chart/pipes/player/playerXY.js +45 -16
- package/dist/esm/pipeline/spec/chart/pipes/player/playerXY.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerYX.js +47 -21
- package/dist/esm/pipeline/spec/chart/pipes/player/playerYX.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerYY.js +13 -9
- package/dist/esm/pipeline/spec/chart/pipes/player/playerYY.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.js +2 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHierarchy.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHierarchy.js +84 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHierarchy.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/{player/playerXLinear.d.ts → tooltip/tooltipTreeMap.d.ts} +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipTreeMap.js +93 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipTreeMap.js.map +1 -0
- package/dist/esm/theme/common/player.js +2 -0
- package/dist/esm/theme/common/player.js.map +1 -1
- package/dist/esm/theme/dark/area.d.ts +156 -0
- package/dist/esm/theme/dark/area.js +29 -0
- package/dist/esm/theme/dark/area.js.map +1 -0
- package/dist/esm/theme/dark/bar.d.ts +238 -0
- package/dist/esm/theme/dark/bar.js +49 -0
- package/dist/esm/theme/dark/bar.js.map +1 -0
- package/dist/esm/theme/dark/boxPlot.d.ts +80 -0
- package/dist/esm/theme/dark/boxPlot.js +31 -0
- package/dist/esm/theme/dark/boxPlot.js.map +1 -0
- package/dist/esm/theme/dark/column.d.ts +411 -0
- package/dist/esm/theme/dark/column.js +64 -0
- package/dist/esm/theme/dark/column.js.map +1 -0
- package/dist/esm/theme/dark/dark.js +42 -328
- package/dist/esm/theme/dark/dark.js.map +1 -1
- package/dist/esm/theme/dark/dualAxis.d.ts +122 -0
- package/dist/esm/theme/dark/dualAxis.js +34 -0
- package/dist/esm/theme/dark/dualAxis.js.map +1 -0
- package/dist/esm/theme/dark/funnel.d.ts +64 -0
- package/dist/esm/theme/dark/funnel.js +22 -0
- package/dist/esm/theme/dark/funnel.js.map +1 -0
- package/dist/esm/theme/dark/heatmap.d.ts +66 -0
- package/dist/esm/theme/dark/heatmap.js +30 -0
- package/dist/esm/theme/dark/heatmap.js.map +1 -0
- package/dist/esm/theme/dark/hierarchy.d.ts +189 -0
- package/dist/esm/theme/dark/hierarchy.js +21 -0
- package/dist/esm/theme/dark/hierarchy.js.map +1 -0
- package/dist/esm/theme/dark/histogram.d.ts +252 -0
- package/dist/esm/theme/dark/histogram.js +29 -0
- package/dist/esm/theme/dark/histogram.js.map +1 -0
- package/dist/esm/theme/dark/line.d.ts +78 -0
- package/dist/esm/theme/dark/line.js +28 -0
- package/dist/esm/theme/dark/line.js.map +1 -0
- package/dist/esm/theme/dark/pie.d.ts +130 -0
- package/dist/esm/theme/dark/pie.js +26 -0
- package/dist/esm/theme/dark/pie.js.map +1 -0
- package/dist/esm/theme/dark/race.d.ts +717 -0
- package/dist/esm/theme/dark/race.js +138 -0
- package/dist/esm/theme/dark/race.js.map +1 -0
- package/dist/esm/theme/dark/radar.d.ts +63 -0
- package/dist/esm/theme/dark/radar.js +19 -0
- package/dist/esm/theme/dark/radar.js.map +1 -0
- package/dist/esm/theme/dark/rose.d.ts +128 -0
- package/dist/esm/theme/dark/rose.js +25 -0
- package/dist/esm/theme/dark/rose.js.map +1 -0
- package/dist/esm/theme/dark/scatter.d.ts +345 -0
- package/dist/esm/theme/dark/scatter.js +50 -0
- package/dist/esm/theme/dark/scatter.js.map +1 -0
- package/dist/esm/theme/light/area.d.ts +156 -0
- package/dist/esm/theme/light/area.js +29 -0
- package/dist/esm/theme/light/area.js.map +1 -0
- package/dist/esm/theme/light/bar.d.ts +238 -0
- package/dist/esm/theme/light/bar.js +49 -0
- package/dist/esm/theme/light/bar.js.map +1 -0
- package/dist/esm/theme/light/boxPlot.d.ts +80 -0
- package/dist/esm/theme/light/boxPlot.js +30 -0
- package/dist/esm/theme/light/boxPlot.js.map +1 -0
- package/dist/esm/theme/light/column.d.ts +411 -0
- package/dist/esm/theme/light/column.js +64 -0
- package/dist/esm/theme/light/column.js.map +1 -0
- package/dist/esm/theme/light/dualAxis.d.ts +122 -0
- package/dist/esm/theme/light/dualAxis.js +34 -0
- package/dist/esm/theme/light/dualAxis.js.map +1 -0
- package/dist/esm/theme/light/funnel.d.ts +64 -0
- package/dist/esm/theme/light/funnel.js +22 -0
- package/dist/esm/theme/light/funnel.js.map +1 -0
- package/dist/esm/theme/light/heatmap.d.ts +66 -0
- package/dist/esm/theme/light/heatmap.js +30 -0
- package/dist/esm/theme/light/heatmap.js.map +1 -0
- package/dist/esm/theme/light/hierarchy.d.ts +189 -0
- package/dist/esm/theme/light/hierarchy.js +21 -0
- package/dist/esm/theme/light/hierarchy.js.map +1 -0
- package/dist/esm/theme/light/histogram.d.ts +252 -0
- package/dist/esm/theme/light/histogram.js +29 -0
- package/dist/esm/theme/light/histogram.js.map +1 -0
- package/dist/esm/theme/light/light.js +42 -334
- package/dist/esm/theme/light/light.js.map +1 -1
- package/dist/esm/theme/light/line.d.ts +78 -0
- package/dist/esm/theme/light/line.js +28 -0
- package/dist/esm/theme/light/line.js.map +1 -0
- package/dist/esm/theme/light/pie.d.ts +130 -0
- package/dist/esm/theme/light/pie.js +26 -0
- package/dist/esm/theme/light/pie.js.map +1 -0
- package/dist/esm/theme/light/race.d.ts +899 -0
- package/dist/esm/theme/light/race.js +172 -0
- package/dist/esm/theme/light/race.js.map +1 -0
- package/dist/esm/theme/light/radar.d.ts +63 -0
- package/dist/esm/theme/light/radar.js +19 -0
- package/dist/esm/theme/light/radar.js.map +1 -0
- package/dist/esm/theme/light/rose.d.ts +128 -0
- package/dist/esm/theme/light/rose.js +25 -0
- package/dist/esm/theme/light/rose.js.map +1 -0
- package/dist/esm/theme/light/scatter.d.ts +345 -0
- package/dist/esm/theme/light/scatter.js +50 -0
- package/dist/esm/theme/light/scatter.js.map +1 -0
- package/dist/esm/types/chartType/area/zArea.d.ts +13 -2
- package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +13 -2
- package/dist/esm/types/chartType/bar/zBar.d.ts +13 -2
- package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +13 -2
- package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +13 -2
- package/dist/esm/types/chartType/boxPlot/zBoxPlot.d.ts +13 -2
- package/dist/esm/types/chartType/circlePacking/circlePacking.d.ts +85 -0
- package/dist/esm/types/chartType/circlePacking/circlePacking.js +0 -0
- package/dist/esm/types/chartType/circlePacking/index.d.ts +2 -0
- package/dist/esm/types/chartType/circlePacking/index.js +1 -0
- package/dist/esm/types/chartType/circlePacking/zCirclePacking.d.ts +263 -0
- package/dist/esm/types/chartType/circlePacking/zCirclePacking.js +19 -0
- package/dist/esm/types/chartType/circlePacking/zCirclePacking.js.map +1 -0
- package/dist/esm/types/chartType/column/zColumn.d.ts +13 -3
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +13 -3
- package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +13 -2
- package/dist/esm/types/chartType/donut/zDonut.d.ts +4 -1
- package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +26 -4
- package/dist/esm/types/chartType/funnel/zFunnel.d.ts +4 -1
- package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +2 -0
- package/dist/esm/types/chartType/histogram/zHistogram.d.ts +14 -3
- package/dist/esm/types/chartType/index.d.ts +3 -0
- package/dist/esm/types/chartType/index.js +3 -0
- package/dist/esm/types/chartType/line/zLine.d.ts +13 -2
- package/dist/esm/types/chartType/pie/zPie.d.ts +4 -1
- package/dist/esm/types/chartType/pivotTable/zPivotTable.d.ts +2 -0
- package/dist/esm/types/chartType/raceBar/raceBar.d.ts +3 -4
- package/dist/esm/types/chartType/raceBar/zRaceBar.d.ts +13 -3
- package/dist/esm/types/chartType/raceColumn/raceColumn.d.ts +3 -3
- package/dist/esm/types/chartType/raceColumn/zRaceColumn.d.ts +13 -3
- package/dist/esm/types/chartType/raceScatter/raceScatter.d.ts +16 -2
- package/dist/esm/types/chartType/raceScatter/zRaceScatter.d.ts +16 -4
- package/dist/esm/types/chartType/raceScatter/zRaceScatter.js +2 -0
- package/dist/esm/types/chartType/raceScatter/zRaceScatter.js.map +1 -1
- package/dist/esm/types/chartType/radar/zRadar.d.ts +4 -1
- package/dist/esm/types/chartType/rose/zRose.d.ts +4 -1
- package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +4 -1
- package/dist/esm/types/chartType/scatter/zScatter.d.ts +14 -3
- package/dist/esm/types/chartType/sunburst/index.d.ts +2 -0
- package/dist/esm/types/chartType/sunburst/index.js +1 -0
- package/dist/esm/types/chartType/sunburst/sunburst.d.ts +86 -0
- package/dist/esm/types/chartType/sunburst/sunburst.js +0 -0
- package/dist/esm/types/chartType/sunburst/zSunburst.d.ts +263 -0
- package/dist/esm/types/chartType/sunburst/zSunburst.js +19 -0
- package/dist/esm/types/chartType/sunburst/zSunburst.js.map +1 -0
- package/dist/esm/types/chartType/table/zTable.d.ts +2 -0
- package/dist/esm/types/chartType/treeMap/index.d.ts +2 -0
- package/dist/esm/types/chartType/treeMap/index.js +1 -0
- package/dist/esm/types/chartType/treeMap/treeMap.d.ts +85 -0
- package/dist/esm/types/chartType/treeMap/treeMap.js +0 -0
- package/dist/esm/types/chartType/treeMap/zTreeMap.d.ts +263 -0
- package/dist/esm/types/chartType/treeMap/zTreeMap.js +19 -0
- package/dist/esm/types/chartType/treeMap/zTreeMap.js.map +1 -0
- package/dist/esm/types/properties/chartType/chartType.d.ts +6 -1
- package/dist/esm/types/properties/chartType/chartType.js +6 -0
- package/dist/esm/types/properties/chartType/chartType.js.map +1 -1
- package/dist/esm/types/properties/config/annotation/index.d.ts +1 -1
- package/dist/esm/types/properties/config/annotation/index.js +1 -1
- package/dist/esm/types/properties/config/annotation/{zAnnotaion.js → zAnnotation.js} +1 -1
- package/dist/esm/types/properties/config/annotation/zAnnotation.js.map +1 -0
- package/dist/esm/types/properties/config/area.d.ts +18 -2
- package/dist/esm/types/properties/config/area.js +1 -1
- package/dist/esm/types/properties/config/area.js.map +1 -1
- package/dist/esm/types/properties/config/axes/bandAxis.d.ts +26 -0
- package/dist/esm/types/properties/config/axes/linearAxis.d.ts +30 -4
- package/dist/esm/types/properties/config/axes/zBandAxis.d.ts +8 -0
- package/dist/esm/types/properties/config/axes/zBandAxis.js +4 -0
- package/dist/esm/types/properties/config/axes/zBandAxis.js.map +1 -1
- package/dist/esm/types/properties/config/axes/zLinearAxis.d.ts +10 -2
- package/dist/esm/types/properties/config/axes/zLinearAxis.js +5 -1
- package/dist/esm/types/properties/config/axes/zLinearAxis.js.map +1 -1
- package/dist/esm/types/properties/config/bar.d.ts +27 -3
- package/dist/esm/types/properties/config/bar.js +1 -1
- package/dist/esm/types/properties/config/bar.js.map +1 -1
- package/dist/esm/types/properties/config/boxplot.d.ts +9 -1
- package/dist/esm/types/properties/config/boxplot.js +1 -1
- package/dist/esm/types/properties/config/boxplot.js.map +1 -1
- package/dist/esm/types/properties/config/circlePacking.d.ts +211 -0
- package/dist/esm/types/properties/config/circlePacking.js +18 -0
- package/dist/esm/types/properties/config/circlePacking.js.map +1 -0
- package/dist/esm/types/properties/config/column.d.ts +27 -3
- package/dist/esm/types/properties/config/column.js +1 -1
- package/dist/esm/types/properties/config/column.js.map +1 -1
- package/dist/esm/types/properties/config/config.d.ts +986 -183
- package/dist/esm/types/properties/config/config.js +6 -0
- package/dist/esm/types/properties/config/config.js.map +1 -1
- package/dist/esm/types/properties/config/dualAxis.d.ts +24 -4
- package/dist/esm/types/properties/config/dualAxis.js +1 -1
- package/dist/esm/types/properties/config/dualAxis.js.map +1 -1
- package/dist/esm/types/properties/config/heatmap.d.ts +8 -0
- package/dist/esm/types/properties/config/histogram.d.ts +9 -1
- package/dist/esm/types/properties/config/histogram.js +1 -1
- package/dist/esm/types/properties/config/histogram.js.map +1 -1
- package/dist/esm/types/properties/config/index.d.ts +3 -0
- package/dist/esm/types/properties/config/index.js +3 -0
- package/dist/esm/types/properties/config/line.d.ts +9 -1
- package/dist/esm/types/properties/config/line.js +1 -1
- package/dist/esm/types/properties/config/line.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 +0 -1
- package/dist/esm/types/properties/config/player/zPlayer.js +0 -1
- package/dist/esm/types/properties/config/player/zPlayer.js.map +1 -1
- package/dist/esm/types/properties/config/race.d.ts +64 -12
- package/dist/esm/types/properties/config/race.js +2 -2
- package/dist/esm/types/properties/config/race.js.map +1 -1
- package/dist/esm/types/properties/config/scatter.d.ts +10 -2
- package/dist/esm/types/properties/config/scatter.js +1 -1
- package/dist/esm/types/properties/config/scatter.js.map +1 -1
- package/dist/esm/types/properties/config/sunburst.d.ts +211 -0
- package/dist/esm/types/properties/config/sunburst.js +18 -0
- package/dist/esm/types/properties/config/sunburst.js.map +1 -0
- package/dist/esm/types/properties/config/treeMap.d.ts +211 -0
- package/dist/esm/types/properties/config/treeMap.js +18 -0
- package/dist/esm/types/properties/config/treeMap.js.map +1 -0
- package/dist/esm/types/properties/datasetReshapeInfo/datasetReshapeInfo.d.ts +2 -0
- package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.d.ts +4 -0
- package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js +2 -0
- package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js.map +1 -1
- package/dist/esm/types/properties/dimensions/hierarchyDimension.d.ts +11 -0
- package/dist/esm/types/properties/dimensions/hierarchyDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/index.d.ts +4 -0
- package/dist/esm/types/properties/dimensions/raceBarDimension.d.ts +17 -0
- package/dist/esm/types/properties/dimensions/raceBarDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/raceColumnDimension.d.ts +20 -0
- package/dist/esm/types/properties/dimensions/raceColumnDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/raceScatterDimension.d.ts +14 -0
- package/dist/esm/types/properties/dimensions/raceScatterDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/zDimensions.d.ts +6 -0
- package/dist/esm/types/properties/dimensions/zDimensions.js +2 -11
- package/dist/esm/types/properties/dimensions/zDimensions.js.map +1 -1
- package/dist/esm/types/properties/encoding/dimensionEncoding.d.ts +1 -1
- package/dist/esm/types/properties/encoding/encoding.d.ts +11 -4
- package/dist/esm/types/properties/encoding/zDimensionEncoding.d.ts +4 -0
- package/dist/esm/types/properties/encoding/zDimensionEncoding.js +6 -2
- package/dist/esm/types/properties/encoding/zDimensionEncoding.js.map +1 -1
- package/dist/esm/types/properties/encoding/zEncoding.d.ts +4 -2
- package/dist/esm/types/properties/encoding/zEncoding.js +4 -2
- package/dist/esm/types/properties/encoding/zEncoding.js.map +1 -1
- package/dist/esm/types/properties/measures/hierarchyMeasures.d.ts +4 -0
- package/dist/esm/types/properties/measures/hierarchyMeasures.js +0 -0
- package/dist/esm/types/properties/measures/index.d.ts +2 -0
- package/dist/esm/types/properties/measures/raceBarMeasure.d.ts +12 -0
- package/dist/esm/types/properties/measures/raceBarMeasure.js +0 -0
- package/dist/esm/types/properties/theme/customTheme.d.ts +2762 -1156
- package/dist/esm/types/vseed.d.ts +2 -2
- package/dist/esm/types/zVseed.d.ts +1257 -266
- package/dist/esm/types/zVseed.js +4 -1
- package/dist/esm/types/zVseed.js.map +1 -1
- package/dist/umd/index.js +3912 -2187
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -2
- package/dist/esm/pipeline/spec/chart/pipes/player/playerXBand.js +0 -10
- package/dist/esm/pipeline/spec/chart/pipes/player/playerXBand.js.map +0 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerXLinear.js +0 -14
- package/dist/esm/pipeline/spec/chart/pipes/player/playerXLinear.js.map +0 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerYBand.js +0 -13
- package/dist/esm/pipeline/spec/chart/pipes/player/playerYBand.js.map +0 -1
- package/dist/esm/pipeline/spec/chart/pipes/player/playerYLinear.js +0 -14
- package/dist/esm/pipeline/spec/chart/pipes/player/playerYLinear.js.map +0 -1
- package/dist/esm/types/properties/config/annotation/zAnnotaion.js.map +0 -1
- /package/dist/esm/types/properties/config/annotation/{zAnnotaion.d.ts → zAnnotation.d.ts} +0 -0
|
@@ -1,27 +1,42 @@
|
|
|
1
|
-
import { groupBy } from "remeda";
|
|
1
|
+
import { groupBy, uniqueBy } from "remeda";
|
|
2
2
|
import { isPivotChart, isVTable } from "../../../../utils/index.js";
|
|
3
3
|
import { datasetXY } from "../dataset/index.js";
|
|
4
4
|
const playerXY = (spec, context)=>{
|
|
5
5
|
const { vseed, advancedVSeed } = context;
|
|
6
|
-
const { datasetReshapeInfo, chartType } = advancedVSeed;
|
|
6
|
+
const { dimensions = [], datasetReshapeInfo, chartType, encoding } = advancedVSeed;
|
|
7
7
|
const baseConfig = advancedVSeed.config[chartType];
|
|
8
8
|
const result = datasetXY(spec, context);
|
|
9
|
-
if (!
|
|
9
|
+
if (!baseConfig || !baseConfig.player || isVTable(vseed) || isPivotChart(vseed)) return result;
|
|
10
10
|
const { player } = baseConfig;
|
|
11
11
|
const id = datasetReshapeInfo[0].id;
|
|
12
|
-
const {
|
|
13
|
-
const
|
|
12
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
|
13
|
+
const { encodingPlayer, encodingX } = unfoldInfo;
|
|
14
|
+
const { measureValue } = foldInfo;
|
|
15
|
+
const { maxCount, autoPlay = true, interval = 1000, loop = false, position, railColor, trackColor, sliderHandleColor, sliderHandleBorderColor, startButtonColor, pauseButtonColor, backwardButtonColor, forwardButtonColor } = player;
|
|
16
|
+
const dataGroups = groupBy(advancedVSeed.dataset, (item)=>item[encodingPlayer]);
|
|
14
17
|
if (result.data && 'values' in result.data) result.data.values = [];
|
|
15
|
-
const
|
|
18
|
+
const xValues = uniqueBy(advancedVSeed.dataset.map((d)=>d[encodingX]), (item)=>item);
|
|
19
|
+
const specs = Object.values(dataGroups).map((items)=>{
|
|
20
|
+
const filledItems = items.map((item)=>({
|
|
21
|
+
...item,
|
|
22
|
+
[encodingX]: xValues.find((xValue)=>xValue === item[encodingX]) || 0
|
|
23
|
+
}));
|
|
24
|
+
const sortedItems = filledItems.sort((a, b)=>b[measureValue] - a[measureValue]);
|
|
25
|
+
return {
|
|
16
26
|
data: {
|
|
17
27
|
id: id,
|
|
18
|
-
values:
|
|
28
|
+
values: sortedItems.slice(0, maxCount)
|
|
19
29
|
}
|
|
20
|
-
}
|
|
30
|
+
};
|
|
31
|
+
});
|
|
21
32
|
const duration = interval;
|
|
22
33
|
const exchangeDuration = 0.6 * interval;
|
|
34
|
+
const dataKey = dimensions.filter((d)=>!encoding.player?.includes(d.id)).map((d)=>d.id);
|
|
35
|
+
const textSize = 36;
|
|
36
|
+
const padding = 12;
|
|
23
37
|
return {
|
|
24
38
|
...result,
|
|
39
|
+
dataKey,
|
|
25
40
|
stackCornerRadius: void 0,
|
|
26
41
|
animationUpdate: {
|
|
27
42
|
bar: [
|
|
@@ -77,6 +92,22 @@ const playerXY = (spec, context)=>{
|
|
|
77
92
|
},
|
|
78
93
|
animationExit: {
|
|
79
94
|
bar: [
|
|
95
|
+
{
|
|
96
|
+
type: 'moveOut',
|
|
97
|
+
options: {
|
|
98
|
+
direction: 'y',
|
|
99
|
+
orient: 'negative'
|
|
100
|
+
},
|
|
101
|
+
duration: exchangeDuration
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
type: 'moveOut',
|
|
105
|
+
options: {
|
|
106
|
+
direction: 'x',
|
|
107
|
+
orient: 'negative'
|
|
108
|
+
},
|
|
109
|
+
duration: exchangeDuration
|
|
110
|
+
},
|
|
80
111
|
{
|
|
81
112
|
type: 'fadeOut',
|
|
82
113
|
duration: exchangeDuration
|
|
@@ -89,15 +120,13 @@ const playerXY = (spec, context)=>{
|
|
|
89
120
|
dataId: 'year',
|
|
90
121
|
style: {
|
|
91
122
|
textBaseline: 'bottom',
|
|
92
|
-
fontSize:
|
|
123
|
+
fontSize: textSize,
|
|
93
124
|
textAlign: 'right',
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
fill: 'grey',
|
|
100
|
-
fillOpacity: 0.5
|
|
125
|
+
text: (datum)=>datum[encodingPlayer],
|
|
126
|
+
x: (_datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.width - padding,
|
|
127
|
+
y: (_datum, _ctx)=>textSize + padding,
|
|
128
|
+
fill: 'rgb(100, 100, 100)',
|
|
129
|
+
fillOpacity: 0.25
|
|
101
130
|
}
|
|
102
131
|
}
|
|
103
132
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/player/playerXY.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/player/playerXY.ts"],"sourcesContent":["import type { IPlayerSpec, ISpec } from '@visactor/vchart'\nimport { groupBy } from 'remeda'\nimport { isPivotChart, isVTable } from 'src/pipeline/utils'\nimport type { Player, VChartSpecPipe } from 'src/types'\nimport { datasetXY } from '../dataset'\n\nexport const playerXY: VChartSpecPipe = (spec, context) => {\n const { vseed, 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 (!
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/player/playerXY.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/player/playerXY.ts"],"sourcesContent":["import type { IPlayerSpec, ISpec } from '@visactor/vchart'\nimport { groupBy, uniqueBy } from 'remeda'\nimport { isPivotChart, isVTable } from 'src/pipeline/utils'\nimport type { Player, VChartSpecPipe } from 'src/types'\nimport { datasetXY } from '../dataset'\n\nexport const playerXY: VChartSpecPipe = (spec, context) => {\n const { vseed, 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 || isVTable(vseed) || isPivotChart(vseed)) {\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: sortedItems.slice(0, maxCount),\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":["playerXY","spec","context","vseed","advancedVSeed","dimensions","datasetReshapeInfo","chartType","encoding","baseConfig","result","datasetXY","isVTable","isPivotChart","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,27 +1,42 @@
|
|
|
1
|
-
import { groupBy } from "remeda";
|
|
1
|
+
import { groupBy, uniqueBy } from "remeda";
|
|
2
2
|
import { isPivotChart, isVTable } from "../../../../utils/index.js";
|
|
3
3
|
import { datasetYX } from "../dataset/index.js";
|
|
4
4
|
const playerYX = (spec, context)=>{
|
|
5
5
|
const { vseed, advancedVSeed } = context;
|
|
6
|
-
const { datasetReshapeInfo, chartType } = advancedVSeed;
|
|
6
|
+
const { dimensions = [], datasetReshapeInfo, chartType, encoding } = advancedVSeed;
|
|
7
7
|
const baseConfig = advancedVSeed.config[chartType];
|
|
8
8
|
const result = datasetYX(spec, context);
|
|
9
|
-
if (!
|
|
9
|
+
if (!baseConfig || !baseConfig.player || isVTable(vseed) || isPivotChart(vseed)) return result;
|
|
10
10
|
const { player } = baseConfig;
|
|
11
11
|
const id = datasetReshapeInfo[0].id;
|
|
12
|
-
const {
|
|
13
|
-
const
|
|
12
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
|
13
|
+
const { encodingPlayer, encodingY } = unfoldInfo;
|
|
14
|
+
const { measureValue } = foldInfo;
|
|
15
|
+
const { maxCount, autoPlay = true, interval = 1000, loop = false, position, railColor, trackColor, sliderHandleColor, sliderHandleBorderColor, startButtonColor, pauseButtonColor, backwardButtonColor, forwardButtonColor } = player;
|
|
16
|
+
const duration = interval;
|
|
17
|
+
const exchangeDuration = 0.6 * interval;
|
|
18
|
+
const dataGroups = groupBy(advancedVSeed.dataset, (item)=>item[encodingPlayer]);
|
|
14
19
|
if (result.data && 'values' in result.data) result.data.values = [];
|
|
15
|
-
const
|
|
20
|
+
const yValues = uniqueBy(advancedVSeed.dataset.map((d)=>d[encodingY]), (item)=>item);
|
|
21
|
+
const specs = Object.values(dataGroups).map((items)=>{
|
|
22
|
+
const filledItems = items.map((item)=>({
|
|
23
|
+
...item,
|
|
24
|
+
[encodingY]: yValues.find((yValue)=>yValue === item[encodingY]) || 0
|
|
25
|
+
}));
|
|
26
|
+
const sortedItems = filledItems.sort((a, b)=>b[measureValue] - a[measureValue]);
|
|
27
|
+
return {
|
|
16
28
|
data: {
|
|
17
29
|
id: id,
|
|
18
|
-
values:
|
|
30
|
+
values: sortedItems.slice(0, maxCount)
|
|
19
31
|
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
const dataKey = dimensions.filter((d)=>!encoding.player?.includes(d.id)).map((d)=>d.id);
|
|
35
|
+
const textSize = 36;
|
|
36
|
+
const padding = 12;
|
|
23
37
|
return {
|
|
24
38
|
...result,
|
|
39
|
+
dataKey,
|
|
25
40
|
stackCornerRadius: void 0,
|
|
26
41
|
animationUpdate: {
|
|
27
42
|
bar: [
|
|
@@ -42,11 +57,7 @@ const playerYX = (spec, context)=>{
|
|
|
42
57
|
easing: 'circInOut',
|
|
43
58
|
duration: exchangeDuration
|
|
44
59
|
}
|
|
45
|
-
]
|
|
46
|
-
axis: {
|
|
47
|
-
duration: exchangeDuration,
|
|
48
|
-
easing: 'circInOut'
|
|
49
|
-
}
|
|
60
|
+
]
|
|
50
61
|
},
|
|
51
62
|
animationEnter: {
|
|
52
63
|
bar: [
|
|
@@ -63,6 +74,21 @@ const playerYX = (spec, context)=>{
|
|
|
63
74
|
},
|
|
64
75
|
animationExit: {
|
|
65
76
|
bar: [
|
|
77
|
+
{
|
|
78
|
+
type: 'moveOut',
|
|
79
|
+
options: {
|
|
80
|
+
direction: 'x'
|
|
81
|
+
},
|
|
82
|
+
duration: exchangeDuration
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'moveOut',
|
|
86
|
+
options: {
|
|
87
|
+
direction: 'y',
|
|
88
|
+
orient: 'negative'
|
|
89
|
+
},
|
|
90
|
+
duration: exchangeDuration
|
|
91
|
+
},
|
|
66
92
|
{
|
|
67
93
|
type: 'fadeOut',
|
|
68
94
|
duration: exchangeDuration
|
|
@@ -75,15 +101,15 @@ const playerYX = (spec, context)=>{
|
|
|
75
101
|
dataId: 'year',
|
|
76
102
|
style: {
|
|
77
103
|
textBaseline: 'bottom',
|
|
78
|
-
fontSize:
|
|
104
|
+
fontSize: textSize,
|
|
79
105
|
textAlign: 'right',
|
|
80
106
|
fontFamily: 'PingFang SC',
|
|
81
107
|
fontWeight: 600,
|
|
82
|
-
text: (datum)=>datum
|
|
83
|
-
x: (
|
|
84
|
-
y: (
|
|
85
|
-
fill: '
|
|
86
|
-
fillOpacity: 0.
|
|
108
|
+
text: (datum)=>datum[encodingPlayer],
|
|
109
|
+
x: (_datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.width - padding,
|
|
110
|
+
y: (_datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.height - padding - textSize,
|
|
111
|
+
fill: 'rgb(100, 100, 100)',
|
|
112
|
+
fillOpacity: 0.25
|
|
87
113
|
}
|
|
88
114
|
}
|
|
89
115
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/player/playerYX.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/player/playerYX.ts"],"sourcesContent":["import type { IPlayerSpec, ISpec } from '@visactor/vchart'\nimport { groupBy } from 'remeda'\nimport { isPivotChart, isVTable } from 'src/pipeline/utils'\nimport type { Player, VChartSpecPipe } from 'src/types'\nimport { datasetYX } from '../dataset'\n\nexport const playerYX: VChartSpecPipe = (spec, context) => {\n const { vseed, advancedVSeed } = context\n const { datasetReshapeInfo, chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { player: Player }\n const result = datasetYX(spec, context)\n\n if (!
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/player/playerYX.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/player/playerYX.ts"],"sourcesContent":["import type { IPlayerSpec, ISpec } from '@visactor/vchart'\nimport { groupBy, uniqueBy } from 'remeda'\nimport { isPivotChart, isVTable } from 'src/pipeline/utils'\nimport type { Player, VChartSpecPipe } from 'src/types'\nimport { datasetYX } from '../dataset'\n\nexport const playerYX: VChartSpecPipe = (spec, context) => {\n const { vseed, 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 || isVTable(vseed) || isPivotChart(vseed)) {\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: sortedItems.slice(0, maxCount),\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":["playerYX","spec","context","vseed","advancedVSeed","dimensions","datasetReshapeInfo","chartType","encoding","baseConfig","result","datasetYX","isVTable","isPivotChart","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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"}
|
|
@@ -3,14 +3,16 @@ import { isPivotChart, isVTable } from "../../../../utils/index.js";
|
|
|
3
3
|
import { datasetScatter } from "../dataset/index.js";
|
|
4
4
|
const playerYY = (spec, context)=>{
|
|
5
5
|
const { vseed, advancedVSeed } = context;
|
|
6
|
-
const { datasetReshapeInfo, chartType, encoding } = advancedVSeed;
|
|
6
|
+
const { datasetReshapeInfo, dimensions = [], chartType, encoding } = advancedVSeed;
|
|
7
7
|
const baseConfig = advancedVSeed.config[chartType];
|
|
8
8
|
const result = datasetScatter(spec, context);
|
|
9
|
-
if (!
|
|
9
|
+
if (!baseConfig || !baseConfig.player || isVTable(vseed) || isPivotChart(vseed)) return result;
|
|
10
10
|
const { player } = baseConfig;
|
|
11
11
|
const id = datasetReshapeInfo[0].id;
|
|
12
|
-
const {
|
|
13
|
-
const
|
|
12
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
|
13
|
+
const { encodingPlayer } = unfoldInfo;
|
|
14
|
+
const { autoPlay = true, interval = 1000, loop = false, position, railColor, trackColor, sliderHandleColor, sliderHandleBorderColor, startButtonColor, pauseButtonColor, backwardButtonColor, forwardButtonColor } = player;
|
|
15
|
+
const dataGroups = groupBy(advancedVSeed.dataset, (item)=>item[encodingPlayer]);
|
|
14
16
|
if (result.data && 'values' in result.data) result.data.values = [];
|
|
15
17
|
const specs = Object.values(dataGroups).map((items)=>({
|
|
16
18
|
data: {
|
|
@@ -18,9 +20,11 @@ const playerYY = (spec, context)=>{
|
|
|
18
20
|
values: items
|
|
19
21
|
}
|
|
20
22
|
}));
|
|
21
|
-
const dataKey = encoding.color;
|
|
22
23
|
const duration = interval;
|
|
23
24
|
const exchangeDuration = 0.6 * interval;
|
|
25
|
+
const dataKey = dimensions.filter((d)=>!encoding.player?.includes(d.id)).map((d)=>d.id);
|
|
26
|
+
const padding = 12;
|
|
27
|
+
const textSize = 36;
|
|
24
28
|
return {
|
|
25
29
|
...result,
|
|
26
30
|
dataKey,
|
|
@@ -91,13 +95,13 @@ const playerYY = (spec, context)=>{
|
|
|
91
95
|
dataId: 'year',
|
|
92
96
|
style: {
|
|
93
97
|
textBaseline: 'bottom',
|
|
94
|
-
fontSize:
|
|
98
|
+
fontSize: textSize,
|
|
95
99
|
textAlign: 'right',
|
|
96
100
|
fontFamily: 'PingFang SC',
|
|
97
101
|
fontWeight: 600,
|
|
98
|
-
text: (datum)=>datum
|
|
99
|
-
x: (datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.width -
|
|
100
|
-
y: (datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.height -
|
|
102
|
+
text: (datum)=>datum[encodingPlayer],
|
|
103
|
+
x: (datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.width - padding,
|
|
104
|
+
y: (datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.height - padding - textSize,
|
|
101
105
|
fill: 'grey',
|
|
102
106
|
fillOpacity: 0.5
|
|
103
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/player/playerYY.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/player/playerYY.ts"],"sourcesContent":["import type { IPlayerSpec, ISpec } from '@visactor/vchart'\nimport { groupBy } from 'remeda'\nimport { isPivotChart, isVTable } from 'src/pipeline/utils'\nimport type { Player, VChartSpecPipe } from 'src/types'\nimport { datasetScatter } from '../dataset'\n\nexport const playerYY: VChartSpecPipe = (spec, context) => {\n const { vseed, advancedVSeed } = context\n const { datasetReshapeInfo, chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { player: Player }\n const result = datasetScatter(spec, context)\n\n if (!
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/player/playerYY.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/player/playerYY.ts"],"sourcesContent":["import type { IPlayerSpec, ISpec } from '@visactor/vchart'\nimport { groupBy } from 'remeda'\nimport { isPivotChart, isVTable } from 'src/pipeline/utils'\nimport type { Player, VChartSpecPipe } from 'src/types'\nimport { datasetScatter } from '../dataset'\n\nexport const playerYY: VChartSpecPipe = (spec, context) => {\n const { vseed, 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 || isVTable(vseed) || isPivotChart(vseed)) {\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 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: 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":["playerYY","spec","context","vseed","advancedVSeed","datasetReshapeInfo","dimensions","chartType","encoding","baseConfig","result","datasetScatter","isVTable","isPivotChart","player","id","unfoldInfo","encodingPlayer","autoPlay","interval","loop","position","railColor","trackColor","sliderHandleColor","sliderHandleBorderColor","startButtonColor","pauseButtonColor","backwardButtonColor","forwardButtonColor","dataGroups","groupBy","item","specs","Object","items","duration","exchangeDuration","dataKey","d","padding","textSize","undefined","datum","ctx"],"mappings":"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"}
|
|
@@ -4,4 +4,5 @@ import { tooltipScatter } from "./tooltipScatter.js";
|
|
|
4
4
|
import { tooltipHeatmap } from "./tooltipHeatmap.js";
|
|
5
5
|
import { tooltipBoxplot } from "./tooltipBoxplot.js";
|
|
6
6
|
import { tooltipHistogram } from "./tooltipHistogram.js";
|
|
7
|
-
|
|
7
|
+
import { tooltipHierarchy } from "./tooltipHierarchy.js";
|
|
8
|
+
export { tooltip, tooltipBoxplot, tooltipDualAxis, tooltipHeatmap, tooltipHierarchy, tooltipHistogram, tooltipOfDualAxisSeries, tooltipScatter };
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { tooltip as external_tooltip_js_tooltip } from "./tooltip.js";
|
|
2
|
+
import { pipe, uniqueBy } from "remeda";
|
|
3
|
+
import { createFormatterByMeasure, findMeasureById } from "../../../../utils/index.js";
|
|
4
|
+
const tooltipHierarchy = (spec, context)=>{
|
|
5
|
+
const result = external_tooltip_js_tooltip(spec, context);
|
|
6
|
+
const { advancedVSeed, vseed } = context;
|
|
7
|
+
const { datasetReshapeInfo, dimensions = [], encoding } = advancedVSeed;
|
|
8
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
|
9
|
+
if (result.tooltip) {
|
|
10
|
+
if (!result.tooltip.mark) result.tooltip.mark = {};
|
|
11
|
+
result.tooltip.mark = {
|
|
12
|
+
title: {
|
|
13
|
+
visible: true,
|
|
14
|
+
value: (val)=>val?.datum?.map((data)=>data.name).join(' / ')
|
|
15
|
+
},
|
|
16
|
+
content: createMarkContent(encoding.tooltip || [], dimensions, vseed.measures, foldInfo, unfoldInfo)
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
const createMarkContent = (tooltip, dimensions = [], measures = [], foldInfo, unfoldInfo)=>{
|
|
22
|
+
const dims = pipe(dimensions.filter((item)=>tooltip.includes(item.id)), uniqueBy((item)=>item.id), uniqueBy((item)=>item.alias), uniqueBy((item)=>item.alias));
|
|
23
|
+
const meas = pipe(measures.filter((item)=>tooltip.includes(item.id)), uniqueBy((item)=>item.id), uniqueBy((item)=>item.alias));
|
|
24
|
+
const dimContent = dims.map((item)=>({
|
|
25
|
+
visible: (datum)=>!!datum[item.id],
|
|
26
|
+
hasShape: true,
|
|
27
|
+
shapeType: 'rectRound',
|
|
28
|
+
key: (v)=>{
|
|
29
|
+
const datum = v;
|
|
30
|
+
if (item.alias || item.id) return item.alias || item.id;
|
|
31
|
+
return datum && datum[item.id];
|
|
32
|
+
},
|
|
33
|
+
value: (v)=>{
|
|
34
|
+
const datum = v;
|
|
35
|
+
return datum && datum[item.id];
|
|
36
|
+
}
|
|
37
|
+
}));
|
|
38
|
+
const defaultContent = {
|
|
39
|
+
visible: true,
|
|
40
|
+
hasShape: true,
|
|
41
|
+
shapeType: 'rectRound',
|
|
42
|
+
key: (v)=>{
|
|
43
|
+
const { measureName } = foldInfo;
|
|
44
|
+
const { encodingColor: colorName } = unfoldInfo;
|
|
45
|
+
const datum = v;
|
|
46
|
+
return datum && datum[measureName || colorName] || '';
|
|
47
|
+
},
|
|
48
|
+
value: (v)=>{
|
|
49
|
+
const { measureId, measureValue } = foldInfo;
|
|
50
|
+
const datum = v;
|
|
51
|
+
if (!datum) return '';
|
|
52
|
+
const value = datum[measureValue];
|
|
53
|
+
const id = datum[measureId];
|
|
54
|
+
const measure = findMeasureById(measures, id);
|
|
55
|
+
if (!measure) return String(value);
|
|
56
|
+
const formatter = createFormatterByMeasure(measure);
|
|
57
|
+
return formatter(value);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const meaContent = meas.map((item)=>({
|
|
61
|
+
visible: true,
|
|
62
|
+
hasShape: true,
|
|
63
|
+
shapeType: 'rectRound',
|
|
64
|
+
key: item.alias || item.id,
|
|
65
|
+
value: (v)=>{
|
|
66
|
+
const datum = v;
|
|
67
|
+
if (!datum) return '';
|
|
68
|
+
const id = item.id;
|
|
69
|
+
if (!datum) return '';
|
|
70
|
+
const value = datum[id];
|
|
71
|
+
const measure = findMeasureById(measures, id);
|
|
72
|
+
const formatter = createFormatterByMeasure(measure);
|
|
73
|
+
return formatter(value);
|
|
74
|
+
}
|
|
75
|
+
}));
|
|
76
|
+
return [
|
|
77
|
+
...dimContent,
|
|
78
|
+
defaultContent,
|
|
79
|
+
...meaContent
|
|
80
|
+
];
|
|
81
|
+
};
|
|
82
|
+
export { tooltipHierarchy };
|
|
83
|
+
|
|
84
|
+
//# sourceMappingURL=tooltipHierarchy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipHierarchy.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipHierarchy.ts"],"sourcesContent":["import type { Datum, FoldInfo, HierarchyDimension, HierarchyMeasure, UnfoldInfo, VChartSpecPipe } from 'src/types'\nimport { tooltip as commonTooltip } from './tooltip'\nimport { pipe, uniqueBy } from 'remeda'\nimport { createFormatterByMeasure, findMeasureById } from 'src/pipeline/utils'\n\nexport const tooltipHierarchy: VChartSpecPipe = (spec, context) => {\n // Reuse common tooltip logic\n const result = commonTooltip(spec, context)\n const { advancedVSeed, vseed } = context\n const { datasetReshapeInfo, dimensions = [], encoding } = advancedVSeed\n const { foldInfo, unfoldInfo } = datasetReshapeInfo[0]\n\n if (result.tooltip) {\n if (!result.tooltip.mark) {\n result.tooltip.mark = {}\n }\n\n result.tooltip.mark = {\n title: {\n visible: true,\n value: (val: any) => {\n return val?.datum?.map((data: any) => data.name).join(' / ')\n },\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions as HierarchyDimension[],\n vseed.measures as HierarchyMeasure[],\n foldInfo,\n unfoldInfo,\n ),\n }\n }\n\n return result\n}\n\nconst createMarkContent = (\n tooltip: string[],\n dimensions: HierarchyDimension[] = [],\n measures: HierarchyMeasure[] = [],\n foldInfo: FoldInfo,\n unfoldInfo: UnfoldInfo,\n) => {\n const dims = pipe(\n dimensions.filter((item) => tooltip.includes(item.id)),\n uniqueBy((item: HierarchyDimension) => item.id),\n uniqueBy((item: HierarchyDimension) => item.alias),\n uniqueBy((item: HierarchyDimension) => item.alias),\n )\n const meas = pipe(\n measures.filter((item) => tooltip.includes(item.id)),\n uniqueBy((item: HierarchyMeasure) => item.id),\n uniqueBy((item: HierarchyMeasure) => item.alias),\n )\n\n const dimContent = dims.map((item: HierarchyDimension) => ({\n visible: (datum: Datum) => {\n return !!datum[item.id]\n },\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 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 const meaContent = meas.map((item: HierarchyMeasure) => ({\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) {\n return ''\n }\n const value = datum[id] as string | number\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }))\n\n return [...dimContent, defaultContent, ...meaContent] as object[]\n}\n"],"names":["tooltipHierarchy","spec","context","result","commonTooltip","advancedVSeed","vseed","datasetReshapeInfo","dimensions","encoding","foldInfo","unfoldInfo","val","data","createMarkContent","tooltip","measures","dims","pipe","item","uniqueBy","meas","dimContent","datum","v","defaultContent","measureName","colorName","measureId","measureValue","value","id","measure","findMeasureById","String","formatter","createFormatterByMeasure","meaContent"],"mappings":"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"}
|
package/dist/esm/pipeline/spec/chart/pipes/{player/playerXLinear.d.ts → tooltip/tooltipTreeMap.d.ts}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { VChartSpecPipe } from '../../../../../types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const tooltipTreeMap: VChartSpecPipe;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { tooltip as external_tooltip_js_tooltip } from "./tooltip.js";
|
|
2
|
+
import { pipe, uniqueBy } from "remeda";
|
|
3
|
+
import { createFormatterByMeasure, findMeasureById } from "../../../../utils/index.js";
|
|
4
|
+
const tooltipTreeMap = (spec, context)=>{
|
|
5
|
+
const result = external_tooltip_js_tooltip(spec, context);
|
|
6
|
+
const { advancedVSeed, vseed } = context;
|
|
7
|
+
const { datasetReshapeInfo, dimensions = [], encoding } = advancedVSeed;
|
|
8
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
|
9
|
+
if (result.tooltip) {
|
|
10
|
+
if (!result.tooltip.mark) result.tooltip.mark = {};
|
|
11
|
+
result.tooltip.mark = {
|
|
12
|
+
title: {
|
|
13
|
+
visible: true,
|
|
14
|
+
value: (val)=>val?.datum?.map((data)=>data.name).join(' / ')
|
|
15
|
+
},
|
|
16
|
+
content: createMarkContent(encoding.tooltip || [], dimensions, vseed.measures, foldInfo, unfoldInfo)
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
const createMarkContent = (tooltip, dimensions = [], measures = [], foldInfo, unfoldInfo)=>{
|
|
22
|
+
const dims = pipe(dimensions.filter((item)=>tooltip.includes(item.id)), uniqueBy((item)=>item.id), uniqueBy((item)=>item.alias), uniqueBy((item)=>item.alias));
|
|
23
|
+
const meas = pipe(measures.filter((item)=>tooltip.includes(item.id)), uniqueBy((item)=>item.id), uniqueBy((item)=>item.alias));
|
|
24
|
+
const dimContent = dims.map((item)=>({
|
|
25
|
+
visible: (v)=>{
|
|
26
|
+
const { depth } = v;
|
|
27
|
+
const datum = v?.datum[depth];
|
|
28
|
+
return !!datum[item.id];
|
|
29
|
+
},
|
|
30
|
+
hasShape: true,
|
|
31
|
+
shapeType: 'rectRound',
|
|
32
|
+
key: (v)=>{
|
|
33
|
+
const { depth } = v;
|
|
34
|
+
const datum = v?.datum[depth];
|
|
35
|
+
if (item.alias || item.id) return item.alias || item.id;
|
|
36
|
+
return datum && datum[item.id];
|
|
37
|
+
},
|
|
38
|
+
value: (v)=>{
|
|
39
|
+
const { depth } = v;
|
|
40
|
+
const datum = v?.datum[depth];
|
|
41
|
+
return datum && datum[item.id];
|
|
42
|
+
}
|
|
43
|
+
}));
|
|
44
|
+
const defaultContent = {
|
|
45
|
+
visible: true,
|
|
46
|
+
hasShape: true,
|
|
47
|
+
shapeType: 'rectRound',
|
|
48
|
+
key: (v)=>{
|
|
49
|
+
const { depth } = v;
|
|
50
|
+
const datum = v?.datum[depth];
|
|
51
|
+
const { measureName } = foldInfo;
|
|
52
|
+
const { encodingColor: colorName } = unfoldInfo;
|
|
53
|
+
return datum && datum[measureName || colorName] || '';
|
|
54
|
+
},
|
|
55
|
+
value: (v)=>{
|
|
56
|
+
const { depth } = v;
|
|
57
|
+
const datum = v?.datum[depth];
|
|
58
|
+
const { measureId, measureValue } = foldInfo;
|
|
59
|
+
if (!datum) return '';
|
|
60
|
+
const value = datum[measureValue];
|
|
61
|
+
const id = datum[measureId];
|
|
62
|
+
const measure = findMeasureById(measures, id);
|
|
63
|
+
if (!measure) return String(value);
|
|
64
|
+
const formatter = createFormatterByMeasure(measure);
|
|
65
|
+
return formatter(value);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const meaContent = meas.map((item)=>({
|
|
69
|
+
visible: true,
|
|
70
|
+
hasShape: true,
|
|
71
|
+
shapeType: 'rectRound',
|
|
72
|
+
key: item.alias || item.id,
|
|
73
|
+
value: (v)=>{
|
|
74
|
+
const { depth } = v;
|
|
75
|
+
const datum = v?.datum[depth];
|
|
76
|
+
if (!datum) return '';
|
|
77
|
+
const id = item.id;
|
|
78
|
+
if (!datum) return '';
|
|
79
|
+
const value = datum[id];
|
|
80
|
+
const measure = findMeasureById(measures, id);
|
|
81
|
+
const formatter = createFormatterByMeasure(measure);
|
|
82
|
+
return formatter(value);
|
|
83
|
+
}
|
|
84
|
+
}));
|
|
85
|
+
return [
|
|
86
|
+
...dimContent,
|
|
87
|
+
defaultContent,
|
|
88
|
+
...meaContent
|
|
89
|
+
];
|
|
90
|
+
};
|
|
91
|
+
export { tooltipTreeMap };
|
|
92
|
+
|
|
93
|
+
//# sourceMappingURL=tooltipTreeMap.js.map
|