@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
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
const datasetHierarchy = (spec, context)=>{
|
|
2
|
+
const result = {
|
|
3
|
+
...spec
|
|
4
|
+
};
|
|
5
|
+
const { advancedVSeed } = context;
|
|
6
|
+
const { datasetReshapeInfo, dataset } = advancedVSeed;
|
|
7
|
+
const { foldInfo } = datasetReshapeInfo[0];
|
|
8
|
+
const hierarchyFields = advancedVSeed.encoding?.hierarchy || [];
|
|
9
|
+
const measureKeys = advancedVSeed.measures?.map((m)=>m.id) || [];
|
|
10
|
+
if (!hierarchyFields.length) {
|
|
11
|
+
result.data = [
|
|
12
|
+
{
|
|
13
|
+
id: 'data',
|
|
14
|
+
values: dataset
|
|
15
|
+
}
|
|
16
|
+
];
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
const tree = buildTree(dataset, hierarchyFields, foldInfo, measureKeys);
|
|
20
|
+
result.data = [
|
|
21
|
+
{
|
|
22
|
+
id: 'data',
|
|
23
|
+
values: tree
|
|
24
|
+
}
|
|
25
|
+
];
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
const buildTree = (dataset, hierarchyFields, foldInfo, measureKeys = [])=>{
|
|
29
|
+
const { measureValue, measureId, measureName } = foldInfo;
|
|
30
|
+
const root = {
|
|
31
|
+
name: 'root',
|
|
32
|
+
children: []
|
|
33
|
+
};
|
|
34
|
+
dataset.forEach((datum)=>{
|
|
35
|
+
let currentNode = root;
|
|
36
|
+
for(let i = 0; i < hierarchyFields.length; i++){
|
|
37
|
+
const field = hierarchyFields[i];
|
|
38
|
+
const value = String(datum[field]);
|
|
39
|
+
let child = currentNode.children.find((c)=>c.name === value);
|
|
40
|
+
if (!child) {
|
|
41
|
+
child = {
|
|
42
|
+
name: value,
|
|
43
|
+
children: []
|
|
44
|
+
};
|
|
45
|
+
for(let j = 0; j <= i; j++){
|
|
46
|
+
const key = hierarchyFields[j];
|
|
47
|
+
child[key] = datum[key];
|
|
48
|
+
}
|
|
49
|
+
currentNode.children.push(child);
|
|
50
|
+
}
|
|
51
|
+
currentNode = child;
|
|
52
|
+
}
|
|
53
|
+
if (!currentNode.isLeaf) {
|
|
54
|
+
Object.assign(currentNode, datum);
|
|
55
|
+
currentNode.isLeaf = true;
|
|
56
|
+
if (measureValue) currentNode[measureValue] = 0;
|
|
57
|
+
measureKeys.forEach((key)=>{
|
|
58
|
+
currentNode[key] = 0;
|
|
59
|
+
});
|
|
60
|
+
currentNode._measureIds = new Set();
|
|
61
|
+
currentNode._measureNames = new Set();
|
|
62
|
+
}
|
|
63
|
+
if (measureValue && void 0 !== datum[measureValue]) currentNode[measureValue] += Number(datum[measureValue]);
|
|
64
|
+
measureKeys.forEach((key)=>{
|
|
65
|
+
if (void 0 !== datum[key]) currentNode[key] = (currentNode[key] || 0) + Number(datum[key]);
|
|
66
|
+
});
|
|
67
|
+
if (datum[measureId]) currentNode._measureIds.add(datum[measureId]);
|
|
68
|
+
if (datum[measureName]) currentNode._measureNames.add(datum[measureName]);
|
|
69
|
+
if (measureValue) currentNode.value = currentNode[measureValue];
|
|
70
|
+
});
|
|
71
|
+
const aggregate = (node)=>{
|
|
72
|
+
if (node.isLeaf) {
|
|
73
|
+
if (measureId && node._measureIds) {
|
|
74
|
+
node[measureId] = Array.from(node._measureIds).join('+');
|
|
75
|
+
delete node._measureIds;
|
|
76
|
+
}
|
|
77
|
+
if (measureName && node._measureNames) {
|
|
78
|
+
node[measureName] = Array.from(node._measureNames).join('+');
|
|
79
|
+
delete node._measureNames;
|
|
80
|
+
}
|
|
81
|
+
return node.value || 0;
|
|
82
|
+
}
|
|
83
|
+
if (node.children && node.children.length > 0) {
|
|
84
|
+
let sum = 0;
|
|
85
|
+
node.children.forEach((child)=>{
|
|
86
|
+
sum += aggregate(child);
|
|
87
|
+
measureKeys.forEach((key)=>{
|
|
88
|
+
node[key] = (node[key] || 0) + (child[key] || 0);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
node.value = sum;
|
|
92
|
+
if (measureValue) node[measureValue] = sum;
|
|
93
|
+
if (measureId && node.children[0]) {
|
|
94
|
+
const childIds = new Set();
|
|
95
|
+
node.children.forEach((child)=>{
|
|
96
|
+
if (child[measureId]) child[measureId].split('+').forEach((id)=>childIds.add(id));
|
|
97
|
+
});
|
|
98
|
+
node[measureId] = Array.from(childIds).join('+');
|
|
99
|
+
const childNames = new Set();
|
|
100
|
+
node.children.forEach((child)=>{
|
|
101
|
+
if (child[measureName]) child[measureName].split('+').forEach((name)=>childNames.add(name));
|
|
102
|
+
});
|
|
103
|
+
node[measureName] = Array.from(childNames).join('+');
|
|
104
|
+
}
|
|
105
|
+
return sum;
|
|
106
|
+
}
|
|
107
|
+
return node.value || 0;
|
|
108
|
+
};
|
|
109
|
+
root.children.forEach(aggregate);
|
|
110
|
+
return root.children;
|
|
111
|
+
};
|
|
112
|
+
export { datasetHierarchy };
|
|
113
|
+
|
|
114
|
+
//# sourceMappingURL=datasetHierarchy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/dataset/datasetHierarchy.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dataset/datasetHierarchy.ts"],"sourcesContent":["import type { VChartSpecPipe, Datum, FoldInfo } from 'src/types'\n\nexport const datasetHierarchy: VChartSpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { datasetReshapeInfo, dataset } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n\n // 1. 获取 hierarchy encoding 对应的字段\n // 在 advanced pipeline 中,encodingForHierarchy 已经确保了 dimensions 被正确映射到 'hierarchy' 通道\n const hierarchyFields = (advancedVSeed.encoding as Datum)?.hierarchy || []\n\n const measureKeys = advancedVSeed.measures?.map((m: any) => m.id) || []\n\n // 2. 如果没有 hierarchy 字段,直接返回原始数据(虽然这可能导致图表无法正确渲染,但比报错好)\n if (!hierarchyFields.length) {\n result.data = [{ id: 'data', values: dataset }]\n return result\n }\n\n // 3. 构建树形结构\n const tree = buildTree(dataset, hierarchyFields, foldInfo, measureKeys)\n\n result.data = [\n {\n id: 'data',\n values: tree,\n },\n ]\n\n return result\n}\n\n/**\n * @description 将平铺的数据集构建为树形结构\n * @param dataset 平铺的数据集\n * @param hierarchyFields 层级字段列表\n * @param measureValueField 指标值字段名\n * @param measureIdField 指标ID字段名\n */\nconst buildTree = (dataset: Datum[], hierarchyFields: string[], foldInfo: FoldInfo, measureKeys: string[] = []) => {\n const { measureValue, measureId, measureName } = foldInfo\n const root: Datum = { name: 'root', children: [] }\n\n dataset.forEach((datum) => {\n let currentNode = root\n\n // 遍历层级字段,构建路径\n for (let i = 0; i < hierarchyFields.length; i++) {\n const field = hierarchyFields[i]\n const value = String(datum[field]) // 确保值为字符串\n\n let child = currentNode.children.find((c: Datum) => c.name === value)\n\n if (!child) {\n child = { name: value, children: [] }\n // 确保父节点尽可能保留信息:保留当前层级及之前层级的所有维度字段\n for (let j = 0; j <= i; j++) {\n const key = hierarchyFields[j]\n child[key] = datum[key]\n }\n currentNode.children.push(child)\n }\n\n currentNode = child\n }\n\n // 叶子节点:聚合逻辑\n if (!currentNode.isLeaf) {\n // 第一次访问叶子节点:保留维度信息\n Object.assign(currentNode, datum)\n currentNode.isLeaf = true\n\n // 初始化累加器(防止后续叠加时使用了 datum 中的原始值作为初始值)\n if (measureValue) currentNode[measureValue] = 0\n measureKeys.forEach((key) => {\n currentNode[key] = 0\n })\n\n // 初始化 ID 集合用于后续 join\n currentNode._measureIds = new Set()\n currentNode._measureNames = new Set()\n }\n\n // 1. 聚合 measureValue (drawing measure)\n if (measureValue && datum[measureValue] !== undefined) {\n currentNode[measureValue] += Number(datum[measureValue])\n }\n\n // 2. 聚合各个 measure\n // 原来的逻辑:只聚合当前 measureId 对应的 measure,导致其他 measure(如 profit)在 folded 后的行中被忽略\n // const currentMeasureId = datum[measureId]\n // const currentMeasureValue = Number(datum[measureValue])\n // if (currentMeasureId && measureKeys.includes(currentMeasureId)) {\n // currentNode[currentMeasureId] = (currentNode[currentMeasureId] || 0) + currentMeasureValue\n // }\n\n // 新的逻辑:遍历所有 measureKey,如果 datum 中存在该字段,则进行聚合\n measureKeys.forEach((key) => {\n if (datum[key] !== undefined) {\n currentNode[key] = (currentNode[key] || 0) + Number(datum[key])\n }\n })\n\n // 3. 收集 ID 和 Name 信息\n if (datum[measureId]) currentNode._measureIds.add(datum[measureId])\n if (datum[measureName]) currentNode._measureNames.add(datum[measureName])\n\n // 4. 更新 value 字段 (用于图表映射)\n if (measureValue) {\n currentNode.value = currentNode[measureValue]\n }\n })\n\n // 后序遍历:自底向上聚合 value\n const aggregate = (node: Datum) => {\n // 处理叶子节点的 ID 集合\n if (node.isLeaf) {\n if (measureId && node._measureIds) {\n node[measureId] = Array.from(node._measureIds).join('+')\n delete node._measureIds\n }\n if (measureName && node._measureNames) {\n node[measureName] = Array.from(node._measureNames).join('+')\n delete node._measureNames\n }\n return node.value || 0\n }\n\n if (node.children && node.children.length > 0) {\n // node.isLeaf = false // 已经是 false 或 undefined,不需要显式设为 false,除非...\n let sum = 0\n node.children.forEach((child: Datum) => {\n sum += aggregate(child)\n\n // 聚合子节点的各个 measure 值到父节点\n measureKeys.forEach((key) => {\n node[key] = (node[key] || 0) + (child[key] || 0)\n })\n })\n\n node.value = sum\n\n // 为中间节点补充 measureValue 字段,保证 Tooltip 能取到值\n if (measureValue) {\n node[measureValue] = sum\n }\n\n // 为中间节点补充 measureIdField 字段\n if (measureId && node.children[0]) {\n // 收集所有子节点的 measureId\n const childIds = new Set()\n node.children.forEach((child: Datum) => {\n if (child[measureId]) {\n child[measureId].split('+').forEach((id: string) => childIds.add(id))\n }\n })\n node[measureId] = Array.from(childIds).join('+')\n\n // 收集所有子节点的 measureName\n const childNames = new Set()\n node.children.forEach((child: Datum) => {\n if (child[measureName]) {\n child[measureName].split('+').forEach((name: string) => childNames.add(name))\n }\n })\n node[measureName] = Array.from(childNames).join('+')\n }\n\n return sum\n }\n // 应该是不会走到这里的,因为叶子节点在上面已经处理了\n return node.value || 0\n }\n\n root.children.forEach(aggregate)\n\n return root.children\n}\n"],"names":["datasetHierarchy","spec","context","result","advancedVSeed","datasetReshapeInfo","dataset","foldInfo","hierarchyFields","measureKeys","m","tree","buildTree","measureValue","measureId","measureName","root","datum","currentNode","i","field","value","String","child","c","j","key","Object","Set","undefined","Number","aggregate","node","Array","sum","childIds","id","childNames","name"],"mappings":"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"}
|
|
@@ -6,4 +6,5 @@ import { datasetDualAxis } from "./datasetDualAxis.js";
|
|
|
6
6
|
import { datasetScatter } from "./datasetScatter.js";
|
|
7
7
|
import { datasetHistogram } from "./datasetHistogram.js";
|
|
8
8
|
import { datasetBoxplot } from "./datasetBoxplot.js";
|
|
9
|
-
|
|
9
|
+
import { datasetHierarchy } from "./datasetHierarchy.js";
|
|
10
|
+
export { datasetBoxplot, datasetDualAxis, datasetHierarchy, datasetHistogram, datasetPivot, datasetScatter, datasetXY, datasetYX, progressive };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const initCirclePacking = (spec, context)=>{
|
|
2
|
+
const result = {
|
|
3
|
+
...spec
|
|
4
|
+
};
|
|
5
|
+
const { advancedVSeed } = context;
|
|
6
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
|
7
|
+
const { foldInfo } = datasetReshapeInfo[0];
|
|
8
|
+
result.type = 'circlePacking';
|
|
9
|
+
result.categoryField = 'name';
|
|
10
|
+
result.valueField = foldInfo.measureValue;
|
|
11
|
+
result.drill = true;
|
|
12
|
+
result.circlePacking = {
|
|
13
|
+
style: {
|
|
14
|
+
fillOpacity: (d)=>d.isLeaf ? 0.75 : 0.25
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
result.layoutPadding = [
|
|
18
|
+
0,
|
|
19
|
+
10,
|
|
20
|
+
10
|
|
21
|
+
];
|
|
22
|
+
result.padding = 0;
|
|
23
|
+
result.animationEnter = {
|
|
24
|
+
easing: 'cubicInOut'
|
|
25
|
+
};
|
|
26
|
+
result.animationExit = {
|
|
27
|
+
easing: 'cubicInOut'
|
|
28
|
+
};
|
|
29
|
+
result.animationUpdate = {
|
|
30
|
+
easing: 'cubicInOut'
|
|
31
|
+
};
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
export { initCirclePacking };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=circlePacking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/init/circlePacking.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/circlePacking.ts"],"sourcesContent":["import type { VChartSpecPipe } from 'src/types'\nimport type { ICirclePackingChartSpec } from '@visactor/vchart'\n\nexport const initCirclePacking: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ICirclePackingChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n\n result.type = 'circlePacking'\n result.categoryField = 'name'\n result.valueField = foldInfo.measureValue\n // Style configuration\n result.drill = true\n result.circlePacking = {\n style: {\n fillOpacity: (d: any) => (d.isLeaf ? 0.75 : 0.25),\n },\n }\n result.layoutPadding = [0, 10, 10]\n result.padding = 0\n // Animation configuration\n result.animationEnter = {\n easing: 'cubicInOut',\n }\n result.animationExit = {\n easing: 'cubicInOut',\n }\n result.animationUpdate = {\n easing: 'cubicInOut',\n }\n\n return result\n}\n"],"names":["initCirclePacking","spec","context","result","advancedVSeed","datasetReshapeInfo","foldInfo","d"],"mappings":"AAGO,MAAMA,oBAAoC,CAACC,MAAMC;IACtD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAE,GAAGD;IAC/B,MAAM,EAAEE,QAAQ,EAAE,GAAGD,kBAAkB,CAAC,EAAE;IAE1CF,OAAO,IAAI,GAAG;IACdA,OAAO,aAAa,GAAG;IACvBA,OAAO,UAAU,GAAGG,SAAS,YAAY;IAEzCH,OAAO,KAAK,GAAG;IACfA,OAAO,aAAa,GAAG;QACrB,OAAO;YACL,aAAa,CAACI,IAAYA,EAAE,MAAM,GAAG,OAAO;QAC9C;IACF;IACAJ,OAAO,aAAa,GAAG;QAAC;QAAG;QAAI;KAAG;IAClCA,OAAO,OAAO,GAAG;IAEjBA,OAAO,cAAc,GAAG;QACtB,QAAQ;IACV;IACAA,OAAO,aAAa,GAAG;QACrB,QAAQ;IACV;IACAA,OAAO,eAAe,GAAG;QACvB,QAAQ;IACV;IAEA,OAAOA;AACT"}
|
|
@@ -14,4 +14,7 @@ export { initFunnel } from './funnel';
|
|
|
14
14
|
export { initPivot } from './pivot';
|
|
15
15
|
export { initDualAxis } from './dualAxis';
|
|
16
16
|
export { initHistogram } from './histogram';
|
|
17
|
+
export { initTreeMap } from './treeMap';
|
|
18
|
+
export { initSunburst } from './sunburst';
|
|
19
|
+
export { initCirclePacking } from './circlePacking';
|
|
17
20
|
export { initBoxplot } from './boxplot';
|
|
@@ -14,5 +14,8 @@ import { initFunnel } from "./funnel.js";
|
|
|
14
14
|
import { initPivot } from "./pivot.js";
|
|
15
15
|
import { initDualAxis } from "./dualAxis.js";
|
|
16
16
|
import { initHistogram } from "./histogram.js";
|
|
17
|
+
import { initTreeMap } from "./treeMap.js";
|
|
18
|
+
import { initSunburst } from "./sunburst.js";
|
|
19
|
+
import { initCirclePacking } from "./circlePacking.js";
|
|
17
20
|
import { initBoxplot } from "./boxplot.js";
|
|
18
|
-
export { initArea, initBar, initBarParallel, initBoxplot, initColumn, initColumnParallel, initDonut, initDualAxis, initFunnel, initHistogram, initLine, initPie, initPivot, initRadar, initRose, initRoseParallel, initScatter };
|
|
21
|
+
export { initArea, initBar, initBarParallel, initBoxplot, initCirclePacking, initColumn, initColumnParallel, initDonut, initDualAxis, initFunnel, initHistogram, initLine, initPie, initPivot, initRadar, initRose, initRoseParallel, initScatter, initSunburst, initTreeMap };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { VChartSpecPipe } from '../../../../../types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const initSunburst: VChartSpecPipe;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const initSunburst = (spec, context)=>{
|
|
2
|
+
const result = {
|
|
3
|
+
...spec
|
|
4
|
+
};
|
|
5
|
+
const { advancedVSeed } = context;
|
|
6
|
+
const { datasetReshapeInfo, encoding } = advancedVSeed;
|
|
7
|
+
const { foldInfo } = datasetReshapeInfo[0];
|
|
8
|
+
result.type = 'sunburst';
|
|
9
|
+
result.categoryField = 'name';
|
|
10
|
+
result.valueField = foldInfo.measureValue;
|
|
11
|
+
result.outerRadius = 1;
|
|
12
|
+
result.innerRadius = 0;
|
|
13
|
+
result.gap = 0;
|
|
14
|
+
result.offsetX = 0;
|
|
15
|
+
result.offsetY = 0;
|
|
16
|
+
result.drill = true;
|
|
17
|
+
result.padding = 0;
|
|
18
|
+
result.labelAutoVisible = {
|
|
19
|
+
enable: true,
|
|
20
|
+
circumference: 5
|
|
21
|
+
};
|
|
22
|
+
result.sunburst = {
|
|
23
|
+
visible: true,
|
|
24
|
+
style: {
|
|
25
|
+
fillOpacity: (datum)=>{
|
|
26
|
+
if (encoding.hierarchy?.length === 1) return 1;
|
|
27
|
+
return datum.isLeaf ? 0.4 : 0.8;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
result.animationEnter = {
|
|
32
|
+
easing: 'cubicInOut'
|
|
33
|
+
};
|
|
34
|
+
result.animationExit = {
|
|
35
|
+
easing: 'cubicInOut'
|
|
36
|
+
};
|
|
37
|
+
result.animationUpdate = {
|
|
38
|
+
easing: 'cubicInOut'
|
|
39
|
+
};
|
|
40
|
+
return result;
|
|
41
|
+
};
|
|
42
|
+
export { initSunburst };
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=sunburst.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/init/sunburst.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/sunburst.ts"],"sourcesContent":["import type { VChartSpecPipe } from 'src/types'\nimport type { ISunburstChartSpec } from '@visactor/vchart'\n\nexport const initSunburst: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ISunburstChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo, encoding } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n\n result.type = 'sunburst'\n result.categoryField = 'name'\n result.valueField = foldInfo.measureValue\n result.outerRadius = 1\n result.innerRadius = 0\n result.gap = 0\n result.offsetX = 0\n result.offsetY = 0\n result.drill = true\n result.padding = 0\n result.labelAutoVisible = {\n enable: true,\n circumference: 5,\n }\n result.sunburst = {\n visible: true,\n style: {\n fillOpacity: (datum: any) => {\n if (encoding.hierarchy?.length === 1) {\n return 1\n }\n return datum.isLeaf ? 0.4 : 0.8\n },\n },\n }\n\n result.animationEnter = {\n easing: 'cubicInOut',\n }\n result.animationExit = {\n easing: 'cubicInOut',\n }\n result.animationUpdate = {\n easing: 'cubicInOut',\n }\n\n return result\n}\n"],"names":["initSunburst","spec","context","result","advancedVSeed","datasetReshapeInfo","encoding","foldInfo","datum"],"mappings":"AAGO,MAAMA,eAA+B,CAACC,MAAMC;IACjD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAEC,QAAQ,EAAE,GAAGF;IACzC,MAAM,EAAEG,QAAQ,EAAE,GAAGF,kBAAkB,CAAC,EAAE;IAE1CF,OAAO,IAAI,GAAG;IACdA,OAAO,aAAa,GAAG;IACvBA,OAAO,UAAU,GAAGI,SAAS,YAAY;IACzCJ,OAAO,WAAW,GAAG;IACrBA,OAAO,WAAW,GAAG;IACrBA,OAAO,GAAG,GAAG;IACbA,OAAO,OAAO,GAAG;IACjBA,OAAO,OAAO,GAAG;IACjBA,OAAO,KAAK,GAAG;IACfA,OAAO,OAAO,GAAG;IACjBA,OAAO,gBAAgB,GAAG;QACxB,QAAQ;QACR,eAAe;IACjB;IACAA,OAAO,QAAQ,GAAG;QAChB,SAAS;QACT,OAAO;YACL,aAAa,CAACK;gBACZ,IAAIF,SAAS,SAAS,EAAE,WAAW,GACjC,OAAO;gBAET,OAAOE,MAAM,MAAM,GAAG,MAAM;YAC9B;QACF;IACF;IAEAL,OAAO,cAAc,GAAG;QACtB,QAAQ;IACV;IACAA,OAAO,aAAa,GAAG;QACrB,QAAQ;IACV;IACAA,OAAO,eAAe,GAAG;QACvB,QAAQ;IACV;IAEA,OAAOA;AACT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { VChartSpecPipe } from '../../../../../types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const initTreeMap: VChartSpecPipe;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const initTreeMap = (spec, context)=>{
|
|
2
|
+
const result = {
|
|
3
|
+
...spec
|
|
4
|
+
};
|
|
5
|
+
const { advancedVSeed } = context;
|
|
6
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
|
7
|
+
const { foldInfo } = datasetReshapeInfo[0];
|
|
8
|
+
result.type = 'treemap';
|
|
9
|
+
result.categoryField = 'name';
|
|
10
|
+
result.valueField = foldInfo.measureValue;
|
|
11
|
+
result.padding = 0;
|
|
12
|
+
result.drill = true;
|
|
13
|
+
result.animationEnter = {
|
|
14
|
+
easing: 'cubicInOut'
|
|
15
|
+
};
|
|
16
|
+
result.animationExit = {
|
|
17
|
+
easing: 'cubicInOut'
|
|
18
|
+
};
|
|
19
|
+
result.animationUpdate = {
|
|
20
|
+
easing: 'cubicInOut'
|
|
21
|
+
};
|
|
22
|
+
return result;
|
|
23
|
+
};
|
|
24
|
+
export { initTreeMap };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=treeMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/init/treeMap.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/treeMap.ts"],"sourcesContent":["import type { VChartSpecPipe } from 'src/types'\nimport type { ITreemapChartSpec } from '@visactor/vchart'\n\nexport const initTreeMap: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ITreemapChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n\n result.type = 'treemap'\n result.categoryField = 'name'\n result.valueField = foldInfo.measureValue\n result.padding = 0\n result.drill = true\n result.animationEnter = {\n easing: 'cubicInOut',\n }\n result.animationExit = {\n easing: 'cubicInOut',\n }\n result.animationUpdate = {\n easing: 'cubicInOut',\n }\n\n return result\n}\n"],"names":["initTreeMap","spec","context","result","advancedVSeed","datasetReshapeInfo","foldInfo"],"mappings":"AAGO,MAAMA,cAA8B,CAACC,MAAMC;IAChD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAE,GAAGD;IAC/B,MAAM,EAAEE,QAAQ,EAAE,GAAGD,kBAAkB,CAAC,EAAE;IAE1CF,OAAO,IAAI,GAAG;IACdA,OAAO,aAAa,GAAG;IACvBA,OAAO,UAAU,GAAGG,SAAS,YAAY;IACzCH,OAAO,OAAO,GAAG;IACjBA,OAAO,KAAK,GAAG;IACfA,OAAO,cAAc,GAAG;QACtB,QAAQ;IACV;IACAA,OAAO,aAAa,GAAG;QACrB,QAAQ;IACV;IACAA,OAAO,eAAe,GAAG;QACvB,QAAQ;IACV;IAEA,OAAOA;AACT"}
|
|
@@ -3,3 +3,7 @@ export { labelDualAxis } from './labelDualAxis';
|
|
|
3
3
|
export { labelScatter } from './labelScatter';
|
|
4
4
|
export { labelPie } from './labelPie';
|
|
5
5
|
export { labelBoxPlot } from './labelBoxPlot';
|
|
6
|
+
export { labelCirclePacking } from './labelCirclePacking';
|
|
7
|
+
export { labelSunburst } from './labelSunburst';
|
|
8
|
+
export { labelTreeMapLeaf } from './labelTreeMapLeaf';
|
|
9
|
+
export { labelTreeMapGroup } from './labelTreeMapGroup';
|
|
@@ -3,4 +3,8 @@ import { labelDualAxis } from "./labelDualAxis.js";
|
|
|
3
3
|
import { labelScatter } from "./labelScatter.js";
|
|
4
4
|
import { labelPie } from "./labelPie.js";
|
|
5
5
|
import { labelBoxPlot } from "./labelBoxPlot.js";
|
|
6
|
-
|
|
6
|
+
import { labelCirclePacking } from "./labelCirclePacking.js";
|
|
7
|
+
import { labelSunburst } from "./labelSunburst.js";
|
|
8
|
+
import { labelTreeMapLeaf } from "./labelTreeMapLeaf.js";
|
|
9
|
+
import { labelTreeMapGroup } from "./labelTreeMapGroup.js";
|
|
10
|
+
export { label, labelBoxPlot, labelCirclePacking, labelDualAxis, labelPie, labelScatter, labelSunburst, labelTreeMapGroup, labelTreeMapLeaf };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/label/label.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/label.ts"],"sourcesContent":["import type { ILineChartSpec } from '@visactor/vchart'\nimport { createFormatter, createFormatterByMeasure, DATUM_HIDE_KEY, findMeasureById } from '../../../../utils'\nimport type {\n Datum,\n Dimension,\n Dimensions,\n Encoding,\n FoldInfo,\n Formatter,\n Label,\n Measure,\n Measures,\n NumFormat,\n VChartSpecPipe,\n} from 'src/types'\nimport { isNumber, merge, uniqueBy } from 'remeda'\nimport { selector } from 'src/dataSelector'\nimport { MeasureId } from 'src/dataReshape/constant'\n\nexport const label: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n const foldInfo = datasetReshapeInfo[0].foldInfo as FoldInfo\n\n const { label } = baseConfig\n
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/label/label.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/label.ts"],"sourcesContent":["import type { ILineChartSpec } from '@visactor/vchart'\nimport { createFormatter, createFormatterByMeasure, DATUM_HIDE_KEY, findMeasureById } from '../../../../utils'\nimport type {\n Datum,\n Dimension,\n Dimensions,\n Encoding,\n FoldInfo,\n Formatter,\n Label,\n Measure,\n Measures,\n NumFormat,\n VChartSpecPipe,\n} from 'src/types'\nimport { isNumber, merge, uniqueBy } from 'remeda'\nimport { selector } from 'src/dataSelector'\nimport { MeasureId } from 'src/dataReshape/constant'\n\nexport const label: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n const foldInfo = datasetReshapeInfo[0].foldInfo as FoldInfo\n\n const { label } = baseConfig\n result.label = buildLabel(\n label,\n vseed.measures,\n vseed.dimensions,\n advancedVSeed.dimensions!,\n advancedVSeed.measures!,\n encoding as Encoding,\n [foldInfo],\n ) as unknown as ILineChartSpec['label']\n\n return result\n}\n\nexport const generateMeasureValue = (\n value: number | string,\n measure: Measure,\n labelAutoFormat?: boolean,\n numFormat: NumFormat = {},\n) => {\n const format = merge(numFormat, measure.numFormat || measure.format)\n const mergedMeasure = { ...measure, numFormat: format, autoFormat: labelAutoFormat || measure.autoFormat }\n\n const formatter = createFormatterByMeasure(mergedMeasure)\n return formatter(value)\n}\n\nexport const generateMeasurePercent = (value: number | string, sum: number, formatter: Formatter) => {\n if (value === undefined || value === null) return String(value)\n const num = Number(value)\n if (Number.isNaN(num)) return String(value)\n\n const percentValue = num / sum\n return formatter(percentValue)\n}\n\nexport const buildLabel = (\n label: Label,\n vseedMeasures: Measures = [],\n vseedDimensions: Dimensions = [],\n advancedVSeedDimensions: Dimensions,\n advancedVSeedMeasures: Measures,\n encoding: Encoding,\n foldInfoList: (Pick<FoldInfo, 'measureId' | 'measureValue'> & Partial<Pick<FoldInfo, 'statistics'>>)[],\n) => {\n const {\n enable,\n wrap,\n showValue,\n showValuePercent,\n showDimension,\n labelOverlap,\n labelColorSmartInvert,\n labelStroke,\n labelColor,\n labelFontSize,\n labelFontWeight,\n labelBackgroundColor,\n labelPosition,\n autoFormat,\n numFormat = {},\n } = label\n\n const hasDimLabelEncoding = vseedDimensions.some((item) => encoding.label?.includes(item.id))\n\n const labelDims = uniqueBy(\n hasDimLabelEncoding\n ? vseedDimensions.filter((item) => encoding.label?.includes(item.id))\n : showDimension\n ? advancedVSeedDimensions.filter((d) => d.id !== MeasureId && d.encoding !== 'row' && d.encoding !== 'column')\n : [],\n (item: Dimension) => item.id,\n )\n\n const labelMeas = uniqueBy(\n vseedMeasures.filter((item) => encoding.label?.includes(item.id)),\n (item: Measure) => item.id,\n )\n\n const percentFormat: NumFormat = merge(numFormat, {\n type: 'percent',\n } as NumFormat)\n\n const percentFormatter = createFormatter(percentFormat)\n\n const result = {\n visible: enable,\n dataFilter: (data: Datum[]) => {\n return data.filter((entry) => {\n return entry.data?.[DATUM_HIDE_KEY] !== true && selector(entry.data as Datum, label.selector, 'Or')\n })\n },\n formatMethod: (_: unknown, datum: Datum) => {\n const result = []\n\n const dimLabels = labelDims.map((item: Dimension) => {\n const id = item.id\n return datum[id] as number | string\n })\n\n const meaLabels = labelMeas.map((item: Measure) =>\n generateMeasureValue(datum[item.id] as number | string, item, autoFormat, numFormat),\n )\n\n result.push(...dimLabels)\n\n foldInfoList.forEach((foldInfo) => {\n const { measureId, measureValue, statistics } = foldInfo\n const measure = findMeasureById(advancedVSeedMeasures, datum[measureId] as string)\n if (measure) {\n const measureValueLabel = generateMeasureValue(\n datum[measureValue] as number | string,\n measure,\n autoFormat,\n numFormat,\n )\n\n if (showValue) {\n result.push(measureValueLabel)\n }\n if (showValuePercent) {\n if (isNumber(datum['__VCHART_ARC_RATIO'])) {\n // 饼图/环图需要使用实际占比数据\n result.push(generateMeasurePercent(datum['__VCHART_ARC_RATIO'], 1, percentFormatter))\n } else if (statistics && isNumber(statistics.sum)) {\n result.push(\n generateMeasurePercent(datum[measureValue] as number | string, statistics.sum, percentFormatter),\n )\n }\n }\n }\n })\n\n result.push(...meaLabels)\n\n if (wrap) {\n return result\n }\n return result.join(' ')\n },\n syncState: true,\n position: labelPosition,\n style: {\n stroke: labelStroke,\n fill: labelColor,\n fontSize: labelFontSize,\n fontWeight: labelFontWeight,\n background: labelBackgroundColor,\n },\n smartInvert: labelColorSmartInvert,\n }\n\n if (labelColorSmartInvert) {\n ;(result.style as any).lineWidth = 2 // label 边框线宽度,不设置这个会导致智能反色失败\n }\n\n if (labelOverlap) {\n ;(result as any).overlap = {\n hideOnHit: true,\n clampForce: true,\n }\n }\n\n return result\n}\n"],"names":["label","spec","context","result","advancedVSeed","vseed","datasetReshapeInfo","chartType","encoding","baseConfig","foldInfo","buildLabel","generateMeasureValue","value","measure","labelAutoFormat","numFormat","format","merge","mergedMeasure","formatter","createFormatterByMeasure","generateMeasurePercent","sum","String","num","Number","percentValue","vseedMeasures","vseedDimensions","advancedVSeedDimensions","advancedVSeedMeasures","foldInfoList","enable","wrap","showValue","showValuePercent","showDimension","labelOverlap","labelColorSmartInvert","labelStroke","labelColor","labelFontSize","labelFontWeight","labelBackgroundColor","labelPosition","autoFormat","hasDimLabelEncoding","item","labelDims","uniqueBy","d","MeasureId","labelMeas","percentFormat","percentFormatter","createFormatter","data","entry","DATUM_HIDE_KEY","selector","_","datum","dimLabels","id","meaLabels","measureId","measureValue","statistics","findMeasureById","measureValueLabel","isNumber"],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { label as external_label_js_label } from "./label.js";
|
|
2
|
+
const labelCirclePacking = (spec, context)=>{
|
|
3
|
+
const { advancedVSeed } = context;
|
|
4
|
+
const { chartType } = advancedVSeed;
|
|
5
|
+
const baseConfig = advancedVSeed.config[chartType];
|
|
6
|
+
const { label } = baseConfig;
|
|
7
|
+
const result = external_label_js_label(spec, context);
|
|
8
|
+
if (label?.enable) {
|
|
9
|
+
const labelSpec = result.label;
|
|
10
|
+
result.label = {
|
|
11
|
+
...labelSpec,
|
|
12
|
+
style: {
|
|
13
|
+
...labelSpec?.style,
|
|
14
|
+
fontSize: 10,
|
|
15
|
+
visible: (d)=>1 === d.depth
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
export { labelCirclePacking };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=labelCirclePacking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/label/labelCirclePacking.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/labelCirclePacking.ts"],"sourcesContent":["import type { ILineChartSpec } from '@visactor/vchart'\nimport type { Label, VChartSpecPipe } from 'src/types'\nimport { label as commonLabel } from './label'\n\nexport const labelCirclePacking: VChartSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n const { label } = baseConfig\n\n // Reuse common label logic to build basic label config\n const result = commonLabel(spec, context) as ILineChartSpec\n\n // If label is enabled, override with circlePacking specific logic\n if (label?.enable) {\n const labelSpec = result.label as any\n result.label = {\n ...labelSpec,\n style: {\n ...labelSpec?.style,\n fontSize: 10,\n visible: (d: any) => {\n return d.depth === 1\n },\n },\n }\n }\n\n return result\n}\n"],"names":["labelCirclePacking","spec","context","advancedVSeed","chartType","baseConfig","label","result","commonLabel","labelSpec","d"],"mappings":";AAIO,MAAMA,qBAAqC,CAACC,MAAMC;IACvD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,aAAaF,cAAc,MAAM,CAACC,UAAU;IAClD,MAAM,EAAEE,KAAK,EAAE,GAAGD;IAGlB,MAAME,SAASC,wBAAYP,MAAMC;IAGjC,IAAII,OAAO,QAAQ;QACjB,MAAMG,YAAYF,OAAO,KAAK;QAC9BA,OAAO,KAAK,GAAG;YACb,GAAGE,SAAS;YACZ,OAAO;gBACL,GAAGA,WAAW,KAAK;gBACnB,UAAU;gBACV,SAAS,CAACC,IACDA,AAAY,MAAZA,EAAE,KAAK;YAElB;QACF;IACF;IAEA,OAAOH;AACT"}
|
package/dist/esm/pipeline/spec/chart/pipes/{player/playerYLinear.d.ts → label/labelSunburst.d.ts}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { VChartSpecPipe } from '../../../../../types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const labelSunburst: VChartSpecPipe;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { label as external_label_js_label } from "./label.js";
|
|
2
|
+
const labelSunburst = (spec, context)=>{
|
|
3
|
+
const { advancedVSeed } = context;
|
|
4
|
+
const { chartType, encoding } = advancedVSeed;
|
|
5
|
+
const baseConfig = advancedVSeed.config[chartType];
|
|
6
|
+
const { label } = baseConfig;
|
|
7
|
+
const result = external_label_js_label(spec, context);
|
|
8
|
+
if (label?.enable) {
|
|
9
|
+
const labelSpec = result.label;
|
|
10
|
+
result.label = {
|
|
11
|
+
...labelSpec,
|
|
12
|
+
style: {
|
|
13
|
+
...labelSpec?.style,
|
|
14
|
+
fontSize: 12,
|
|
15
|
+
fillOpacity: (datum)=>{
|
|
16
|
+
if (encoding.hierarchy?.length === 1) return 1;
|
|
17
|
+
return datum.isLeaf ? 0.4 : 0.6;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return result;
|
|
23
|
+
};
|
|
24
|
+
export { labelSunburst };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=labelSunburst.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/label/labelSunburst.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/labelSunburst.ts"],"sourcesContent":["import type { ILineChartSpec } from '@visactor/vchart'\nimport type { Label, VChartSpecPipe } from 'src/types'\nimport { label as commonLabel } from './label'\n\nexport const labelSunburst: VChartSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n const { label } = baseConfig\n\n // Reuse common label logic\n const result = commonLabel(spec, context) as ILineChartSpec\n\n // Override with sunburst specific logic\n if (label?.enable) {\n const labelSpec = result.label as any\n result.label = {\n ...labelSpec,\n style: {\n ...labelSpec?.style,\n fontSize: 12,\n fillOpacity: (datum: any) => {\n if (encoding.hierarchy?.length === 1) {\n return 1\n }\n return datum.isLeaf ? 0.4 : 0.6\n },\n },\n }\n }\n\n return result\n}\n"],"names":["labelSunburst","spec","context","advancedVSeed","chartType","encoding","baseConfig","label","result","commonLabel","labelSpec","datum"],"mappings":";AAIO,MAAMA,gBAAgC,CAACC,MAAMC;IAClD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,SAAS,EAAEC,QAAQ,EAAE,GAAGF;IAChC,MAAMG,aAAaH,cAAc,MAAM,CAACC,UAAU;IAClD,MAAM,EAAEG,KAAK,EAAE,GAAGD;IAGlB,MAAME,SAASC,wBAAYR,MAAMC;IAGjC,IAAIK,OAAO,QAAQ;QACjB,MAAMG,YAAYF,OAAO,KAAK;QAC9BA,OAAO,KAAK,GAAG;YACb,GAAGE,SAAS;YACZ,OAAO;gBACL,GAAGA,WAAW,KAAK;gBACnB,UAAU;gBACV,aAAa,CAACC;oBACZ,IAAIN,SAAS,SAAS,EAAE,WAAW,GACjC,OAAO;oBAET,OAAOM,MAAM,MAAM,GAAG,MAAM;gBAC9B;YACF;QACF;IACF;IAEA,OAAOH;AACT"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const labelTreeMapGroup = (spec, context)=>{
|
|
2
|
+
const result = {
|
|
3
|
+
...spec
|
|
4
|
+
};
|
|
5
|
+
const { advancedVSeed } = context;
|
|
6
|
+
const { chartType } = advancedVSeed;
|
|
7
|
+
const baseConfig = advancedVSeed.config[chartType];
|
|
8
|
+
const { label } = baseConfig;
|
|
9
|
+
if (!label.enable) return result;
|
|
10
|
+
result.nonLeaf = {
|
|
11
|
+
visible: true
|
|
12
|
+
};
|
|
13
|
+
result.nonLeafLabel = {
|
|
14
|
+
visible: true,
|
|
15
|
+
position: 'top',
|
|
16
|
+
padding: 30,
|
|
17
|
+
style: {
|
|
18
|
+
x: (data)=>(data.labelRect?.x0 || 0) + 4,
|
|
19
|
+
textAlign: 'left',
|
|
20
|
+
text: (data)=>[
|
|
21
|
+
data.name
|
|
22
|
+
],
|
|
23
|
+
fontSize: 12,
|
|
24
|
+
fill: '#000'
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
export { labelTreeMapGroup };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=labelTreeMapGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/label/labelTreeMapGroup.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/labelTreeMapGroup.ts"],"sourcesContent":["import type { ITreemapChartSpec } from '@visactor/vchart'\nimport type { Label, VChartSpecPipe } from 'src/types'\n\nexport const labelTreeMapGroup: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ITreemapChartSpec\n const { advancedVSeed } = context\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n const { label } = baseConfig\n\n if (!label.enable) {\n return result\n }\n\n result.nonLeaf = {\n visible: true,\n }\n\n result.nonLeafLabel = {\n visible: true,\n position: 'top',\n padding: 30,\n style: {\n x: (data: any) => {\n return (data.labelRect?.x0 || 0) + 4\n },\n textAlign: 'left',\n text: (data: any) => {\n return [data.name]\n },\n fontSize: 12,\n fill: '#000',\n },\n }\n\n return result\n}\n"],"names":["labelTreeMapGroup","spec","context","result","advancedVSeed","chartType","baseConfig","label","data"],"mappings":"AAGO,MAAMA,oBAAoC,CAACC,MAAMC;IACtD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,SAAS,EAAE,GAAGD;IACtB,MAAME,aAAaF,cAAc,MAAM,CAACC,UAAU;IAClD,MAAM,EAAEE,KAAK,EAAE,GAAGD;IAElB,IAAI,CAACC,MAAM,MAAM,EACf,OAAOJ;IAGTA,OAAO,OAAO,GAAG;QACf,SAAS;IACX;IAEAA,OAAO,YAAY,GAAG;QACpB,SAAS;QACT,UAAU;QACV,SAAS;QACT,OAAO;YACL,GAAG,CAACK,OACMA,AAAAA,CAAAA,KAAK,SAAS,EAAE,MAAM,KAAK;YAErC,WAAW;YACX,MAAM,CAACA,OACE;oBAACA,KAAK,IAAI;iBAAC;YAEpB,UAAU;YACV,MAAM;QACR;IACF;IAEA,OAAOL;AACT"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { createFormatter, findMeasureById } from "../../../../utils/index.js";
|
|
2
|
+
import { isNumber, merge, uniqueBy } from "remeda";
|
|
3
|
+
import { MeasureId } from "../../../../../dataReshape/constant.js";
|
|
4
|
+
import { generateMeasurePercent, generateMeasureValue, label as external_label_js_label } from "./label.js";
|
|
5
|
+
const labelTreeMapLeaf = (spec, context)=>{
|
|
6
|
+
const result = external_label_js_label(spec, context);
|
|
7
|
+
const { advancedVSeed, vseed } = context;
|
|
8
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
|
9
|
+
const { chartType, encoding } = advancedVSeed;
|
|
10
|
+
const baseConfig = advancedVSeed.config[chartType];
|
|
11
|
+
const foldInfoList = [
|
|
12
|
+
datasetReshapeInfo[0].foldInfo
|
|
13
|
+
];
|
|
14
|
+
const { label } = baseConfig;
|
|
15
|
+
if (!label.enable) return result;
|
|
16
|
+
const { showValue, showValuePercent, showDimension, autoFormat, numFormat = {}, wrap } = label;
|
|
17
|
+
const hasDimLabelEncoding = vseed.dimensions?.some((item)=>encoding.label?.includes(item.id));
|
|
18
|
+
const labelDims = uniqueBy(hasDimLabelEncoding ? vseed.dimensions?.filter((item)=>encoding.label?.includes(item.id)) || [] : showDimension ? advancedVSeed.dimensions.filter((d)=>d.id !== MeasureId && 'row' !== d.encoding && 'column' !== d.encoding) : [], (item)=>item.id);
|
|
19
|
+
const labelMeas = uniqueBy(vseed.measures?.filter((item)=>encoding.label?.includes(item.id)) || [], (item)=>item.id);
|
|
20
|
+
const percentFormat = merge(numFormat, {
|
|
21
|
+
type: 'percent'
|
|
22
|
+
});
|
|
23
|
+
const percentFormatter = createFormatter(percentFormat);
|
|
24
|
+
if (result.label) result.label.formatMethod = (_, datum)=>{
|
|
25
|
+
const nodeName = datum.name;
|
|
26
|
+
const dataArray = datum.datum;
|
|
27
|
+
if (!dataArray || !Array.isArray(dataArray)) return '';
|
|
28
|
+
const findDataNode = (nodes, name)=>{
|
|
29
|
+
for (const node of nodes){
|
|
30
|
+
if (node.name === name) return node;
|
|
31
|
+
if (node.children) {
|
|
32
|
+
const found = findDataNode(node.children, name);
|
|
33
|
+
if (found) return found;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
};
|
|
38
|
+
const realDatum = findDataNode(dataArray, nodeName);
|
|
39
|
+
if (!realDatum) return '';
|
|
40
|
+
const resultText = [];
|
|
41
|
+
const dimLabels = labelDims.map((item)=>{
|
|
42
|
+
const id = item.id;
|
|
43
|
+
return realDatum[id] ?? realDatum.__OriginalData__?.[id];
|
|
44
|
+
}).filter((v)=>null != v && '' !== v);
|
|
45
|
+
resultText.push(...dimLabels);
|
|
46
|
+
const meaLabels = labelMeas.map((item)=>generateMeasureValue(realDatum[item.id] ?? realDatum.__OriginalData__?.[item.id], item, autoFormat, numFormat));
|
|
47
|
+
resultText.push(...meaLabels);
|
|
48
|
+
foldInfoList.forEach((foldInfo)=>{
|
|
49
|
+
const { measureId, measureValue, statistics } = foldInfo;
|
|
50
|
+
const currentMeasureId = realDatum[measureId] ?? realDatum.__MeaId__;
|
|
51
|
+
const measure = findMeasureById(advancedVSeed.measures, currentMeasureId);
|
|
52
|
+
if (measure) {
|
|
53
|
+
const val = realDatum[measureValue] ?? realDatum.__MeaValue__ ?? realDatum.value;
|
|
54
|
+
const measureValueLabel = generateMeasureValue(val, measure, autoFormat, numFormat);
|
|
55
|
+
if (showValue) resultText.push(measureValueLabel);
|
|
56
|
+
if (showValuePercent) {
|
|
57
|
+
if (statistics && isNumber(statistics.sum)) resultText.push(generateMeasurePercent(val, statistics.sum, percentFormatter));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
if (wrap) return resultText;
|
|
62
|
+
return resultText.join(' ');
|
|
63
|
+
};
|
|
64
|
+
return result;
|
|
65
|
+
};
|
|
66
|
+
export { labelTreeMapLeaf };
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=labelTreeMapLeaf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/label/labelTreeMapLeaf.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/labelTreeMapLeaf.ts"],"sourcesContent":["import type { ILineChartSpec } from '@visactor/vchart'\nimport { createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, Dimension, FoldInfo, Label, Measure, NumFormat, VChartSpecPipe } from 'src/types'\nimport { isNumber, merge, uniqueBy } from 'remeda'\nimport { MeasureId } from 'src/dataReshape/constant'\nimport { label as commonLabel, generateMeasurePercent, generateMeasureValue } from './label'\n\nexport const labelTreeMapLeaf: VChartSpecPipe = (spec, context) => {\n const result = commonLabel(spec, context) as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n const foldInfoList = [datasetReshapeInfo[0].foldInfo as FoldInfo]\n\n const { label } = baseConfig\n if (!label.enable) {\n return result\n }\n\n const { showValue, showValuePercent, showDimension, autoFormat, numFormat = {}, wrap } = label\n\n const hasDimLabelEncoding = vseed.dimensions?.some((item) => encoding.label?.includes(item.id))\n\n const labelDims = uniqueBy(\n hasDimLabelEncoding\n ? vseed.dimensions?.filter((item) => encoding.label?.includes(item.id)) || []\n : showDimension\n ? advancedVSeed.dimensions!.filter((d) => d.id !== MeasureId && d.encoding !== 'row' && d.encoding !== 'column')\n : [],\n (item: Dimension) => item.id,\n )\n\n const labelMeas = uniqueBy(\n vseed.measures?.filter((item) => encoding.label?.includes(item.id)) || [],\n (item: Measure) => item.id,\n )\n\n const percentFormat: NumFormat = merge(numFormat, {\n type: 'percent',\n } as NumFormat)\n\n const percentFormatter = createFormatter(percentFormat)\n\n if (result.label) {\n ;(result.label as any).formatMethod = (_: unknown, datum: Datum) => {\n // TreeMap returns a nested structure where `datum` is an array of children.\n // We need to find the specific data item that matches the current node's name.\n // The current node's name is usually available in the top-level datum object (which is `datum` here).\n // However, VChart's TreeMap datum structure is a bit complex.\n // Based on the user provided example:\n // datum: { name: \"Stapler\", datum: [...], ... }\n\n const nodeName = datum.name\n const dataArray = datum.datum as any[]\n\n if (!dataArray || !Array.isArray(dataArray)) {\n return ''\n }\n\n // Helper to find the matching data node recursively\n const findDataNode = (nodes: any[], name: string): any => {\n for (const node of nodes) {\n if (node.name === name) {\n return node\n }\n if (node.children) {\n const found = findDataNode(node.children, name)\n if (found) return found\n }\n }\n return null\n }\n\n // The structure seems to be that `datum` (the array) contains the root(s) of the hierarchy relevant to this node?\n // Or simply the data array we passed in.\n // Let's try to find the node with the matching name.\n const realDatum = findDataNode(dataArray, nodeName as string)\n\n if (!realDatum) {\n return ''\n }\n\n const resultText: string[] = []\n\n // 1. Dimension Labels\n const dimLabels = labelDims\n .map((item: Dimension) => {\n const id = item.id\n // Try to get from realDatum (it has fields attached in datasetHierarchy.ts)\n // or fallback to __OriginalData__\n return (realDatum[id] ?? realDatum.__OriginalData__?.[id]) as number | string\n })\n .filter((v) => v !== undefined && v !== null && v !== '')\n\n resultText.push(...(dimLabels as string[]))\n\n // 2. Measure Labels (from label encoding)\n const meaLabels = labelMeas.map((item: Measure) =>\n generateMeasureValue(\n (realDatum[item.id] ?? realDatum.__OriginalData__?.[item.id]) as number | string,\n item,\n autoFormat,\n numFormat,\n ),\n )\n resultText.push(...meaLabels)\n\n // 3. Value and Percent (default/implicit)\n foldInfoList.forEach((foldInfo) => {\n const { measureId, measureValue, statistics } = foldInfo\n // The measure ID might be in __MeaId__ or we look it up from the datum\n const currentMeasureId = (realDatum[measureId] ?? realDatum.__MeaId__) as string\n const measure = findMeasureById(advancedVSeed.measures!, currentMeasureId)\n\n if (measure) {\n const val = (realDatum[measureValue] ?? realDatum.__MeaValue__ ?? realDatum.value) as number | string\n\n const measureValueLabel = generateMeasureValue(val, measure, autoFormat, numFormat)\n\n if (showValue) {\n resultText.push(measureValueLabel)\n }\n if (showValuePercent) {\n // For TreeMap, percentage usually implies % of parent or total.\n // If we have statistics.sum (total), we can calculate it.\n if (statistics && isNumber(statistics.sum)) {\n resultText.push(generateMeasurePercent(val, statistics.sum, percentFormatter))\n }\n }\n }\n })\n\n if (wrap) {\n return resultText\n }\n return resultText.join(' ')\n }\n }\n\n return result\n}\n"],"names":["labelTreeMapLeaf","spec","context","result","commonLabel","advancedVSeed","vseed","datasetReshapeInfo","chartType","encoding","baseConfig","foldInfoList","label","showValue","showValuePercent","showDimension","autoFormat","numFormat","wrap","hasDimLabelEncoding","item","labelDims","uniqueBy","d","MeasureId","labelMeas","percentFormat","merge","percentFormatter","createFormatter","_","datum","nodeName","dataArray","Array","findDataNode","nodes","name","node","found","realDatum","resultText","dimLabels","id","v","meaLabels","generateMeasureValue","foldInfo","measureId","measureValue","statistics","currentMeasureId","measure","findMeasureById","val","measureValueLabel","isNumber","generateMeasurePercent"],"mappings":"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"}
|
|
@@ -2,7 +2,3 @@ export * from "./isPlayer.js";
|
|
|
2
2
|
export * from "./playerYX.js";
|
|
3
3
|
export * from "./playerXY.js";
|
|
4
4
|
export * from "./playerYY.js";
|
|
5
|
-
export * from "./playerXLinear.js";
|
|
6
|
-
export * from "./playerYLinear.js";
|
|
7
|
-
export * from "./playerYBand.js";
|
|
8
|
-
export * from "./playerXBand.js";
|