@visactor/vchart-extension 2.0.7-alpha.5 → 2.0.7-alpha.7
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 +7327 -27108
- package/build/index.min.js +13 -12
- package/cjs/charts/3d/arc-3d.js +4 -5
- package/cjs/charts/3d/arc-3d.js.map +1 -1
- package/cjs/charts/3d/layout.d.ts +1 -1
- package/cjs/charts/3d/layout.js.map +1 -1
- package/cjs/charts/3d/plugin.js +4 -4
- package/cjs/charts/3d/plugin.js.map +1 -1
- package/cjs/charts/3d/pyramid-3d.js +4 -5
- package/cjs/charts/3d/pyramid-3d.js.map +1 -1
- package/cjs/charts/3d/rect-3d.js +4 -4
- package/cjs/charts/3d/rect-3d.js.map +1 -1
- package/cjs/charts/axis-3d/band-axis.js +2 -2
- package/cjs/charts/axis-3d/band-axis.js.map +1 -1
- package/cjs/charts/axis-3d/linear-axis.js +4 -3
- package/cjs/charts/axis-3d/linear-axis.js.map +1 -1
- package/cjs/charts/axis-3d/log-axis.js +2 -2
- package/cjs/charts/axis-3d/log-axis.js.map +1 -1
- package/cjs/charts/axis-3d/symlog-axis.js +3 -4
- package/cjs/charts/axis-3d/symlog-axis.js.map +1 -1
- package/cjs/charts/axis-3d/time-axis.js +2 -2
- package/cjs/charts/axis-3d/time-axis.js.map +1 -1
- package/cjs/charts/bar-3d/index.js +1 -1
- package/cjs/charts/bar-3d/interface.js +1 -1
- package/cjs/charts/bar-3d/series-spec-transformer.js +1 -1
- package/cjs/charts/bar-3d/series.js +1 -1
- package/cjs/charts/bar-3d/theme.js +1 -1
- package/cjs/charts/candlestick/candlestick-transformer.js +1 -1
- package/cjs/charts/candlestick/candlestick.d.ts +1 -1
- package/cjs/charts/candlestick/candlestick.js +2 -1
- package/cjs/charts/candlestick/candlestick.js.map +1 -1
- package/cjs/charts/candlestick/index.js +1 -1
- package/cjs/charts/candlestick/interface.js +1 -1
- package/cjs/charts/candlestick/mark/candlestick.d.ts +2 -1
- package/cjs/charts/candlestick/mark/candlestick.js +4 -4
- package/cjs/charts/candlestick/mark/candlestick.js.map +1 -1
- package/cjs/charts/candlestick/series/animation.d.ts +2 -2
- package/cjs/charts/candlestick/series/animation.js +17 -17
- package/cjs/charts/candlestick/series/animation.js.map +1 -1
- package/cjs/charts/candlestick/series/candlestick.d.ts +2 -1
- package/cjs/charts/candlestick/series/candlestick.js +4 -4
- package/cjs/charts/candlestick/series/candlestick.js.map +1 -1
- package/cjs/charts/candlestick/util.js +1 -1
- package/cjs/charts/combination-candlestick/combination-candlestick-transformer.js +14 -14
- package/cjs/charts/combination-candlestick/combination-candlestick-transformer.js.map +1 -1
- package/cjs/charts/combination-candlestick/combination-candlestick.js +3 -3
- package/cjs/charts/combination-candlestick/combination-candlestick.js.map +1 -1
- package/cjs/charts/combination-candlestick/constant.js +1 -1
- package/cjs/charts/combination-candlestick/index.js +1 -1
- package/cjs/charts/combination-candlestick/interface.js +1 -1
- package/cjs/charts/conversion-funnel/arrow-data-transform.d.ts +1 -1
- package/cjs/charts/conversion-funnel/arrow-data-transform.js +7 -6
- package/cjs/charts/conversion-funnel/arrow-data-transform.js.map +1 -1
- package/cjs/charts/conversion-funnel/constants.js +1 -1
- package/cjs/charts/conversion-funnel/conversion-funnel-transformer.js +3 -3
- package/cjs/charts/conversion-funnel/conversion-funnel-transformer.js.map +1 -1
- package/cjs/charts/conversion-funnel/conversion-funnel.d.ts +1 -1
- package/cjs/charts/conversion-funnel/conversion-funnel.js +3 -3
- package/cjs/charts/conversion-funnel/conversion-funnel.js.map +1 -1
- package/cjs/charts/conversion-funnel/index.js +1 -1
- package/cjs/charts/conversion-funnel/interface.js +1 -1
- package/cjs/charts/conversion-funnel/util.js +1 -1
- package/cjs/charts/funnel-3d/chart.js +1 -1
- package/cjs/charts/funnel-3d/constant.js +1 -1
- package/cjs/charts/funnel-3d/index.js +1 -1
- package/cjs/charts/funnel-3d/interface.js +1 -1
- package/cjs/charts/funnel-3d/series-spec-transformer.js +1 -1
- package/cjs/charts/funnel-3d/series.js +1 -1
- package/cjs/charts/funnel-3d/theme.js +1 -1
- package/cjs/charts/histogram-3d/chart.js +1 -1
- package/cjs/charts/image-cloud/series/animation.d.ts +2 -2
- package/cjs/charts/image-cloud/series/animation.js +8 -8
- package/cjs/charts/image-cloud/series/animation.js.map +1 -1
- package/cjs/charts/image-cloud/series/image-cloud.d.ts +4 -4
- package/cjs/charts/image-cloud/series/image-cloud.js +16 -16
- package/cjs/charts/image-cloud/series/image-cloud.js.map +1 -1
- package/cjs/charts/image-cloud/series/interface.d.ts +1 -1
- package/cjs/charts/image-cloud/series/interface.js.map +1 -1
- package/cjs/charts/pictogram/element-highlight-by-graphic-name.js +2 -2
- package/cjs/charts/pictogram/element-highlight-by-graphic-name.js.map +1 -1
- package/cjs/charts/pictogram/series/pictogram-transformer.js +3 -3
- package/cjs/charts/pictogram/series/pictogram-transformer.js.map +1 -1
- package/cjs/charts/pictogram/series/pictogram.d.ts +3 -3
- package/cjs/charts/pictogram/series/pictogram.js +27 -27
- package/cjs/charts/pictogram/series/pictogram.js.map +1 -1
- package/cjs/charts/pictogram/series/svg-source.d.ts +1 -2
- package/cjs/charts/pictogram/series/svg-source.js +3 -3
- package/cjs/charts/pictogram/series/svg-source.js.map +1 -1
- package/cjs/charts/pictogram/series/transform.d.ts +1 -1
- package/cjs/charts/pictogram/series/transform.js +6 -6
- package/cjs/charts/pictogram/series/transform.js.map +1 -1
- package/cjs/charts/ranking-bar/interface.d.ts +1 -1
- package/cjs/charts/ranking-bar/interface.js.map +1 -1
- package/cjs/charts/ranking-bar/ranking-bar-transformer.js +2 -2
- package/cjs/charts/ranking-bar/ranking-bar-transformer.js.map +1 -1
- package/cjs/charts/ranking-list/interface.d.ts +4 -4
- package/cjs/charts/ranking-list/interface.js.map +1 -1
- package/cjs/charts/ranking-list/ranking-list-transformer.d.ts +37 -37
- package/cjs/charts/ranking-list/ranking-list-transformer.js +5 -5
- package/cjs/charts/ranking-list/ranking-list-transformer.js.map +1 -1
- package/cjs/charts/ranking-list/utils.js +2 -2
- package/cjs/charts/ranking-list/utils.js.map +1 -1
- package/cjs/charts/sequence-scatter-kde/interface.d.ts +3 -3
- package/cjs/charts/sequence-scatter-kde/interface.js.map +1 -1
- package/cjs/charts/sequence-scatter-link/interface.d.ts +2 -2
- package/cjs/charts/sequence-scatter-link/interface.js.map +1 -1
- package/cjs/charts/sequence-scatter-pixel/interface.d.ts +3 -3
- package/cjs/charts/sequence-scatter-pixel/interface.js.map +1 -1
- package/cjs/charts/word-cloud-3d/animation.js +3 -3
- package/cjs/charts/word-cloud-3d/animation.js.map +1 -1
- package/cjs/components/bar-link/bar-link.d.ts +1 -1
- package/cjs/components/bar-link/bar-link.js +12 -12
- package/cjs/components/bar-link/bar-link.js.map +1 -1
- package/cjs/components/bar-link/constant.js +1 -1
- package/cjs/components/bar-link/index.js +1 -1
- package/cjs/components/bar-link/type.d.ts +1 -6
- package/cjs/components/bar-link/type.js +1 -1
- package/cjs/components/bar-link/type.js.map +1 -1
- package/cjs/components/bar-link/util.d.ts +1 -1
- package/cjs/components/bar-link/util.js +3 -3
- package/cjs/components/bar-link/util.js.map +1 -1
- package/cjs/components/bar-regression-line/index.d.ts +3 -3
- package/cjs/components/bar-regression-line/index.js +8 -8
- package/cjs/components/bar-regression-line/index.js.map +1 -1
- package/cjs/components/bar-regression-line/type.js +1 -1
- package/cjs/components/histogram-regression-line/index.d.ts +2 -2
- package/cjs/components/histogram-regression-line/index.js +9 -9
- package/cjs/components/histogram-regression-line/index.js.map +1 -1
- package/cjs/components/histogram-regression-line/type.js +1 -1
- package/cjs/components/map-label/index.js +1 -1
- package/cjs/components/map-label/layout.d.ts +1 -1
- package/cjs/components/map-label/layout.js +5 -5
- package/cjs/components/map-label/layout.js.map +1 -1
- package/cjs/components/map-label/map-label-transformer.js +1 -2
- package/cjs/components/map-label/map-label.d.ts +3 -4
- package/cjs/components/map-label/map-label.js +22 -22
- package/cjs/components/map-label/map-label.js.map +1 -1
- package/cjs/components/map-label/theme.js +1 -1
- package/cjs/components/map-label/type.d.ts +1 -1
- package/cjs/components/map-label/type.js +1 -1
- package/cjs/components/map-label/type.js.map +1 -1
- package/cjs/components/regression-line/index.js +1 -1
- package/cjs/components/regression-line/regression-line.d.ts +1 -1
- package/cjs/components/regression-line/regression-line.js +11 -11
- package/cjs/components/regression-line/regression-line.js.map +1 -1
- package/cjs/components/regression-line/type.d.ts +1 -1
- package/cjs/components/regression-line/type.js +1 -1
- package/cjs/components/regression-line/type.js.map +1 -1
- package/cjs/components/scatter-regression-line/index.d.ts +3 -3
- package/cjs/components/scatter-regression-line/index.js +11 -11
- package/cjs/components/scatter-regression-line/index.js.map +1 -1
- package/cjs/components/scatter-regression-line/type.js +1 -1
- package/cjs/components/series-break/constant.js +1 -1
- package/cjs/components/series-break/index.js +1 -1
- package/cjs/components/series-break/series-break.d.ts +2 -2
- package/cjs/components/series-break/series-break.js +11 -11
- package/cjs/components/series-break/series-break.js.map +1 -1
- package/cjs/components/series-break/type.d.ts +1 -2
- package/cjs/components/series-break/type.js +1 -1
- package/cjs/components/series-break/type.js.map +1 -1
- package/cjs/components/series-break/util.js +8 -8
- package/cjs/components/series-break/util.js.map +1 -1
- package/cjs/components/series-label/constant.js +1 -1
- package/cjs/components/series-label/index.js +1 -1
- package/cjs/components/series-label/series-label.d.ts +2 -2
- package/cjs/components/series-label/series-label.js +9 -10
- package/cjs/components/series-label/series-label.js.map +1 -1
- package/cjs/components/series-label/type.d.ts +1 -2
- package/cjs/components/series-label/type.js +1 -1
- package/cjs/components/series-label/type.js.map +1 -1
- package/cjs/components/series-label/util.d.ts +4 -4
- package/cjs/components/series-label/util.js +6 -6
- package/cjs/components/series-label/util.js.map +1 -1
- package/cjs/type/type.d.ts +1 -1
- package/cjs/type/type.js.map +1 -1
- package/esm/charts/3d/arc-3d.js +1 -3
- package/esm/charts/3d/arc-3d.js.map +1 -1
- package/esm/charts/3d/layout.d.ts +1 -1
- package/esm/charts/3d/layout.js.map +1 -1
- package/esm/charts/3d/plugin.js +1 -1
- package/esm/charts/3d/plugin.js.map +1 -1
- package/esm/charts/3d/pyramid-3d.js +1 -3
- package/esm/charts/3d/pyramid-3d.js.map +1 -1
- package/esm/charts/3d/rect-3d.js +1 -3
- package/esm/charts/3d/rect-3d.js.map +1 -1
- package/esm/charts/axis-3d/band-axis.js +1 -1
- package/esm/charts/axis-3d/band-axis.js.map +1 -1
- package/esm/charts/axis-3d/linear-axis.js +3 -2
- package/esm/charts/axis-3d/linear-axis.js.map +1 -1
- package/esm/charts/axis-3d/log-axis.js +1 -1
- package/esm/charts/axis-3d/log-axis.js.map +1 -1
- package/esm/charts/axis-3d/symlog-axis.js +2 -3
- package/esm/charts/axis-3d/symlog-axis.js.map +1 -1
- package/esm/charts/axis-3d/time-axis.js +1 -1
- package/esm/charts/axis-3d/time-axis.js.map +1 -1
- package/esm/charts/bar-3d/index.js +1 -1
- package/esm/charts/bar-3d/interface.js +1 -1
- package/esm/charts/bar-3d/series-spec-transformer.js +1 -1
- package/esm/charts/bar-3d/series.js +1 -1
- package/esm/charts/bar-3d/theme.js +1 -1
- package/esm/charts/candlestick/candlestick-transformer.js +1 -1
- package/esm/charts/candlestick/candlestick.d.ts +1 -1
- package/esm/charts/candlestick/candlestick.js +2 -1
- package/esm/charts/candlestick/candlestick.js.map +1 -1
- package/esm/charts/candlestick/index.js +1 -1
- package/esm/charts/candlestick/interface.js +1 -1
- package/esm/charts/candlestick/mark/candlestick.d.ts +2 -1
- package/esm/charts/candlestick/mark/candlestick.js +1 -5
- package/esm/charts/candlestick/mark/candlestick.js.map +1 -1
- package/esm/charts/candlestick/series/animation.d.ts +2 -2
- package/esm/charts/candlestick/series/animation.js +2 -2
- package/esm/charts/candlestick/series/animation.js.map +1 -1
- package/esm/charts/candlestick/series/candlestick.d.ts +2 -1
- package/esm/charts/candlestick/series/candlestick.js +1 -1
- package/esm/charts/candlestick/series/candlestick.js.map +1 -1
- package/esm/charts/candlestick/util.js +1 -1
- package/esm/charts/combination-candlestick/combination-candlestick-transformer.js +2 -2
- package/esm/charts/combination-candlestick/combination-candlestick-transformer.js.map +1 -1
- package/esm/charts/combination-candlestick/combination-candlestick.js +2 -2
- package/esm/charts/combination-candlestick/combination-candlestick.js.map +1 -1
- package/esm/charts/combination-candlestick/constant.js +1 -1
- package/esm/charts/combination-candlestick/index.js +1 -1
- package/esm/charts/combination-candlestick/interface.js +1 -1
- package/esm/charts/conversion-funnel/arrow-data-transform.d.ts +1 -1
- package/esm/charts/conversion-funnel/arrow-data-transform.js +3 -2
- package/esm/charts/conversion-funnel/arrow-data-transform.js.map +1 -1
- package/esm/charts/conversion-funnel/constants.js +1 -1
- package/esm/charts/conversion-funnel/conversion-funnel-transformer.js +2 -2
- package/esm/charts/conversion-funnel/conversion-funnel-transformer.js.map +1 -1
- package/esm/charts/conversion-funnel/conversion-funnel.d.ts +1 -1
- package/esm/charts/conversion-funnel/conversion-funnel.js +2 -2
- package/esm/charts/conversion-funnel/conversion-funnel.js.map +1 -1
- package/esm/charts/conversion-funnel/index.js +1 -1
- package/esm/charts/conversion-funnel/interface.js +1 -1
- package/esm/charts/conversion-funnel/util.js +1 -1
- package/esm/charts/funnel-3d/chart.js +1 -1
- package/esm/charts/funnel-3d/constant.js +1 -1
- package/esm/charts/funnel-3d/index.js +1 -1
- package/esm/charts/funnel-3d/interface.js +1 -1
- package/esm/charts/funnel-3d/series-spec-transformer.js +1 -1
- package/esm/charts/funnel-3d/series.js +1 -1
- package/esm/charts/funnel-3d/theme.js +1 -1
- package/esm/charts/histogram-3d/chart.js +1 -1
- package/esm/charts/image-cloud/series/animation.d.ts +2 -2
- package/esm/charts/image-cloud/series/animation.js +2 -2
- package/esm/charts/image-cloud/series/animation.js.map +1 -1
- package/esm/charts/image-cloud/series/image-cloud.d.ts +4 -4
- package/esm/charts/image-cloud/series/image-cloud.js +3 -3
- package/esm/charts/image-cloud/series/image-cloud.js.map +1 -1
- package/esm/charts/image-cloud/series/interface.d.ts +1 -1
- package/esm/charts/image-cloud/series/interface.js.map +1 -1
- package/esm/charts/pictogram/element-highlight-by-graphic-name.js +1 -1
- package/esm/charts/pictogram/element-highlight-by-graphic-name.js.map +1 -1
- package/esm/charts/pictogram/series/pictogram-transformer.js +1 -1
- package/esm/charts/pictogram/series/pictogram-transformer.js.map +1 -1
- package/esm/charts/pictogram/series/pictogram.d.ts +3 -3
- package/esm/charts/pictogram/series/pictogram.js +3 -3
- package/esm/charts/pictogram/series/pictogram.js.map +1 -1
- package/esm/charts/pictogram/series/svg-source.d.ts +1 -2
- package/esm/charts/pictogram/series/svg-source.js +1 -1
- package/esm/charts/pictogram/series/svg-source.js.map +1 -1
- package/esm/charts/pictogram/series/transform.d.ts +1 -1
- package/esm/charts/pictogram/series/transform.js +1 -1
- package/esm/charts/pictogram/series/transform.js.map +1 -1
- package/esm/charts/ranking-bar/interface.d.ts +1 -1
- package/esm/charts/ranking-bar/interface.js.map +1 -1
- package/esm/charts/ranking-bar/ranking-bar-transformer.js +1 -1
- package/esm/charts/ranking-bar/ranking-bar-transformer.js.map +1 -1
- package/esm/charts/ranking-list/interface.d.ts +4 -4
- package/esm/charts/ranking-list/interface.js.map +1 -1
- package/esm/charts/ranking-list/ranking-list-transformer.d.ts +37 -37
- package/esm/charts/ranking-list/ranking-list-transformer.js +1 -1
- package/esm/charts/ranking-list/ranking-list-transformer.js.map +1 -1
- package/esm/charts/ranking-list/utils.js +1 -1
- package/esm/charts/ranking-list/utils.js.map +1 -1
- package/esm/charts/sequence-scatter-kde/interface.d.ts +3 -3
- package/esm/charts/sequence-scatter-kde/interface.js.map +1 -1
- package/esm/charts/sequence-scatter-link/interface.d.ts +2 -2
- package/esm/charts/sequence-scatter-link/interface.js.map +1 -1
- package/esm/charts/sequence-scatter-pixel/interface.d.ts +3 -3
- package/esm/charts/sequence-scatter-pixel/interface.js.map +1 -1
- package/esm/charts/word-cloud-3d/animation.js +1 -1
- package/esm/charts/word-cloud-3d/animation.js.map +1 -1
- package/esm/components/bar-link/bar-link.d.ts +1 -1
- package/esm/components/bar-link/bar-link.js +3 -5
- package/esm/components/bar-link/bar-link.js.map +1 -1
- package/esm/components/bar-link/constant.js +1 -1
- package/esm/components/bar-link/index.js +1 -1
- package/esm/components/bar-link/type.d.ts +1 -6
- package/esm/components/bar-link/type.js +1 -1
- package/esm/components/bar-link/type.js.map +1 -1
- package/esm/components/bar-link/util.d.ts +1 -1
- package/esm/components/bar-link/util.js +2 -2
- package/esm/components/bar-link/util.js.map +1 -1
- package/esm/components/bar-regression-line/index.d.ts +3 -3
- package/esm/components/bar-regression-line/index.js +2 -2
- package/esm/components/bar-regression-line/index.js.map +1 -1
- package/esm/components/bar-regression-line/type.js +1 -1
- package/esm/components/histogram-regression-line/index.d.ts +2 -2
- package/esm/components/histogram-regression-line/index.js +2 -2
- package/esm/components/histogram-regression-line/index.js.map +1 -1
- package/esm/components/histogram-regression-line/type.js +1 -1
- package/esm/components/map-label/index.js +1 -1
- package/esm/components/map-label/layout.d.ts +1 -1
- package/esm/components/map-label/layout.js +2 -2
- package/esm/components/map-label/layout.js.map +1 -1
- package/esm/components/map-label/map-label-transformer.js +1 -2
- package/esm/components/map-label/map-label.d.ts +3 -4
- package/esm/components/map-label/map-label.js +4 -6
- package/esm/components/map-label/map-label.js.map +1 -1
- package/esm/components/map-label/theme.js +1 -1
- package/esm/components/map-label/type.d.ts +1 -1
- package/esm/components/map-label/type.js +1 -1
- package/esm/components/map-label/type.js.map +1 -1
- package/esm/components/regression-line/index.js +1 -1
- package/esm/components/regression-line/regression-line.d.ts +1 -1
- package/esm/components/regression-line/regression-line.js +3 -5
- package/esm/components/regression-line/regression-line.js.map +1 -1
- package/esm/components/regression-line/type.d.ts +1 -1
- package/esm/components/regression-line/type.js +1 -1
- package/esm/components/regression-line/type.js.map +1 -1
- package/esm/components/scatter-regression-line/index.d.ts +3 -3
- package/esm/components/scatter-regression-line/index.js +2 -2
- package/esm/components/scatter-regression-line/index.js.map +1 -1
- package/esm/components/scatter-regression-line/type.js +1 -1
- package/esm/components/series-break/constant.js +1 -1
- package/esm/components/series-break/index.js +1 -1
- package/esm/components/series-break/series-break.d.ts +2 -2
- package/esm/components/series-break/series-break.js +3 -5
- package/esm/components/series-break/series-break.js.map +1 -1
- package/esm/components/series-break/type.d.ts +1 -2
- package/esm/components/series-break/type.js +1 -1
- package/esm/components/series-break/type.js.map +1 -1
- package/esm/components/series-break/util.js +2 -2
- package/esm/components/series-break/util.js.map +1 -1
- package/esm/components/series-label/constant.js +1 -1
- package/esm/components/series-label/index.js +1 -1
- package/esm/components/series-label/series-label.d.ts +2 -2
- package/esm/components/series-label/series-label.js +3 -6
- package/esm/components/series-label/series-label.js.map +1 -1
- package/esm/components/series-label/type.d.ts +1 -2
- package/esm/components/series-label/type.js +1 -1
- package/esm/components/series-label/type.js.map +1 -1
- package/esm/components/series-label/util.d.ts +4 -4
- package/esm/components/series-label/util.js +2 -2
- package/esm/components/series-label/util.js.map +1 -1
- package/esm/type/type.d.ts +1 -1
- package/esm/type/type.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/charts/image-cloud/series/image-cloud.ts"],"names":[],"mappings":"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","file":"image-cloud.js","sourcesContent":["import type { IImageCloudSeriesSpec } from './interface';\nimport { IMAGE_CLOUD_SERIES_TYPE, ImageCloudMarkNameEnum, imageCloudSeriesMark } from './constant';\nimport type { IPoint } from '@visactor/vutils';\nimport { isValid } from '@visactor/vutils';\nimport { imagecloudTransform } from '@visactor/vlayouts';\nimport type { GridLayoutConfig } from '@visactor/vlayouts';\nimport { registerImageCloudAnimation } from './animation';\nimport { ImageCloudTooltipHelper } from './tooltip-helper';\nimport { createImage } from '@visactor/vrender-core';\nimport type { Datum, IImageMark, IMark, IRectMark } from '@visactor/vchart';\nimport {\n animationConfig,\n AttributeLevel,\n BaseSeries,\n DEFAULT_DATA_KEY,\n Factory,\n registerImageMark,\n userAnimationConfig,\n vglobal\n} from '@visactor/vchart';\n\nexport class ImageCloudSeries<T extends IImageCloudSeriesSpec> extends BaseSeries<T> {\n static readonly type: string = IMAGE_CLOUD_SERIES_TYPE;\n type = IMAGE_CLOUD_SERIES_TYPE;\n\n static readonly mark = imageCloudSeriesMark;\n\n protected _urlField: string;\n protected _nameField?: string;\n protected _valueField?: string;\n setValueField(field: string) {\n if (isValid(field)) {\n this._valueField = field;\n }\n }\n\n protected _imageMark?: IImageMark;\n protected _maskMark?: IRectMark;\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._nameField = this._spec.nameField;\n this._valueField = this._spec.valueField;\n this._urlField = this._spec.urlField;\n }\n\n initMark() {\n if (this._spec.imageMask?.visible) {\n this._maskMark = this._createMark(imageCloudSeriesMark.imageMask, {\n dataView: false,\n skipBeforeLayouted: true\n }) as IRectMark;\n }\n\n this._imageMark = this._createMark(imageCloudSeriesMark.image, {\n key: datum => `${datum[DEFAULT_DATA_KEY]}-${datum.frequency}`,\n isSeriesMark: true,\n skipBeforeLayouted: true\n }) as IImageMark;\n }\n\n initMarkStyle() {\n this._initImageMarkStyle();\n this._initMaskMarkStyle();\n }\n\n protected _initImageMarkStyle() {\n if (!this._imageMark) {\n return;\n }\n\n this._imageMark.setTransform([\n {\n type: 'imagecloud',\n ...this._imageCloudTransformOption()\n }\n ]);\n\n this.setMarkStyle(\n this._imageMark,\n {\n x: (datum: Datum) => datum.x,\n y: (datum: Datum) => datum.y,\n width: (datum: Datum) => datum.width,\n height: (datum: Datum) => datum.height,\n visible: (datum: Datum) => datum.visible,\n angle: (datum: Datum) => datum.angle,\n clipConfig: (datum: Datum) => datum.clipConfig,\n image: (datum: Datum) => datum[this._urlField],\n scaleCenter: ['50%', '50%']\n },\n 'normal',\n AttributeLevel.Series\n );\n\n const isMasked = (this._spec.layoutConfig as GridLayoutConfig)?.placement === 'masked';\n if (isMasked) {\n this.setMarkStyle(\n this._imageMark,\n {\n globalCompositeOperation: 'source-atop'\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n this._rootMark,\n {\n width: () => this._region.getLayoutRect().width,\n height: () => this._region.getLayoutRect().height,\n globalCompositeOperation: 'destination-in',\n clip: true,\n drawMode: 1\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n if (this._spec.layoutConfig?.layoutMode === 'stack') {\n this.setMarkStyle(\n this._imageMark,\n {\n stroke: 'white',\n lineWidth: 2,\n shadowBlur: 6,\n shadowColor: 'grey'\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n protected isFillingImage(datum: Datum) {\n return datum._frequency > 1;\n }\n\n protected _initMaskMarkStyle() {\n if (!this._maskMark) {\n return;\n }\n this._maskMark.setMarkConfig({ interactive: false });\n this.setMarkStyle(\n this._maskMark,\n {\n width: () => {\n return this._region.getLayoutRect().width;\n },\n height: () => {\n return this._region.getLayoutRect().height;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n protected initTooltip(): void {\n this._tooltipHelper = new ImageCloudTooltipHelper(this);\n this._imageMark && this._tooltipHelper.activeTriggerSet.mark.add(this._imageMark);\n }\n\n protected _imageCloudTransformOption() {\n return {\n size: () => {\n const { width, height } = this._region.getLayoutRect();\n return [width, height];\n },\n image: { field: this._urlField },\n weight: { field: this._valueField },\n imageConfig: {\n imageSize: this._spec.imageSize,\n imageSizeRange: this._spec.imageSizeRange,\n padding: this._spec.image?.padding\n },\n ratio: this._spec.ratio,\n mask: this._spec.maskShape,\n maskConfig: this._spec.imageMask,\n layoutConfig: this._spec.layoutConfig,\n createCanvas: vglobal.createCanvas.bind(vglobal),\n createImage,\n onUpdateMaskCanvas: ((inputImage?: HTMLCanvasElement, maskImage?: HTMLCanvasElement) => {\n if (inputImage && this._maskMark) {\n this._maskMark\n .getProduct()\n .getChildren()\n .forEach((element: any) => {\n element.setAttribute('background', inputImage);\n });\n }\n if (maskImage && (this._spec.layoutConfig as GridLayoutConfig)?.placement === 'masked') {\n this._rootMark.getProduct().setAttribute('background', maskImage);\n }\n }).bind(this),\n onLayoutFinished: () =>\n this._option.globalInstance\n .getChart()\n .getOption()\n .performanceHook?.afterWordcloudShapeDraw?.(this._option.globalInstance)\n };\n }\n\n protected _buildMarkAttributeContext(): void {\n super._buildMarkAttributeContext();\n this._markAttributeContext.isFillingImage = this.isFillingImage.bind(this);\n }\n\n initAnimation(): void {\n [this._imageMark].forEach(mark => {\n if (mark) {\n const appearPreset = (this._spec?.animationAppear as any)?.preset;\n const params = {\n center: () => {\n const { width, height } = this._region.getLayoutRect();\n return { x: width / 2, y: height / 2 };\n },\n height: () => {\n const { height } = this._region.getLayoutRect();\n return height;\n }\n };\n mark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('imageCloud')(params, appearPreset),\n userAnimationConfig(ImageCloudMarkNameEnum.image, this._spec, this._markAttributeContext)\n )\n );\n }\n });\n }\n\n getDimensionField(): string[] {\n return [this._nameField ?? this._spec.urlField];\n }\n\n getMeasureField(): string[] {\n return [this._valueField];\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: Array<'max' | 'min' | 'values'> }[] = [];\n fields.push({ key: this._nameField, operations: ['values'] });\n fields.push({ key: this._valueField, operations: ['max', 'min'] });\n return fields;\n }\n\n getActiveMarks(): IMark[] {\n return [this._imageMark];\n }\n\n getMarkData(datum: Datum) {\n return datum?.datum ?? datum;\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n dataToPosition(data: Datum): IPoint | null {\n return null;\n }\n\n dataToPositionX(data: Datum): number | null {\n return this.dataToPosition(data)?.x;\n }\n dataToPositionY(data: Datum): number | null {\n return this.dataToPosition(data)?.y;\n }\n\n valueToPosition(value1: any, value2?: any): null {\n return null;\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n}\n\nexport const registerImageCloudSeries = () => {\n registerImageMark();\n registerImageCloudAnimation();\n Factory.registerSeries(ImageCloudSeries.type, ImageCloudSeries);\n Factory.registerGrammarTransform('imagecloud', {\n transform: imagecloudTransform\n });\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/charts/image-cloud/series/image-cloud.ts"],"names":[],"mappings":";;;AACA,yCAAmG;AAEnG,6CAA2C;AAC3C,6CAA8E;AAC9E,2CAA0D;AAC1D,qDAA2D;AAC3D,6CAA+C;AAE/C,6CAS0B;AAE1B,MAAa,gBAAkD,SAAQ,mBAAa;IAApF;;QAEE,SAAI,GAAG,kCAAuB,CAAC;IAqQjC,CAAC;IA9PC,aAAa,CAAC,KAAa;QACzB,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE;YAClB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;IACH,CAAC;IAKD,eAAe;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,QAAQ;;QACN,IAAI,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,OAAO,EAAE;YACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,+BAAoB,CAAC,SAAS,EAAE;gBAChE,QAAQ,EAAE,KAAK;gBACf,kBAAkB,EAAE,IAAI;aACzB,CAAc,CAAC;SACjB;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,+BAAoB,CAAC,KAAK,EAAE;YAC7D,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,yBAAgB,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE;YAC7D,YAAY,EAAE,IAAI;YAClB,kBAAkB,EAAE,IAAI;SACzB,CAAe,CAAC;IACnB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAES,mBAAmB;;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACR;QAED,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;4BAEzB,IAAI,EAAE,YAAY,IACf,IAAI,CAAC,0BAA0B,EAAE;SAEvC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CACf,IAAI,CAAC,UAAU,EACf;YACE,CAAC,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5B,KAAK,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK;YACpC,MAAM,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM;YACtC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO;YACxC,KAAK,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK;YACpC,UAAU,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU;YAC9C,KAAK,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9C,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;SAC5B,EACD,QAAQ,EACR,uBAAc,CAAC,MAAM,CACtB,CAAC;QAEF,MAAM,QAAQ,GAAG,CAAA,MAAC,IAAI,CAAC,KAAK,CAAC,YAAiC,0CAAE,SAAS,MAAK,QAAQ,CAAC;QACvF,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,YAAY,CACf,IAAI,CAAC,UAAU,EACf;gBACE,wBAAwB,EAAE,aAAa;aACxC,EACD,QAAQ,EACR,uBAAc,CAAC,MAAM,CACtB,CAAC;YACF,IAAI,CAAC,YAAY,CACf,IAAI,CAAC,SAAS,EACd;gBACE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK;gBAC/C,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM;gBACjD,wBAAwB,EAAE,gBAAgB;gBAC1C,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,CAAC;aACZ,EACD,QAAQ,EACR,uBAAc,CAAC,MAAM,CACtB,CAAC;SACH;QAED,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,YAAY,0CAAE,UAAU,MAAK,OAAO,EAAE;YACnD,IAAI,CAAC,YAAY,CACf,IAAI,CAAC,UAAU,EACf;gBACE,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,CAAC;gBACb,WAAW,EAAE,MAAM;aACpB,EACD,QAAQ,EACR,uBAAc,CAAC,MAAM,CACtB,CAAC;SACH;IACH,CAAC;IAES,cAAc,CAAC,KAAY;QACnC,OAAO,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;IAC9B,CAAC;IAES,kBAAkB;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO;SACR;QACD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CACf,IAAI,CAAC,SAAS,EACd;YACE,KAAK,EAAE,GAAG,EAAE;gBACV,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC;YAC5C,CAAC;YACD,MAAM,EAAE,GAAG,EAAE;gBACX,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC;YAC7C,CAAC;SACF,EACD,QAAQ,EACR,uBAAc,CAAC,MAAM,CACtB,CAAC;IACJ,CAAC;IAES,WAAW;QACnB,IAAI,CAAC,cAAc,GAAG,IAAI,wCAAuB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpF,CAAC;IAES,0BAA0B;;QAClC,OAAO;YACL,IAAI,EAAE,GAAG,EAAE;gBACT,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBACvD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACzB,CAAC;YACD,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;YAChC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;YACnC,WAAW,EAAE;gBACX,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;gBAC/B,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;gBACzC,OAAO,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,OAAO;aACnC;YACD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAChC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YACrC,YAAY,EAAE,gBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAO,CAAC;YAChD,WAAW,EAAX,oBAAW;YACX,kBAAkB,EAAE,CAAC,CAAC,UAA8B,EAAE,SAA6B,EAAE,EAAE;;gBACrF,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChC,IAAI,CAAC,SAAS;yBACX,UAAU,EAAE;yBACZ,WAAW,EAAE;yBACb,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;wBACxB,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;oBACjD,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,SAAS,IAAI,CAAA,MAAC,IAAI,CAAC,KAAK,CAAC,YAAiC,0CAAE,SAAS,MAAK,QAAQ,EAAE;oBACtF,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;iBACnE;YACH,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACb,gBAAgB,EAAE,GAAG,EAAE;;gBACrB,OAAA,MAAA,MAAA,IAAI,CAAC,OAAO,CAAC,cAAc;qBACxB,QAAQ,EAAE;qBACV,SAAS,EAAE;qBACX,eAAe,0CAAE,uBAAuB,mDAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;aAAA;SAC7E,CAAC;IACJ,CAAC;IAES,0BAA0B;QAClC,KAAK,CAAC,0BAA0B,EAAE,CAAC;QACnC,IAAI,CAAC,qBAAqB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,aAAa;QACX,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;;YAC/B,IAAI,IAAI,EAAE;gBACR,MAAM,YAAY,GAAG,MAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,eAAuB,0CAAE,MAAM,CAAC;gBAClE,MAAM,MAAM,GAAG;oBACb,MAAM,EAAE,GAAG,EAAE;wBACX,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;wBACvD,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzC,CAAC;oBACD,MAAM,EAAE,GAAG,EAAE;wBACX,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;wBAChD,OAAO,MAAM,CAAC;oBAChB,CAAC;iBACF,CAAC;gBACF,IAAI,CAAC,kBAAkB,CACrB,IAAA,wBAAe,EACb,gBAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,EAC7D,IAAA,4BAAmB,WAA+B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAC1F,CACF,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;;QACf,OAAO,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,eAAe;QACb,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5B,CAAC;IAED,kBAAkB;QAChB,MAAM,MAAM,GAAmE,EAAE,CAAC;QAClF,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,KAAY;;QACtB,OAAO,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,mCAAI,KAAK,CAAC;IAC/B,CAAC;IAED,cAAc;QAEZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,cAAc,CAAC,IAAW;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,IAAW;;QACzB,OAAO,MAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,0CAAE,CAAC,CAAC;IACtC,CAAC;IACD,eAAe,CAAC,IAAW;;QACzB,OAAO,MAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,0CAAE,CAAC,CAAC;IACtC,CAAC;IAED,eAAe,CAAC,MAAW,EAAE,MAAY;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB;QAEjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,kBAAkB;QAEhB,OAAO,EAAE,CAAC;IACZ,CAAC;;AAtQH,4CAuQC;AAtQiB,qBAAI,GAAW,kCAAuB,CAAC;AAGvC,qBAAI,GAAG,+BAAoB,CAAC;AAqQvC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,IAAA,0BAAiB,GAAE,CAAC;IACpB,IAAA,uCAA2B,GAAE,CAAC;IAC9B,gBAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAChE,gBAAO,CAAC,wBAAwB,CAAC,YAAY,EAAE;QAC7C,SAAS,EAAE,4BAAmB;KAC/B,CAAC,CAAC;AACL,CAAC,CAAC;AAPW,QAAA,wBAAwB,4BAOnC","file":"image-cloud.js","sourcesContent":["import type { IImageCloudSeriesSpec } from './interface';\nimport { IMAGE_CLOUD_SERIES_TYPE, ImageCloudMarkNameEnum, imageCloudSeriesMark } from './constant';\nimport type { IPoint } from '@visactor/vchart';\nimport { isValid } from '@visactor/vchart';\nimport { imagecloudTransform, type GridLayoutConfig } from '@visactor/vchart';\nimport { registerImageCloudAnimation } from './animation';\nimport { ImageCloudTooltipHelper } from './tooltip-helper';\nimport { createImage } from '@visactor/vchart';\nimport type { Datum, IImageMark, IMark, IRectMark } from '@visactor/vchart';\nimport {\n animationConfig,\n AttributeLevel,\n BaseSeries,\n DEFAULT_DATA_KEY,\n Factory,\n registerImageMark,\n userAnimationConfig,\n vglobal\n} from '@visactor/vchart';\n\nexport class ImageCloudSeries<T extends IImageCloudSeriesSpec> extends BaseSeries<T> {\n static readonly type: string = IMAGE_CLOUD_SERIES_TYPE;\n type = IMAGE_CLOUD_SERIES_TYPE;\n\n static readonly mark = imageCloudSeriesMark;\n\n protected _urlField: string;\n protected _nameField?: string;\n protected _valueField?: string;\n setValueField(field: string) {\n if (isValid(field)) {\n this._valueField = field;\n }\n }\n\n protected _imageMark?: IImageMark;\n protected _maskMark?: IRectMark;\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._nameField = this._spec.nameField;\n this._valueField = this._spec.valueField;\n this._urlField = this._spec.urlField;\n }\n\n initMark() {\n if (this._spec.imageMask?.visible) {\n this._maskMark = this._createMark(imageCloudSeriesMark.imageMask, {\n dataView: false,\n skipBeforeLayouted: true\n }) as IRectMark;\n }\n\n this._imageMark = this._createMark(imageCloudSeriesMark.image, {\n key: datum => `${datum[DEFAULT_DATA_KEY]}-${datum.frequency}`,\n isSeriesMark: true,\n skipBeforeLayouted: true\n }) as IImageMark;\n }\n\n initMarkStyle() {\n this._initImageMarkStyle();\n this._initMaskMarkStyle();\n }\n\n protected _initImageMarkStyle() {\n if (!this._imageMark) {\n return;\n }\n\n this._imageMark.setTransform([\n {\n type: 'imagecloud',\n ...this._imageCloudTransformOption()\n }\n ]);\n\n this.setMarkStyle(\n this._imageMark,\n {\n x: (datum: Datum) => datum.x,\n y: (datum: Datum) => datum.y,\n width: (datum: Datum) => datum.width,\n height: (datum: Datum) => datum.height,\n visible: (datum: Datum) => datum.visible,\n angle: (datum: Datum) => datum.angle,\n clipConfig: (datum: Datum) => datum.clipConfig,\n image: (datum: Datum) => datum[this._urlField],\n scaleCenter: ['50%', '50%']\n },\n 'normal',\n AttributeLevel.Series\n );\n\n const isMasked = (this._spec.layoutConfig as GridLayoutConfig)?.placement === 'masked';\n if (isMasked) {\n this.setMarkStyle(\n this._imageMark,\n {\n globalCompositeOperation: 'source-atop'\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n this._rootMark,\n {\n width: () => this._region.getLayoutRect().width,\n height: () => this._region.getLayoutRect().height,\n globalCompositeOperation: 'destination-in',\n clip: true,\n drawMode: 1\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n if (this._spec.layoutConfig?.layoutMode === 'stack') {\n this.setMarkStyle(\n this._imageMark,\n {\n stroke: 'white',\n lineWidth: 2,\n shadowBlur: 6,\n shadowColor: 'grey'\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n protected isFillingImage(datum: Datum) {\n return datum._frequency > 1;\n }\n\n protected _initMaskMarkStyle() {\n if (!this._maskMark) {\n return;\n }\n this._maskMark.setMarkConfig({ interactive: false });\n this.setMarkStyle(\n this._maskMark,\n {\n width: () => {\n return this._region.getLayoutRect().width;\n },\n height: () => {\n return this._region.getLayoutRect().height;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n protected initTooltip(): void {\n this._tooltipHelper = new ImageCloudTooltipHelper(this);\n this._imageMark && this._tooltipHelper.activeTriggerSet.mark.add(this._imageMark);\n }\n\n protected _imageCloudTransformOption() {\n return {\n size: () => {\n const { width, height } = this._region.getLayoutRect();\n return [width, height];\n },\n image: { field: this._urlField },\n weight: { field: this._valueField },\n imageConfig: {\n imageSize: this._spec.imageSize,\n imageSizeRange: this._spec.imageSizeRange,\n padding: this._spec.image?.padding\n },\n ratio: this._spec.ratio,\n mask: this._spec.maskShape,\n maskConfig: this._spec.imageMask,\n layoutConfig: this._spec.layoutConfig,\n createCanvas: vglobal.createCanvas.bind(vglobal),\n createImage,\n onUpdateMaskCanvas: ((inputImage?: HTMLCanvasElement, maskImage?: HTMLCanvasElement) => {\n if (inputImage && this._maskMark) {\n this._maskMark\n .getProduct()\n .getChildren()\n .forEach((element: any) => {\n element.setAttribute('background', inputImage);\n });\n }\n if (maskImage && (this._spec.layoutConfig as GridLayoutConfig)?.placement === 'masked') {\n this._rootMark.getProduct().setAttribute('background', maskImage);\n }\n }).bind(this),\n onLayoutFinished: () =>\n this._option.globalInstance\n .getChart()\n .getOption()\n .performanceHook?.afterWordcloudShapeDraw?.(this._option.globalInstance)\n };\n }\n\n protected _buildMarkAttributeContext(): void {\n super._buildMarkAttributeContext();\n this._markAttributeContext.isFillingImage = this.isFillingImage.bind(this);\n }\n\n initAnimation(): void {\n [this._imageMark].forEach(mark => {\n if (mark) {\n const appearPreset = (this._spec?.animationAppear as any)?.preset;\n const params = {\n center: () => {\n const { width, height } = this._region.getLayoutRect();\n return { x: width / 2, y: height / 2 };\n },\n height: () => {\n const { height } = this._region.getLayoutRect();\n return height;\n }\n };\n mark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('imageCloud')(params, appearPreset),\n userAnimationConfig(ImageCloudMarkNameEnum.image, this._spec, this._markAttributeContext)\n )\n );\n }\n });\n }\n\n getDimensionField(): string[] {\n return [this._nameField ?? this._spec.urlField];\n }\n\n getMeasureField(): string[] {\n return [this._valueField];\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: Array<'max' | 'min' | 'values'> }[] = [];\n fields.push({ key: this._nameField, operations: ['values'] });\n fields.push({ key: this._valueField, operations: ['max', 'min'] });\n return fields;\n }\n\n getActiveMarks(): IMark[] {\n return [this._imageMark];\n }\n\n getMarkData(datum: Datum) {\n return datum?.datum ?? datum;\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n dataToPosition(data: Datum): IPoint | null {\n return null;\n }\n\n dataToPositionX(data: Datum): number | null {\n return this.dataToPosition(data)?.x;\n }\n dataToPositionY(data: Datum): number | null {\n return this.dataToPosition(data)?.y;\n }\n\n valueToPosition(value1: any, value2?: any): null {\n return null;\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n}\n\nexport const registerImageCloudSeries = () => {\n registerImageMark();\n registerImageCloudAnimation();\n Factory.registerSeries(ImageCloudSeries.type, ImageCloudSeries);\n Factory.registerGrammarTransform('imagecloud', {\n transform: imagecloudTransform\n });\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LayoutConfigType as ImageCloudLayoutConfig, GeometricMaskShape, shapes, TextShapeMask } from '@visactor/
|
|
1
|
+
import type { LayoutConfigType as ImageCloudLayoutConfig, GeometricMaskShape, shapes, TextShapeMask } from '@visactor/vchart';
|
|
2
2
|
import type { ImageCloudAppearPresetType } from './animation';
|
|
3
3
|
import type { IAnimationSpec, IImageMarkSpec, IMarkSpec, ISeriesSpec } from '@visactor/vchart';
|
|
4
4
|
import type { ImageCloudMarkNameEnum } from './constant';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/charts/image-cloud/series/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type {\n LayoutConfigType as ImageCloudLayoutConfig,\n GeometricMaskShape,\n shapes,\n TextShapeMask\n} from '@visactor/
|
|
1
|
+
{"version":3,"sources":["../src/charts/image-cloud/series/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type {\n LayoutConfigType as ImageCloudLayoutConfig,\n GeometricMaskShape,\n shapes,\n TextShapeMask\n} from '@visactor/vchart';\n\nimport type { ImageCloudAppearPresetType } from './animation';\nimport type { IAnimationSpec, IImageMarkSpec, IMarkSpec, ISeriesSpec } from '@visactor/vchart';\nimport type { ImageCloudMarkNameEnum } from './constant';\n\nexport interface IImageCloudSeriesSpec extends ISeriesSpec, IAnimationSpec<'image', ImageCloudAppearPresetType> {\n type: 'imageCloud';\n /**\n * 图片 url 字段\n */\n urlField: string;\n /**\n * 文本字段\n */\n nameField?: string;\n /**\n * 权重字段\n */\n valueField?: string;\n /**\n * 图片大小\n */\n imageSize?: number;\n /**\n * 图片大小范围\n * @default [50,50]\n */\n imageSizeRange?: [number, number];\n /**\n * 图片大小与画布大小的比例\n * @description 当 layoutType 为 spiral 时,ratio 默认 0.45;其他 layoutType 时,ratio 默认 0.1\n */\n ratio?: number;\n /**\n * 图云形状\n * @default 'circle'\n */\n maskShape?: string | keyof typeof shapes | TextShapeMask | GeometricMaskShape;\n\n imageMask?: {\n /**\n * 是否显示遮罩图元\n * @default false\n */\n visible?: boolean;\n /**\n * 二值化阈值。\n * 默认情况下,透明或白色的像素会被认为是背景进行剔除。\n * @default undefined\n */\n threshold?: number;\n /**\n * 反转图像\n * @default false\n */\n invert?: boolean;\n /**\n * 是否对遮罩图片去除白边\n * @default false\n */\n removeWhiteBorder?: boolean;\n style?: Partial<IImageMarkSpec>;\n };\n\n /**\n * 布局相关配置\n */\n layoutConfig?: ImageCloudLayoutConfig;\n /**\n * 图片图元配置\n * @description 可以根据 datum._frequency 来区分图片是否为填充图片\n */\n [ImageCloudMarkNameEnum.image]?: IMarkSpec<Partial<IImageMarkSpec>> & {\n padding?: number;\n };\n}\n"]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.registerElementHighlightByGraphicName = exports.ElementHighlightByGraphicName = void 0;
|
|
6
6
|
|
|
7
|
-
const vchart_1 = require("@visactor/vchart"),
|
|
7
|
+
const vchart_1 = require("@visactor/vchart"), vchart_2 = require("@visactor/vchart"), type = "element-highlight-by-graphic-name";
|
|
8
8
|
|
|
9
9
|
class ElementHighlightByGraphicName extends vchart_1.ElementHighlight {
|
|
10
10
|
constructor() {
|
|
@@ -27,7 +27,7 @@ class ElementHighlightByGraphicName extends vchart_1.ElementHighlight {
|
|
|
27
27
|
return e.node.name;
|
|
28
28
|
}
|
|
29
29
|
start(itemKey) {
|
|
30
|
-
if ((0,
|
|
30
|
+
if ((0, vchart_2.isNil)(itemKey)) return;
|
|
31
31
|
const {interaction: interaction, highlightState: highlightState, blurState: blurState} = this.options, statedGraphics = interaction.getStatedGraphics(this), newStatedGraphics = [];
|
|
32
32
|
this.getMarks().forEach((m => {
|
|
33
33
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/charts/pictogram/element-highlight-by-graphic-name.ts"],"names":[],"mappings":";;;AAAA,6CAAsG;AACtG,6CAAyC;AAEzC,MAAM,IAAI,GAAG,mCAAmC,CAAC;AAEjD,MAAa,6BAA8B,SAAQ,yBAAgB;IAAnE;;QAEE,SAAI,GAAW,IAAI,CAAC;QAuCpB,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACnG,IAAI,WAAW,EAAE;oBACf,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;oBACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBACrB;aACF;QACH,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;QACH,CAAC,CAAC;IACJ,CAAC;IApDW,aAAa,CAAC,CAAkB;;QACxC,MAAM,IAAI,GAAG,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,0CAAE,IAAI,CAAC;QAC3B,OAAO,CAAC,CAAC,IAAI,CAAC;IAChB,CAAC;IAES,eAAe,CAAC,CAAkB;QAC1C,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAY;QAChB,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,EAAE;YAClB,OAAO;SACR;QAED,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAChE,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,iBAAiB,GAAmB,EAAE,CAAC;QAE7C,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;YAC1B,MAAA,CAAC,CAAC,WAAW,EAAE,0CAAE,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;oBACtB,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC3B;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;QAC7F,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAED,KAAK;QACH,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAEhE,WAAW,CAAC,uBAAuB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;QACrE,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;;AAvCH,sEAwDC;AAvDQ,kCAAI,GAAW,IAAI,CAAC;AAyDtB,MAAM,qCAAqC,GAAG,GAAG,EAAE;IACxD,gBAAO,CAAC,0BAA0B,CAAC,6BAA6B,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;AACxG,CAAC,CAAC;AAFW,QAAA,qCAAqC,yCAEhD","file":"element-highlight-by-graphic-name.js","sourcesContent":["import { ElementHighlight, Factory, type BaseEventParams, type IMarkGraphic } from '@visactor/vchart';\nimport { isNil } from '@visactor/
|
|
1
|
+
{"version":3,"sources":["../src/charts/pictogram/element-highlight-by-graphic-name.ts"],"names":[],"mappings":";;;AAAA,6CAAsG;AACtG,6CAAyC;AAEzC,MAAM,IAAI,GAAG,mCAAmC,CAAC;AAEjD,MAAa,6BAA8B,SAAQ,yBAAgB;IAAnE;;QAEE,SAAI,GAAW,IAAI,CAAC;QAuCpB,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACnG,IAAI,WAAW,EAAE;oBACf,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;oBACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBACrB;aACF;QACH,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;QACH,CAAC,CAAC;IACJ,CAAC;IApDW,aAAa,CAAC,CAAkB;;QACxC,MAAM,IAAI,GAAG,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,0CAAE,IAAI,CAAC;QAC3B,OAAO,CAAC,CAAC,IAAI,CAAC;IAChB,CAAC;IAES,eAAe,CAAC,CAAkB;QAC1C,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAY;QAChB,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,EAAE;YAClB,OAAO;SACR;QAED,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAChE,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,iBAAiB,GAAmB,EAAE,CAAC;QAE7C,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;YAC1B,MAAA,CAAC,CAAC,WAAW,EAAE,0CAAE,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;oBACtB,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC3B;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;QAC7F,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAED,KAAK;QACH,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAEhE,WAAW,CAAC,uBAAuB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;QACrE,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;;AAvCH,sEAwDC;AAvDQ,kCAAI,GAAW,IAAI,CAAC;AAyDtB,MAAM,qCAAqC,GAAG,GAAG,EAAE;IACxD,gBAAO,CAAC,0BAA0B,CAAC,6BAA6B,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;AACxG,CAAC,CAAC;AAFW,QAAA,qCAAqC,yCAEhD","file":"element-highlight-by-graphic-name.js","sourcesContent":["import { ElementHighlight, Factory, type BaseEventParams, type IMarkGraphic } from '@visactor/vchart';\nimport { isNil } from '@visactor/vchart';\n\nconst type = 'element-highlight-by-graphic-name';\n\nexport class ElementHighlightByGraphicName extends ElementHighlight {\n static type: string = type;\n type: string = type;\n\n protected _filterByName(e: BaseEventParams) {\n const name = e?.node?.name;\n return !!name;\n }\n\n protected _parseTargetKey(e: BaseEventParams) {\n return e.node.name;\n }\n\n start(itemKey: any) {\n if (isNil(itemKey)) {\n return;\n }\n\n const { interaction, highlightState, blurState } = this.options;\n const statedGraphics = interaction.getStatedGraphics(this);\n const newStatedGraphics: IMarkGraphic[] = [];\n\n this.getMarks().forEach(m => {\n m.getGraphics()?.forEach(g => {\n if (g.name === itemKey) {\n newStatedGraphics.push(g);\n }\n });\n });\n\n interaction.updateStates(this, newStatedGraphics, statedGraphics, highlightState, blurState);\n interaction.setStatedGraphics(this, newStatedGraphics);\n }\n\n reset() {\n const { highlightState, blurState, interaction } = this.options;\n\n interaction.clearAllStatesOfTrigger(this, highlightState, blurState);\n interaction.setStatedGraphics(this, []);\n }\n\n handleStart = (e: BaseEventParams) => {\n if (e && e.item && this.isGraphicInMark(e.item)) {\n const shouldStart = this.options.shouldStart ? this.options.shouldStart(e) : this._filterByName(e);\n if (shouldStart) {\n const itemKey = this._parseTargetKey(e);\n this.start(itemKey);\n }\n }\n };\n\n handleReset = (e: BaseEventParams) => {\n if (e && e.item && this.isGraphicInMark(e.item)) {\n this.reset();\n }\n };\n}\n\nexport const registerElementHighlightByGraphicName = () => {\n Factory.registerInteractionTrigger(ElementHighlightByGraphicName.type, ElementHighlightByGraphicName);\n};\n"]}
|
|
@@ -4,14 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.PictogramSeriesSpecTransformer = void 0;
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const vchart_1 = require("@visactor/vchart"), svg_source_1 = require("./svg-source"), vchart_2 = require("@visactor/vchart");
|
|
8
8
|
|
|
9
|
-
class PictogramSeriesSpecTransformer extends
|
|
9
|
+
class PictogramSeriesSpecTransformer extends vchart_2.BaseSeriesSpecTransformer {
|
|
10
10
|
_getDefaultSpecFromChart(chartSpec) {
|
|
11
11
|
var _a, _b, _c;
|
|
12
12
|
const spec = null !== (_a = super._getDefaultSpecFromChart(chartSpec)) && void 0 !== _a ? _a : {}, svg = chartSpec.svg, elements = null === (_c = null === (_b = svg_source_1.svgSourceMap.get(svg)) || void 0 === _b ? void 0 : _b.latestData) || void 0 === _c ? void 0 : _c.elements;
|
|
13
13
|
if (elements && elements.length) {
|
|
14
|
-
elements.map((e => e.name)).filter((n => (0,
|
|
14
|
+
elements.map((e => e.name)).filter((n => (0, vchart_1.isValid)(n))).forEach((name => {
|
|
15
15
|
chartSpec[name] && (spec[name] = chartSpec[name]);
|
|
16
16
|
}));
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/charts/pictogram/series/pictogram-transformer.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,6CAA4C;AAE5C,6CAA+E;AAE/E,MAAa,8BAAyD,SAAQ,kCAA+B;IACjG,wBAAwB,CAAC,SAAc;;QAC/C,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,wBAAwB,CAAC,SAAS,CAAC,mCAAI,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;QAC1B,MAAM,QAAQ,GAAG,MAAA,MAAA,yBAAY,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAE,UAAU,0CAAE,QAAuC,CAAC;QAC5F,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;YAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,gBAAO,EAAC,CAAC,CAAC,CAAC,CAAC;YAChE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACnB,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;oBACnB,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;iBAC9B;YACH,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAfD,wEAeC","file":"pictogram-transformer.js","sourcesContent":["import { isValid } from '@visactor/
|
|
1
|
+
{"version":3,"sources":["../src/charts/pictogram/series/pictogram-transformer.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,6CAA4C;AAE5C,6CAA+E;AAE/E,MAAa,8BAAyD,SAAQ,kCAA+B;IACjG,wBAAwB,CAAC,SAAc;;QAC/C,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,wBAAwB,CAAC,SAAS,CAAC,mCAAI,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;QAC1B,MAAM,QAAQ,GAAG,MAAA,MAAA,yBAAY,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAE,UAAU,0CAAE,QAAuC,CAAC;QAC5F,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;YAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,gBAAO,EAAC,CAAC,CAAC,CAAC,CAAC;YAChE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACnB,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;oBACnB,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;iBAC9B;YACH,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAfD,wEAeC","file":"pictogram-transformer.js","sourcesContent":["import { isValid } from '@visactor/vchart';\nimport { svgSourceMap } from './svg-source';\nimport type { SVGParserResult } from '@visactor/vchart';\nimport { BaseSeriesSpecTransformer, type ISeriesSpec } from '@visactor/vchart';\n\nexport class PictogramSeriesSpecTransformer<T extends ISeriesSpec, K> extends BaseSeriesSpecTransformer<T, K> {\n protected _getDefaultSpecFromChart(chartSpec: any): any {\n const spec = super._getDefaultSpecFromChart(chartSpec) ?? {};\n const svg = chartSpec.svg;\n const elements = svgSourceMap.get(svg)?.latestData?.elements as SVGParserResult['elements'];\n if (elements && elements.length) {\n const names = elements.map(e => e.name).filter(n => isValid(n));\n names.forEach(name => {\n if (chartSpec[name]) {\n spec[name] = chartSpec[name];\n }\n });\n }\n return spec;\n }\n}\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type SVGParsedElement, type SVGParserResult } from '@visactor/vchart';
|
|
2
2
|
import type { IPictogramSeriesSpec } from './interface';
|
|
3
3
|
import { PictogramSeriesSpecTransformer } from './pictogram-transformer';
|
|
4
|
-
import type { IMatrix, IPoint, IPointLike } from '@visactor/
|
|
4
|
+
import type { IMatrix, IPoint, IPointLike, GraphicEventType } from '@visactor/vchart';
|
|
5
|
+
import { type IGroup } from '@visactor/vchart';
|
|
5
6
|
import type { Datum, IGroupMark, IHoverSpec, IMark, ISelectSpec, ISeriesSeriesInfo, PanEventParam, ZoomEventParam } from '@visactor/vchart';
|
|
6
7
|
import { GeoSeries, STATE_VALUE_ENUM } from '@visactor/vchart';
|
|
7
|
-
import type { IGroup, GraphicEventType } from '@visactor/vrender-core';
|
|
8
8
|
export interface SVGParsedElementExtend extends SVGParsedElement {
|
|
9
9
|
_finalAttributes: Record<string, any>;
|
|
10
10
|
_uniqueId: string;
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.registerPictogramSeries = exports.PictogramSeries = void 0;
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const vchart_1 = require("@visactor/vchart"), constant_1 = require("./constant"), svg_source_1 = require("./svg-source"), pictogram_transformer_1 = require("./pictogram-transformer"), vchart_2 = require("@visactor/vchart"), vchart_3 = require("@visactor/vchart"), tooltip_helper_1 = require("./tooltip-helper"), vchart_4 = require("@visactor/vchart"), element_highlight_by_graphic_name_1 = require("../element-highlight-by-graphic-name"), element_select_by_graphic_name_1 = require("../element-select-by-graphic-name"), transform_1 = require("./transform");
|
|
8
8
|
|
|
9
|
-
class PictogramSeries extends
|
|
9
|
+
class PictogramSeries extends vchart_4.GeoSeries {
|
|
10
10
|
constructor() {
|
|
11
11
|
super(...arguments), this.type = constant_1.PICTOGRAM_SERIES_TYPE, this._idToMark = new Map;
|
|
12
12
|
}
|
|
@@ -35,18 +35,18 @@ class PictogramSeries extends vchart_1.GeoSeries {
|
|
|
35
35
|
type: constant_1.ELEMENT_HIGHLIGHT_BY_GRPHIC_NAME,
|
|
36
36
|
trigger: finalHoverSpec.trigger,
|
|
37
37
|
triggerOff: "pointerout",
|
|
38
|
-
blurState:
|
|
39
|
-
highlightState:
|
|
38
|
+
blurState: vchart_4.STATE_VALUE_ENUM.STATE_HOVER_REVERSE,
|
|
39
|
+
highlightState: vchart_4.STATE_VALUE_ENUM.STATE_HOVER
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
_defaultSelectConfig(finalSelectSpec) {
|
|
43
|
-
const isMultiple = "multiple" === finalSelectSpec.mode, triggerOff = (0,
|
|
43
|
+
const isMultiple = "multiple" === finalSelectSpec.mode, triggerOff = (0, vchart_2.isValid)(finalSelectSpec.triggerOff) ? finalSelectSpec.triggerOff : isMultiple ? [ "empty", "self" ] : [ "empty", finalSelectSpec.trigger ];
|
|
44
44
|
return {
|
|
45
45
|
type: constant_1.ELEMENT_SELECT_BY_GRPHIC_NAME,
|
|
46
46
|
trigger: finalSelectSpec.trigger,
|
|
47
47
|
triggerOff: triggerOff,
|
|
48
|
-
reverseState:
|
|
49
|
-
state:
|
|
48
|
+
reverseState: vchart_4.STATE_VALUE_ENUM.STATE_SELECTED_REVERSE,
|
|
49
|
+
state: vchart_4.STATE_VALUE_ENUM.STATE_SELECTED,
|
|
50
50
|
isMultiple: isMultiple
|
|
51
51
|
};
|
|
52
52
|
}
|
|
@@ -57,7 +57,7 @@ class PictogramSeries extends vchart_1.GeoSeries {
|
|
|
57
57
|
isSeriesMark: !0,
|
|
58
58
|
skipBeforeLayouted: !0
|
|
59
59
|
}, {
|
|
60
|
-
morph: (0,
|
|
60
|
+
morph: (0, vchart_4.shouldMarkDoMorph)(this._spec, PictogramSeries.mark.pictogram.name)
|
|
61
61
|
}), this._pictogramMark) {
|
|
62
62
|
this._pictogramMark.setData(this._mapViewData), this._pictogramMark.setUserId(PictogramSeries.mark.pictogram.name);
|
|
63
63
|
for (const element of this._mapViewData.getDataView().latestData) {
|
|
@@ -70,7 +70,7 @@ class PictogramSeries extends vchart_1.GeoSeries {
|
|
|
70
70
|
skipBeforeLayouted: !0,
|
|
71
71
|
parent: null !== (_a = this._idToMark.get(null == parent ? void 0 : parent._uniqueId)) && void 0 !== _a ? _a : this._pictogramMark
|
|
72
72
|
}, {
|
|
73
|
-
morph: (0,
|
|
73
|
+
morph: (0, vchart_4.shouldMarkDoMorph)(this._spec, PictogramSeries.mark.pictogram.name)
|
|
74
74
|
});
|
|
75
75
|
mark && (mark.setData(this._mapViewData), mark.setUserId(_uniqueId), this._idToMark.set(_uniqueId, mark),
|
|
76
76
|
"group" !== mark.type && mark.setMarkConfig({
|
|
@@ -107,16 +107,16 @@ class PictogramSeries extends vchart_1.GeoSeries {
|
|
|
107
107
|
text: d => d[this.nameField],
|
|
108
108
|
textAlign: "center",
|
|
109
109
|
textBaseline: "middle"
|
|
110
|
-
},
|
|
110
|
+
}, vchart_4.STATE_VALUE_ENUM.STATE_NORMAL, vchart_4.AttributeLevel.Series);
|
|
111
111
|
}
|
|
112
112
|
initMarkStyle() {
|
|
113
113
|
const {root: root, viewBoxRect: viewBoxRect} = this._parsedSvgResult, elements = this._mapViewData.getDataView().latestData;
|
|
114
|
-
root && (this.setMarkStyle(this._pictogramMark, transform_1.graphicAttributeTransform.group(root.attributes), "normal",
|
|
114
|
+
root && (this.setMarkStyle(this._pictogramMark, transform_1.graphicAttributeTransform.group(root.attributes), "normal", vchart_4.AttributeLevel.Built_In),
|
|
115
115
|
root.transform && this.setMarkStyle(this._pictogramMark, {
|
|
116
116
|
postMatrix: () => root.transform
|
|
117
|
-
}, "normal",
|
|
117
|
+
}, "normal", vchart_4.AttributeLevel.Built_In), viewBoxRect && this._pictogramMark.setMarkConfig({
|
|
118
118
|
clip: !0,
|
|
119
|
-
clipPath: [ (0,
|
|
119
|
+
clipPath: [ (0, vchart_3.createRect)(Object.assign(Object.assign({}, viewBoxRect), {
|
|
120
120
|
fill: !0
|
|
121
121
|
})) ]
|
|
122
122
|
}));
|
|
@@ -124,11 +124,11 @@ class PictogramSeries extends vchart_1.GeoSeries {
|
|
|
124
124
|
const {_uniqueId: _uniqueId, _finalAttributes: attributes} = element, mark = this._idToMark.get(_uniqueId), valid = this._validElement(element);
|
|
125
125
|
mark && (this.setMarkStyle(mark, {
|
|
126
126
|
keepStrokeScale: !0
|
|
127
|
-
}, "normal",
|
|
128
|
-
|
|
129
|
-
mark.setPostProcess("fill", ((result, datum) => (0,
|
|
127
|
+
}, "normal", vchart_4.AttributeLevel.Built_In), valid ? (this.initMarkStyleWithSpec(mark, (0,
|
|
128
|
+
vchart_2.merge)({}, this._spec.pictogram, this._spec[mark.name])), this.setMarkStyle(mark, attributes, "normal", vchart_4.AttributeLevel.Series),
|
|
129
|
+
mark.setPostProcess("fill", ((result, datum) => (0, vchart_2.isValid)(result) ? result : this._spec.defaultFillColor))) : (mark.setMarkConfig({
|
|
130
130
|
interactive: !1
|
|
131
|
-
}), this.setMarkStyle(mark, attributes, "normal",
|
|
131
|
+
}), this.setMarkStyle(mark, attributes, "normal", vchart_4.AttributeLevel.Built_In)));
|
|
132
132
|
}
|
|
133
133
|
this.initLabelMarkStyle();
|
|
134
134
|
}
|
|
@@ -146,7 +146,7 @@ class PictogramSeries extends vchart_1.GeoSeries {
|
|
|
146
146
|
if (!name) return null;
|
|
147
147
|
const mark = this.getMarksWithoutRoot().filter((mark => mark.name === name));
|
|
148
148
|
if (!mark || 0 === mark.length) return null;
|
|
149
|
-
let bounds = new
|
|
149
|
+
let bounds = new vchart_2.Bounds;
|
|
150
150
|
global ? mark.forEach((m => {
|
|
151
151
|
bounds = bounds.union(m.getGraphics()[0].globalAABBBounds);
|
|
152
152
|
})) : mark.forEach((m => {
|
|
@@ -184,11 +184,11 @@ class PictogramSeries extends vchart_1.GeoSeries {
|
|
|
184
184
|
super.initData();
|
|
185
185
|
const parsedSvg = svg_source_1.svgSourceMap.get(this.svg);
|
|
186
186
|
parsedSvg || null === (_a = this._option) || void 0 === _a || _a.onError("no valid svg found!");
|
|
187
|
-
const svgData = new
|
|
187
|
+
const svgData = new vchart_1.DataView(this._dataSet, {
|
|
188
188
|
name: `pictogram_${this.id}_data`
|
|
189
189
|
});
|
|
190
|
-
(0,
|
|
191
|
-
(0,
|
|
190
|
+
(0, vchart_4.registerDataSetInstanceTransform)(this._dataSet, "pictogram", transform_1.pictogram),
|
|
191
|
+
(0, vchart_4.registerDataSetInstanceTransform)(this._dataSet, "lookup", vchart_4.lookup),
|
|
192
192
|
svgData.parse([ parsedSvg ], {
|
|
193
193
|
type: "dataview"
|
|
194
194
|
}).transform({
|
|
@@ -214,7 +214,7 @@ class PictogramSeries extends vchart_1.GeoSeries {
|
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
}), null === (_b = this._data) || void 0 === _b || _b.getDataView().target.addListener("change", svgData.reRunAllTransform),
|
|
217
|
-
this._mapViewData = new
|
|
217
|
+
this._mapViewData = new vchart_4.CompilableData(this._option, svgData);
|
|
218
218
|
}
|
|
219
219
|
mapViewDataUpdate() {
|
|
220
220
|
this._mapViewData.updateData();
|
|
@@ -236,14 +236,14 @@ class PictogramSeries extends vchart_1.GeoSeries {
|
|
|
236
236
|
initEvent() {
|
|
237
237
|
var _a;
|
|
238
238
|
super.initEvent(), null === (_a = this._mapViewData.getDataView()) || void 0 === _a || _a.target.addListener("change", this.mapViewDataUpdate.bind(this)),
|
|
239
|
-
this.event.on(
|
|
239
|
+
this.event.on(vchart_4.ChartEvent.afterMarkLayoutEnd, this.updateSVGSize.bind(this));
|
|
240
240
|
}
|
|
241
241
|
handleZoom(e) {
|
|
242
242
|
const {scale: scale, scaleCenter: scaleCenter} = e;
|
|
243
243
|
if (1 === scale) return;
|
|
244
244
|
const root = this.getPictogramRootGraphic();
|
|
245
245
|
root && (root.attribute.postMatrix || root.setAttributes({
|
|
246
|
-
postMatrix: new
|
|
246
|
+
postMatrix: new vchart_2.Matrix
|
|
247
247
|
}), root.scale(scale, scale, scaleCenter));
|
|
248
248
|
}
|
|
249
249
|
handlePan(e) {
|
|
@@ -251,7 +251,7 @@ class PictogramSeries extends vchart_1.GeoSeries {
|
|
|
251
251
|
if (0 === delta[0] && 0 === delta[1]) return;
|
|
252
252
|
const root = this.getPictogramRootGraphic();
|
|
253
253
|
root && (root.attribute.postMatrix || root.setAttributes({
|
|
254
|
-
postMatrix: new
|
|
254
|
+
postMatrix: new vchart_2.Matrix
|
|
255
255
|
}), root.translate(delta[0], delta[1]));
|
|
256
256
|
}
|
|
257
257
|
getMarkData(datum) {
|
|
@@ -286,8 +286,8 @@ exports.PictogramSeries = PictogramSeries, PictogramSeries.type = constant_1.PIC
|
|
|
286
286
|
PictogramSeries.mark = constant_1.PictogramSeriesMark, PictogramSeries.transformerConstructor = pictogram_transformer_1.PictogramSeriesSpecTransformer;
|
|
287
287
|
|
|
288
288
|
const registerPictogramSeries = () => {
|
|
289
|
-
|
|
290
|
-
|
|
289
|
+
vchart_4.Factory.registerSeries(PictogramSeries.type, PictogramSeries), vchart_4.Factory.registerImplement("registerSVG", svg_source_1.registerSVGSource),
|
|
290
|
+
vchart_4.Factory.registerImplement("unregisterSVG", svg_source_1.unregisterSVGSource),
|
|
291
291
|
(0, element_highlight_by_graphic_name_1.registerElementHighlightByGraphicName)(),
|
|
292
292
|
(0, element_select_by_graphic_name_1.registerElementSelectByGraphicName)();
|
|
293
293
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/charts/pictogram/series/pictogram.ts"],"names":[],"mappings":"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","file":"pictogram.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { SVGParsedElement, SVGParserResult } from '@visactor/vdataset';\nimport type { IPictogramSeriesSpec } from './interface';\nimport {\n ELEMENT_HIGHLIGHT_BY_GRPHIC_NAME,\n ELEMENT_SELECT_BY_GRPHIC_NAME,\n PICTOGRAM_SERIES_TYPE,\n PictogramSeriesMark\n} from './constant';\nimport { getSVGSource, registerSVGSource, svgSourceMap, unregisterSVGSource } from './svg-source';\nimport { PictogramSeriesSpecTransformer } from './pictogram-transformer';\nimport type { IMatrix, IPoint, IPointLike } from '@visactor/vutils';\nimport { Bounds, Matrix, isValid, merge } from '@visactor/vutils';\nimport { createRect } from '@visactor/vrender-core';\nimport { PictogramSeriesTooltipHelper } from './tooltip-helper';\nimport type {\n Datum,\n IGroupMark,\n IHoverSpec,\n IMark,\n ISelectSpec,\n ISeriesSeriesInfo,\n ITextMark,\n PanEventParam,\n ZoomEventParam\n} from '@visactor/vchart';\nimport {\n AttributeLevel,\n ChartEvent,\n CompilableData,\n Factory,\n GeoSeries,\n lookup,\n registerDataSetInstanceTransform,\n shouldMarkDoMorph,\n STATE_VALUE_ENUM\n} from '@visactor/vchart';\nimport { registerElementHighlightByGraphicName } from '../element-highlight-by-graphic-name';\nimport { registerElementSelectByGraphicName } from '../element-select-by-graphic-name';\nimport { graphicAttributeTransform, pictogram } from './transform';\nimport type { IGroup, GraphicEventType } from '@visactor/vrender-core';\n\nexport interface SVGParsedElementExtend extends SVGParsedElement {\n _finalAttributes: Record<string, any>;\n _uniqueId: string; // 用于处理 svg 中 id 重复的情况\n}\n\nexport class PictogramSeries<T extends IPictogramSeriesSpec = IPictogramSeriesSpec> extends GeoSeries<T> {\n static readonly type: string = PICTOGRAM_SERIES_TYPE;\n type = PICTOGRAM_SERIES_TYPE;\n static readonly mark = PictogramSeriesMark;\n static readonly transformerConstructor = PictogramSeriesSpecTransformer;\n\n svg!: string;\n\n protected _pictogramMark: IGroupMark;\n protected _parsedSvgResult: SVGParserResult;\n private _labelMark: ITextMark;\n\n private _idToMark: Map<string, IMark> = new Map();\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this.svg = this._spec.svg;\n this._nameField = this._spec.nameField;\n this._valueField = this._spec.valueField;\n\n if (!this.svg) {\n this._option?.onError(`svg source is not specified !`);\n }\n this._parsedSvgResult = getSVGSource(this.svg)?.latestData;\n\n if (!this._parsedSvgResult) {\n this._option?.onError(`'${this.svg}' is not registered !`);\n }\n }\n\n getDatumCenter(datum: SVGParsedElementExtend): [number, number] {\n return [Number.NaN, Number.NaN];\n }\n\n getDatumName(datum: SVGParsedElementExtend): string {\n return datum.name || datum._nameFromParent;\n }\n\n getMarksWithoutRoot(): IMark[] {\n return this.getMarks().filter(\n m => m.name && !m.name.includes('seriesGroup') && !m.name.includes('root') && m !== this._pictogramMark\n );\n }\n\n protected _buildMarkAttributeContext() {\n super._buildMarkAttributeContext();\n this._markAttributeContext.getTransformMatrix = this.getRootMatrix.bind(this);\n this._markAttributeContext.coordToPosition = this.coordToPosition.bind(this);\n this._markAttributeContext.dataToPosition = this.dataToPosition.bind(this);\n }\n\n protected _defaultHoverConfig(finalHoverSpec: IHoverSpec) {\n return {\n type: ELEMENT_HIGHLIGHT_BY_GRPHIC_NAME,\n // trigger: finalHoverSpec.trigger as EventType,\n trigger: finalHoverSpec.trigger as GraphicEventType,\n triggerOff: 'pointerout' as GraphicEventType,\n blurState: STATE_VALUE_ENUM.STATE_HOVER_REVERSE,\n highlightState: STATE_VALUE_ENUM.STATE_HOVER\n };\n }\n\n protected _defaultSelectConfig(finalSelectSpec: ISelectSpec) {\n const isMultiple = finalSelectSpec.mode === 'multiple';\n const triggerOff = isValid(finalSelectSpec.triggerOff)\n ? finalSelectSpec.triggerOff\n : isMultiple\n ? ['empty', 'self']\n : ['empty', finalSelectSpec.trigger];\n\n return {\n type: ELEMENT_SELECT_BY_GRPHIC_NAME,\n trigger: finalSelectSpec.trigger as GraphicEventType,\n triggerOff: triggerOff as GraphicEventType,\n reverseState: STATE_VALUE_ENUM.STATE_SELECTED_REVERSE,\n state: STATE_VALUE_ENUM.STATE_SELECTED,\n isMultiple\n };\n }\n\n initMark() {\n this._pictogramMark = this._createMark(\n PictogramSeries.mark.pictogram,\n {\n groupKey: this.getDimensionField()[0],\n isSeriesMark: true,\n skipBeforeLayouted: true\n },\n {\n morph: shouldMarkDoMorph(this._spec, PictogramSeries.mark.pictogram.name)\n }\n ) as IGroupMark;\n\n if (!this._pictogramMark) {\n return;\n }\n this._pictogramMark.setData(this._mapViewData);\n this._pictogramMark.setUserId(PictogramSeries.mark.pictogram.name);\n for (const element of this._mapViewData.getDataView().latestData as SVGParserResult['elements']) {\n const { graphicType: type, name, parent, id, _nameFromParent, _uniqueId } = element;\n\n const mark = this._createMark(\n { type, name: name ?? _nameFromParent },\n {\n groupKey: _uniqueId,\n isSeriesMark: false,\n skipBeforeLayouted: true,\n parent: (this._idToMark.get(parent?._uniqueId) as IGroupMark) ?? this._pictogramMark\n },\n {\n morph: shouldMarkDoMorph(this._spec, PictogramSeries.mark.pictogram.name)\n }\n );\n\n if (mark) {\n mark.setData(this._mapViewData);\n mark.setUserId(_uniqueId); // id 必须唯一,但无法控制 svg 中元素有重复 id, 这里做一个保护\n this._idToMark.set(_uniqueId, mark);\n if (mark.type !== 'group') {\n mark.setMarkConfig({ graphicName: mark.name });\n }\n mark.setTransform([\n {\n type: 'filter',\n callback: (datum: SVGParsedElementExtend) => {\n return datum._uniqueId === _uniqueId;\n }\n }\n ]);\n }\n }\n this._initLabelMark();\n }\n\n private _initLabelMark() {\n // @ts-ignore\n if (this._spec.label.visible !== true) {\n return;\n }\n\n const labelMark = this._createMark(PictogramSeries.mark.label, {\n isSeriesMark: false,\n parent: this._pictogramMark,\n groupKey: '_uniqueId',\n skipBeforeLayouted: true\n }) as ITextMark;\n\n if (labelMark) {\n this._labelMark = labelMark;\n this._labelMark.setData(this._mapViewData);\n }\n }\n\n initLabelMarkStyle() {\n if (!this._labelMark) {\n return;\n }\n this.setMarkStyle(\n this._labelMark,\n {\n visible: (d: Datum) => !!this._validElement(d as SVGParsedElementExtend),\n x: (d: Datum) => this.dataToPosition(d, true)?.x,\n y: (d: Datum) => this.dataToPosition(d, true)?.y,\n text: (d: Datum) => d[this.nameField],\n textAlign: 'center',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n }\n\n initMarkStyle() {\n const { root, viewBoxRect } = this._parsedSvgResult;\n const elements = this._mapViewData.getDataView().latestData as SVGParserResult['elements'];\n if (root) {\n this.setMarkStyle(\n this._pictogramMark,\n graphicAttributeTransform.group(root.attributes),\n 'normal',\n AttributeLevel.Built_In\n );\n if (root.transform) {\n this.setMarkStyle(\n this._pictogramMark,\n {\n postMatrix: () => root.transform\n },\n 'normal',\n AttributeLevel.Built_In\n );\n }\n if (viewBoxRect) {\n // fill should be true or content will be invisible\n this._pictogramMark.setMarkConfig({\n clip: true,\n clipPath: [createRect({ ...viewBoxRect, fill: true }) as any]\n });\n }\n }\n for (const element of elements) {\n const { _uniqueId, _finalAttributes: attributes } = element as SVGParsedElementExtend;\n const mark = this._idToMark.get(_uniqueId);\n const valid = this._validElement(element);\n if (mark) {\n // 描边粗细跟随缩放倍数\n this.setMarkStyle(mark, { keepStrokeScale: true }, 'normal', AttributeLevel.Built_In);\n if (valid) {\n this.initMarkStyleWithSpec(mark, merge({}, this._spec.pictogram, (this._spec as any)[mark.name]));\n this.setMarkStyle(mark, attributes, 'normal', AttributeLevel.Series);\n mark.setPostProcess('fill', (result, datum) => {\n return isValid(result) ? result : this._spec.defaultFillColor;\n });\n } else {\n // 对于没有设置 name 的元素,不支持响应事件、改变样式\n mark.setMarkConfig({ interactive: false });\n this.setMarkStyle(mark, attributes, 'normal', AttributeLevel.Built_In);\n }\n }\n }\n\n this.initLabelMarkStyle();\n }\n /** 在 svg 中使用 name attribute 标注了的图元*/\n protected _validElement(element: SVGParsedElement) {\n return element.name || element._nameFromParent;\n }\n\n protected initTooltip() {\n this._tooltipHelper = new PictogramSeriesTooltipHelper(this);\n this.getMarksWithoutRoot().forEach(mark => {\n if (mark && mark.name) {\n this._tooltipHelper.activeTriggerSet.mark.add(mark);\n }\n });\n }\n\n dataToPosition(datum: Datum, global = false): IPointLike {\n if (!datum) {\n return null;\n }\n const name = datum[this.nameField];\n if (!name) {\n return null;\n }\n\n const mark = this.getMarksWithoutRoot().filter(mark => mark.name === name);\n if (!mark || mark.length === 0) {\n return null;\n }\n let bounds = new Bounds();\n if (global) {\n mark.forEach(m => {\n bounds = bounds.union(m.getGraphics()[0].globalAABBBounds);\n });\n } else {\n mark.forEach(m => {\n bounds = bounds.union(m.getProduct().AABBBounds);\n });\n }\n\n const point = { x: (bounds.x1 + bounds.x2) / 2, y: (bounds.y1 + bounds.y2) / 2 };\n\n if (global) {\n const { x, y } = this.getLayoutStartPoint();\n point.x -= x;\n point.y -= y;\n }\n return point;\n }\n\n coordToPosition(point: IPoint): IPoint | undefined {\n if (!point) {\n return null;\n }\n const { x, y } = point;\n const matrix = this.getRootMatrix();\n if (!matrix) {\n return null;\n }\n const position = {};\n matrix.getInverse().transformPoint({ x, y }, position as IPoint);\n return position as IPoint;\n }\n\n getRootMatrix() {\n return this.getPictogramRootGraphic()?.transMatrix as IMatrix;\n }\n\n getPictogramRootGraphic(): IGroup {\n return this._pictogramMark.getProduct();\n }\n\n initData() {\n super.initData();\n const parsedSvg = svgSourceMap.get(this.svg);\n if (!parsedSvg) {\n this._option?.onError('no valid svg found!');\n }\n const svgData = new DataView(this._dataSet, { name: `pictogram_${this.id}_data` });\n registerDataSetInstanceTransform(this._dataSet, 'pictogram', pictogram);\n registerDataSetInstanceTransform(this._dataSet, 'lookup', lookup);\n svgData\n .parse([parsedSvg], {\n type: 'dataview'\n })\n .transform({ type: 'pictogram' })\n .transform({\n type: 'lookup',\n options: {\n from: () => this.getViewData().latestData,\n key: 'name',\n fields: this._nameField,\n set: (a: Datum, b: Datum) => {\n if (b) {\n a.data = b;\n }\n }\n }\n })\n .transform({\n type: 'lookup',\n options: {\n from: () => this.getViewData().latestData,\n key: '_nameFromParent',\n fields: this._nameField,\n set: (a: Datum, b: Datum) => {\n if (b) {\n a.data = b;\n }\n }\n }\n });\n this._data?.getDataView().target.addListener('change', svgData.reRunAllTransform);\n this._mapViewData = new CompilableData(this._option, svgData);\n }\n\n mapViewDataUpdate() {\n this._mapViewData.updateData();\n }\n\n onLayoutEnd(): void {\n super.onLayoutEnd();\n this._mapViewData?.getDataView().reRunAllTransform();\n }\n\n updateSVGSize() {\n const { width: regionWidth, height: regionHeight } = this.getLayoutRect();\n const regionCenterX = regionWidth / 2;\n const regionCenterY = regionHeight / 2;\n const root = this.getPictogramRootGraphic();\n if (root) {\n const bounds = root.AABBBounds;\n const { x1, x2, y1, y2 } = root.AABBBounds;\n const width = bounds.width();\n const height = bounds.height();\n\n const rootCenterX = (x1 + x2) / 2;\n const rootCenterY = (y1 + y2) / 2;\n\n const scaleX = regionWidth / width;\n const scaleY = regionHeight / height;\n const scale = Math.min(scaleX, scaleY);\n\n root.scale(scale, scale, { x: rootCenterX, y: rootCenterY });\n root.translate(regionCenterX - rootCenterX, regionCenterY - rootCenterY);\n }\n }\n\n protected initEvent(): void {\n super.initEvent();\n this._mapViewData.getDataView()?.target.addListener('change', this.mapViewDataUpdate.bind(this));\n // 必须在有 vrender mark 的时机后更新\n this.event.on(ChartEvent.afterMarkLayoutEnd, this.updateSVGSize.bind(this));\n }\n\n handleZoom(e: ZoomEventParam) {\n const { scale, scaleCenter } = e;\n if (scale === 1) {\n return;\n }\n\n const root = this.getPictogramRootGraphic();\n if (root) {\n if (!root.attribute.postMatrix) {\n root.setAttributes({\n postMatrix: new Matrix()\n });\n }\n root.scale(scale, scale, scaleCenter);\n }\n }\n\n handlePan(e: PanEventParam) {\n const { delta } = e;\n if (delta[0] === 0 && delta[1] === 0) {\n return;\n }\n const root = this.getPictogramRootGraphic();\n if (root) {\n if (!root.attribute.postMatrix) {\n root.setAttributes({\n postMatrix: new Matrix()\n });\n }\n root.translate(delta[0], delta[1]);\n }\n }\n\n getMarkData(datum: Datum) {\n return datum.data ?? {};\n }\n\n getMeasureField(): string[] {\n return [this.valueField];\n }\n\n getDimensionField(): string[] {\n return [this.nameField];\n }\n protected _getSeriesInfo(field: string, keys: string[]) {\n const defaultShapeType = this.getDefaultShapeType();\n return keys.map(key => {\n return {\n key,\n originalKey: key,\n style: this.getSeriesStyle({\n data: {\n [field]: key\n }\n }),\n shapeType: defaultShapeType\n } as ISeriesSeriesInfo;\n });\n }\n\n release(): void {\n this._parsedSvgResult = null;\n this._idToMark.clear();\n this._idToMark = null;\n }\n}\n\nexport const registerPictogramSeries = () => {\n // 注册语法元素\n Factory.registerSeries(PictogramSeries.type, PictogramSeries);\n Factory.registerImplement('registerSVG', registerSVGSource);\n Factory.registerImplement('unregisterSVG', unregisterSVGSource);\n registerElementHighlightByGraphicName();\n registerElementSelectByGraphicName();\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/charts/pictogram/series/pictogram.ts"],"names":[],"mappings":"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","file":"pictogram.js","sourcesContent":["import { DataView, type SVGParsedElement, type SVGParserResult } from '@visactor/vchart';\nimport type { IPictogramSeriesSpec } from './interface';\nimport {\n ELEMENT_HIGHLIGHT_BY_GRPHIC_NAME,\n ELEMENT_SELECT_BY_GRPHIC_NAME,\n PICTOGRAM_SERIES_TYPE,\n PictogramSeriesMark\n} from './constant';\nimport { getSVGSource, registerSVGSource, svgSourceMap, unregisterSVGSource } from './svg-source';\nimport { PictogramSeriesSpecTransformer } from './pictogram-transformer';\nimport type { IMatrix, IPoint, IPointLike, GraphicEventType } from '@visactor/vchart';\nimport { Bounds, Matrix, isValid, merge } from '@visactor/vchart';\nimport { createRect, type IGroup } from '@visactor/vchart';\nimport { PictogramSeriesTooltipHelper } from './tooltip-helper';\nimport type {\n Datum,\n IGroupMark,\n IHoverSpec,\n IMark,\n ISelectSpec,\n ISeriesSeriesInfo,\n ITextMark,\n PanEventParam,\n ZoomEventParam\n} from '@visactor/vchart';\nimport {\n AttributeLevel,\n ChartEvent,\n CompilableData,\n Factory,\n GeoSeries,\n lookup,\n registerDataSetInstanceTransform,\n shouldMarkDoMorph,\n STATE_VALUE_ENUM\n} from '@visactor/vchart';\nimport { registerElementHighlightByGraphicName } from '../element-highlight-by-graphic-name';\nimport { registerElementSelectByGraphicName } from '../element-select-by-graphic-name';\nimport { graphicAttributeTransform, pictogram } from './transform';\n\nexport interface SVGParsedElementExtend extends SVGParsedElement {\n _finalAttributes: Record<string, any>;\n _uniqueId: string; // 用于处理 svg 中 id 重复的情况\n}\n\nexport class PictogramSeries<T extends IPictogramSeriesSpec = IPictogramSeriesSpec> extends GeoSeries<T> {\n static readonly type: string = PICTOGRAM_SERIES_TYPE;\n type = PICTOGRAM_SERIES_TYPE;\n static readonly mark = PictogramSeriesMark;\n static readonly transformerConstructor = PictogramSeriesSpecTransformer;\n\n svg!: string;\n\n protected _pictogramMark: IGroupMark;\n protected _parsedSvgResult: SVGParserResult;\n private _labelMark: ITextMark;\n\n private _idToMark: Map<string, IMark> = new Map();\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this.svg = this._spec.svg;\n this._nameField = this._spec.nameField;\n this._valueField = this._spec.valueField;\n\n if (!this.svg) {\n this._option?.onError(`svg source is not specified !`);\n }\n this._parsedSvgResult = getSVGSource(this.svg)?.latestData;\n\n if (!this._parsedSvgResult) {\n this._option?.onError(`'${this.svg}' is not registered !`);\n }\n }\n\n getDatumCenter(datum: SVGParsedElementExtend): [number, number] {\n return [Number.NaN, Number.NaN];\n }\n\n getDatumName(datum: SVGParsedElementExtend): string {\n return datum.name || datum._nameFromParent;\n }\n\n getMarksWithoutRoot(): IMark[] {\n return this.getMarks().filter(\n m => m.name && !m.name.includes('seriesGroup') && !m.name.includes('root') && m !== this._pictogramMark\n );\n }\n\n protected _buildMarkAttributeContext() {\n super._buildMarkAttributeContext();\n this._markAttributeContext.getTransformMatrix = this.getRootMatrix.bind(this);\n this._markAttributeContext.coordToPosition = this.coordToPosition.bind(this);\n this._markAttributeContext.dataToPosition = this.dataToPosition.bind(this);\n }\n\n protected _defaultHoverConfig(finalHoverSpec: IHoverSpec) {\n return {\n type: ELEMENT_HIGHLIGHT_BY_GRPHIC_NAME,\n // trigger: finalHoverSpec.trigger as EventType,\n trigger: finalHoverSpec.trigger as GraphicEventType,\n triggerOff: 'pointerout' as GraphicEventType,\n blurState: STATE_VALUE_ENUM.STATE_HOVER_REVERSE,\n highlightState: STATE_VALUE_ENUM.STATE_HOVER\n };\n }\n\n protected _defaultSelectConfig(finalSelectSpec: ISelectSpec) {\n const isMultiple = finalSelectSpec.mode === 'multiple';\n const triggerOff = isValid(finalSelectSpec.triggerOff)\n ? finalSelectSpec.triggerOff\n : isMultiple\n ? ['empty', 'self']\n : ['empty', finalSelectSpec.trigger];\n\n return {\n type: ELEMENT_SELECT_BY_GRPHIC_NAME,\n trigger: finalSelectSpec.trigger as GraphicEventType,\n triggerOff: triggerOff as GraphicEventType,\n reverseState: STATE_VALUE_ENUM.STATE_SELECTED_REVERSE,\n state: STATE_VALUE_ENUM.STATE_SELECTED,\n isMultiple\n };\n }\n\n initMark() {\n this._pictogramMark = this._createMark(\n PictogramSeries.mark.pictogram,\n {\n groupKey: this.getDimensionField()[0],\n isSeriesMark: true,\n skipBeforeLayouted: true\n },\n {\n morph: shouldMarkDoMorph(this._spec, PictogramSeries.mark.pictogram.name)\n }\n ) as IGroupMark;\n\n if (!this._pictogramMark) {\n return;\n }\n this._pictogramMark.setData(this._mapViewData);\n this._pictogramMark.setUserId(PictogramSeries.mark.pictogram.name);\n for (const element of this._mapViewData.getDataView().latestData as SVGParserResult['elements']) {\n const { graphicType: type, name, parent, id, _nameFromParent, _uniqueId } = element;\n\n const mark = this._createMark(\n { type, name: name ?? _nameFromParent },\n {\n groupKey: _uniqueId,\n isSeriesMark: false,\n skipBeforeLayouted: true,\n parent: (this._idToMark.get(parent?._uniqueId) as IGroupMark) ?? this._pictogramMark\n },\n {\n morph: shouldMarkDoMorph(this._spec, PictogramSeries.mark.pictogram.name)\n }\n );\n\n if (mark) {\n mark.setData(this._mapViewData);\n mark.setUserId(_uniqueId); // id 必须唯一,但无法控制 svg 中元素有重复 id, 这里做一个保护\n this._idToMark.set(_uniqueId, mark);\n if (mark.type !== 'group') {\n mark.setMarkConfig({ graphicName: mark.name });\n }\n mark.setTransform([\n {\n type: 'filter',\n callback: (datum: SVGParsedElementExtend) => {\n return datum._uniqueId === _uniqueId;\n }\n }\n ]);\n }\n }\n this._initLabelMark();\n }\n\n private _initLabelMark() {\n // @ts-ignore\n if (this._spec.label.visible !== true) {\n return;\n }\n\n const labelMark = this._createMark(PictogramSeries.mark.label, {\n isSeriesMark: false,\n parent: this._pictogramMark,\n groupKey: '_uniqueId',\n skipBeforeLayouted: true\n }) as ITextMark;\n\n if (labelMark) {\n this._labelMark = labelMark;\n this._labelMark.setData(this._mapViewData);\n }\n }\n\n initLabelMarkStyle() {\n if (!this._labelMark) {\n return;\n }\n this.setMarkStyle(\n this._labelMark,\n {\n visible: (d: Datum) => !!this._validElement(d as SVGParsedElementExtend),\n x: (d: Datum) => this.dataToPosition(d, true)?.x,\n y: (d: Datum) => this.dataToPosition(d, true)?.y,\n text: (d: Datum) => d[this.nameField],\n textAlign: 'center',\n textBaseline: 'middle'\n },\n STATE_VALUE_ENUM.STATE_NORMAL,\n AttributeLevel.Series\n );\n }\n\n initMarkStyle() {\n const { root, viewBoxRect } = this._parsedSvgResult;\n const elements = this._mapViewData.getDataView().latestData as SVGParserResult['elements'];\n if (root) {\n this.setMarkStyle(\n this._pictogramMark,\n graphicAttributeTransform.group(root.attributes),\n 'normal',\n AttributeLevel.Built_In\n );\n if (root.transform) {\n this.setMarkStyle(\n this._pictogramMark,\n {\n postMatrix: () => root.transform\n },\n 'normal',\n AttributeLevel.Built_In\n );\n }\n if (viewBoxRect) {\n // fill should be true or content will be invisible\n this._pictogramMark.setMarkConfig({\n clip: true,\n clipPath: [createRect({ ...viewBoxRect, fill: true }) as any]\n });\n }\n }\n for (const element of elements) {\n const { _uniqueId, _finalAttributes: attributes } = element as SVGParsedElementExtend;\n const mark = this._idToMark.get(_uniqueId);\n const valid = this._validElement(element);\n if (mark) {\n // 描边粗细跟随缩放倍数\n this.setMarkStyle(mark, { keepStrokeScale: true }, 'normal', AttributeLevel.Built_In);\n if (valid) {\n this.initMarkStyleWithSpec(mark, merge({}, this._spec.pictogram, (this._spec as any)[mark.name]));\n this.setMarkStyle(mark, attributes, 'normal', AttributeLevel.Series);\n mark.setPostProcess('fill', (result, datum) => {\n return isValid(result) ? result : this._spec.defaultFillColor;\n });\n } else {\n // 对于没有设置 name 的元素,不支持响应事件、改变样式\n mark.setMarkConfig({ interactive: false });\n this.setMarkStyle(mark, attributes, 'normal', AttributeLevel.Built_In);\n }\n }\n }\n\n this.initLabelMarkStyle();\n }\n /** 在 svg 中使用 name attribute 标注了的图元*/\n protected _validElement(element: SVGParsedElement) {\n return element.name || element._nameFromParent;\n }\n\n protected initTooltip() {\n this._tooltipHelper = new PictogramSeriesTooltipHelper(this);\n this.getMarksWithoutRoot().forEach(mark => {\n if (mark && mark.name) {\n this._tooltipHelper.activeTriggerSet.mark.add(mark);\n }\n });\n }\n\n dataToPosition(datum: Datum, global = false): IPointLike {\n if (!datum) {\n return null;\n }\n const name = datum[this.nameField];\n if (!name) {\n return null;\n }\n\n const mark = this.getMarksWithoutRoot().filter(mark => mark.name === name);\n if (!mark || mark.length === 0) {\n return null;\n }\n let bounds = new Bounds();\n if (global) {\n mark.forEach(m => {\n bounds = bounds.union(m.getGraphics()[0].globalAABBBounds);\n });\n } else {\n mark.forEach(m => {\n bounds = bounds.union(m.getProduct().AABBBounds);\n });\n }\n\n const point = { x: (bounds.x1 + bounds.x2) / 2, y: (bounds.y1 + bounds.y2) / 2 };\n\n if (global) {\n const { x, y } = this.getLayoutStartPoint();\n point.x -= x;\n point.y -= y;\n }\n return point;\n }\n\n coordToPosition(point: IPoint): IPoint | undefined {\n if (!point) {\n return null;\n }\n const { x, y } = point;\n const matrix = this.getRootMatrix();\n if (!matrix) {\n return null;\n }\n const position = {};\n matrix.getInverse().transformPoint({ x, y }, position as IPoint);\n return position as IPoint;\n }\n\n getRootMatrix() {\n return this.getPictogramRootGraphic()?.transMatrix as IMatrix;\n }\n\n getPictogramRootGraphic(): IGroup {\n return this._pictogramMark.getProduct();\n }\n\n initData() {\n super.initData();\n const parsedSvg = svgSourceMap.get(this.svg);\n if (!parsedSvg) {\n this._option?.onError('no valid svg found!');\n }\n const svgData = new DataView(this._dataSet, { name: `pictogram_${this.id}_data` });\n registerDataSetInstanceTransform(this._dataSet, 'pictogram', pictogram);\n registerDataSetInstanceTransform(this._dataSet, 'lookup', lookup);\n svgData\n .parse([parsedSvg], {\n type: 'dataview'\n })\n .transform({ type: 'pictogram' })\n .transform({\n type: 'lookup',\n options: {\n from: () => this.getViewData().latestData,\n key: 'name',\n fields: this._nameField,\n set: (a: Datum, b: Datum) => {\n if (b) {\n a.data = b;\n }\n }\n }\n })\n .transform({\n type: 'lookup',\n options: {\n from: () => this.getViewData().latestData,\n key: '_nameFromParent',\n fields: this._nameField,\n set: (a: Datum, b: Datum) => {\n if (b) {\n a.data = b;\n }\n }\n }\n });\n this._data?.getDataView().target.addListener('change', svgData.reRunAllTransform);\n this._mapViewData = new CompilableData(this._option, svgData);\n }\n\n mapViewDataUpdate() {\n this._mapViewData.updateData();\n }\n\n onLayoutEnd(): void {\n super.onLayoutEnd();\n this._mapViewData?.getDataView().reRunAllTransform();\n }\n\n updateSVGSize() {\n const { width: regionWidth, height: regionHeight } = this.getLayoutRect();\n const regionCenterX = regionWidth / 2;\n const regionCenterY = regionHeight / 2;\n const root = this.getPictogramRootGraphic();\n if (root) {\n const bounds = root.AABBBounds;\n const { x1, x2, y1, y2 } = root.AABBBounds;\n const width = bounds.width();\n const height = bounds.height();\n\n const rootCenterX = (x1 + x2) / 2;\n const rootCenterY = (y1 + y2) / 2;\n\n const scaleX = regionWidth / width;\n const scaleY = regionHeight / height;\n const scale = Math.min(scaleX, scaleY);\n\n root.scale(scale, scale, { x: rootCenterX, y: rootCenterY });\n root.translate(regionCenterX - rootCenterX, regionCenterY - rootCenterY);\n }\n }\n\n protected initEvent(): void {\n super.initEvent();\n this._mapViewData.getDataView()?.target.addListener('change', this.mapViewDataUpdate.bind(this));\n // 必须在有 vrender mark 的时机后更新\n this.event.on(ChartEvent.afterMarkLayoutEnd, this.updateSVGSize.bind(this));\n }\n\n handleZoom(e: ZoomEventParam) {\n const { scale, scaleCenter } = e;\n if (scale === 1) {\n return;\n }\n\n const root = this.getPictogramRootGraphic();\n if (root) {\n if (!root.attribute.postMatrix) {\n root.setAttributes({\n postMatrix: new Matrix()\n });\n }\n root.scale(scale, scale, scaleCenter);\n }\n }\n\n handlePan(e: PanEventParam) {\n const { delta } = e;\n if (delta[0] === 0 && delta[1] === 0) {\n return;\n }\n const root = this.getPictogramRootGraphic();\n if (root) {\n if (!root.attribute.postMatrix) {\n root.setAttributes({\n postMatrix: new Matrix()\n });\n }\n root.translate(delta[0], delta[1]);\n }\n }\n\n getMarkData(datum: Datum) {\n return datum.data ?? {};\n }\n\n getMeasureField(): string[] {\n return [this.valueField];\n }\n\n getDimensionField(): string[] {\n return [this.nameField];\n }\n protected _getSeriesInfo(field: string, keys: string[]) {\n const defaultShapeType = this.getDefaultShapeType();\n return keys.map(key => {\n return {\n key,\n originalKey: key,\n style: this.getSeriesStyle({\n data: {\n [field]: key\n }\n }),\n shapeType: defaultShapeType\n } as ISeriesSeriesInfo;\n });\n }\n\n release(): void {\n this._parsedSvgResult = null;\n this._idToMark.clear();\n this._idToMark = null;\n }\n}\n\nexport const registerPictogramSeries = () => {\n // 注册语法元素\n Factory.registerSeries(PictogramSeries.type, PictogramSeries);\n Factory.registerImplement('registerSVG', registerSVGSource);\n Factory.registerImplement('unregisterSVG', unregisterSVGSource);\n registerElementHighlightByGraphicName();\n registerElementSelectByGraphicName();\n};\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { DataView } from '@visactor/
|
|
2
|
-
import type { ISVGSourceOption } from '@visactor/vdataset';
|
|
1
|
+
import { DataView, type ISVGSourceOption } from '@visactor/vchart';
|
|
3
2
|
export declare const svgSourceMap: Map<string, DataView>;
|
|
4
3
|
export declare function registerSVGSource(key: string, source: ISVGSourceOption): void;
|
|
5
4
|
export declare function unregisterSVGSource(key: string): void;
|
|
@@ -4,18 +4,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.clearSVGSource = exports.getSVGSource = exports.unregisterSVGSource = exports.registerSVGSource = exports.svgSourceMap = void 0;
|
|
6
6
|
|
|
7
|
-
const vchart_1 = require("@visactor/vchart"),
|
|
7
|
+
const vchart_1 = require("@visactor/vchart"), vchart_2 = require("@visactor/vchart");
|
|
8
8
|
|
|
9
9
|
let svgDataSet;
|
|
10
10
|
|
|
11
11
|
function initSVGDataSet() {
|
|
12
|
-
svgDataSet || (svgDataSet = new
|
|
12
|
+
svgDataSet || (svgDataSet = new vchart_2.DataSet, (0, vchart_1.registerDataSetInstanceParser)(svgDataSet, "svg", vchart_2.svgParser));
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
function registerSVGSource(key, source) {
|
|
16
16
|
exports.svgSourceMap.has(key) && (0, vchart_1.warn)(`svg source key of '${key}' already exists, will be overwritten.`),
|
|
17
17
|
initSVGDataSet();
|
|
18
|
-
const dataView = new
|
|
18
|
+
const dataView = new vchart_2.DataView(svgDataSet);
|
|
19
19
|
dataView.parse(source, {
|
|
20
20
|
type: "svg"
|
|
21
21
|
}), exports.svgSourceMap.set(key, dataView);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/charts/pictogram/series/svg-source.ts"],"names":[],"mappings":";;;AAAA,6CAAuE;AACvE,
|
|
1
|
+
{"version":3,"sources":["../src/charts/pictogram/series/svg-source.ts"],"names":[],"mappings":";;;AAAA,6CAAuE;AACvE,6CAAuF;AAE1E,QAAA,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;AAExD,IAAI,UAA0B,CAAC;AAE/B,SAAS,cAAc;IACrB,IAAI,UAAU,EAAE;QACd,OAAO;KACR;IACD,UAAU,GAAG,IAAI,gBAAO,EAAE,CAAC;IAC3B,IAAA,sCAA6B,EAAC,UAAU,EAAE,KAAK,EAAE,kBAAS,CAAC,CAAC;AAC9D,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAW,EAAE,MAAwB;IACrE,IAAI,oBAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACzB,IAAA,aAAI,EAAC,sBAAsB,GAAG,wCAAwC,CAAC,CAAC;KACzE;IACD,cAAc,EAAE,CAAC;IACjB,MAAM,QAAQ,GAAG,IAAI,iBAAQ,CAAC,UAAW,CAAC,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IAEH,oBAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAXD,8CAWC;AAED,SAAgB,mBAAmB,CAAC,GAAW;IAC7C,IAAI,CAAC,oBAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC1B,IAAA,aAAI,EAAC,gBAAgB,GAAG,oBAAoB,CAAC,CAAC;QAC9C,OAAO;KACR;IACD,oBAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAND,kDAMC;AAED,SAAgB,YAAY,CAAC,IAAY;IACvC,OAAO,oBAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAFD,oCAEC;AAED,SAAgB,cAAc;IAC5B,oBAAY,CAAC,KAAK,EAAE,CAAC;IACrB,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAHD,wCAGC","file":"svg-source.js","sourcesContent":["import { registerDataSetInstanceParser, warn } from '@visactor/vchart';\nimport { DataSet, DataView, svgParser, type ISVGSourceOption } from '@visactor/vchart';\n\nexport const svgSourceMap = new Map<string, DataView>();\n\nlet svgDataSet: DataSet | null;\n\nfunction initSVGDataSet() {\n if (svgDataSet) {\n return;\n }\n svgDataSet = new DataSet();\n registerDataSetInstanceParser(svgDataSet, 'svg', svgParser);\n}\n\nexport function registerSVGSource(key: string, source: ISVGSourceOption) {\n if (svgSourceMap.has(key)) {\n warn(`svg source key of '${key}' already exists, will be overwritten.`);\n }\n initSVGDataSet();\n const dataView = new DataView(svgDataSet!);\n dataView.parse(source, {\n type: 'svg'\n });\n\n svgSourceMap.set(key, dataView);\n}\n\nexport function unregisterSVGSource(key: string) {\n if (!svgSourceMap.has(key)) {\n warn(`map type of '${key}' does not exists.`);\n return;\n }\n svgSourceMap.delete(key);\n}\n\nexport function getSVGSource(type: string) {\n return svgSourceMap.get(type);\n}\n\nexport function clearSVGSource() {\n svgSourceMap.clear();\n svgDataSet = null;\n}\n"]}
|
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.pictogram = exports.graphicAttributeTransform = void 0;
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const vchart_1 = require("@visactor/vchart"), vchart_2 = require("@visactor/vchart");
|
|
8
8
|
|
|
9
9
|
function isValidStrokeOrFill(attr) {
|
|
10
10
|
var _a;
|
|
11
|
-
return (0,
|
|
11
|
+
return (0, vchart_1.isValid)(attr) && "none" !== attr && !(null === (_a = attr.includes) || void 0 === _a ? void 0 : _a.call(attr, "url"));
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
const getLineWidth = attributes => {
|
|
@@ -106,12 +106,12 @@ const pictogram = data => {
|
|
|
106
106
|
if (elements && elements.length) {
|
|
107
107
|
elements.forEach(((el, index) => {
|
|
108
108
|
var _a;
|
|
109
|
-
el[
|
|
109
|
+
el[vchart_2.DEFAULT_DATA_INDEX] = index, el._uniqueId = `${el.id}-${index}`, el.data = void 0;
|
|
110
110
|
const {graphicType: type, transform: transform} = el, finalAttributes = {
|
|
111
111
|
visible: "hidden" !== el.attributes.visibility && "collapse" !== el.attributes.visibility
|
|
112
112
|
};
|
|
113
|
-
"text" === el.graphicType ? (0,
|
|
114
|
-
|
|
113
|
+
"text" === el.graphicType ? (0, vchart_1.merge)(finalAttributes, el._inheritStyle, null === (_a = el.parent) || void 0 === _a ? void 0 : _a._textGroupStyle, el.attributes) : "group" !== el.graphicType && (0,
|
|
114
|
+
vchart_1.merge)(finalAttributes, el._inheritStyle, el.attributes), exports.graphicAttributeTransform[type] ? el._finalAttributes = exports.graphicAttributeTransform[type](finalAttributes, el.value) : el._finalAttributes = finalAttributes,
|
|
115
115
|
transform && (el._finalAttributes.postMatrix = Object.assign({}, transform));
|
|
116
116
|
}));
|
|
117
117
|
const texts = elements.filter((el => "text" === el.tagName));
|
|
@@ -135,7 +135,7 @@ const pictogram = data => {
|
|
|
135
135
|
if ("group" === currentChild.graphicType) curX = startX; else if (currentChild.value && void 0 === currentChild.parent._textGroupStyle.x) {
|
|
136
136
|
const lastText = children.slice(0, j).reverse().find((c => "text" === c.graphicType && c.value));
|
|
137
137
|
if (lastText) {
|
|
138
|
-
curX += (0,
|
|
138
|
+
curX += (0, vchart_2.measureText)(lastText.value, lastText._finalAttributes).width;
|
|
139
139
|
}
|
|
140
140
|
currentChild._finalAttributes.x = curX;
|
|
141
141
|
}
|