@visactor/vchart 1.0.1-alpha.0 → 1.0.1-alpha.2
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/build/index.js +5027 -5002
- package/build/index.min.js +2 -2
- package/chart.d.ts +1 -0
- package/chart.js +1 -0
- package/cjs/chart/area/area.js +3 -1
- package/cjs/chart/area/area.js.map +1 -1
- package/cjs/chart/bar/bar-3d.d.ts +7 -0
- package/cjs/chart/bar/bar-3d.js +19 -0
- package/cjs/chart/bar/bar-3d.js.map +1 -0
- package/cjs/chart/bar/bar.d.ts +0 -6
- package/cjs/chart/bar/bar.js +4 -11
- package/cjs/chart/bar/bar.js.map +1 -1
- package/cjs/chart/bar/index.d.ts +1 -0
- package/cjs/chart/bar/index.js +2 -1
- package/cjs/chart/bar/index.js.map +1 -1
- package/cjs/chart/base-chart.d.ts +1 -1
- package/cjs/chart/box-plot/box-plot.js +3 -1
- package/cjs/chart/box-plot/box-plot.js.map +1 -1
- package/cjs/chart/circle-packing/circle-packing.js +3 -1
- package/cjs/chart/circle-packing/circle-packing.js.map +1 -1
- package/cjs/chart/funnel/base.d.ts +9 -0
- package/cjs/chart/funnel/base.js +47 -0
- package/cjs/chart/funnel/base.js.map +1 -0
- package/cjs/chart/funnel/funnel-3d.d.ts +7 -0
- package/cjs/chart/funnel/funnel-3d.js +19 -0
- package/cjs/chart/funnel/funnel-3d.js.map +1 -0
- package/cjs/chart/funnel/funnel.d.ts +1 -16
- package/cjs/chart/funnel/funnel.js +4 -48
- package/cjs/chart/funnel/funnel.js.map +1 -1
- package/cjs/chart/funnel/index.d.ts +1 -0
- package/cjs/chart/funnel/index.js +2 -1
- package/cjs/chart/funnel/index.js.map +1 -1
- package/cjs/chart/gauge/gauge.js +3 -1
- package/cjs/chart/gauge/gauge.js.map +1 -1
- package/cjs/chart/heatmap/heatmap.js +3 -1
- package/cjs/chart/heatmap/heatmap.js.map +1 -1
- package/cjs/chart/histogram/base.d.ts +5 -0
- package/cjs/chart/histogram/base.js +22 -0
- package/cjs/chart/histogram/base.js.map +1 -0
- package/cjs/chart/histogram/histogram-3d.d.ts +7 -0
- package/cjs/chart/histogram/histogram-3d.js +19 -0
- package/cjs/chart/histogram/histogram-3d.js.map +1 -0
- package/cjs/chart/histogram/histogram.d.ts +1 -12
- package/cjs/chart/histogram/histogram.js +4 -23
- package/cjs/chart/histogram/histogram.js.map +1 -1
- package/cjs/chart/histogram/index.d.ts +1 -0
- package/cjs/chart/histogram/index.js +2 -1
- package/cjs/chart/histogram/index.js.map +1 -1
- package/cjs/chart/index.d.ts +57 -22
- package/cjs/chart/index.js +293 -26
- package/cjs/chart/index.js.map +1 -1
- package/cjs/chart/line/line.js +3 -1
- package/cjs/chart/line/line.js.map +1 -1
- package/cjs/chart/map/map.js +3 -1
- package/cjs/chart/map/map.js.map +1 -1
- package/cjs/chart/pie/base.d.ts +5 -0
- package/cjs/chart/pie/base.js +26 -0
- package/cjs/chart/pie/base.js.map +1 -0
- package/cjs/chart/pie/index.d.ts +1 -0
- package/cjs/chart/pie/index.js +2 -1
- package/cjs/chart/pie/index.js.map +1 -1
- package/cjs/chart/pie/pie-3d.d.ts +8 -0
- package/cjs/chart/pie/pie-3d.js +24 -0
- package/cjs/chart/pie/pie-3d.js.map +1 -0
- package/cjs/chart/pie/pie.d.ts +1 -13
- package/cjs/chart/pie/pie.js +4 -32
- package/cjs/chart/pie/pie.js.map +1 -1
- package/cjs/chart/progress/circular/circular.js +3 -1
- package/cjs/chart/progress/circular/circular.js.map +1 -1
- package/cjs/chart/progress/linear/linear.js +3 -1
- package/cjs/chart/progress/linear/linear.js.map +1 -1
- package/cjs/chart/radar/radar.js +3 -1
- package/cjs/chart/radar/radar.js.map +1 -1
- package/cjs/chart/range-area/range-area.js +3 -1
- package/cjs/chart/range-area/range-area.js.map +1 -1
- package/cjs/chart/range-column/index.d.ts +2 -1
- package/cjs/chart/range-column/index.js +2 -1
- package/cjs/chart/range-column/index.js.map +1 -1
- package/cjs/chart/range-column/{rangeColumn.d.ts → range-column-3d.d.ts} +0 -7
- package/cjs/chart/range-column/{rangeColumn.js → range-column-3d.js} +4 -17
- package/cjs/chart/range-column/range-column-3d.js.map +1 -0
- package/cjs/chart/range-column/range-column.d.ts +8 -0
- package/cjs/chart/range-column/range-column.js +25 -0
- package/cjs/chart/range-column/range-column.js.map +1 -0
- package/cjs/chart/rose/rose.js +3 -1
- package/cjs/chart/rose/rose.js.map +1 -1
- package/cjs/chart/sankey/sankey.js +3 -1
- package/cjs/chart/sankey/sankey.js.map +1 -1
- package/cjs/chart/scatter/scatter.js +3 -1
- package/cjs/chart/scatter/scatter.js.map +1 -1
- package/cjs/chart/sequence/sequence.js +3 -1
- package/cjs/chart/sequence/sequence.js.map +1 -1
- package/cjs/chart/sunburst/sunburst.js +3 -1
- package/cjs/chart/sunburst/sunburst.js.map +1 -1
- package/cjs/chart/treemap/treemap.js +3 -1
- package/cjs/chart/treemap/treemap.js.map +1 -1
- package/cjs/chart/waterfall/waterfall.js +3 -1
- package/cjs/chart/waterfall/waterfall.js.map +1 -1
- package/cjs/chart/word-cloud/base.d.ts +6 -0
- package/cjs/chart/word-cloud/base.js +25 -0
- package/cjs/chart/word-cloud/base.js.map +1 -0
- package/cjs/chart/word-cloud/index.d.ts +1 -0
- package/cjs/chart/word-cloud/index.js +2 -1
- package/cjs/chart/word-cloud/index.js.map +1 -1
- package/cjs/chart/word-cloud/word-cloud-3d.d.ts +9 -0
- package/cjs/chart/word-cloud/word-cloud-3d.js +46 -0
- package/cjs/chart/word-cloud/word-cloud-3d.js.map +1 -0
- package/cjs/chart/word-cloud/word-cloud.d.ts +2 -15
- package/cjs/chart/word-cloud/word-cloud.js +4 -53
- package/cjs/chart/word-cloud/word-cloud.js.map +1 -1
- package/cjs/compile/grammar-item.js +1 -2
- package/cjs/component/index.d.ts +39 -1
- package/cjs/component/index.js +202 -16
- package/cjs/component/index.js.map +1 -1
- package/cjs/component/legend/base-legend.d.ts +1 -1
- package/cjs/component/legend/util.d.ts +3 -3
- package/cjs/component/tooltip/handler/dom/model/base-tooltip-model.d.ts +1 -1
- package/cjs/{export/core.d.ts → core/index.d.ts} +4 -4
- package/cjs/{export/core.js → core/index.js} +5 -5
- package/cjs/core/index.js.map +1 -0
- package/cjs/event/bubble.js +2 -1
- package/cjs/index.d.ts +6 -6
- package/cjs/index.js +4 -4
- package/cjs/index.js.map +1 -1
- package/cjs/interaction/interface.js +1 -1
- package/cjs/interaction/trigger.js +2 -1
- package/cjs/layout/base-layout.d.ts +24 -0
- package/cjs/layout/base-layout.js +124 -0
- package/cjs/layout/base-layout.js.map +1 -0
- package/cjs/layout/index.d.ts +7 -24
- package/cjs/layout/index.js +24 -115
- package/cjs/layout/index.js.map +1 -1
- package/cjs/layout/layout3d/index.d.ts +1 -1
- package/cjs/layout/layout3d/index.js +2 -2
- package/cjs/layout/layout3d/index.js.map +1 -1
- package/cjs/mark/arc-3d.d.ts +9 -0
- package/cjs/mark/arc-3d.js +16 -0
- package/cjs/mark/arc-3d.js.map +1 -0
- package/cjs/mark/arc.d.ts +1 -6
- package/cjs/mark/arc.js +1 -9
- package/cjs/mark/arc.js.map +1 -1
- package/cjs/mark/index.d.ts +21 -0
- package/cjs/{export/mark.js → mark/index.js} +49 -37
- package/cjs/mark/index.js.map +1 -0
- package/cjs/mark/{linkPath.js → link-path.js} +1 -1
- package/cjs/mark/link-path.js.map +1 -0
- package/cjs/mark/polygon/base-polygon.d.ts +6 -0
- package/cjs/mark/polygon/base-polygon.js +18 -0
- package/cjs/mark/polygon/base-polygon.js.map +1 -0
- package/cjs/mark/polygon/polygon.d.ts +9 -0
- package/cjs/mark/polygon/polygon.js +16 -0
- package/cjs/mark/polygon/polygon.js.map +1 -0
- package/cjs/mark/polygon/pyramid-3d.d.ts +9 -0
- package/cjs/mark/polygon/pyramid-3d.js +16 -0
- package/cjs/mark/polygon/pyramid-3d.js.map +1 -0
- package/cjs/mark/rect-3d.d.ts +10 -0
- package/cjs/mark/rect-3d.js +23 -0
- package/cjs/mark/rect-3d.js.map +1 -0
- package/cjs/mark/rect.d.ts +1 -7
- package/cjs/mark/rect.js +1 -16
- package/cjs/mark/rect.js.map +1 -1
- package/cjs/model/layout-item.js +1 -2
- package/cjs/model/model-state-manager.js +1 -1
- package/cjs/model/tooltip-helper.js +1 -1
- package/cjs/plugin/interface.js +1 -1
- package/cjs/region/interface.js +1 -1
- package/cjs/region/region.js +1 -1
- package/cjs/series/area/area.js +3 -1
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/bar/bar-3d.d.ts +11 -0
- package/cjs/series/bar/bar-3d.js +25 -0
- package/cjs/series/bar/bar-3d.js.map +1 -0
- package/cjs/series/bar/bar.d.ts +0 -7
- package/cjs/series/bar/bar.js +3 -18
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/box-plot/box-plot.js +5 -1
- package/cjs/series/box-plot/box-plot.js.map +1 -1
- package/cjs/series/circle-packing/circle-packing.js +3 -1
- package/cjs/series/circle-packing/circle-packing.js.map +1 -1
- package/cjs/series/dot/dot.js +3 -1
- package/cjs/series/dot/dot.js.map +1 -1
- package/cjs/series/funnel/funnel-3d.d.ts +18 -0
- package/cjs/series/funnel/funnel-3d.js +104 -0
- package/cjs/series/funnel/funnel-3d.js.map +1 -0
- package/cjs/series/funnel/funnel.d.ts +2 -14
- package/cjs/series/funnel/funnel.js +4 -96
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/gauge/gauge-pointer.js +3 -1
- package/cjs/series/gauge/gauge-pointer.js.map +1 -1
- package/cjs/series/gauge/gauge.js +3 -1
- package/cjs/series/gauge/gauge.js.map +1 -1
- package/cjs/series/heatmap/heatmap.js +2 -2
- package/cjs/series/heatmap/heatmap.js.map +1 -1
- package/cjs/series/index.d.ts +66 -0
- package/cjs/{export/series.js → series/index.js} +70 -50
- package/cjs/series/index.js.map +1 -0
- package/cjs/series/line/line.js +3 -1
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/link/link.js +3 -1
- package/cjs/series/link/link.js.map +1 -1
- package/cjs/series/map/map.js +2 -2
- package/cjs/series/map/map.js.map +1 -1
- package/cjs/series/pie/pie-3d.d.ts +16 -0
- package/cjs/series/pie/pie-3d.js +97 -0
- package/cjs/series/pie/pie-3d.js.map +1 -0
- package/cjs/series/pie/pie.d.ts +1 -11
- package/cjs/series/pie/pie.js +4 -89
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/polar/animation.d.ts +1 -1
- package/cjs/series/polar/animation.js.map +1 -1
- package/cjs/series/progress/circular/circular.js +3 -1
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/progress/linear/linear.js +3 -1
- package/cjs/series/progress/linear/linear.js.map +1 -1
- package/cjs/series/radar/animation.d.ts +1 -1
- package/cjs/series/radar/animation.js.map +1 -1
- package/cjs/series/radar/radar.js +3 -1
- package/cjs/series/radar/radar.js.map +1 -1
- package/cjs/series/range-column/rangeColumn-3d.d.ts +10 -0
- package/cjs/series/range-column/rangeColumn-3d.js +19 -0
- package/cjs/series/range-column/rangeColumn-3d.js.map +1 -0
- package/cjs/series/range-column/rangeColumn.d.ts +0 -6
- package/cjs/series/range-column/rangeColumn.js +1 -10
- package/cjs/series/range-column/rangeColumn.js.map +1 -1
- package/cjs/series/rose/rose.js +2 -2
- package/cjs/series/rose/rose.js.map +1 -1
- package/cjs/series/sankey/sankey.js +2 -1
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/scatter/scatter.js +3 -1
- package/cjs/series/scatter/scatter.js.map +1 -1
- package/cjs/series/sunburst/sunburst.js +3 -1
- package/cjs/series/sunburst/sunburst.js.map +1 -1
- package/cjs/series/treemap/treemap.js +3 -1
- package/cjs/series/treemap/treemap.js.map +1 -1
- package/cjs/series/waterfall/waterfall.js +2 -2
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/series/word-cloud/base.d.ts +60 -0
- package/cjs/series/word-cloud/base.js +254 -0
- package/cjs/series/word-cloud/base.js.map +1 -0
- package/cjs/series/word-cloud/word-cloud-3d.d.ts +11 -0
- package/cjs/series/word-cloud/word-cloud-3d.js +199 -0
- package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -0
- package/cjs/series/word-cloud/word-cloud.d.ts +2 -69
- package/cjs/series/word-cloud/word-cloud.js +5 -441
- package/cjs/series/word-cloud/word-cloud.js.map +1 -1
- package/cjs/vchart-all.d.ts +1 -1
- package/cjs/vchart-all.js +3 -5
- package/cjs/vchart-all.js.map +1 -1
- package/cjs/vchart-simple.d.ts +1 -1
- package/cjs/vchart-simple.js +2 -4
- package/cjs/vchart-simple.js.map +1 -1
- package/component.d.ts +1 -0
- package/component.js +1 -0
- package/core.d.ts +1 -0
- package/core.js +1 -0
- package/esm/chart/area/area.js +6 -0
- package/esm/chart/area/area.js.map +1 -1
- package/esm/chart/bar/bar-3d.d.ts +7 -0
- package/esm/chart/bar/bar-3d.js +20 -0
- package/esm/chart/bar/bar-3d.js.map +1 -0
- package/esm/chart/bar/bar.d.ts +0 -6
- package/esm/chart/bar/bar.js +6 -8
- package/esm/chart/bar/bar.js.map +1 -1
- package/esm/chart/bar/index.d.ts +1 -0
- package/esm/chart/bar/index.js +2 -0
- package/esm/chart/bar/index.js.map +1 -1
- package/esm/chart/base-chart.d.ts +1 -1
- package/esm/chart/box-plot/box-plot.js +6 -0
- package/esm/chart/box-plot/box-plot.js.map +1 -1
- package/esm/chart/circle-packing/circle-packing.js +6 -0
- package/esm/chart/circle-packing/circle-packing.js.map +1 -1
- package/esm/chart/funnel/base.d.ts +9 -0
- package/esm/chart/funnel/base.js +39 -0
- package/esm/chart/funnel/base.js.map +1 -0
- package/esm/chart/funnel/funnel-3d.d.ts +7 -0
- package/esm/chart/funnel/funnel-3d.js +20 -0
- package/esm/chart/funnel/funnel-3d.js.map +1 -0
- package/esm/chart/funnel/funnel.d.ts +1 -16
- package/esm/chart/funnel/funnel.js +7 -46
- package/esm/chart/funnel/funnel.js.map +1 -1
- package/esm/chart/funnel/index.d.ts +1 -0
- package/esm/chart/funnel/index.js +2 -0
- package/esm/chart/funnel/index.js.map +1 -1
- package/esm/chart/gauge/gauge.js +6 -0
- package/esm/chart/gauge/gauge.js.map +1 -1
- package/esm/chart/heatmap/heatmap.js +6 -0
- package/esm/chart/heatmap/heatmap.js.map +1 -1
- package/esm/chart/histogram/base.d.ts +5 -0
- package/esm/chart/histogram/base.js +14 -0
- package/esm/chart/histogram/base.js.map +1 -0
- package/esm/chart/histogram/histogram-3d.d.ts +7 -0
- package/esm/chart/histogram/histogram-3d.js +20 -0
- package/esm/chart/histogram/histogram-3d.js.map +1 -0
- package/esm/chart/histogram/histogram.d.ts +1 -12
- package/esm/chart/histogram/histogram.js +7 -21
- package/esm/chart/histogram/histogram.js.map +1 -1
- package/esm/chart/histogram/index.d.ts +1 -0
- package/esm/chart/histogram/index.js +2 -0
- package/esm/chart/histogram/index.js.map +1 -1
- package/esm/chart/index.d.ts +57 -22
- package/esm/chart/index.js +36 -22
- package/esm/chart/index.js.map +1 -1
- package/esm/chart/line/line.js +6 -0
- package/esm/chart/line/line.js.map +1 -1
- package/esm/chart/map/map.js +6 -0
- package/esm/chart/map/map.js.map +1 -1
- package/esm/chart/pie/base.d.ts +5 -0
- package/esm/chart/pie/base.js +18 -0
- package/esm/chart/pie/base.js.map +1 -0
- package/esm/chart/pie/index.d.ts +1 -0
- package/esm/chart/pie/index.js +2 -0
- package/esm/chart/pie/index.js.map +1 -1
- package/esm/chart/pie/pie-3d.d.ts +8 -0
- package/esm/chart/pie/pie-3d.js +25 -0
- package/esm/chart/pie/pie-3d.js.map +1 -0
- package/esm/chart/pie/pie.d.ts +1 -13
- package/esm/chart/pie/pie.js +6 -29
- package/esm/chart/pie/pie.js.map +1 -1
- package/esm/chart/progress/circular/circular.js +6 -0
- package/esm/chart/progress/circular/circular.js.map +1 -1
- package/esm/chart/progress/linear/linear.js +6 -0
- package/esm/chart/progress/linear/linear.js.map +1 -1
- package/esm/chart/radar/radar.js +6 -0
- package/esm/chart/radar/radar.js.map +1 -1
- package/esm/chart/range-area/range-area.js +6 -0
- package/esm/chart/range-area/range-area.js.map +1 -1
- package/esm/chart/range-column/index.d.ts +2 -1
- package/esm/chart/range-column/index.js +3 -1
- package/esm/chart/range-column/index.js.map +1 -1
- package/esm/chart/range-column/{rangeColumn.d.ts → range-column-3d.d.ts} +0 -7
- package/esm/chart/range-column/{rangeColumn.js → range-column-3d.js} +5 -13
- package/esm/chart/range-column/range-column-3d.js.map +1 -0
- package/esm/chart/range-column/range-column.d.ts +8 -0
- package/esm/chart/range-column/range-column.js +28 -0
- package/esm/chart/range-column/range-column.js.map +1 -0
- package/esm/chart/rose/rose.js +6 -0
- package/esm/chart/rose/rose.js.map +1 -1
- package/esm/chart/sankey/sankey.js +6 -0
- package/esm/chart/sankey/sankey.js.map +1 -1
- package/esm/chart/scatter/scatter.js +6 -0
- package/esm/chart/scatter/scatter.js.map +1 -1
- package/esm/chart/sequence/sequence.js +6 -0
- package/esm/chart/sequence/sequence.js.map +1 -1
- package/esm/chart/sunburst/sunburst.js +6 -0
- package/esm/chart/sunburst/sunburst.js.map +1 -1
- package/esm/chart/treemap/treemap.js +6 -0
- package/esm/chart/treemap/treemap.js.map +1 -1
- package/esm/chart/waterfall/waterfall.js +6 -0
- package/esm/chart/waterfall/waterfall.js.map +1 -1
- package/esm/chart/word-cloud/base.d.ts +6 -0
- package/esm/chart/word-cloud/base.js +21 -0
- package/esm/chart/word-cloud/base.js.map +1 -0
- package/esm/chart/word-cloud/index.d.ts +1 -0
- package/esm/chart/word-cloud/index.js +2 -0
- package/esm/chart/word-cloud/index.js.map +1 -1
- package/esm/chart/word-cloud/word-cloud-3d.d.ts +9 -0
- package/esm/chart/word-cloud/word-cloud-3d.js +47 -0
- package/esm/chart/word-cloud/word-cloud-3d.js.map +1 -0
- package/esm/chart/word-cloud/word-cloud.d.ts +2 -15
- package/esm/chart/word-cloud/word-cloud.js +6 -50
- package/esm/chart/word-cloud/word-cloud.js.map +1 -1
- package/esm/compile/grammar-item.js +1 -2
- package/esm/component/index.d.ts +39 -1
- package/esm/component/index.js +39 -1
- package/esm/component/index.js.map +1 -1
- package/esm/component/legend/base-legend.d.ts +1 -1
- package/esm/component/legend/util.d.ts +3 -3
- package/esm/component/tooltip/handler/dom/model/base-tooltip-model.d.ts +1 -1
- package/esm/{export/core.d.ts → core/index.d.ts} +4 -4
- package/esm/{export/core.js → core/index.js} +5 -5
- package/esm/core/index.js.map +1 -0
- package/esm/event/bubble.js +2 -1
- package/esm/index.d.ts +6 -6
- package/esm/index.js +6 -6
- package/esm/index.js.map +1 -1
- package/esm/interaction/interface.js +1 -1
- package/esm/interaction/trigger.js +2 -1
- package/esm/layout/base-layout.d.ts +24 -0
- package/esm/layout/base-layout.js +116 -0
- package/esm/layout/base-layout.js.map +1 -0
- package/esm/layout/index.d.ts +7 -24
- package/esm/layout/index.js +7 -115
- package/esm/layout/index.js.map +1 -1
- package/esm/layout/layout3d/index.d.ts +1 -1
- package/esm/layout/layout3d/index.js +1 -1
- package/esm/layout/layout3d/index.js.map +1 -1
- package/esm/mark/arc-3d.d.ts +9 -0
- package/esm/mark/arc-3d.js +12 -0
- package/esm/mark/arc-3d.js.map +1 -0
- package/esm/mark/arc.d.ts +1 -6
- package/esm/mark/arc.js +0 -8
- package/esm/mark/arc.js.map +1 -1
- package/esm/mark/index.d.ts +21 -0
- package/esm/mark/index.js +40 -0
- package/esm/mark/index.js.map +1 -0
- package/esm/mark/{linkPath.js → link-path.js} +1 -1
- package/esm/mark/link-path.js.map +1 -0
- package/esm/mark/polygon/base-polygon.d.ts +6 -0
- package/esm/mark/polygon/base-polygon.js +10 -0
- package/esm/mark/polygon/base-polygon.js.map +1 -0
- package/esm/mark/polygon/polygon.d.ts +9 -0
- package/esm/mark/polygon/polygon.js +12 -0
- package/esm/mark/polygon/polygon.js.map +1 -0
- package/esm/mark/polygon/pyramid-3d.d.ts +9 -0
- package/esm/mark/polygon/pyramid-3d.js +12 -0
- package/esm/mark/polygon/pyramid-3d.js.map +1 -0
- package/esm/mark/rect-3d.d.ts +10 -0
- package/esm/mark/rect-3d.js +19 -0
- package/esm/mark/rect-3d.js.map +1 -0
- package/esm/mark/rect.d.ts +1 -7
- package/esm/mark/rect.js +0 -15
- package/esm/mark/rect.js.map +1 -1
- package/esm/model/layout-item.js +1 -2
- package/esm/model/model-state-manager.js +1 -1
- package/esm/model/tooltip-helper.js +1 -1
- package/esm/plugin/interface.js +1 -1
- package/esm/region/interface.js +1 -1
- package/esm/region/region.js +1 -1
- package/esm/series/area/area.js +12 -0
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/bar/bar-3d.d.ts +11 -0
- package/esm/series/bar/bar-3d.js +30 -0
- package/esm/series/bar/bar-3d.js.map +1 -0
- package/esm/series/bar/bar.d.ts +0 -7
- package/esm/series/bar/bar.js +8 -14
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/box-plot/box-plot.js +8 -0
- package/esm/series/box-plot/box-plot.js.map +1 -1
- package/esm/series/circle-packing/circle-packing.js +8 -0
- package/esm/series/circle-packing/circle-packing.js.map +1 -1
- package/esm/series/dot/dot.js +14 -0
- package/esm/series/dot/dot.js.map +1 -1
- package/esm/series/funnel/funnel-3d.d.ts +18 -0
- package/esm/series/funnel/funnel-3d.js +113 -0
- package/esm/series/funnel/funnel-3d.js.map +1 -0
- package/esm/series/funnel/funnel.d.ts +2 -14
- package/esm/series/funnel/funnel.js +10 -93
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/gauge/gauge-pointer.js +8 -0
- package/esm/series/gauge/gauge-pointer.js.map +1 -1
- package/esm/series/gauge/gauge.js +6 -0
- package/esm/series/gauge/gauge.js.map +1 -1
- package/esm/series/heatmap/heatmap.js +8 -0
- package/esm/series/heatmap/heatmap.js.map +1 -1
- package/esm/series/index.d.ts +66 -0
- package/esm/series/index.js +70 -0
- package/esm/series/index.js.map +1 -0
- package/esm/series/line/line.js +10 -0
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/link/link.js +10 -0
- package/esm/series/link/link.js.map +1 -1
- package/esm/series/map/map.js +7 -1
- package/esm/series/map/map.js.map +1 -1
- package/esm/series/pie/pie-3d.d.ts +16 -0
- package/esm/series/pie/pie-3d.js +107 -0
- package/esm/series/pie/pie-3d.js.map +1 -0
- package/esm/series/pie/pie.d.ts +1 -11
- package/esm/series/pie/pie.js +10 -83
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/polar/animation.d.ts +1 -1
- package/esm/series/polar/animation.js.map +1 -1
- package/esm/series/progress/circular/circular.js +8 -0
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/progress/linear/linear.js +6 -0
- package/esm/series/progress/linear/linear.js.map +1 -1
- package/esm/series/radar/animation.d.ts +1 -1
- package/esm/series/radar/animation.js.map +1 -1
- package/esm/series/radar/radar.js +12 -0
- package/esm/series/radar/radar.js.map +1 -1
- package/esm/series/range-column/rangeColumn-3d.d.ts +10 -0
- package/esm/series/range-column/rangeColumn-3d.js +23 -0
- package/esm/series/range-column/rangeColumn-3d.js.map +1 -0
- package/esm/series/range-column/rangeColumn.d.ts +0 -6
- package/esm/series/range-column/rangeColumn.js +0 -9
- package/esm/series/range-column/rangeColumn.js.map +1 -1
- package/esm/series/rose/rose.js +8 -0
- package/esm/series/rose/rose.js.map +1 -1
- package/esm/series/sankey/sankey.js +9 -1
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/scatter/scatter.js +8 -0
- package/esm/series/scatter/scatter.js.map +1 -1
- package/esm/series/sunburst/sunburst.js +8 -0
- package/esm/series/sunburst/sunburst.js.map +1 -1
- package/esm/series/treemap/treemap.js +8 -0
- package/esm/series/treemap/treemap.js.map +1 -1
- package/esm/series/waterfall/waterfall.js +6 -0
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/series/word-cloud/base.d.ts +60 -0
- package/esm/series/word-cloud/base.js +278 -0
- package/esm/series/word-cloud/base.js.map +1 -0
- package/esm/series/word-cloud/word-cloud-3d.d.ts +11 -0
- package/esm/series/word-cloud/word-cloud-3d.js +207 -0
- package/esm/series/word-cloud/word-cloud-3d.js.map +1 -0
- package/esm/series/word-cloud/word-cloud.d.ts +2 -69
- package/esm/series/word-cloud/word-cloud.js +2 -461
- package/esm/series/word-cloud/word-cloud.js.map +1 -1
- package/esm/vchart-all.d.ts +1 -1
- package/esm/vchart-all.js +4 -12
- package/esm/vchart-all.js.map +1 -1
- package/esm/vchart-simple.d.ts +1 -1
- package/esm/vchart-simple.js +4 -10
- package/esm/vchart-simple.js.map +1 -1
- package/layout.d.ts +1 -0
- package/layout.js +1 -0
- package/mark.d.ts +1 -0
- package/mark.js +1 -0
- package/package.json +39 -26
- package/series.d.ts +1 -0
- package/series.js +1 -0
- package/cjs/chart/range-column/rangeColumn.js.map +0 -1
- package/cjs/export/chart.d.ts +0 -57
- package/cjs/export/chart.js +0 -298
- package/cjs/export/chart.js.map +0 -1
- package/cjs/export/component.d.ts +0 -39
- package/cjs/export/component.js +0 -207
- package/cjs/export/component.js.map +0 -1
- package/cjs/export/core.js.map +0 -1
- package/cjs/export/layout.d.ts +0 -7
- package/cjs/export/layout.js +0 -33
- package/cjs/export/layout.js.map +0 -1
- package/cjs/export/mark.d.ts +0 -18
- package/cjs/export/mark.js.map +0 -1
- package/cjs/export/series.d.ts +0 -61
- package/cjs/export/series.js.map +0 -1
- package/cjs/mark/linkPath.js.map +0 -1
- package/cjs/mark/polygon.d.ts +0 -18
- package/cjs/mark/polygon.js +0 -32
- package/cjs/mark/polygon.js.map +0 -1
- package/esm/chart/range-column/rangeColumn.js.map +0 -1
- package/esm/export/chart.d.ts +0 -57
- package/esm/export/chart.js +0 -58
- package/esm/export/chart.js.map +0 -1
- package/esm/export/component.d.ts +0 -39
- package/esm/export/component.js +0 -40
- package/esm/export/component.js.map +0 -1
- package/esm/export/core.js.map +0 -1
- package/esm/export/layout.d.ts +0 -7
- package/esm/export/layout.js +0 -8
- package/esm/export/layout.js.map +0 -1
- package/esm/export/mark.d.ts +0 -18
- package/esm/export/mark.js +0 -34
- package/esm/export/mark.js.map +0 -1
- package/esm/export/series.d.ts +0 -61
- package/esm/export/series.js +0 -60
- package/esm/export/series.js.map +0 -1
- package/esm/mark/linkPath.js.map +0 -1
- package/esm/mark/polygon.d.ts +0 -18
- package/esm/mark/polygon.js +0 -28
- package/esm/mark/polygon.js.map +0 -1
- /package/cjs/mark/{linkPath.d.ts → link-path.d.ts} +0 -0
- /package/esm/mark/{linkPath.d.ts → link-path.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/map/map.ts"],"names":[],"mappings":"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","file":"map.js","sourcesContent":["import { MarkTypeEnum } from '../../mark/interface';\nimport { registerGrammar } from '@visactor/vgrammar';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IElement } from '@visactor/vgrammar';\nimport { Projection } from '@visactor/vgrammar-projection';\nimport { DataView } from '@visactor/vdataset';\nimport type { IPathMark } from '../../mark/path';\nimport { geoSourceMap } from './geo-source';\nimport { lookup } from '../../data/transforms/lookup';\nimport type { Maybe, Datum, StringOrNumber } from '../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValid, isValidNumber } from '../../util';\nimport { GeoSeries } from '../geo/geo';\nimport { map } from '../../data/transforms/map';\nimport { copyDataView } from '../../data/transforms/copy-data-view';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport { MapSeriesTooltipHelper } from './tooltip-helper';\nimport type { ITextMark } from '../../mark/text';\nimport { AttributeLevel, DEFAULT_DATA_SERIES_FIELD, DEFAULT_DATA_KEY } from '../../constant/index';\nimport type { SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface';\nimport type { IMapSeriesSpec, IMapSeriesTheme } from './interface';\nimport { SeriesData } from '../base/series-data';\nimport type { PanEventParam, ZoomEventParam } from '../../event/interface';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport { BaseSeries } from '../base/base-series';\n\n// 注册语法元素\nregisterGrammar('projection', Projection, 'projections');\n\nexport class MapSeries extends GeoSeries<IMapSeriesSpec> {\n static readonly type: string = SeriesTypeEnum.map;\n type = SeriesTypeEnum.map;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n [SeriesMarkNameEnum.area]: { name: SeriesMarkNameEnum.area, type: MarkTypeEnum.path }\n };\n\n map!: string;\n\n protected _nameMap!: { [key: StringOrNumber]: StringOrNumber };\n getNameMap() {\n return this._nameMap;\n }\n\n protected _nameProperty: string = 'name';\n getNameProperty() {\n return this._nameProperty;\n }\n\n protected declare _theme: Maybe<IMapSeriesTheme>;\n\n private _areaCache: Map<string, { shape: string }> = new Map();\n\n private _pathMark: IPathMark;\n private _labelMark: ITextMark;\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this.map = this._spec.map;\n this._nameMap = this._spec.nameMap;\n this._nameField = this._spec.nameField;\n this._valueField = this._spec.valueField;\n this._spec.nameProperty && (this._nameProperty = this._spec.nameProperty);\n if (!this.map) {\n throw new Error(`map type '${this.map}' is not specified !`);\n }\n\n if (!geoSourceMap.get(this.map)) {\n throw new Error(`'${this.map}' data is not registered !`);\n }\n }\n\n // data\n initData(): void {\n super.initData();\n\n registerDataSetInstanceTransform(this._dataSet, 'copyDataView', copyDataView);\n registerDataSetInstanceTransform(this._dataSet, 'map', map);\n registerDataSetInstanceTransform(this._dataSet, 'lookup', lookup);\n\n // 初始化地图数据\n const features = geoSourceMap.get(this.map);\n if (!features) {\n throw Error('no valid map data found!');\n }\n const mapData = new DataView(this._dataSet);\n\n mapData\n .parse([features], {\n type: 'dataview'\n })\n .transform({ type: 'copyDataView', options: { deep: true } })\n .transform({\n type: 'map',\n options: {\n nameMap: this._nameMap,\n nameProperty: this._nameProperty\n }\n })\n .transform({\n type: 'lookup',\n options: {\n from: () => this._data?.getLatestData(),\n key: 'name',\n fields: this._nameField,\n values: [this.nameField, this.valueField, this._seriesField ?? DEFAULT_DATA_SERIES_FIELD, DEFAULT_DATA_KEY],\n as: [this.nameField, this.valueField, this._seriesField ?? DEFAULT_DATA_SERIES_FIELD, DEFAULT_DATA_KEY]\n }\n });\n this._data?.getDataView().target.addListener('change', mapData.reRunAllTransform);\n this._mapViewData = new SeriesData(this._option, mapData);\n }\n\n // mark\n initMark() {\n this._pathMark = this._createMark(MapSeries.mark.area, {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig('area', this._spec)),\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this.getDimensionField()[0],\n isSeriesMark: true,\n skipBeforeLayouted: true,\n dataView: this._mapViewData.getDataView(),\n dataProductId: this._mapViewData.getProductId()\n }) as IPathMark;\n\n if (this._spec.label?.visible) {\n this._labelMark = this._createMark(MapSeries.mark.label, {\n skipBeforeLayouted: true,\n dataView: this._mapViewData.getDataView(),\n dataProductId: this._mapViewData.getProductId()\n }) as ITextMark;\n }\n }\n\n initMarkStyle() {\n const pathMark = this._pathMark;\n if (pathMark) {\n this.setMarkStyle(\n pathMark,\n {\n fill: (datum: any) => {\n if (isValid(datum[this._seriesField ?? DEFAULT_DATA_SERIES_FIELD])) {\n return (this._option.globalScale.getScale('color') ?? this.getDefaultColorScale()).scale(\n datum[this._seriesField ?? DEFAULT_DATA_SERIES_FIELD]\n );\n }\n return this._theme?.defaultFillColor;\n },\n path: this.getPath.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n pathMark,\n {\n smoothScale: true\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this._trigger.registerMark(pathMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pathMark);\n }\n\n const labelMark = this._labelMark;\n if (labelMark) {\n this.setMarkStyle(labelMark, {\n text: (datum: Datum) => {\n return this._getDatumName(datum);\n },\n x: (datum: Datum) => {\n return this.dataToPosition(datum)?.x;\n },\n y: (datum: Datum) => this.dataToPosition(datum)?.y\n });\n }\n }\n\n initAnimation() {\n this._pathMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.path(), userAnimationConfig(SeriesMarkNameEnum.area, this._spec))\n );\n\n if (this._labelMark) {\n this._labelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec))\n );\n }\n }\n\n protected initTooltip() {\n this._tooltipHelper = new MapSeriesTooltipHelper(this);\n }\n\n protected getPath(datum: any) {\n const area = this._areaCache.get(datum?.properties?.[this._nameProperty]);\n if (area) {\n return area.shape;\n }\n const shape = this._coordinateHelper?.shape(datum);\n this._areaCache.set(datum?.properties?.[this._nameProperty], {\n shape\n });\n return shape;\n }\n\n // life cycle\n onEvaluateEnd() {\n this._mapViewData.updateData();\n }\n\n getDimensionField(): string[] {\n return [this.nameField];\n }\n\n getMeasureField(): string[] {\n return [this.valueField];\n }\n\n release() {\n super.release();\n this._areaCache.clear();\n this._nameMap = {};\n this._trigger = this._mapViewData = null as any;\n }\n\n updateSpec(spec: any) {\n const originalSpec = this._originalSpec;\n const { map, nameMap, valueField, nameProperty } = originalSpec;\n const result = super.updateSpec(spec);\n if (\n spec?.map !== map ||\n spec?.nameMap !== nameMap ||\n spec?.valueField !== valueField ||\n spec?.nameProperty !== nameProperty\n ) {\n result.reRender = true;\n }\n return result;\n }\n\n handleZoom(e: ZoomEventParam) {\n const { scale, scaleCenter } = e;\n if (scale === 1) {\n return;\n }\n\n this.getMarksWithoutRoot().forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const elements = vGrammarMark.elements;\n\n if (mark.type === MarkTypeEnum.path) {\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n graphicItem.scale(scale, scale, scaleCenter);\n });\n } else {\n // label Mark 的定位,需要通过 dataToPosition 来计算\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n const datum = el.getDatum();\n const newPosition = this.dataToPosition(datum);\n if (newPosition && graphicItem) {\n graphicItem.translateTo(newPosition.x, newPosition.y);\n }\n });\n }\n });\n }\n\n handlePan(e: PanEventParam) {\n const { delta } = e;\n if (delta[0] === 0 && delta[1] === 0) {\n return;\n }\n\n this.getMarksWithoutRoot().forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const elements = vGrammarMark.elements;\n\n if (mark.type === MarkTypeEnum.path) {\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n graphicItem.translate(delta[0], delta[1]);\n });\n } else {\n // label Mark 的定位,需要通过 dataToPosition 来计算\n elements.forEach((el: IElement, i: number) => {\n const graphicItem = el.getGraphicItem();\n const datum = el.getDatum();\n const newPosition = this.dataToPosition(datum);\n if (newPosition && graphicItem) {\n graphicItem.translateTo(newPosition.x, newPosition.y);\n }\n });\n }\n });\n }\n\n protected _getDatumCenter(datum: any): [number, number] {\n if (isValidNumber(datum.centroidX * datum.centroidY)) {\n return [datum.centroidX, datum.centroidY];\n }\n\n if (datum.properties?.center) {\n return datum.properties.center;\n }\n\n if (datum.properties?.centroid) {\n return datum.properties.centroid;\n }\n\n return [Number.NaN, Number.NaN];\n }\n\n protected _getDatumName(datum: any): string {\n return datum[this.nameField] ?? datum.properties?.[this.nameField] ?? '';\n }\n\n dataToPositionX(data: any): number {\n throw new Error('Method not implemented.');\n }\n dataToPositionY(data: any): number {\n throw new Error('Method not implemented.');\n }\n\n viewDataUpdate(d: DataView): void {\n super.viewDataUpdate(d);\n this._mapViewData?.getDataView()?.reRunAllTransform();\n this._mapViewData?.updateData();\n }\n\n protected _getDataIdKey() {\n return (datum: Datum) => datum?.properties?.[this._nameProperty] as string;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/map/map.ts"],"names":[],"mappings":"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","file":"map.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { registerGrammar } from '@visactor/vgrammar';\nimport type { IElement } from '@visactor/vgrammar';\nimport { Projection } from '@visactor/vgrammar-projection';\nimport { DataView } from '@visactor/vdataset';\nimport type { IPathMark } from '../../mark/path';\nimport { geoSourceMap } from './geo-source';\nimport { lookup } from '../../data/transforms/lookup';\nimport type { Maybe, Datum, StringOrNumber } from '../../typings';\nimport { isValid, isValidNumber } from '../../util';\nimport { GeoSeries } from '../geo/geo';\nimport { map } from '../../data/transforms/map';\nimport { copyDataView } from '../../data/transforms/copy-data-view';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport { MapSeriesTooltipHelper } from './tooltip-helper';\nimport type { ITextMark } from '../../mark/text';\nimport { AttributeLevel, DEFAULT_DATA_SERIES_FIELD, DEFAULT_DATA_KEY } from '../../constant/index';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface';\nimport type { IMapSeriesSpec, IMapSeriesTheme } from './interface';\nimport { SeriesData } from '../base/series-data';\nimport type { PanEventParam, ZoomEventParam } from '../../event/interface';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport { BaseSeries } from '../base/base-series';\nimport { VChart } from '../../core/vchart';\nimport { PathMark } from '../../mark/path';\nimport { TextMark } from '../../mark/text';\n\nVChart.useMark([PathMark, TextMark]);\n\n// 注册语法元素\nregisterGrammar('projection', Projection, 'projections');\n\nexport class MapSeries extends GeoSeries<IMapSeriesSpec> {\n static readonly type: string = SeriesTypeEnum.map;\n type = SeriesTypeEnum.map;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n [SeriesMarkNameEnum.area]: { name: SeriesMarkNameEnum.area, type: MarkTypeEnum.path }\n };\n\n map!: string;\n\n protected _nameMap!: { [key: StringOrNumber]: StringOrNumber };\n getNameMap() {\n return this._nameMap;\n }\n\n protected _nameProperty: string = 'name';\n getNameProperty() {\n return this._nameProperty;\n }\n\n protected declare _theme: Maybe<IMapSeriesTheme>;\n\n private _areaCache: Map<string, { shape: string }> = new Map();\n\n private _pathMark: IPathMark;\n private _labelMark: ITextMark;\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this.map = this._spec.map;\n this._nameMap = this._spec.nameMap;\n this._nameField = this._spec.nameField;\n this._valueField = this._spec.valueField;\n this._spec.nameProperty && (this._nameProperty = this._spec.nameProperty);\n if (!this.map) {\n throw new Error(`map type '${this.map}' is not specified !`);\n }\n\n if (!geoSourceMap.get(this.map)) {\n throw new Error(`'${this.map}' data is not registered !`);\n }\n }\n\n // data\n initData(): void {\n super.initData();\n\n registerDataSetInstanceTransform(this._dataSet, 'copyDataView', copyDataView);\n registerDataSetInstanceTransform(this._dataSet, 'map', map);\n registerDataSetInstanceTransform(this._dataSet, 'lookup', lookup);\n\n // 初始化地图数据\n const features = geoSourceMap.get(this.map);\n if (!features) {\n throw Error('no valid map data found!');\n }\n const mapData = new DataView(this._dataSet);\n\n mapData\n .parse([features], {\n type: 'dataview'\n })\n .transform({ type: 'copyDataView', options: { deep: true } })\n .transform({\n type: 'map',\n options: {\n nameMap: this._nameMap,\n nameProperty: this._nameProperty\n }\n })\n .transform({\n type: 'lookup',\n options: {\n from: () => this._data?.getLatestData(),\n key: 'name',\n fields: this._nameField,\n values: [this.nameField, this.valueField, this._seriesField ?? DEFAULT_DATA_SERIES_FIELD, DEFAULT_DATA_KEY],\n as: [this.nameField, this.valueField, this._seriesField ?? DEFAULT_DATA_SERIES_FIELD, DEFAULT_DATA_KEY]\n }\n });\n this._data?.getDataView().target.addListener('change', mapData.reRunAllTransform);\n this._mapViewData = new SeriesData(this._option, mapData);\n }\n\n // mark\n initMark() {\n this._pathMark = this._createMark(MapSeries.mark.area, {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig('area', this._spec)),\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this.getDimensionField()[0],\n isSeriesMark: true,\n skipBeforeLayouted: true,\n dataView: this._mapViewData.getDataView(),\n dataProductId: this._mapViewData.getProductId()\n }) as IPathMark;\n\n if (this._spec.label?.visible) {\n this._labelMark = this._createMark(MapSeries.mark.label, {\n skipBeforeLayouted: true,\n dataView: this._mapViewData.getDataView(),\n dataProductId: this._mapViewData.getProductId()\n }) as ITextMark;\n }\n }\n\n initMarkStyle() {\n const pathMark = this._pathMark;\n if (pathMark) {\n this.setMarkStyle(\n pathMark,\n {\n fill: (datum: any) => {\n if (isValid(datum[this._seriesField ?? DEFAULT_DATA_SERIES_FIELD])) {\n return (this._option.globalScale.getScale('color') ?? this.getDefaultColorScale()).scale(\n datum[this._seriesField ?? DEFAULT_DATA_SERIES_FIELD]\n );\n }\n return this._theme?.defaultFillColor;\n },\n path: this.getPath.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n pathMark,\n {\n smoothScale: true\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this._trigger.registerMark(pathMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pathMark);\n }\n\n const labelMark = this._labelMark;\n if (labelMark) {\n this.setMarkStyle(labelMark, {\n text: (datum: Datum) => {\n return this._getDatumName(datum);\n },\n x: (datum: Datum) => {\n return this.dataToPosition(datum)?.x;\n },\n y: (datum: Datum) => this.dataToPosition(datum)?.y\n });\n }\n }\n\n initAnimation() {\n this._pathMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.path(), userAnimationConfig(SeriesMarkNameEnum.area, this._spec))\n );\n\n if (this._labelMark) {\n this._labelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec))\n );\n }\n }\n\n protected initTooltip() {\n this._tooltipHelper = new MapSeriesTooltipHelper(this);\n }\n\n protected getPath(datum: any) {\n const area = this._areaCache.get(datum?.properties?.[this._nameProperty]);\n if (area) {\n return area.shape;\n }\n const shape = this._coordinateHelper?.shape(datum);\n this._areaCache.set(datum?.properties?.[this._nameProperty], {\n shape\n });\n return shape;\n }\n\n // life cycle\n onEvaluateEnd() {\n this._mapViewData.updateData();\n }\n\n getDimensionField(): string[] {\n return [this.nameField];\n }\n\n getMeasureField(): string[] {\n return [this.valueField];\n }\n\n release() {\n super.release();\n this._areaCache.clear();\n this._nameMap = {};\n this._trigger = this._mapViewData = null as any;\n }\n\n updateSpec(spec: any) {\n const originalSpec = this._originalSpec;\n const { map, nameMap, valueField, nameProperty } = originalSpec;\n const result = super.updateSpec(spec);\n if (\n spec?.map !== map ||\n spec?.nameMap !== nameMap ||\n spec?.valueField !== valueField ||\n spec?.nameProperty !== nameProperty\n ) {\n result.reRender = true;\n }\n return result;\n }\n\n handleZoom(e: ZoomEventParam) {\n const { scale, scaleCenter } = e;\n if (scale === 1) {\n return;\n }\n\n this.getMarksWithoutRoot().forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const elements = vGrammarMark.elements;\n\n if (mark.type === MarkTypeEnum.path) {\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n graphicItem.scale(scale, scale, scaleCenter);\n });\n } else {\n // label Mark 的定位,需要通过 dataToPosition 来计算\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n const datum = el.getDatum();\n const newPosition = this.dataToPosition(datum);\n if (newPosition && graphicItem) {\n graphicItem.translateTo(newPosition.x, newPosition.y);\n }\n });\n }\n });\n }\n\n handlePan(e: PanEventParam) {\n const { delta } = e;\n if (delta[0] === 0 && delta[1] === 0) {\n return;\n }\n\n this.getMarksWithoutRoot().forEach(mark => {\n const vGrammarMark = mark.getProduct();\n\n if (!vGrammarMark || !vGrammarMark.elements || !vGrammarMark.elements.length) {\n return;\n }\n const elements = vGrammarMark.elements;\n\n if (mark.type === MarkTypeEnum.path) {\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n graphicItem.translate(delta[0], delta[1]);\n });\n } else {\n // label Mark 的定位,需要通过 dataToPosition 来计算\n elements.forEach((el: IElement, i: number) => {\n const graphicItem = el.getGraphicItem();\n const datum = el.getDatum();\n const newPosition = this.dataToPosition(datum);\n if (newPosition && graphicItem) {\n graphicItem.translateTo(newPosition.x, newPosition.y);\n }\n });\n }\n });\n }\n\n protected _getDatumCenter(datum: any): [number, number] {\n if (isValidNumber(datum.centroidX * datum.centroidY)) {\n return [datum.centroidX, datum.centroidY];\n }\n\n if (datum.properties?.center) {\n return datum.properties.center;\n }\n\n if (datum.properties?.centroid) {\n return datum.properties.centroid;\n }\n\n return [Number.NaN, Number.NaN];\n }\n\n protected _getDatumName(datum: any): string {\n return datum[this.nameField] ?? datum.properties?.[this.nameField] ?? '';\n }\n\n dataToPositionX(data: any): number {\n throw new Error('Method not implemented.');\n }\n dataToPositionY(data: any): number {\n throw new Error('Method not implemented.');\n }\n\n viewDataUpdate(d: DataView): void {\n super.viewDataUpdate(d);\n this._mapViewData?.getDataView()?.reRunAllTransform();\n this._mapViewData?.updateData();\n }\n\n protected _getDataIdKey() {\n return (datum: Datum) => datum?.properties?.[this._nameProperty] as string;\n }\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MarkTypeEnum } from '../../mark/interface';
|
|
2
|
+
import type { IArcSeries, SeriesMarkMap } from '../interface';
|
|
3
|
+
import { SeriesMarkNameEnum } from '../interface';
|
|
4
|
+
import { SeriesTypeEnum } from '../interface/type';
|
|
5
|
+
import type { IPie3dSeriesSpec } from './interface';
|
|
6
|
+
import { BasePieSeries } from './pie';
|
|
7
|
+
export declare class Pie3dSeries extends BasePieSeries<IPie3dSeriesSpec> implements IArcSeries {
|
|
8
|
+
static readonly type: string;
|
|
9
|
+
type: SeriesTypeEnum;
|
|
10
|
+
protected _pieMarkName: SeriesMarkNameEnum;
|
|
11
|
+
protected _pieMarkType: MarkTypeEnum;
|
|
12
|
+
static readonly mark: SeriesMarkMap;
|
|
13
|
+
protected _angle3d: number;
|
|
14
|
+
setAttrFromSpec(): void;
|
|
15
|
+
initMarkStyle(): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
}), exports.Pie3dSeries = void 0;
|
|
6
|
+
|
|
7
|
+
const constant_1 = require("../../constant"), util_1 = require("../../util"), interface_1 = require("../../mark/interface"), interface_2 = require("../interface"), type_1 = require("../interface/type"), base_series_1 = require("../base/base-series"), vchart_1 = require("../../core/vchart"), path_1 = require("../../mark/path"), text_1 = require("../../mark/text"), arc_3d_1 = require("../../mark/arc-3d"), pie_1 = require("./pie");
|
|
8
|
+
|
|
9
|
+
vchart_1.VChart.useMark([ path_1.PathMark, text_1.TextMark, arc_3d_1.Arc3dMark ]);
|
|
10
|
+
|
|
11
|
+
class Pie3dSeries extends pie_1.BasePieSeries {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments), this.type = type_1.SeriesTypeEnum.pie3d, this._pieMarkName = interface_2.SeriesMarkNameEnum.pie3d,
|
|
14
|
+
this._pieMarkType = interface_1.MarkTypeEnum.arc3d;
|
|
15
|
+
}
|
|
16
|
+
setAttrFromSpec() {
|
|
17
|
+
var _a, _b;
|
|
18
|
+
super.setAttrFromSpec(), this._angle3d = null !== (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.angle3d) && void 0 !== _b ? _b : -Math.PI / 3;
|
|
19
|
+
}
|
|
20
|
+
initMarkStyle() {
|
|
21
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
22
|
+
const pieMark = this._pieMark;
|
|
23
|
+
if (pieMark) {
|
|
24
|
+
this.setMarkStyle(pieMark, {
|
|
25
|
+
x: () => {
|
|
26
|
+
var _a, _b;
|
|
27
|
+
return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2;
|
|
28
|
+
},
|
|
29
|
+
y: () => {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.y) && void 0 !== _b ? _b : this._region.getLayoutRect().height / 2;
|
|
32
|
+
},
|
|
33
|
+
beta: () => this._angle3d,
|
|
34
|
+
fill: this.getColorAttribute(),
|
|
35
|
+
outerRadius: () => this.computeLayoutRadius() * this._outerRadius,
|
|
36
|
+
innerRadius: () => this.computeLayoutRadius() * this._innerRadius,
|
|
37
|
+
cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,
|
|
38
|
+
startAngle: (0, util_1.field)(constant_1.ARC_START_ANGLE).bind(this),
|
|
39
|
+
endAngle: (0, util_1.field)(constant_1.ARC_END_ANGLE).bind(this),
|
|
40
|
+
padAngle: this._padAngle,
|
|
41
|
+
centerOffset: this._centerOffset
|
|
42
|
+
}, "normal", constant_1.AttributeLevel.Series);
|
|
43
|
+
const pieSpec = this.getSpec()[pieMark.name];
|
|
44
|
+
if (pieSpec) for (const state in pieSpec.state || {}) this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, constant_1.AttributeLevel.User_Mark);
|
|
45
|
+
this._trigger.registerMark(pieMark), null === (_a = this._tooltipHelper) || void 0 === _a || _a.activeTriggerSet.mark.add(pieMark);
|
|
46
|
+
}
|
|
47
|
+
const labelMark = this._labelMark, spec = this.getSpec(), params3d = {};
|
|
48
|
+
(null === (_b = null == spec ? void 0 : spec.label) || void 0 === _b ? void 0 : _b.support3d) && (params3d.beta = -Math.PI / 3,
|
|
49
|
+
params3d.anchor3d = datum => {
|
|
50
|
+
var _a, _b, _c, _d;
|
|
51
|
+
return [ (null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2) - (0,
|
|
52
|
+
util_1.field)(constant_1.DEFAULT_LABEL_X).bind(this)(datum), (null !== (_d = null === (_c = this._center) || void 0 === _c ? void 0 : _c.y) && void 0 !== _d ? _d : this._region.getLayoutRect().height / 2) - (0,
|
|
53
|
+
util_1.field)(constant_1.DEFAULT_LABEL_Y).bind(this)(datum) ];
|
|
54
|
+
}), labelMark && (this.setMarkStyle(labelMark, Object.assign({
|
|
55
|
+
visible: (0, util_1.field)(constant_1.DEFAULT_LABEL_VISIBLE).bind(this),
|
|
56
|
+
x: (0, util_1.field)(constant_1.DEFAULT_LABEL_X).bind(this),
|
|
57
|
+
y: (0, util_1.field)(constant_1.DEFAULT_LABEL_Y).bind(this),
|
|
58
|
+
text: (0, util_1.field)(constant_1.DEFAULT_LABEL_TEXT).bind(this),
|
|
59
|
+
fill: (null === (_d = null === (_c = this._spec.label) || void 0 === _c ? void 0 : _c.style) || void 0 === _d ? void 0 : _d.fill) || this.getColorAttribute(),
|
|
60
|
+
textAlign: (0, util_1.field)(constant_1.DEFAULT_LABEL_ALIGN).bind(this),
|
|
61
|
+
textBaseline: "inside" === (null === (_e = this._spec.label) || void 0 === _e ? void 0 : _e.position) ? "middle" : "top",
|
|
62
|
+
angle: datum => {
|
|
63
|
+
var _a;
|
|
64
|
+
const angle = datum[constant_1.ARC_MIDDLE_ANGLE];
|
|
65
|
+
return "inside" === (null === (_a = this._spec.label) || void 0 === _a ? void 0 : _a.position) ? (0,
|
|
66
|
+
util_1.degrees)(angle) : 0;
|
|
67
|
+
},
|
|
68
|
+
limit: (0, util_1.field)(constant_1.DEFAULT_LABEL_LIMIT).bind(this)
|
|
69
|
+
}, params3d), void 0, constant_1.AttributeLevel.User_Mark), this._trigger.registerMark(labelMark));
|
|
70
|
+
const labelLineMark = this._labelLineMark;
|
|
71
|
+
labelLineMark && (this.setMarkStyle(labelLineMark, Object.assign(Object.assign(Object.assign({
|
|
72
|
+
visible: (0, util_1.field)(constant_1.DEFAULT_LABEL_VISIBLE).bind(this),
|
|
73
|
+
stroke: (null === (_h = null === (_g = null === (_f = this._spec.label) || void 0 === _f ? void 0 : _f.line) || void 0 === _g ? void 0 : _g.style) || void 0 === _h ? void 0 : _h.stroke) || this.getColorAttribute(),
|
|
74
|
+
lineWidth: 1
|
|
75
|
+
}, this.generateLinePath("normal")), params3d), {
|
|
76
|
+
anchor3d: () => {
|
|
77
|
+
var _a, _b, _c, _d;
|
|
78
|
+
return [ null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2, null !== (_d = null === (_c = this._center) || void 0 === _c ? void 0 : _c.y) && void 0 !== _d ? _d : this._region.getLayoutRect().height / 2 ];
|
|
79
|
+
}
|
|
80
|
+
})), this.setMarkStyle(labelLineMark, this.generateLinePath("hover"), "hover"),
|
|
81
|
+
this.setMarkStyle(labelLineMark, this.generateLinePath("selected"), "selected"),
|
|
82
|
+
this._trigger.registerMark(labelLineMark));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
exports.Pie3dSeries = Pie3dSeries, Pie3dSeries.type = type_1.SeriesTypeEnum.pie3d,
|
|
87
|
+
Pie3dSeries.mark = Object.assign(Object.assign({}, base_series_1.BaseSeries.mark), {
|
|
88
|
+
[interface_2.SeriesMarkNameEnum.pie3d]: {
|
|
89
|
+
name: interface_2.SeriesMarkNameEnum.pie3d,
|
|
90
|
+
type: interface_1.MarkTypeEnum.arc3d
|
|
91
|
+
},
|
|
92
|
+
[interface_2.SeriesMarkNameEnum.labelLine]: {
|
|
93
|
+
name: interface_2.SeriesMarkNameEnum.labelLine,
|
|
94
|
+
type: interface_1.MarkTypeEnum.path
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=pie-3d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/series/pie/pie-3d.ts"],"names":[],"mappings":"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","file":"pie-3d.js","sourcesContent":["import {\n AttributeLevel,\n ARC_START_ANGLE,\n ARC_END_ANGLE,\n ARC_MIDDLE_ANGLE,\n DEFAULT_LABEL_X,\n DEFAULT_LABEL_Y,\n DEFAULT_LABEL_TEXT,\n DEFAULT_LABEL_LIMIT,\n DEFAULT_LABEL_ALIGN,\n DEFAULT_LABEL_VISIBLE\n} from '../../constant';\nimport type { Datum } from '../../typings';\nimport { degrees, field } from '../../util';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { IArcSeries, SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum } from '../interface';\nimport { SeriesTypeEnum } from '../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IPie3dSeriesSpec } from './interface';\nimport { BaseSeries } from '../base/base-series';\nimport { VChart } from '../../core/vchart';\nimport { PathMark } from '../../mark/path';\nimport { TextMark } from '../../mark/text';\nimport { Arc3dMark } from '../../mark/arc-3d';\nimport { BasePieSeries } from './pie';\n\nVChart.useMark([PathMark, TextMark, Arc3dMark]);\n\nexport class Pie3dSeries extends BasePieSeries<IPie3dSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie3d;\n type = SeriesTypeEnum.pie3d;\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie3d;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc3d;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n [SeriesMarkNameEnum.pie3d]: { name: SeriesMarkNameEnum.pie3d, type: MarkTypeEnum.arc3d },\n [SeriesMarkNameEnum.labelLine]: { name: SeriesMarkNameEnum.labelLine, type: MarkTypeEnum.path }\n };\n\n protected _angle3d: number;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._angle3d = this._spec?.angle3d ?? -Math.PI / 3;\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n beta: () => this._angle3d,\n fill: this.getColorAttribute(),\n outerRadius: () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[pieMark.name];\n if (pieSpec) {\n // pieMark.setStyle(pieSpec.style, 'normal', AttributeLevel.User_Mark);\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n const spec = this.getSpec();\n const params3d: {\n beta?: number;\n anchor3d?: (datum: Datum) => any;\n } = {};\n if (spec?.label?.support3d) {\n params3d.beta = -Math.PI / 3;\n params3d.anchor3d = (datum: Datum) => {\n const anchor = [\n (this._center?.x ?? this._region.getLayoutRect().width / 2) - field(DEFAULT_LABEL_X).bind(this)(datum),\n (this._center?.y ?? this._region.getLayoutRect().height / 2) - field(DEFAULT_LABEL_Y).bind(this)(datum)\n ];\n return anchor;\n };\n }\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this),\n ...params3d\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal'),\n ...params3d,\n anchor3d: () => {\n return [\n this._center?.x ?? this._region.getLayoutRect().width / 2,\n this._center?.y ?? this._region.getLayoutRect().height / 2\n ];\n }\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n}\n"]}
|
package/cjs/series/pie/pie.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { IPathMark } from '../../mark/path';
|
|
|
8
8
|
import type { IArcSeries, SeriesMarkMap } from '../interface';
|
|
9
9
|
import { SeriesMarkNameEnum } from '../interface';
|
|
10
10
|
import { SeriesTypeEnum } from '../interface/type';
|
|
11
|
-
import type { IArcLabelSpec,
|
|
11
|
+
import type { IArcLabelSpec, IPieSeriesSpec, IPieSeriesTheme } from './interface';
|
|
12
12
|
import { SeriesData } from '../base/series-data';
|
|
13
13
|
type IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & {
|
|
14
14
|
type: string;
|
|
@@ -73,14 +73,4 @@ export declare class PieSeries extends BasePieSeries<IPieSeriesSpec> implements
|
|
|
73
73
|
static readonly type: string;
|
|
74
74
|
type: SeriesTypeEnum;
|
|
75
75
|
}
|
|
76
|
-
export declare class Pie3dSeries extends BasePieSeries<IPie3dSeriesSpec> implements IArcSeries {
|
|
77
|
-
static readonly type: string;
|
|
78
|
-
type: SeriesTypeEnum;
|
|
79
|
-
protected _pieMarkName: SeriesMarkNameEnum;
|
|
80
|
-
protected _pieMarkType: MarkTypeEnum;
|
|
81
|
-
static readonly mark: SeriesMarkMap;
|
|
82
|
-
protected _angle3d: number;
|
|
83
|
-
setAttrFromSpec(): void;
|
|
84
|
-
initMarkStyle(): void;
|
|
85
|
-
}
|
|
86
76
|
export {};
|
package/cjs/series/pie/pie.js
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.
|
|
5
|
+
}), exports.PieSeries = exports.BasePieSeries = void 0;
|
|
6
6
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), vdataset_1 = require("@visactor/vdataset"), constant_1 = require("../../constant"), util_1 = require("../../util"), polar_1 = require("../polar/polar"), interface_1 = require("../../mark/interface"), interface_2 = require("../interface"), type_1 = require("../interface/type"), pie_1 = require("../../data/transforms/pie"), arc_label_1 = require("../../layout/label/arc-label"), register_1 = require("../../data/register"), utils_1 = require("../../animation/utils"), interface_3 = require("../../animation/interface"), config_1 = require("../../animation/config"), series_data_1 = require("../base/series-data"), centerOffset_1 = require("./animation/centerOffset"), base_series_1 = require("../base/base-series");
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), vdataset_1 = require("@visactor/vdataset"), constant_1 = require("../../constant"), util_1 = require("../../util"), polar_1 = require("../polar/polar"), interface_1 = require("../../mark/interface"), interface_2 = require("../interface"), type_1 = require("../interface/type"), pie_1 = require("../../data/transforms/pie"), arc_label_1 = require("../../layout/label/arc-label"), register_1 = require("../../data/register"), utils_1 = require("../../animation/utils"), interface_3 = require("../../animation/interface"), config_1 = require("../../animation/config"), series_data_1 = require("../base/series-data"), centerOffset_1 = require("./animation/centerOffset"), base_series_1 = require("../base/base-series"), vchart_1 = require("../../core/vchart"), path_1 = require("../../mark/path"), text_1 = require("../../mark/text"), arc_1 = require("../../mark/arc");
|
|
8
|
+
|
|
9
|
+
vchart_1.VChart.useMark([ path_1.PathMark, text_1.TextMark, arc_1.ArcMark ]);
|
|
8
10
|
|
|
9
11
|
class BasePieSeries extends polar_1.PolarSeries {
|
|
10
12
|
constructor() {
|
|
@@ -339,91 +341,4 @@ class PieSeries extends BasePieSeries {
|
|
|
339
341
|
}
|
|
340
342
|
|
|
341
343
|
exports.PieSeries = PieSeries, PieSeries.type = type_1.SeriesTypeEnum.pie;
|
|
342
|
-
|
|
343
|
-
class Pie3dSeries extends BasePieSeries {
|
|
344
|
-
constructor() {
|
|
345
|
-
super(...arguments), this.type = type_1.SeriesTypeEnum.pie3d, this._pieMarkName = interface_2.SeriesMarkNameEnum.pie3d,
|
|
346
|
-
this._pieMarkType = interface_1.MarkTypeEnum.arc3d;
|
|
347
|
-
}
|
|
348
|
-
setAttrFromSpec() {
|
|
349
|
-
var _a, _b;
|
|
350
|
-
super.setAttrFromSpec(), this._angle3d = null !== (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.angle3d) && void 0 !== _b ? _b : -Math.PI / 3;
|
|
351
|
-
}
|
|
352
|
-
initMarkStyle() {
|
|
353
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
354
|
-
const pieMark = this._pieMark;
|
|
355
|
-
if (pieMark) {
|
|
356
|
-
this.setMarkStyle(pieMark, {
|
|
357
|
-
x: () => {
|
|
358
|
-
var _a, _b;
|
|
359
|
-
return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2;
|
|
360
|
-
},
|
|
361
|
-
y: () => {
|
|
362
|
-
var _a, _b;
|
|
363
|
-
return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.y) && void 0 !== _b ? _b : this._region.getLayoutRect().height / 2;
|
|
364
|
-
},
|
|
365
|
-
beta: () => this._angle3d,
|
|
366
|
-
fill: this.getColorAttribute(),
|
|
367
|
-
outerRadius: () => this.computeLayoutRadius() * this._outerRadius,
|
|
368
|
-
innerRadius: () => this.computeLayoutRadius() * this._innerRadius,
|
|
369
|
-
cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,
|
|
370
|
-
startAngle: (0, util_1.field)(constant_1.ARC_START_ANGLE).bind(this),
|
|
371
|
-
endAngle: (0, util_1.field)(constant_1.ARC_END_ANGLE).bind(this),
|
|
372
|
-
padAngle: this._padAngle,
|
|
373
|
-
centerOffset: this._centerOffset
|
|
374
|
-
}, "normal", constant_1.AttributeLevel.Series);
|
|
375
|
-
const pieSpec = this.getSpec()[pieMark.name];
|
|
376
|
-
if (pieSpec) for (const state in pieSpec.state || {}) this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, constant_1.AttributeLevel.User_Mark);
|
|
377
|
-
this._trigger.registerMark(pieMark), null === (_a = this._tooltipHelper) || void 0 === _a || _a.activeTriggerSet.mark.add(pieMark);
|
|
378
|
-
}
|
|
379
|
-
const labelMark = this._labelMark, spec = this.getSpec(), params3d = {};
|
|
380
|
-
(null === (_b = null == spec ? void 0 : spec.label) || void 0 === _b ? void 0 : _b.support3d) && (params3d.beta = -Math.PI / 3,
|
|
381
|
-
params3d.anchor3d = datum => {
|
|
382
|
-
var _a, _b, _c, _d;
|
|
383
|
-
return [ (null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2) - (0,
|
|
384
|
-
util_1.field)(constant_1.DEFAULT_LABEL_X).bind(this)(datum), (null !== (_d = null === (_c = this._center) || void 0 === _c ? void 0 : _c.y) && void 0 !== _d ? _d : this._region.getLayoutRect().height / 2) - (0,
|
|
385
|
-
util_1.field)(constant_1.DEFAULT_LABEL_Y).bind(this)(datum) ];
|
|
386
|
-
}), labelMark && (this.setMarkStyle(labelMark, Object.assign({
|
|
387
|
-
visible: (0, util_1.field)(constant_1.DEFAULT_LABEL_VISIBLE).bind(this),
|
|
388
|
-
x: (0, util_1.field)(constant_1.DEFAULT_LABEL_X).bind(this),
|
|
389
|
-
y: (0, util_1.field)(constant_1.DEFAULT_LABEL_Y).bind(this),
|
|
390
|
-
text: (0, util_1.field)(constant_1.DEFAULT_LABEL_TEXT).bind(this),
|
|
391
|
-
fill: (null === (_d = null === (_c = this._spec.label) || void 0 === _c ? void 0 : _c.style) || void 0 === _d ? void 0 : _d.fill) || this.getColorAttribute(),
|
|
392
|
-
textAlign: (0, util_1.field)(constant_1.DEFAULT_LABEL_ALIGN).bind(this),
|
|
393
|
-
textBaseline: "inside" === (null === (_e = this._spec.label) || void 0 === _e ? void 0 : _e.position) ? "middle" : "top",
|
|
394
|
-
angle: datum => {
|
|
395
|
-
var _a;
|
|
396
|
-
const angle = datum[constant_1.ARC_MIDDLE_ANGLE];
|
|
397
|
-
return "inside" === (null === (_a = this._spec.label) || void 0 === _a ? void 0 : _a.position) ? (0,
|
|
398
|
-
util_1.degrees)(angle) : 0;
|
|
399
|
-
},
|
|
400
|
-
limit: (0, util_1.field)(constant_1.DEFAULT_LABEL_LIMIT).bind(this)
|
|
401
|
-
}, params3d), void 0, constant_1.AttributeLevel.User_Mark), this._trigger.registerMark(labelMark));
|
|
402
|
-
const labelLineMark = this._labelLineMark;
|
|
403
|
-
labelLineMark && (this.setMarkStyle(labelLineMark, Object.assign(Object.assign(Object.assign({
|
|
404
|
-
visible: (0, util_1.field)(constant_1.DEFAULT_LABEL_VISIBLE).bind(this),
|
|
405
|
-
stroke: (null === (_h = null === (_g = null === (_f = this._spec.label) || void 0 === _f ? void 0 : _f.line) || void 0 === _g ? void 0 : _g.style) || void 0 === _h ? void 0 : _h.stroke) || this.getColorAttribute(),
|
|
406
|
-
lineWidth: 1
|
|
407
|
-
}, this.generateLinePath("normal")), params3d), {
|
|
408
|
-
anchor3d: () => {
|
|
409
|
-
var _a, _b, _c, _d;
|
|
410
|
-
return [ null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2, null !== (_d = null === (_c = this._center) || void 0 === _c ? void 0 : _c.y) && void 0 !== _d ? _d : this._region.getLayoutRect().height / 2 ];
|
|
411
|
-
}
|
|
412
|
-
})), this.setMarkStyle(labelLineMark, this.generateLinePath("hover"), "hover"),
|
|
413
|
-
this.setMarkStyle(labelLineMark, this.generateLinePath("selected"), "selected"),
|
|
414
|
-
this._trigger.registerMark(labelLineMark));
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
exports.Pie3dSeries = Pie3dSeries, Pie3dSeries.type = type_1.SeriesTypeEnum.pie3d,
|
|
419
|
-
Pie3dSeries.mark = Object.assign(Object.assign({}, base_series_1.BaseSeries.mark), {
|
|
420
|
-
[interface_2.SeriesMarkNameEnum.pie3d]: {
|
|
421
|
-
name: interface_2.SeriesMarkNameEnum.pie3d,
|
|
422
|
-
type: interface_1.MarkTypeEnum.arc3d
|
|
423
|
-
},
|
|
424
|
-
[interface_2.SeriesMarkNameEnum.labelLine]: {
|
|
425
|
-
name: interface_2.SeriesMarkNameEnum.labelLine,
|
|
426
|
-
type: interface_1.MarkTypeEnum.path
|
|
427
|
-
}
|
|
428
|
-
});
|
|
429
344
|
//# sourceMappingURL=pie.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/pie/pie.ts"],"names":[],"mappings":"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","file":"pie.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\nimport {\n AttributeLevel,\n ARC_START_ANGLE,\n ARC_END_ANGLE,\n ARC_RATIO,\n ARC_MIDDLE_ANGLE,\n ARC_RADIAN,\n ARC_QUADRANT,\n ARC_K,\n PREFIX,\n DEFAULT_LABEL_X,\n DEFAULT_LABEL_Y,\n DEFAULT_LABEL_TEXT,\n ARC_LABEL_POINT_BX,\n ARC_LABEL_POINT_BY,\n ARC_LABEL_POINT_CX,\n ARC_LABEL_POINT_CY,\n DEFAULT_LABEL_LIMIT,\n DEFAULT_LABEL_ALIGN,\n DEFAULT_LABEL_VISIBLE,\n POLAR_START_RADIAN,\n POLAR_END_RADIAN,\n DEFAULT_DATA_INDEX,\n ChartEvent\n} from '../../constant';\nimport type { Maybe, IPoint, Datum, StateValueType } from '../../typings';\nimport {\n degrees,\n field,\n isNil,\n isSpecValueWithScale,\n normalizeStartEndAngle,\n polarToCartesian,\n radians\n} from '../../util';\nimport type { IModelLayoutOption } from '../../model/interface';\nimport { PolarSeries } from '../polar/polar';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { IArcMark } from '../../mark/arc';\nimport type { ITextMark } from '../../mark/text';\nimport type { IPathMark } from '../../mark/path';\nimport type { IArcSeries, SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum } from '../interface';\nimport { SeriesTypeEnum } from '../interface/type';\nimport type { IPieOpt } from '../../data/transforms/pie';\n// eslint-disable-next-line no-duplicate-imports\nimport { pie } from '../../data/transforms/pie';\n\nimport { arcLabel } from '../../layout/label/arc-label';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport type { IPieAnimationParams, PieAppearPreset } from './animation/animation';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { AnimationStateEnum } from '../../animation/interface';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IArcLabelSpec, IPie3dSeriesSpec, IPieSeriesSpec, IPieSeriesTheme } from './interface';\nimport { SeriesData } from '../base/series-data';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAnimationTypeConfig } from '@visactor/vgrammar';\nimport { centerOffsetConfig } from './animation/centerOffset';\nimport { BaseSeries } from '../base/base-series';\n\ntype IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & { type: string };\n\nexport class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSeries<T> implements IArcSeries {\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n [SeriesMarkNameEnum.pie]: { name: SeriesMarkNameEnum.pie, type: MarkTypeEnum.arc },\n [SeriesMarkNameEnum.labelLine]: { name: SeriesMarkNameEnum.labelLine, type: MarkTypeEnum.path }\n };\n\n protected _viewDataLabel!: SeriesData;\n\n // 饼图渲染不依赖于极坐标系轴,因此由 series 自己存储相关配置信息\n protected _center!: IPoint | null;\n public get center(): IPoint {\n return {\n x: this._spec?.centerX ?? this._region.getLayoutRect().width / 2,\n y: this._spec?.centerY ?? this._region.getLayoutRect().height / 2\n };\n }\n protected _centerOffset!: number;\n\n protected _cornerRadius!: number;\n\n protected _startAngle: number = POLAR_START_RADIAN;\n protected _endAngle: number = POLAR_END_RADIAN;\n protected _padAngle!: number;\n\n protected _pieMark: IArcMark | null = null;\n protected _labelMark: ITextMark | null = null;\n protected _labelLineMark: IPathMark | null = null;\n\n protected declare _theme: Maybe<IPieSeriesTheme>;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._centerOffset = this._spec?.centerOffset ?? 0;\n this._cornerRadius = this._spec?.cornerRadius ?? 0;\n\n const normalized = normalizeStartEndAngle(\n isValid(this._spec?.startAngle) ? radians(this._spec.startAngle) : this._startAngle,\n isValid(this._spec?.endAngle) ? radians(this._spec.endAngle) : this._endAngle\n );\n this._startAngle = normalized.startAngle;\n this._endAngle = normalized.endAngle;\n this._padAngle = isValid(this._spec?.padAngle) ? radians(this._spec.padAngle) : 0;\n\n // 值信息给角度,angleField 是为了兼容小组件用法,因为 spec 改造前已经开放了\n this.setAngleField(this._spec.valueField || this._spec.angleField);\n if (this._spec.categoryField) {\n this.setSeriesField(this._spec.categoryField);\n }\n this._radiusField = [];\n }\n\n initData() {\n super.initData();\n\n const viewData = this.getViewData();\n if (!viewData) {\n return;\n }\n\n registerDataSetInstanceTransform(this._dataSet, 'pie', pie);\n registerDataSetInstanceTransform(this._dataSet, 'arcLabel', arcLabel);\n\n viewData.transform(\n {\n type: 'pie',\n options: {\n angleField: this._angleField[0],\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n asStartAngle: ARC_START_ANGLE,\n asEndAngle: ARC_END_ANGLE,\n asRatio: ARC_RATIO,\n asMiddleAngle: ARC_MIDDLE_ANGLE,\n asRadian: ARC_RADIAN,\n asQuadrant: ARC_QUADRANT,\n asK: ARC_K\n } as IPieOpt\n },\n false\n );\n\n const viewDataLabel = new DataView(this._dataSet);\n viewDataLabel.parse([this.getViewData()], {\n type: 'dataview'\n });\n viewDataLabel.name = `${PREFIX}_series_${this.id}_viewDataLabel`;\n viewDataLabel.transform(\n {\n type: 'arcLabel',\n options: { series: this }\n },\n false\n );\n\n this._viewDataLabel = new SeriesData(this._option, viewDataLabel);\n }\n\n initMark(): void {\n this._pieMark = this._createMark(\n {\n ...BasePieSeries.mark.pie,\n name: this._pieMarkName,\n type: this._pieMarkType\n },\n {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig(this.type, this._spec)),\n defaultMorphElementKey: this._seriesField,\n key: this._seriesField,\n groupKey: this._seriesField,\n skipBeforeLayouted: true,\n isSeriesMark: true\n }\n ) as IArcMark;\n\n if (this._spec?.label?.visible) {\n const spec = this.getSpec();\n this._labelMark = this._createMark(BasePieSeries.mark.label, {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label\n }\n }) as ITextMark;\n\n this._labelLineMark = this._createMark(BasePieSeries.mark.labelLine, {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label?.line,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label?.line\n }\n }) as ITextMark;\n }\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n fill: this.getColorAttribute(),\n outerRadius: isSpecValueWithScale(this._outerRadius)\n ? this._outerRadius\n : () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: isSpecValueWithScale(this._innerRadius)\n ? this._innerRadius\n : () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[pieMark.name];\n if (pieSpec) {\n // pieMark.setStyle(pieSpec.style, 'normal', AttributeLevel.User_Mark);\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this)\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal')\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n this._trigger.setStateKeys([this._seriesField as string, ...this._radiusField]);\n }\n\n initEvent(): void {\n super.initEvent();\n this._viewDataLabel.getDataView()?.target.addListener('change', this.viewDataLabelUpdate.bind(this));\n }\n\n // 饼图不支持分组\n initGroups() {\n return;\n }\n\n /**\n * @override\n * @param ctx\n */\n onLayoutEnd(ctx: IModelLayoutOption): void {\n this._viewDataLabel.getDataView().reRunAllTransform();\n this.onMarkPositionUpdate();\n super.onLayoutEnd(ctx);\n }\n\n getDimensionField(): string[] {\n return this._seriesField ? [this._seriesField] : [];\n }\n getMeasureField(): string[] {\n return this._angleField;\n }\n\n private viewDataLabelUpdate() {\n this.event.emit(ChartEvent.viewDataLabelUpdate, { model: this });\n this._viewDataLabel.updateData();\n }\n\n protected generateRadiusStyle(spec: any) {\n const style: any = {};\n spec?.outerRadius && (style.outerRadius = () => this.computeLayoutRadius() * spec?.outerRadius);\n spec?.innerRadius && (style.innerRadius = () => this.computeLayoutRadius() * spec?.innerRadius);\n spec?.cornerRadius && (style.cornerRadius = () => this.computeLayoutRadius() * spec?.cornerRadius);\n return style;\n }\n\n protected computeLayoutRadius() {\n const { width, height } = this._region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n computeCenter(datum: Datum): IPoint {\n return {\n x: this._pieMark.getAttribute('x', datum, 'normal') as number,\n y: this._pieMark.getAttribute('y', datum, 'normal') as number\n };\n }\n\n protected generateLinePath(state: StateValueType) {\n const key = state === 'normal' ? 'POINT' : state.toUpperCase();\n return {\n path: (datum: Datum) => {\n return (\n `M${Math.round(datum[`${PREFIX}_ARC_LABEL_${key}_AX`])},${Math.round(\n datum[`${PREFIX}_ARC_LABEL_${key}_AY`]\n )}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_BX])},${Math.round(datum[ARC_LABEL_POINT_BY])}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_CX])},${Math.round(datum[ARC_LABEL_POINT_CY])}`\n );\n }\n };\n }\n\n getRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.outerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.outerRadius;\n return styleRadius ?? this._outerRadius;\n }\n\n getInnerRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.innerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.innerRadius;\n return styleRadius ?? this._innerRadius;\n }\n\n getLabelConfig(): IArcLabelSpec {\n // TODO: 转换 series spec\n return {\n visible: true,\n position: 'outside',\n showRule: 'all',\n rotate: true,\n coverEnable: false,\n spaceWidth: 5,\n layoutArcGap: 6,\n ...this._spec.label,\n\n style: {\n visible: true,\n ...this._spec.label?.style\n },\n line: {\n visible: true,\n line1MinLength: this._spec.label?.line?.line1MinLength ?? 20,\n line2MinLength: this._spec.label?.line?.line2MinLength ?? 10,\n ...this._spec.label?.line\n },\n layout: {\n align: 'arc',\n strategy: 'priority',\n tangentConstraint: true,\n ...this._spec.label?.layout\n }\n };\n }\n\n computeRadius(r: number, k?: number): number {\n return this.computeLayoutRadius() * r * (isNil(k) ? 1 : k) + this._centerOffset;\n }\n\n computeDatumRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getRadius(state) + this._centerOffset;\n }\n\n updateSpec(spec: any) {\n // super updateSpec 会执行 setAttrFromSpec 所以先缓存比对值\n const originalSpec = this._originalSpec;\n const { centerX, centerY, centerOffset, radius, innerRadius, cornerRadius, startAngle, endAngle, padAngle } =\n originalSpec;\n const result = super.updateSpec(spec);\n if (\n spec?.centerX !== centerX ||\n spec?.centerY !== centerY ||\n spec?.centerOffset !== centerOffset ||\n spec?.radius !== radius ||\n spec?.innerRadius !== innerRadius ||\n spec?.cornerRadius !== cornerRadius ||\n spec?.startAngle !== startAngle ||\n spec?.endAngle !== endAngle ||\n spec?.padAngle !== padAngle\n ) {\n result.reRender = true;\n result.change = true;\n }\n return result;\n }\n\n computeDatumInnerRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getInnerRadius(state) + this._centerOffset;\n }\n\n dataToPosition(datum: Datum): IPoint | null {\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius });\n return { x: center.x + delta.x, y: center.y + delta.y };\n }\n\n dataToCentralPosition = (datum: Datum): IPoint | null => {\n // 和 PieSeries.dataToPosition 实现不同,这里考虑了美观性,返回的位置是曲边梯形的中心\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const innerRadius = this.computeDatumInnerRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius: (radius + innerRadius) / 2 });\n return { x: center.x + delta.x, y: center.y + delta.y };\n };\n\n initAnimation() {\n const animationParams: IPieAnimationParams = {\n growFrom: (datum, element, state) => {\n if (state === AnimationStateEnum.appear) {\n return this._startAngle;\n }\n if (state === AnimationStateEnum.disappear) {\n return this._endAngle;\n }\n\n const outState = [AnimationStateEnum.disappear, AnimationStateEnum.exit];\n const markElements = element.mark.elements;\n\n const data = datum;\n const dataIndex = data?.[DEFAULT_DATA_INDEX];\n\n // 当前 mark 在上个状态是否处于第一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex) === undefined) {\n return this._startAngle;\n }\n // 当前 mark 在上个状态是否处于最后一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] > dataIndex) === undefined) {\n return this._endAngle;\n }\n\n // 扇形不在边缘时,获取扇形生长点:获取相邻状态下相邻扇形的边缘\n // @ts-ignore\n // TODO: findLast is a new prototype function, we will later polyfill it in v-util.\n const prevMarkElement = markElements.findLast(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex);\n if (outState.includes(state)) {\n return prevMarkElement?.getGraphicItem().nextAttrs?.endAngle;\n }\n return prevMarkElement?.getGraphicItem().prevAttrs?.endAngle;\n }\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<PieAppearPreset>)?.preset;\n\n if (this._pieMark) {\n const pieAnimationConfig = animationConfig(\n DEFAULT_MARK_ANIMATION.pie(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.pie, this._spec)\n );\n\n if (pieAnimationConfig.normal && (pieAnimationConfig.normal as IAnimationTypeConfig).type) {\n pieAnimationConfig.normal = centerOffsetConfig(\n this._pieMark,\n pieAnimationConfig.normal as IAnimationTypeConfig\n );\n }\n\n this._pieMark.setAnimationConfig(pieAnimationConfig);\n }\n\n if (this._labelMark) {\n this._labelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec))\n );\n\n if (this._labelLineMark) {\n this._labelLineMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.labelLine, this._spec))\n );\n }\n }\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n\n setValueFieldToStack(): void {\n // do nothing\n }\n\n setValueFieldToPercent(): void {\n //do nothing\n }\n}\n\nexport class PieSeries extends BasePieSeries<IPieSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie;\n type = SeriesTypeEnum.pie;\n}\n\nexport class Pie3dSeries extends BasePieSeries<IPie3dSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie3d;\n type = SeriesTypeEnum.pie3d;\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie3d;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc3d;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n [SeriesMarkNameEnum.pie3d]: { name: SeriesMarkNameEnum.pie3d, type: MarkTypeEnum.arc3d },\n [SeriesMarkNameEnum.labelLine]: { name: SeriesMarkNameEnum.labelLine, type: MarkTypeEnum.path }\n };\n\n protected _angle3d: number;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._angle3d = this._spec?.angle3d ?? -Math.PI / 3;\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n beta: () => this._angle3d,\n fill: this.getColorAttribute(),\n outerRadius: () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[pieMark.name];\n if (pieSpec) {\n // pieMark.setStyle(pieSpec.style, 'normal', AttributeLevel.User_Mark);\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n const spec = this.getSpec();\n const params3d: {\n beta?: number;\n anchor3d?: (datum: Datum) => any;\n } = {};\n if (spec?.label?.support3d) {\n params3d.beta = -Math.PI / 3;\n params3d.anchor3d = (datum: Datum) => {\n const anchor = [\n (this._center?.x ?? this._region.getLayoutRect().width / 2) - field(DEFAULT_LABEL_X).bind(this)(datum),\n (this._center?.y ?? this._region.getLayoutRect().height / 2) - field(DEFAULT_LABEL_Y).bind(this)(datum)\n ];\n return anchor;\n };\n }\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this),\n ...params3d\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal'),\n ...params3d,\n anchor3d: () => {\n return [\n this._center?.x ?? this._region.getLayoutRect().width / 2,\n this._center?.y ?? this._region.getLayoutRect().height / 2\n ];\n }\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/pie/pie.ts"],"names":[],"mappings":"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","file":"pie.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { isValid } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\nimport {\n AttributeLevel,\n ARC_START_ANGLE,\n ARC_END_ANGLE,\n ARC_RATIO,\n ARC_MIDDLE_ANGLE,\n ARC_RADIAN,\n ARC_QUADRANT,\n ARC_K,\n PREFIX,\n DEFAULT_LABEL_X,\n DEFAULT_LABEL_Y,\n DEFAULT_LABEL_TEXT,\n ARC_LABEL_POINT_BX,\n ARC_LABEL_POINT_BY,\n ARC_LABEL_POINT_CX,\n ARC_LABEL_POINT_CY,\n DEFAULT_LABEL_LIMIT,\n DEFAULT_LABEL_ALIGN,\n DEFAULT_LABEL_VISIBLE,\n POLAR_START_RADIAN,\n POLAR_END_RADIAN,\n DEFAULT_DATA_INDEX,\n ChartEvent\n} from '../../constant';\nimport type { Maybe, IPoint, Datum, StateValueType } from '../../typings';\nimport {\n degrees,\n field,\n isNil,\n isSpecValueWithScale,\n normalizeStartEndAngle,\n polarToCartesian,\n radians\n} from '../../util';\nimport type { IModelLayoutOption } from '../../model/interface';\nimport { PolarSeries } from '../polar/polar';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { IArcMark } from '../../mark/arc';\nimport type { ITextMark } from '../../mark/text';\nimport type { IPathMark } from '../../mark/path';\nimport type { IArcSeries, SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum } from '../interface';\nimport { SeriesTypeEnum } from '../interface/type';\nimport type { IPieOpt } from '../../data/transforms/pie';\n// eslint-disable-next-line no-duplicate-imports\nimport { pie } from '../../data/transforms/pie';\nimport { arcLabel } from '../../layout/label/arc-label';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport type { IPieAnimationParams, PieAppearPreset } from './animation/animation';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { AnimationStateEnum } from '../../animation/interface';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IArcLabelSpec, IPieSeriesSpec, IPieSeriesTheme } from './interface';\nimport { SeriesData } from '../base/series-data';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAnimationTypeConfig } from '@visactor/vgrammar';\nimport { centerOffsetConfig } from './animation/centerOffset';\nimport { BaseSeries } from '../base/base-series';\nimport { VChart } from '../../core/vchart';\nimport { PathMark } from '../../mark/path';\nimport { TextMark } from '../../mark/text';\nimport { ArcMark } from '../../mark/arc';\n\nVChart.useMark([PathMark, TextMark, ArcMark]);\n\ntype IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & { type: string };\n\nexport class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSeries<T> implements IArcSeries {\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n [SeriesMarkNameEnum.pie]: { name: SeriesMarkNameEnum.pie, type: MarkTypeEnum.arc },\n [SeriesMarkNameEnum.labelLine]: { name: SeriesMarkNameEnum.labelLine, type: MarkTypeEnum.path }\n };\n\n protected _viewDataLabel!: SeriesData;\n\n // 饼图渲染不依赖于极坐标系轴,因此由 series 自己存储相关配置信息\n protected _center!: IPoint | null;\n public get center(): IPoint {\n return {\n x: this._spec?.centerX ?? this._region.getLayoutRect().width / 2,\n y: this._spec?.centerY ?? this._region.getLayoutRect().height / 2\n };\n }\n protected _centerOffset!: number;\n\n protected _cornerRadius!: number;\n\n protected _startAngle: number = POLAR_START_RADIAN;\n protected _endAngle: number = POLAR_END_RADIAN;\n protected _padAngle!: number;\n\n protected _pieMark: IArcMark | null = null;\n protected _labelMark: ITextMark | null = null;\n protected _labelLineMark: IPathMark | null = null;\n\n protected declare _theme: Maybe<IPieSeriesTheme>;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._centerOffset = this._spec?.centerOffset ?? 0;\n this._cornerRadius = this._spec?.cornerRadius ?? 0;\n\n const normalized = normalizeStartEndAngle(\n isValid(this._spec?.startAngle) ? radians(this._spec.startAngle) : this._startAngle,\n isValid(this._spec?.endAngle) ? radians(this._spec.endAngle) : this._endAngle\n );\n this._startAngle = normalized.startAngle;\n this._endAngle = normalized.endAngle;\n this._padAngle = isValid(this._spec?.padAngle) ? radians(this._spec.padAngle) : 0;\n\n // 值信息给角度,angleField 是为了兼容小组件用法,因为 spec 改造前已经开放了\n this.setAngleField(this._spec.valueField || this._spec.angleField);\n if (this._spec.categoryField) {\n this.setSeriesField(this._spec.categoryField);\n }\n this._radiusField = [];\n }\n\n initData() {\n super.initData();\n\n const viewData = this.getViewData();\n if (!viewData) {\n return;\n }\n\n registerDataSetInstanceTransform(this._dataSet, 'pie', pie);\n registerDataSetInstanceTransform(this._dataSet, 'arcLabel', arcLabel);\n\n viewData.transform(\n {\n type: 'pie',\n options: {\n angleField: this._angleField[0],\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n asStartAngle: ARC_START_ANGLE,\n asEndAngle: ARC_END_ANGLE,\n asRatio: ARC_RATIO,\n asMiddleAngle: ARC_MIDDLE_ANGLE,\n asRadian: ARC_RADIAN,\n asQuadrant: ARC_QUADRANT,\n asK: ARC_K\n } as IPieOpt\n },\n false\n );\n\n const viewDataLabel = new DataView(this._dataSet);\n viewDataLabel.parse([this.getViewData()], {\n type: 'dataview'\n });\n viewDataLabel.name = `${PREFIX}_series_${this.id}_viewDataLabel`;\n viewDataLabel.transform(\n {\n type: 'arcLabel',\n options: { series: this }\n },\n false\n );\n\n this._viewDataLabel = new SeriesData(this._option, viewDataLabel);\n }\n\n initMark(): void {\n this._pieMark = this._createMark(\n {\n ...BasePieSeries.mark.pie,\n name: this._pieMarkName,\n type: this._pieMarkType\n },\n {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig(this.type, this._spec)),\n defaultMorphElementKey: this._seriesField,\n key: this._seriesField,\n groupKey: this._seriesField,\n skipBeforeLayouted: true,\n isSeriesMark: true\n }\n ) as IArcMark;\n\n if (this._spec?.label?.visible) {\n const spec = this.getSpec();\n this._labelMark = this._createMark(BasePieSeries.mark.label, {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label\n }\n }) as ITextMark;\n\n this._labelLineMark = this._createMark(BasePieSeries.mark.labelLine, {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label?.line,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label?.line\n }\n }) as ITextMark;\n }\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n fill: this.getColorAttribute(),\n outerRadius: isSpecValueWithScale(this._outerRadius)\n ? this._outerRadius\n : () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: isSpecValueWithScale(this._innerRadius)\n ? this._innerRadius\n : () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[pieMark.name];\n if (pieSpec) {\n // pieMark.setStyle(pieSpec.style, 'normal', AttributeLevel.User_Mark);\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this)\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal')\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n this._trigger.setStateKeys([this._seriesField as string, ...this._radiusField]);\n }\n\n initEvent(): void {\n super.initEvent();\n this._viewDataLabel.getDataView()?.target.addListener('change', this.viewDataLabelUpdate.bind(this));\n }\n\n // 饼图不支持分组\n initGroups() {\n return;\n }\n\n /**\n * @override\n * @param ctx\n */\n onLayoutEnd(ctx: IModelLayoutOption): void {\n this._viewDataLabel.getDataView().reRunAllTransform();\n this.onMarkPositionUpdate();\n super.onLayoutEnd(ctx);\n }\n\n getDimensionField(): string[] {\n return this._seriesField ? [this._seriesField] : [];\n }\n getMeasureField(): string[] {\n return this._angleField;\n }\n\n private viewDataLabelUpdate() {\n this.event.emit(ChartEvent.viewDataLabelUpdate, { model: this });\n this._viewDataLabel.updateData();\n }\n\n protected generateRadiusStyle(spec: any) {\n const style: any = {};\n spec?.outerRadius && (style.outerRadius = () => this.computeLayoutRadius() * spec?.outerRadius);\n spec?.innerRadius && (style.innerRadius = () => this.computeLayoutRadius() * spec?.innerRadius);\n spec?.cornerRadius && (style.cornerRadius = () => this.computeLayoutRadius() * spec?.cornerRadius);\n return style;\n }\n\n protected computeLayoutRadius() {\n const { width, height } = this._region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n computeCenter(datum: Datum): IPoint {\n return {\n x: this._pieMark.getAttribute('x', datum, 'normal') as number,\n y: this._pieMark.getAttribute('y', datum, 'normal') as number\n };\n }\n\n protected generateLinePath(state: StateValueType) {\n const key = state === 'normal' ? 'POINT' : state.toUpperCase();\n return {\n path: (datum: Datum) => {\n return (\n `M${Math.round(datum[`${PREFIX}_ARC_LABEL_${key}_AX`])},${Math.round(\n datum[`${PREFIX}_ARC_LABEL_${key}_AY`]\n )}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_BX])},${Math.round(datum[ARC_LABEL_POINT_BY])}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_CX])},${Math.round(datum[ARC_LABEL_POINT_CY])}`\n );\n }\n };\n }\n\n getRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.outerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.outerRadius;\n return styleRadius ?? this._outerRadius;\n }\n\n getInnerRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.innerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.innerRadius;\n return styleRadius ?? this._innerRadius;\n }\n\n getLabelConfig(): IArcLabelSpec {\n // TODO: 转换 series spec\n return {\n visible: true,\n position: 'outside',\n showRule: 'all',\n rotate: true,\n coverEnable: false,\n spaceWidth: 5,\n layoutArcGap: 6,\n ...this._spec.label,\n\n style: {\n visible: true,\n ...this._spec.label?.style\n },\n line: {\n visible: true,\n line1MinLength: this._spec.label?.line?.line1MinLength ?? 20,\n line2MinLength: this._spec.label?.line?.line2MinLength ?? 10,\n ...this._spec.label?.line\n },\n layout: {\n align: 'arc',\n strategy: 'priority',\n tangentConstraint: true,\n ...this._spec.label?.layout\n }\n };\n }\n\n computeRadius(r: number, k?: number): number {\n return this.computeLayoutRadius() * r * (isNil(k) ? 1 : k) + this._centerOffset;\n }\n\n computeDatumRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getRadius(state) + this._centerOffset;\n }\n\n updateSpec(spec: any) {\n // super updateSpec 会执行 setAttrFromSpec 所以先缓存比对值\n const originalSpec = this._originalSpec;\n const { centerX, centerY, centerOffset, radius, innerRadius, cornerRadius, startAngle, endAngle, padAngle } =\n originalSpec;\n const result = super.updateSpec(spec);\n if (\n spec?.centerX !== centerX ||\n spec?.centerY !== centerY ||\n spec?.centerOffset !== centerOffset ||\n spec?.radius !== radius ||\n spec?.innerRadius !== innerRadius ||\n spec?.cornerRadius !== cornerRadius ||\n spec?.startAngle !== startAngle ||\n spec?.endAngle !== endAngle ||\n spec?.padAngle !== padAngle\n ) {\n result.reRender = true;\n result.change = true;\n }\n return result;\n }\n\n computeDatumInnerRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getInnerRadius(state) + this._centerOffset;\n }\n\n dataToPosition(datum: Datum): IPoint | null {\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius });\n return { x: center.x + delta.x, y: center.y + delta.y };\n }\n\n dataToCentralPosition = (datum: Datum): IPoint | null => {\n // 和 PieSeries.dataToPosition 实现不同,这里考虑了美观性,返回的位置是曲边梯形的中心\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const innerRadius = this.computeDatumInnerRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius: (radius + innerRadius) / 2 });\n return { x: center.x + delta.x, y: center.y + delta.y };\n };\n\n initAnimation() {\n const animationParams: IPieAnimationParams = {\n growFrom: (datum, element, state) => {\n if (state === AnimationStateEnum.appear) {\n return this._startAngle;\n }\n if (state === AnimationStateEnum.disappear) {\n return this._endAngle;\n }\n\n const outState = [AnimationStateEnum.disappear, AnimationStateEnum.exit];\n const markElements = element.mark.elements;\n\n const data = datum;\n const dataIndex = data?.[DEFAULT_DATA_INDEX];\n\n // 当前 mark 在上个状态是否处于第一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex) === undefined) {\n return this._startAngle;\n }\n // 当前 mark 在上个状态是否处于最后一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] > dataIndex) === undefined) {\n return this._endAngle;\n }\n\n // 扇形不在边缘时,获取扇形生长点:获取相邻状态下相邻扇形的边缘\n // @ts-ignore\n // TODO: findLast is a new prototype function, we will later polyfill it in v-util.\n const prevMarkElement = markElements.findLast(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex);\n if (outState.includes(state)) {\n return prevMarkElement?.getGraphicItem().nextAttrs?.endAngle;\n }\n return prevMarkElement?.getGraphicItem().prevAttrs?.endAngle;\n }\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<PieAppearPreset>)?.preset;\n\n if (this._pieMark) {\n const pieAnimationConfig = animationConfig(\n DEFAULT_MARK_ANIMATION.pie(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.pie, this._spec)\n );\n\n if (pieAnimationConfig.normal && (pieAnimationConfig.normal as IAnimationTypeConfig).type) {\n pieAnimationConfig.normal = centerOffsetConfig(\n this._pieMark,\n pieAnimationConfig.normal as IAnimationTypeConfig\n );\n }\n\n this._pieMark.setAnimationConfig(pieAnimationConfig);\n }\n\n if (this._labelMark) {\n this._labelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec))\n );\n\n if (this._labelLineMark) {\n this._labelLineMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.labelLine, this._spec))\n );\n }\n }\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n\n setValueFieldToStack(): void {\n // do nothing\n }\n\n setValueFieldToPercent(): void {\n //do nothing\n }\n}\n\nexport class PieSeries extends BasePieSeries<IPieSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie;\n type = SeriesTypeEnum.pie;\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EasingType } from '@visactor/vrender';
|
|
2
2
|
import { ACustomAnimate, TagPointsUpdate } from '@visactor/vrender';
|
|
3
|
-
import type { IPolarAxisHelper } from '../../component';
|
|
3
|
+
import type { IPolarAxisHelper } from '../../component/axis';
|
|
4
4
|
export declare class PolarPointUpdate extends ACustomAnimate<{
|
|
5
5
|
x: number;
|
|
6
6
|
y: number;
|