@visactor/vchart-extension 1.15.5-alpha.8 → 2.0.0-alpha.1
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 +13971 -4721
- package/build/index.min.js +2 -2
- package/cjs/charts/3d/arc-3d.d.ts +11 -0
- package/cjs/charts/3d/arc-3d.js +30 -0
- package/cjs/charts/3d/arc-3d.js.map +1 -0
- package/cjs/charts/3d/enum.d.ts +33 -0
- package/cjs/charts/3d/enum.js +28 -0
- package/cjs/charts/3d/enum.js.map +1 -0
- package/cjs/charts/3d/interface.d.ts +13 -0
- package/cjs/charts/3d/interface.js +6 -0
- package/cjs/charts/3d/interface.js.map +1 -0
- package/cjs/charts/3d/layout.d.ts +21 -0
- package/cjs/charts/3d/layout.js +97 -0
- package/cjs/charts/3d/layout.js.map +1 -0
- package/cjs/charts/3d/plugin.d.ts +12 -0
- package/cjs/charts/3d/plugin.js +35 -0
- package/cjs/charts/3d/plugin.js.map +1 -0
- package/cjs/charts/3d/pyramid-3d.d.ts +11 -0
- package/cjs/charts/3d/pyramid-3d.js +31 -0
- package/cjs/charts/3d/pyramid-3d.js.map +1 -0
- package/cjs/charts/3d/rect-3d.d.ts +13 -0
- package/cjs/charts/3d/rect-3d.js +36 -0
- package/cjs/charts/3d/rect-3d.js.map +1 -0
- package/cjs/charts/3d/util.d.ts +3 -0
- package/cjs/charts/3d/util.js +19 -0
- package/cjs/charts/3d/util.js.map +1 -0
- package/cjs/charts/axis-3d/band-axis.d.ts +46 -0
- package/cjs/charts/axis-3d/band-axis.js +27 -0
- package/cjs/charts/axis-3d/band-axis.js.map +1 -0
- package/cjs/charts/axis-3d/index.d.ts +1 -0
- package/cjs/charts/axis-3d/index.js +14 -0
- package/cjs/charts/axis-3d/index.js.map +1 -0
- package/cjs/charts/axis-3d/linear-axis.d.ts +42 -0
- package/cjs/charts/axis-3d/linear-axis.js +32 -0
- package/cjs/charts/axis-3d/linear-axis.js.map +1 -0
- package/cjs/charts/axis-3d/log-axis.d.ts +46 -0
- package/cjs/charts/axis-3d/log-axis.js +27 -0
- package/cjs/charts/axis-3d/log-axis.js.map +1 -0
- package/cjs/charts/axis-3d/symlog-axis.d.ts +46 -0
- package/cjs/charts/axis-3d/symlog-axis.js +27 -0
- package/cjs/charts/axis-3d/symlog-axis.js.map +1 -0
- package/cjs/charts/axis-3d/theme.d.ts +2 -0
- package/cjs/charts/axis-3d/theme.js +10 -0
- package/cjs/charts/axis-3d/theme.js.map +1 -0
- package/cjs/charts/axis-3d/time-axis.d.ts +45 -0
- package/cjs/charts/axis-3d/time-axis.js +26 -0
- package/cjs/charts/axis-3d/time-axis.js.map +1 -0
- package/cjs/charts/axis-3d/util.d.ts +2 -0
- package/cjs/charts/axis-3d/util.js +45 -0
- package/cjs/charts/axis-3d/util.js.map +1 -0
- package/cjs/charts/bar-3d/animation.d.ts +1 -0
- package/cjs/charts/bar-3d/animation.js +17 -0
- package/cjs/charts/bar-3d/animation.js.map +1 -0
- package/cjs/charts/bar-3d/chart-spec-transformer.d.ts +6 -0
- package/cjs/charts/bar-3d/chart-spec-transformer.js +19 -0
- package/cjs/charts/bar-3d/chart-spec-transformer.js.map +1 -0
- package/cjs/charts/bar-3d/chart.d.ts +13 -0
- package/cjs/charts/bar-3d/chart.js +25 -0
- package/cjs/charts/bar-3d/chart.js.map +1 -0
- package/cjs/charts/bar-3d/constant.d.ts +12 -0
- package/cjs/charts/bar-3d/constant.js +15 -0
- package/cjs/charts/bar-3d/constant.js.map +1 -0
- package/cjs/charts/bar-3d/index.d.ts +5 -0
- package/cjs/charts/bar-3d/index.js +23 -0
- package/cjs/charts/bar-3d/index.js.map +1 -0
- package/cjs/charts/bar-3d/interface.d.ts +13 -0
- package/cjs/charts/bar-3d/interface.js +6 -0
- package/cjs/charts/bar-3d/interface.js.map +1 -0
- package/cjs/charts/bar-3d/series-spec-transformer.d.ts +5 -0
- package/cjs/charts/bar-3d/series-spec-transformer.js +15 -0
- package/cjs/charts/bar-3d/series-spec-transformer.js.map +1 -0
- package/cjs/charts/bar-3d/series.d.ts +17 -0
- package/cjs/charts/bar-3d/series.js +28 -0
- package/cjs/charts/bar-3d/series.js.map +1 -0
- package/cjs/charts/bar-3d/theme.d.ts +2 -0
- package/cjs/charts/bar-3d/theme.js +19 -0
- package/cjs/charts/bar-3d/theme.js.map +1 -0
- package/cjs/charts/conversion-funnel/arrow-data-transform.js.map +1 -1
- package/cjs/charts/conversion-funnel/constants.d.ts +21 -0
- package/cjs/charts/conversion-funnel/constants.js +24 -0
- package/cjs/charts/conversion-funnel/constants.js.map +1 -0
- package/cjs/charts/conversion-funnel/conversion-funnel-transformer.d.ts +2 -3
- package/cjs/charts/conversion-funnel/conversion-funnel-transformer.js +7 -6
- package/cjs/charts/conversion-funnel/conversion-funnel-transformer.js.map +1 -1
- package/cjs/charts/conversion-funnel/conversion-funnel.d.ts +0 -21
- package/cjs/charts/conversion-funnel/conversion-funnel.js +5 -21
- package/cjs/charts/conversion-funnel/conversion-funnel.js.map +1 -1
- package/cjs/charts/conversion-funnel/index.js.map +1 -1
- package/cjs/charts/conversion-funnel/interface.js +1 -1
- package/cjs/charts/conversion-funnel/interface.js.map +1 -1
- package/cjs/charts/conversion-funnel/util.d.ts +1 -1
- package/cjs/charts/conversion-funnel/util.js +1 -1
- package/cjs/charts/conversion-funnel/util.js.map +1 -1
- package/cjs/charts/funnel-3d/chart.d.ts +12 -0
- package/cjs/charts/funnel-3d/chart.js +25 -0
- package/cjs/charts/funnel-3d/chart.js.map +1 -0
- package/cjs/charts/funnel-3d/constant.d.ts +80 -0
- package/cjs/charts/funnel-3d/constant.js +31 -0
- package/cjs/charts/funnel-3d/constant.js.map +1 -0
- package/cjs/charts/funnel-3d/index.d.ts +4 -0
- package/cjs/charts/funnel-3d/index.js +22 -0
- package/cjs/charts/funnel-3d/index.js.map +1 -0
- package/cjs/charts/funnel-3d/interface.d.ts +18 -0
- package/cjs/charts/funnel-3d/interface.js +6 -0
- package/cjs/charts/funnel-3d/interface.js.map +1 -0
- package/cjs/charts/funnel-3d/series-spec-transformer.d.ts +5 -0
- package/cjs/charts/funnel-3d/series-spec-transformer.js +16 -0
- package/cjs/charts/funnel-3d/series-spec-transformer.js.map +1 -0
- package/cjs/charts/funnel-3d/series.d.ts +99 -0
- package/cjs/charts/funnel-3d/series.js +83 -0
- package/cjs/charts/funnel-3d/series.js.map +1 -0
- package/cjs/charts/funnel-3d/theme.d.ts +1 -0
- package/cjs/charts/funnel-3d/theme.js +10 -0
- package/cjs/charts/funnel-3d/theme.js.map +1 -0
- package/cjs/charts/histogram-3d/chart.d.ts +12 -0
- package/cjs/charts/histogram-3d/chart.js +31 -0
- package/cjs/charts/histogram-3d/chart.js.map +1 -0
- package/cjs/charts/histogram-3d/index.d.ts +2 -0
- package/cjs/charts/histogram-3d/index.js +21 -0
- package/cjs/charts/histogram-3d/index.js.map +1 -0
- package/cjs/charts/histogram-3d/interface.d.ts +5 -0
- package/cjs/charts/histogram-3d/interface.js +6 -0
- package/cjs/charts/histogram-3d/interface.js.map +1 -0
- package/cjs/charts/image-cloud/image-cloud-transformer.d.ts +6 -0
- package/cjs/charts/image-cloud/image-cloud-transformer.js +19 -0
- package/cjs/charts/image-cloud/image-cloud-transformer.js.map +1 -0
- package/cjs/charts/image-cloud/image-cloud.d.ts +12 -0
- package/cjs/charts/image-cloud/image-cloud.js +24 -0
- package/cjs/charts/image-cloud/image-cloud.js.map +1 -0
- package/cjs/charts/image-cloud/index.d.ts +2 -0
- package/cjs/charts/image-cloud/index.js +21 -0
- package/cjs/charts/image-cloud/index.js.map +1 -0
- package/cjs/charts/image-cloud/interface.d.ts +6 -0
- package/cjs/charts/image-cloud/interface.js +6 -0
- package/cjs/charts/image-cloud/interface.js.map +1 -0
- package/cjs/charts/image-cloud/series/animation.d.ts +23 -0
- package/cjs/charts/image-cloud/series/animation.js +100 -0
- package/cjs/charts/image-cloud/series/animation.js.map +1 -0
- package/cjs/charts/image-cloud/series/constant.d.ts +76 -0
- package/cjs/charts/image-cloud/series/constant.js +25 -0
- package/cjs/charts/image-cloud/series/constant.js.map +1 -0
- package/cjs/charts/image-cloud/series/image-cloud.d.ts +137 -0
- package/cjs/charts/image-cloud/series/image-cloud.js +196 -0
- package/cjs/charts/image-cloud/series/image-cloud.js.map +1 -0
- package/cjs/charts/image-cloud/series/index.d.ts +2 -0
- package/cjs/charts/image-cloud/series/index.js +21 -0
- package/cjs/charts/image-cloud/series/index.js.map +1 -0
- package/cjs/charts/image-cloud/series/interface.d.ts +25 -0
- package/cjs/charts/image-cloud/series/interface.js +6 -0
- package/cjs/charts/image-cloud/series/interface.js.map +1 -0
- package/cjs/charts/image-cloud/series/tooltip-helper.d.ts +10 -0
- package/cjs/charts/image-cloud/series/tooltip-helper.js +30 -0
- package/cjs/charts/image-cloud/series/tooltip-helper.js.map +1 -0
- package/cjs/charts/pictogram/element-highlight-by-graphic-name.d.ts +12 -0
- package/cjs/charts/pictogram/element-highlight-by-graphic-name.js +53 -0
- package/cjs/charts/pictogram/element-highlight-by-graphic-name.js.map +1 -0
- package/cjs/charts/pictogram/element-select-by-graphic-name.d.ts +8 -0
- package/cjs/charts/pictogram/element-select-by-graphic-name.js +31 -0
- package/cjs/charts/pictogram/element-select-by-graphic-name.js.map +1 -0
- package/cjs/charts/pictogram/index.d.ts +5 -0
- package/cjs/charts/pictogram/index.js +23 -0
- package/cjs/charts/pictogram/index.js.map +1 -0
- package/cjs/charts/pictogram/interface.d.ts +6 -0
- package/cjs/charts/pictogram/interface.js +6 -0
- package/cjs/charts/pictogram/interface.js.map +1 -0
- package/cjs/charts/pictogram/pictogram-transformer.d.ts +8 -0
- package/cjs/charts/pictogram/pictogram-transformer.js +24 -0
- package/cjs/charts/pictogram/pictogram-transformer.js.map +1 -0
- package/cjs/charts/pictogram/pictogram.d.ts +12 -0
- package/cjs/charts/pictogram/pictogram.js +25 -0
- package/cjs/charts/pictogram/pictogram.js.map +1 -0
- package/cjs/charts/pictogram/series/constant.d.ts +73 -0
- package/cjs/charts/pictogram/series/constant.js +22 -0
- package/cjs/charts/pictogram/series/constant.js.map +1 -0
- package/cjs/charts/pictogram/series/interface.d.ts +13 -0
- package/cjs/charts/pictogram/series/interface.js +6 -0
- package/cjs/charts/pictogram/series/interface.js.map +1 -0
- package/cjs/charts/pictogram/series/pictogram-transformer.d.ts +4 -0
- package/cjs/charts/pictogram/series/pictogram-transformer.js +23 -0
- package/cjs/charts/pictogram/series/pictogram-transformer.js.map +1 -0
- package/cjs/charts/pictogram/series/pictogram.d.ts +129 -0
- package/cjs/charts/pictogram/series/pictogram.js +296 -0
- package/cjs/charts/pictogram/series/pictogram.js.map +1 -0
- package/cjs/charts/pictogram/series/svg-source.d.ts +7 -0
- package/cjs/charts/pictogram/series/svg-source.js +38 -0
- package/cjs/charts/pictogram/series/svg-source.js.map +1 -0
- package/cjs/charts/pictogram/series/tooltip-helper.d.ts +7 -0
- package/cjs/charts/pictogram/series/tooltip-helper.js +26 -0
- package/cjs/charts/pictogram/series/tooltip-helper.js.map +1 -0
- package/cjs/charts/pictogram/series/transform.d.ts +76 -0
- package/cjs/charts/pictogram/series/transform.js +150 -0
- package/cjs/charts/pictogram/series/transform.js.map +1 -0
- package/cjs/charts/pie-3d/animation.d.ts +1 -0
- package/cjs/charts/pie-3d/animation.js +17 -0
- package/cjs/charts/pie-3d/animation.js.map +1 -0
- package/cjs/charts/pie-3d/chart-spec-transformer.d.ts +6 -0
- package/cjs/charts/pie-3d/chart-spec-transformer.js +18 -0
- package/cjs/charts/pie-3d/chart-spec-transformer.js.map +1 -0
- package/cjs/charts/pie-3d/chart.d.ts +13 -0
- package/cjs/charts/pie-3d/chart.js +25 -0
- package/cjs/charts/pie-3d/chart.js.map +1 -0
- package/cjs/charts/pie-3d/constant.d.ts +70 -0
- package/cjs/charts/pie-3d/constant.js +19 -0
- package/cjs/charts/pie-3d/constant.js.map +1 -0
- package/cjs/charts/pie-3d/index.d.ts +5 -0
- package/cjs/charts/pie-3d/index.js +23 -0
- package/cjs/charts/pie-3d/index.js.map +1 -0
- package/cjs/charts/pie-3d/interface.d.ts +17 -0
- package/cjs/charts/pie-3d/interface.js +6 -0
- package/cjs/charts/pie-3d/interface.js.map +1 -0
- package/cjs/charts/pie-3d/series-spec-transformer.d.ts +5 -0
- package/cjs/charts/pie-3d/series-spec-transformer.js +16 -0
- package/cjs/charts/pie-3d/series-spec-transformer.js.map +1 -0
- package/cjs/charts/pie-3d/series.d.ts +88 -0
- package/cjs/charts/pie-3d/series.js +42 -0
- package/cjs/charts/pie-3d/series.js.map +1 -0
- package/cjs/charts/pie-3d/theme.d.ts +2 -0
- package/cjs/charts/pie-3d/theme.js +19 -0
- package/cjs/charts/pie-3d/theme.js.map +1 -0
- package/cjs/charts/range-column-3d/chart-spec-transformer.d.ts +5 -0
- package/cjs/charts/range-column-3d/chart-spec-transformer.js +19 -0
- package/cjs/charts/range-column-3d/chart-spec-transformer.js.map +1 -0
- package/cjs/charts/range-column-3d/chart.d.ts +13 -0
- package/cjs/charts/range-column-3d/chart.js +31 -0
- package/cjs/charts/range-column-3d/chart.js.map +1 -0
- package/cjs/charts/range-column-3d/constant.d.ts +19 -0
- package/cjs/charts/range-column-3d/constant.js +19 -0
- package/cjs/charts/range-column-3d/constant.js.map +1 -0
- package/cjs/charts/range-column-3d/index.d.ts +5 -0
- package/cjs/charts/range-column-3d/index.js +23 -0
- package/cjs/charts/range-column-3d/index.js.map +1 -0
- package/cjs/charts/range-column-3d/interface.d.ts +8 -0
- package/cjs/charts/range-column-3d/interface.js +6 -0
- package/cjs/charts/range-column-3d/interface.js.map +1 -0
- package/cjs/charts/range-column-3d/series-spec-transformer.d.ts +6 -0
- package/cjs/charts/range-column-3d/series-spec-transformer.js +17 -0
- package/cjs/charts/range-column-3d/series-spec-transformer.js.map +1 -0
- package/cjs/charts/range-column-3d/series.d.ts +30 -0
- package/cjs/charts/range-column-3d/series.js +27 -0
- package/cjs/charts/range-column-3d/series.js.map +1 -0
- package/cjs/charts/ranking-bar/interface.js +1 -1
- package/cjs/charts/ranking-bar/interface.js.map +1 -1
- package/cjs/charts/ranking-bar/ranking-bar-transformer.js +1 -1
- package/cjs/charts/ranking-bar/ranking-bar-transformer.js.map +1 -1
- package/cjs/charts/ranking-bar/ranking-bar.js +1 -1
- package/cjs/charts/ranking-bar/ranking-bar.js.map +1 -1
- package/cjs/charts/ranking-list/constant.js +13 -12
- package/cjs/charts/ranking-list/constant.js.map +1 -1
- package/cjs/charts/ranking-list/interface.d.ts +1 -0
- package/cjs/charts/ranking-list/interface.js +1 -1
- package/cjs/charts/ranking-list/interface.js.map +1 -1
- package/cjs/charts/ranking-list/ranking-list-transformer.d.ts +21 -19
- package/cjs/charts/ranking-list/ranking-list-transformer.js +15 -8
- package/cjs/charts/ranking-list/ranking-list-transformer.js.map +1 -1
- package/cjs/charts/ranking-list/ranking-list.js +1 -1
- package/cjs/charts/ranking-list/ranking-list.js.map +1 -1
- package/cjs/charts/ranking-list/utils.d.ts +1 -1
- package/cjs/charts/ranking-list/utils.js +6 -6
- package/cjs/charts/ranking-list/utils.js.map +1 -1
- package/cjs/charts/sequence-scatter-kde/constant.d.ts +3 -0
- package/cjs/charts/sequence-scatter-kde/constant.js +7 -0
- package/cjs/charts/sequence-scatter-kde/constant.js.map +1 -0
- package/cjs/charts/sequence-scatter-kde/interface.d.ts +29 -0
- package/cjs/charts/sequence-scatter-kde/interface.js +6 -0
- package/cjs/charts/sequence-scatter-kde/interface.js.map +1 -0
- package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.d.ts +6 -0
- package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.js +142 -0
- package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.js.map +1 -0
- package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde.d.ts +16 -0
- package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde.js +34 -0
- package/cjs/charts/sequence-scatter-kde/sequence-scatter-kde.js.map +1 -0
- package/cjs/charts/sequence-scatter-kde/utils.d.ts +9 -0
- package/cjs/charts/sequence-scatter-kde/utils.js +42 -0
- package/cjs/charts/sequence-scatter-kde/utils.js.map +1 -0
- package/cjs/charts/sequence-scatter-link/interface.d.ts +59 -0
- package/cjs/charts/sequence-scatter-link/interface.js +6 -0
- package/cjs/charts/sequence-scatter-link/interface.js.map +1 -0
- package/cjs/charts/sequence-scatter-link/sequence-scatter-link-transformer.d.ts +6 -0
- package/cjs/charts/sequence-scatter-link/sequence-scatter-link-transformer.js +328 -0
- package/cjs/charts/sequence-scatter-link/sequence-scatter-link-transformer.js.map +1 -0
- package/cjs/charts/sequence-scatter-link/sequence-scatter-link.d.ts +16 -0
- package/cjs/charts/sequence-scatter-link/sequence-scatter-link.js +34 -0
- package/cjs/charts/sequence-scatter-link/sequence-scatter-link.js.map +1 -0
- package/cjs/charts/sequence-scatter-pixel/constant.d.ts +3 -0
- package/cjs/charts/sequence-scatter-pixel/constant.js +7 -0
- package/cjs/charts/sequence-scatter-pixel/constant.js.map +1 -0
- package/cjs/charts/sequence-scatter-pixel/interface.d.ts +29 -0
- package/cjs/charts/sequence-scatter-pixel/interface.js +6 -0
- package/cjs/charts/sequence-scatter-pixel/interface.js.map +1 -0
- package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.d.ts +4 -0
- package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.js +68 -0
- package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.js.map +1 -0
- package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel.d.ts +16 -0
- package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel.js +34 -0
- package/cjs/charts/sequence-scatter-pixel/sequence-scatter-pixel.js.map +1 -0
- package/cjs/charts/sequence-scatter-pixel/utils.d.ts +3 -0
- package/cjs/charts/sequence-scatter-pixel/utils.js +54 -0
- package/cjs/charts/sequence-scatter-pixel/utils.js.map +1 -0
- package/cjs/charts/word-cloud-3d/animation.d.ts +4 -0
- package/cjs/charts/word-cloud-3d/animation.js +24 -0
- package/cjs/charts/word-cloud-3d/animation.js.map +1 -0
- package/cjs/charts/word-cloud-3d/chart-spec-transformer.d.ts +5 -0
- package/cjs/charts/word-cloud-3d/chart-spec-transformer.js +17 -0
- package/cjs/charts/word-cloud-3d/chart-spec-transformer.js.map +1 -0
- package/cjs/charts/word-cloud-3d/chart.d.ts +14 -0
- package/cjs/charts/word-cloud-3d/chart.js +31 -0
- package/cjs/charts/word-cloud-3d/chart.js.map +1 -0
- package/cjs/charts/word-cloud-3d/index.d.ts +4 -0
- package/cjs/charts/word-cloud-3d/index.js +22 -0
- package/cjs/charts/word-cloud-3d/index.js.map +1 -0
- package/cjs/charts/word-cloud-3d/interface.d.ts +22 -0
- package/cjs/charts/word-cloud-3d/interface.js +6 -0
- package/cjs/charts/word-cloud-3d/interface.js.map +1 -0
- package/cjs/charts/word-cloud-3d/series.d.ts +37 -0
- package/cjs/charts/word-cloud-3d/series.js +80 -0
- package/cjs/charts/word-cloud-3d/series.js.map +1 -0
- package/cjs/charts/word-cloud-3d/theme.d.ts +2 -0
- package/cjs/charts/word-cloud-3d/theme.js +14 -0
- package/cjs/charts/word-cloud-3d/theme.js.map +1 -0
- package/cjs/components/bar-link/bar-link.d.ts +1 -1
- package/cjs/components/bar-link/bar-link.js +5 -5
- package/cjs/components/bar-link/bar-link.js.map +1 -1
- package/cjs/components/bar-link/constant.js.map +1 -1
- package/cjs/components/bar-link/index.js.map +1 -1
- package/cjs/components/bar-link/type.js.map +1 -1
- package/cjs/components/bar-link/util.d.ts +3 -4
- package/cjs/components/bar-link/util.js +10 -10
- package/cjs/components/bar-link/util.js.map +1 -1
- package/cjs/components/map-label/index.d.ts +2 -0
- package/cjs/components/map-label/index.js +21 -0
- package/cjs/components/map-label/index.js.map +1 -0
- package/cjs/components/map-label/layout.d.ts +23 -0
- package/cjs/components/map-label/layout.js +154 -0
- package/cjs/components/map-label/layout.js.map +1 -0
- package/cjs/components/map-label/map-label-transformer.d.ts +5 -0
- package/cjs/components/map-label/map-label-transformer.js +16 -0
- package/cjs/components/map-label/map-label-transformer.js.map +1 -0
- package/cjs/components/map-label/map-label.d.ts +53 -0
- package/cjs/components/map-label/map-label.js +266 -0
- package/cjs/components/map-label/map-label.js.map +1 -0
- package/cjs/components/map-label/theme.d.ts +2 -0
- package/cjs/components/map-label/theme.js +63 -0
- package/cjs/components/map-label/theme.js.map +1 -0
- package/cjs/components/map-label/type.d.ts +39 -0
- package/cjs/components/map-label/type.js +6 -0
- package/cjs/components/map-label/type.js.map +1 -0
- package/cjs/components/series-break/constant.js +1 -2
- package/cjs/components/series-break/constant.js.map +1 -1
- package/cjs/components/series-break/index.js.map +1 -1
- package/cjs/components/series-break/series-break.js +2 -2
- package/cjs/components/series-break/series-break.js.map +1 -1
- package/cjs/components/series-break/type.js.map +1 -1
- package/cjs/components/series-break/util.d.ts +2 -2
- package/cjs/components/series-break/util.js +6 -6
- package/cjs/components/series-break/util.js.map +1 -1
- package/cjs/components/series-label/constant.js.map +1 -1
- package/cjs/components/series-label/index.js.map +1 -1
- package/cjs/components/series-label/series-label.js +2 -2
- package/cjs/components/series-label/series-label.js.map +1 -1
- package/cjs/components/series-label/type.js +2 -1
- package/cjs/components/series-label/type.js.map +1 -1
- package/cjs/components/series-label/util.js +4 -4
- package/cjs/components/series-label/util.js.map +1 -1
- package/cjs/index.d.ts +12 -0
- package/cjs/index.js +19 -3
- package/cjs/index.js.map +1 -1
- package/cjs/type/index.js.map +1 -1
- package/cjs/type/type.js.map +1 -1
- package/cjs/utils/element.js.map +1 -1
- package/cjs/utils/math.js.map +1 -1
- package/esm/charts/3d/arc-3d.d.ts +11 -0
- package/esm/charts/3d/arc-3d.js +25 -0
- package/esm/charts/3d/arc-3d.js.map +1 -0
- package/esm/charts/3d/enum.d.ts +33 -0
- package/esm/charts/3d/enum.js +36 -0
- package/esm/charts/3d/enum.js.map +1 -0
- package/esm/charts/3d/interface.d.ts +13 -0
- package/esm/charts/3d/interface.js +2 -0
- package/esm/charts/3d/interface.js.map +1 -0
- package/esm/charts/3d/layout.d.ts +21 -0
- package/esm/charts/3d/layout.js +87 -0
- package/esm/charts/3d/layout.js.map +1 -0
- package/esm/charts/3d/plugin.d.ts +12 -0
- package/esm/charts/3d/plugin.js +31 -0
- package/esm/charts/3d/plugin.js.map +1 -0
- package/esm/charts/3d/pyramid-3d.d.ts +11 -0
- package/esm/charts/3d/pyramid-3d.js +26 -0
- package/esm/charts/3d/pyramid-3d.js.map +1 -0
- package/esm/charts/3d/rect-3d.d.ts +13 -0
- package/esm/charts/3d/rect-3d.js +32 -0
- package/esm/charts/3d/rect-3d.js.map +1 -0
- package/esm/charts/3d/util.d.ts +3 -0
- package/esm/charts/3d/util.js +10 -0
- package/esm/charts/3d/util.js.map +1 -0
- package/esm/charts/axis-3d/band-axis.d.ts +46 -0
- package/esm/charts/axis-3d/band-axis.js +25 -0
- package/esm/charts/axis-3d/band-axis.js.map +1 -0
- package/esm/charts/axis-3d/index.d.ts +1 -0
- package/esm/charts/axis-3d/index.js +19 -0
- package/esm/charts/axis-3d/index.js.map +1 -0
- package/esm/charts/axis-3d/linear-axis.d.ts +42 -0
- package/esm/charts/axis-3d/linear-axis.js +30 -0
- package/esm/charts/axis-3d/linear-axis.js.map +1 -0
- package/esm/charts/axis-3d/log-axis.d.ts +46 -0
- package/esm/charts/axis-3d/log-axis.js +25 -0
- package/esm/charts/axis-3d/log-axis.js.map +1 -0
- package/esm/charts/axis-3d/symlog-axis.d.ts +46 -0
- package/esm/charts/axis-3d/symlog-axis.js +25 -0
- package/esm/charts/axis-3d/symlog-axis.js.map +1 -0
- package/esm/charts/axis-3d/theme.d.ts +2 -0
- package/esm/charts/axis-3d/theme.js +6 -0
- package/esm/charts/axis-3d/theme.js.map +1 -0
- package/esm/charts/axis-3d/time-axis.d.ts +45 -0
- package/esm/charts/axis-3d/time-axis.js +24 -0
- package/esm/charts/axis-3d/time-axis.js.map +1 -0
- package/esm/charts/axis-3d/util.d.ts +2 -0
- package/esm/charts/axis-3d/util.js +39 -0
- package/esm/charts/axis-3d/util.js.map +1 -0
- package/esm/charts/bar-3d/animation.d.ts +1 -0
- package/esm/charts/bar-3d/animation.js +11 -0
- package/esm/charts/bar-3d/animation.js.map +1 -0
- package/esm/charts/bar-3d/chart-spec-transformer.d.ts +6 -0
- package/esm/charts/bar-3d/chart-spec-transformer.js +11 -0
- package/esm/charts/bar-3d/chart-spec-transformer.js.map +1 -0
- package/esm/charts/bar-3d/chart.d.ts +13 -0
- package/esm/charts/bar-3d/chart.js +25 -0
- package/esm/charts/bar-3d/chart.js.map +1 -0
- package/esm/charts/bar-3d/constant.d.ts +12 -0
- package/esm/charts/bar-3d/constant.js +11 -0
- package/esm/charts/bar-3d/constant.js.map +1 -0
- package/esm/charts/bar-3d/index.d.ts +5 -0
- package/esm/charts/bar-3d/index.js +10 -0
- package/esm/charts/bar-3d/index.js.map +1 -0
- package/esm/charts/bar-3d/interface.d.ts +13 -0
- package/esm/charts/bar-3d/interface.js +2 -0
- package/esm/charts/bar-3d/interface.js.map +1 -0
- package/esm/charts/bar-3d/series-spec-transformer.d.ts +5 -0
- package/esm/charts/bar-3d/series-spec-transformer.js +7 -0
- package/esm/charts/bar-3d/series-spec-transformer.js.map +1 -0
- package/esm/charts/bar-3d/series.d.ts +17 -0
- package/esm/charts/bar-3d/series.js +30 -0
- package/esm/charts/bar-3d/series.js.map +1 -0
- package/esm/charts/bar-3d/theme.d.ts +2 -0
- package/esm/charts/bar-3d/theme.js +15 -0
- package/esm/charts/bar-3d/theme.js.map +1 -0
- package/esm/charts/conversion-funnel/arrow-data-transform.js.map +1 -1
- package/esm/charts/conversion-funnel/constants.d.ts +21 -0
- package/esm/charts/conversion-funnel/constants.js +25 -0
- package/esm/charts/conversion-funnel/constants.js.map +1 -0
- package/esm/charts/conversion-funnel/conversion-funnel-transformer.d.ts +2 -3
- package/esm/charts/conversion-funnel/conversion-funnel-transformer.js +4 -3
- package/esm/charts/conversion-funnel/conversion-funnel-transformer.js.map +1 -1
- package/esm/charts/conversion-funnel/conversion-funnel.d.ts +0 -21
- package/esm/charts/conversion-funnel/conversion-funnel.js +4 -28
- package/esm/charts/conversion-funnel/conversion-funnel.js.map +1 -1
- package/esm/charts/conversion-funnel/index.js.map +1 -1
- package/esm/charts/conversion-funnel/interface.js +1 -1
- package/esm/charts/conversion-funnel/interface.js.map +1 -1
- package/esm/charts/conversion-funnel/util.d.ts +1 -1
- package/esm/charts/conversion-funnel/util.js +1 -1
- package/esm/charts/conversion-funnel/util.js.map +1 -1
- package/esm/charts/funnel-3d/chart.d.ts +12 -0
- package/esm/charts/funnel-3d/chart.js +25 -0
- package/esm/charts/funnel-3d/chart.js.map +1 -0
- package/esm/charts/funnel-3d/constant.d.ts +80 -0
- package/esm/charts/funnel-3d/constant.js +25 -0
- package/esm/charts/funnel-3d/constant.js.map +1 -0
- package/esm/charts/funnel-3d/index.d.ts +4 -0
- package/esm/charts/funnel-3d/index.js +8 -0
- package/esm/charts/funnel-3d/index.js.map +1 -0
- package/esm/charts/funnel-3d/interface.d.ts +18 -0
- package/esm/charts/funnel-3d/interface.js +2 -0
- package/esm/charts/funnel-3d/interface.js.map +1 -0
- package/esm/charts/funnel-3d/series-spec-transformer.d.ts +5 -0
- package/esm/charts/funnel-3d/series-spec-transformer.js +8 -0
- package/esm/charts/funnel-3d/series-spec-transformer.js.map +1 -0
- package/esm/charts/funnel-3d/series.d.ts +99 -0
- package/esm/charts/funnel-3d/series.js +84 -0
- package/esm/charts/funnel-3d/series.js.map +1 -0
- package/esm/charts/funnel-3d/theme.d.ts +1 -0
- package/esm/charts/funnel-3d/theme.js +4 -0
- package/esm/charts/funnel-3d/theme.js.map +1 -0
- package/esm/charts/histogram-3d/chart.d.ts +12 -0
- package/esm/charts/histogram-3d/chart.js +30 -0
- package/esm/charts/histogram-3d/chart.js.map +1 -0
- package/esm/charts/histogram-3d/index.d.ts +2 -0
- package/esm/charts/histogram-3d/index.js +4 -0
- package/esm/charts/histogram-3d/index.js.map +1 -0
- package/esm/charts/histogram-3d/interface.d.ts +5 -0
- package/esm/charts/histogram-3d/interface.js +2 -0
- package/esm/charts/histogram-3d/interface.js.map +1 -0
- package/esm/charts/image-cloud/image-cloud-transformer.d.ts +6 -0
- package/esm/charts/image-cloud/image-cloud-transformer.js +11 -0
- package/esm/charts/image-cloud/image-cloud-transformer.js.map +1 -0
- package/esm/charts/image-cloud/image-cloud.d.ts +12 -0
- package/esm/charts/image-cloud/image-cloud.js +22 -0
- package/esm/charts/image-cloud/image-cloud.js.map +1 -0
- package/esm/charts/image-cloud/index.d.ts +2 -0
- package/esm/charts/image-cloud/index.js +4 -0
- package/esm/charts/image-cloud/index.js.map +1 -0
- package/esm/charts/image-cloud/interface.d.ts +6 -0
- package/esm/charts/image-cloud/interface.js +2 -0
- package/esm/charts/image-cloud/interface.js.map +1 -0
- package/esm/charts/image-cloud/series/animation.d.ts +23 -0
- package/esm/charts/image-cloud/series/animation.js +94 -0
- package/esm/charts/image-cloud/series/animation.js.map +1 -0
- package/esm/charts/image-cloud/series/constant.d.ts +76 -0
- package/esm/charts/image-cloud/series/constant.js +23 -0
- package/esm/charts/image-cloud/series/constant.js.map +1 -0
- package/esm/charts/image-cloud/series/image-cloud.d.ts +137 -0
- package/esm/charts/image-cloud/series/image-cloud.js +198 -0
- package/esm/charts/image-cloud/series/image-cloud.js.map +1 -0
- package/esm/charts/image-cloud/series/index.d.ts +2 -0
- package/esm/charts/image-cloud/series/index.js +4 -0
- package/esm/charts/image-cloud/series/index.js.map +1 -0
- package/esm/charts/image-cloud/series/interface.d.ts +25 -0
- package/esm/charts/image-cloud/series/interface.js +2 -0
- package/esm/charts/image-cloud/series/interface.js.map +1 -0
- package/esm/charts/image-cloud/series/tooltip-helper.d.ts +10 -0
- package/esm/charts/image-cloud/series/tooltip-helper.js +22 -0
- package/esm/charts/image-cloud/series/tooltip-helper.js.map +1 -0
- package/esm/charts/pictogram/element-highlight-by-graphic-name.d.ts +12 -0
- package/esm/charts/pictogram/element-highlight-by-graphic-name.js +49 -0
- package/esm/charts/pictogram/element-highlight-by-graphic-name.js.map +1 -0
- package/esm/charts/pictogram/element-select-by-graphic-name.d.ts +8 -0
- package/esm/charts/pictogram/element-select-by-graphic-name.js +25 -0
- package/esm/charts/pictogram/element-select-by-graphic-name.js.map +1 -0
- package/esm/charts/pictogram/index.d.ts +5 -0
- package/esm/charts/pictogram/index.js +10 -0
- package/esm/charts/pictogram/index.js.map +1 -0
- package/esm/charts/pictogram/interface.d.ts +6 -0
- package/esm/charts/pictogram/interface.js +2 -0
- package/esm/charts/pictogram/interface.js.map +1 -0
- package/esm/charts/pictogram/pictogram-transformer.d.ts +8 -0
- package/esm/charts/pictogram/pictogram-transformer.js +18 -0
- package/esm/charts/pictogram/pictogram-transformer.js.map +1 -0
- package/esm/charts/pictogram/pictogram.d.ts +12 -0
- package/esm/charts/pictogram/pictogram.js +22 -0
- package/esm/charts/pictogram/pictogram.js.map +1 -0
- package/esm/charts/pictogram/series/constant.d.ts +73 -0
- package/esm/charts/pictogram/series/constant.js +23 -0
- package/esm/charts/pictogram/series/constant.js.map +1 -0
- package/esm/charts/pictogram/series/interface.d.ts +13 -0
- package/esm/charts/pictogram/series/interface.js +2 -0
- package/esm/charts/pictogram/series/interface.js.map +1 -0
- package/esm/charts/pictogram/series/pictogram-transformer.d.ts +4 -0
- package/esm/charts/pictogram/series/pictogram-transformer.js +19 -0
- package/esm/charts/pictogram/series/pictogram-transformer.js.map +1 -0
- package/esm/charts/pictogram/series/pictogram.d.ts +129 -0
- package/esm/charts/pictogram/series/pictogram.js +305 -0
- package/esm/charts/pictogram/series/pictogram.js.map +1 -0
- package/esm/charts/pictogram/series/svg-source.d.ts +7 -0
- package/esm/charts/pictogram/series/svg-source.js +33 -0
- package/esm/charts/pictogram/series/svg-source.js.map +1 -0
- package/esm/charts/pictogram/series/tooltip-helper.d.ts +7 -0
- package/esm/charts/pictogram/series/tooltip-helper.js +18 -0
- package/esm/charts/pictogram/series/tooltip-helper.js.map +1 -0
- package/esm/charts/pictogram/series/transform.d.ts +76 -0
- package/esm/charts/pictogram/series/transform.js +144 -0
- package/esm/charts/pictogram/series/transform.js.map +1 -0
- package/esm/charts/pie-3d/animation.d.ts +1 -0
- package/esm/charts/pie-3d/animation.js +11 -0
- package/esm/charts/pie-3d/animation.js.map +1 -0
- package/esm/charts/pie-3d/chart-spec-transformer.d.ts +6 -0
- package/esm/charts/pie-3d/chart-spec-transformer.js +10 -0
- package/esm/charts/pie-3d/chart-spec-transformer.js.map +1 -0
- package/esm/charts/pie-3d/chart.d.ts +13 -0
- package/esm/charts/pie-3d/chart.js +26 -0
- package/esm/charts/pie-3d/chart.js.map +1 -0
- package/esm/charts/pie-3d/constant.d.ts +70 -0
- package/esm/charts/pie-3d/constant.js +13 -0
- package/esm/charts/pie-3d/constant.js.map +1 -0
- package/esm/charts/pie-3d/index.d.ts +5 -0
- package/esm/charts/pie-3d/index.js +10 -0
- package/esm/charts/pie-3d/index.js.map +1 -0
- package/esm/charts/pie-3d/interface.d.ts +17 -0
- package/esm/charts/pie-3d/interface.js +2 -0
- package/esm/charts/pie-3d/interface.js.map +1 -0
- package/esm/charts/pie-3d/series-spec-transformer.d.ts +5 -0
- package/esm/charts/pie-3d/series-spec-transformer.js +8 -0
- package/esm/charts/pie-3d/series-spec-transformer.js.map +1 -0
- package/esm/charts/pie-3d/series.d.ts +88 -0
- package/esm/charts/pie-3d/series.js +45 -0
- package/esm/charts/pie-3d/series.js.map +1 -0
- package/esm/charts/pie-3d/theme.d.ts +2 -0
- package/esm/charts/pie-3d/theme.js +15 -0
- package/esm/charts/pie-3d/theme.js.map +1 -0
- package/esm/charts/range-column-3d/chart-spec-transformer.d.ts +5 -0
- package/esm/charts/range-column-3d/chart-spec-transformer.js +11 -0
- package/esm/charts/range-column-3d/chart-spec-transformer.js.map +1 -0
- package/esm/charts/range-column-3d/chart.d.ts +13 -0
- package/esm/charts/range-column-3d/chart.js +32 -0
- package/esm/charts/range-column-3d/chart.js.map +1 -0
- package/esm/charts/range-column-3d/constant.d.ts +19 -0
- package/esm/charts/range-column-3d/constant.js +13 -0
- package/esm/charts/range-column-3d/constant.js.map +1 -0
- package/esm/charts/range-column-3d/index.d.ts +5 -0
- package/esm/charts/range-column-3d/index.js +10 -0
- package/esm/charts/range-column-3d/index.js.map +1 -0
- package/esm/charts/range-column-3d/interface.d.ts +8 -0
- package/esm/charts/range-column-3d/interface.js +2 -0
- package/esm/charts/range-column-3d/interface.js.map +1 -0
- package/esm/charts/range-column-3d/series-spec-transformer.d.ts +6 -0
- package/esm/charts/range-column-3d/series-spec-transformer.js +9 -0
- package/esm/charts/range-column-3d/series-spec-transformer.js.map +1 -0
- package/esm/charts/range-column-3d/series.d.ts +30 -0
- package/esm/charts/range-column-3d/series.js +24 -0
- package/esm/charts/range-column-3d/series.js.map +1 -0
- package/esm/charts/ranking-bar/interface.js +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-bar/ranking-bar.js +1 -1
- package/esm/charts/ranking-bar/ranking-bar.js.map +1 -1
- package/esm/charts/ranking-list/constant.js +10 -11
- package/esm/charts/ranking-list/constant.js.map +1 -1
- package/esm/charts/ranking-list/interface.d.ts +1 -0
- package/esm/charts/ranking-list/interface.js +1 -1
- package/esm/charts/ranking-list/interface.js.map +1 -1
- package/esm/charts/ranking-list/ranking-list-transformer.d.ts +21 -19
- package/esm/charts/ranking-list/ranking-list-transformer.js +15 -8
- package/esm/charts/ranking-list/ranking-list-transformer.js.map +1 -1
- package/esm/charts/ranking-list/ranking-list.js +1 -1
- package/esm/charts/ranking-list/ranking-list.js.map +1 -1
- package/esm/charts/ranking-list/utils.d.ts +1 -1
- package/esm/charts/ranking-list/utils.js +6 -6
- package/esm/charts/ranking-list/utils.js.map +1 -1
- package/esm/charts/sequence-scatter-kde/constant.d.ts +3 -0
- package/esm/charts/sequence-scatter-kde/constant.js +6 -0
- package/esm/charts/sequence-scatter-kde/constant.js.map +1 -0
- package/esm/charts/sequence-scatter-kde/interface.d.ts +29 -0
- package/esm/charts/sequence-scatter-kde/interface.js +2 -0
- package/esm/charts/sequence-scatter-kde/interface.js.map +1 -0
- package/esm/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.d.ts +6 -0
- package/esm/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.js +137 -0
- package/esm/charts/sequence-scatter-kde/sequence-scatter-kde-transformer.js.map +1 -0
- package/esm/charts/sequence-scatter-kde/sequence-scatter-kde.d.ts +16 -0
- package/esm/charts/sequence-scatter-kde/sequence-scatter-kde.js +28 -0
- package/esm/charts/sequence-scatter-kde/sequence-scatter-kde.js.map +1 -0
- package/esm/charts/sequence-scatter-kde/utils.d.ts +9 -0
- package/esm/charts/sequence-scatter-kde/utils.js +34 -0
- package/esm/charts/sequence-scatter-kde/utils.js.map +1 -0
- package/esm/charts/sequence-scatter-link/interface.d.ts +59 -0
- package/esm/charts/sequence-scatter-link/interface.js +2 -0
- package/esm/charts/sequence-scatter-link/interface.js.map +1 -0
- package/esm/charts/sequence-scatter-link/sequence-scatter-link-transformer.d.ts +6 -0
- package/esm/charts/sequence-scatter-link/sequence-scatter-link-transformer.js +321 -0
- package/esm/charts/sequence-scatter-link/sequence-scatter-link-transformer.js.map +1 -0
- package/esm/charts/sequence-scatter-link/sequence-scatter-link.d.ts +16 -0
- package/esm/charts/sequence-scatter-link/sequence-scatter-link.js +28 -0
- package/esm/charts/sequence-scatter-link/sequence-scatter-link.js.map +1 -0
- package/esm/charts/sequence-scatter-pixel/constant.d.ts +3 -0
- package/esm/charts/sequence-scatter-pixel/constant.js +6 -0
- package/esm/charts/sequence-scatter-pixel/constant.js.map +1 -0
- package/esm/charts/sequence-scatter-pixel/interface.d.ts +29 -0
- package/esm/charts/sequence-scatter-pixel/interface.js +2 -0
- package/esm/charts/sequence-scatter-pixel/interface.js.map +1 -0
- package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.d.ts +4 -0
- package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.js +64 -0
- package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel-transformer.js.map +1 -0
- package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel.d.ts +16 -0
- package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel.js +28 -0
- package/esm/charts/sequence-scatter-pixel/sequence-scatter-pixel.js.map +1 -0
- package/esm/charts/sequence-scatter-pixel/utils.d.ts +3 -0
- package/esm/charts/sequence-scatter-pixel/utils.js +46 -0
- package/esm/charts/sequence-scatter-pixel/utils.js.map +1 -0
- package/esm/charts/word-cloud-3d/animation.d.ts +4 -0
- package/esm/charts/word-cloud-3d/animation.js +18 -0
- package/esm/charts/word-cloud-3d/animation.js.map +1 -0
- package/esm/charts/word-cloud-3d/chart-spec-transformer.d.ts +5 -0
- package/esm/charts/word-cloud-3d/chart-spec-transformer.js +9 -0
- package/esm/charts/word-cloud-3d/chart-spec-transformer.js.map +1 -0
- package/esm/charts/word-cloud-3d/chart.d.ts +14 -0
- package/esm/charts/word-cloud-3d/chart.js +29 -0
- package/esm/charts/word-cloud-3d/chart.js.map +1 -0
- package/esm/charts/word-cloud-3d/index.d.ts +4 -0
- package/esm/charts/word-cloud-3d/index.js +8 -0
- package/esm/charts/word-cloud-3d/index.js.map +1 -0
- package/esm/charts/word-cloud-3d/interface.d.ts +22 -0
- package/esm/charts/word-cloud-3d/interface.js +2 -0
- package/esm/charts/word-cloud-3d/interface.js.map +1 -0
- package/esm/charts/word-cloud-3d/series.d.ts +37 -0
- package/esm/charts/word-cloud-3d/series.js +74 -0
- package/esm/charts/word-cloud-3d/series.js.map +1 -0
- package/esm/charts/word-cloud-3d/theme.d.ts +2 -0
- package/esm/charts/word-cloud-3d/theme.js +10 -0
- package/esm/charts/word-cloud-3d/theme.js.map +1 -0
- package/esm/components/bar-link/bar-link.d.ts +1 -1
- package/esm/components/bar-link/bar-link.js +1 -1
- package/esm/components/bar-link/bar-link.js.map +1 -1
- package/esm/components/bar-link/constant.js.map +1 -1
- package/esm/components/bar-link/index.js.map +1 -1
- package/esm/components/bar-link/type.js.map +1 -1
- package/esm/components/bar-link/util.d.ts +3 -4
- package/esm/components/bar-link/util.js +10 -11
- package/esm/components/bar-link/util.js.map +1 -1
- package/esm/components/map-label/index.d.ts +2 -0
- package/esm/components/map-label/index.js +4 -0
- package/esm/components/map-label/index.js.map +1 -0
- package/esm/components/map-label/layout.d.ts +23 -0
- package/esm/components/map-label/layout.js +143 -0
- package/esm/components/map-label/layout.js.map +1 -0
- package/esm/components/map-label/map-label-transformer.d.ts +5 -0
- package/esm/components/map-label/map-label-transformer.js +10 -0
- package/esm/components/map-label/map-label-transformer.js.map +1 -0
- package/esm/components/map-label/map-label.d.ts +53 -0
- package/esm/components/map-label/map-label.js +265 -0
- package/esm/components/map-label/map-label.js.map +1 -0
- package/esm/components/map-label/theme.d.ts +2 -0
- package/esm/components/map-label/theme.js +57 -0
- package/esm/components/map-label/theme.js.map +1 -0
- package/esm/components/map-label/type.d.ts +39 -0
- package/esm/components/map-label/type.js +2 -0
- package/esm/components/map-label/type.js.map +1 -0
- package/esm/components/series-break/constant.js +1 -2
- package/esm/components/series-break/constant.js.map +1 -1
- package/esm/components/series-break/index.js.map +1 -1
- package/esm/components/series-break/series-break.js +2 -2
- package/esm/components/series-break/series-break.js.map +1 -1
- package/esm/components/series-break/type.js.map +1 -1
- package/esm/components/series-break/util.d.ts +2 -2
- package/esm/components/series-break/util.js +6 -6
- package/esm/components/series-break/util.js.map +1 -1
- package/esm/components/series-label/constant.js.map +1 -1
- package/esm/components/series-label/index.js.map +1 -1
- package/esm/components/series-label/series-label.js +1 -1
- package/esm/components/series-label/series-label.js.map +1 -1
- package/esm/components/series-label/type.js +2 -1
- package/esm/components/series-label/type.js.map +1 -1
- package/esm/components/series-label/util.js +4 -4
- package/esm/components/series-label/util.js.map +1 -1
- package/esm/index.d.ts +12 -0
- package/esm/index.js +25 -1
- package/esm/index.js.map +1 -1
- package/esm/type/index.js.map +1 -1
- package/esm/type/type.js.map +1 -1
- package/esm/utils/element.js.map +1 -1
- package/esm/utils/math.js.map +1 -1
- package/package.json +11 -11
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { registerWordCloud3dAnimation } from "./animation";
|
|
2
|
+
|
|
3
|
+
import { SeriesType3dEnum } from "../3d/enum";
|
|
4
|
+
|
|
5
|
+
import { animationConfig, AttributeLevel, BaseWordCloudSeries, Factory, registerTextMark, userAnimationConfig } from "@visactor/vchart";
|
|
6
|
+
|
|
7
|
+
import { wordCloud3d } from "./theme";
|
|
8
|
+
|
|
9
|
+
export class WordCloud3dSeries extends BaseWordCloudSeries {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments), this.type = SeriesType3dEnum.wordCloud3d;
|
|
12
|
+
}
|
|
13
|
+
_wordCloudTransformOption() {
|
|
14
|
+
var _a;
|
|
15
|
+
return Object.assign(Object.assign({}, super._wordCloudTransformOption()), {
|
|
16
|
+
postProjection: null !== (_a = this._spec.postProjection) && void 0 !== _a ? _a : "StereographicProjection",
|
|
17
|
+
depth_3d: this._spec.depth_3d
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
_wordCloudShapeTransformOption() {
|
|
21
|
+
var _a;
|
|
22
|
+
return Object.assign(Object.assign({}, super._wordCloudShapeTransformOption()), {
|
|
23
|
+
postProjection: null !== (_a = this._spec.postProjection) && void 0 !== _a ? _a : "StereographicProjection",
|
|
24
|
+
depth_3d: this._spec.depth_3d
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
initMark() {
|
|
28
|
+
this._wordMark = this._createMark(BaseWordCloudSeries.mark.word, {
|
|
29
|
+
groupKey: this._seriesField,
|
|
30
|
+
isSeriesMark: !0
|
|
31
|
+
}, {
|
|
32
|
+
support3d: !0
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
initMarkStyle() {
|
|
36
|
+
super.initMarkStyle();
|
|
37
|
+
const wordMark = this._wordMark;
|
|
38
|
+
wordMark && this.setMarkStyle(wordMark, {
|
|
39
|
+
z: datum => {
|
|
40
|
+
var _a;
|
|
41
|
+
return null !== (_a = datum.z) && void 0 !== _a ? _a : 0;
|
|
42
|
+
}
|
|
43
|
+
}, "normal", AttributeLevel.Series);
|
|
44
|
+
}
|
|
45
|
+
initAnimation() {
|
|
46
|
+
var _a, _b;
|
|
47
|
+
const padding = null !== (_a = this._padding) && void 0 !== _a ? _a : {};
|
|
48
|
+
this._wordMark && this._wordMark.setAnimationConfig(animationConfig(null === (_b = Factory.getAnimationInKey("wordCloud3d")) || void 0 === _b ? void 0 : _b((() => {
|
|
49
|
+
var _a;
|
|
50
|
+
const stage = this.getCompiler().getStage(), width = stage.width - padding.left || 0 - padding.right || 0, height = stage.height - padding.top || 0 - padding.bottom || 0, r = Math.max(width, height) / 2;
|
|
51
|
+
return {
|
|
52
|
+
center: {
|
|
53
|
+
x: r,
|
|
54
|
+
y: r,
|
|
55
|
+
z: null !== (_a = this._spec.depth_3d) && void 0 !== _a ? _a : r
|
|
56
|
+
},
|
|
57
|
+
r: r
|
|
58
|
+
};
|
|
59
|
+
})), userAnimationConfig("word", this._spec, this._markAttributeContext)));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
WordCloud3dSeries.type = SeriesType3dEnum.wordCloud3d, WordCloud3dSeries.builtInTheme = {
|
|
64
|
+
wordCloud3d: wordCloud3d
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const registerWordCloud3dSeries = () => {
|
|
68
|
+
registerTextMark(), registerWordCloud3dAnimation(), Factory.registerSeries(WordCloud3dSeries.type, WordCloud3dSeries);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export const registerWordCloudShape3dSeries = () => {
|
|
72
|
+
registerTextMark(), registerWordCloud3dAnimation(), Factory.registerSeries(WordCloud3dSeries.type, WordCloud3dSeries);
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=series.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/charts/word-cloud-3d/series.ts"],"names":[],"mappings":"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","file":"series.js","sourcesContent":["import type { IWordCloud3dSeriesSpec } from './interface';\nimport { registerWordCloud3dAnimation } from './animation';\nimport { SeriesType3dEnum } from '../3d/enum';\nimport type { Datum, ITextMark } from '@visactor/vchart';\nimport {\n animationConfig,\n AttributeLevel,\n BaseWordCloudSeries,\n Factory,\n registerTextMark,\n SeriesMarkNameEnum,\n userAnimationConfig\n} from '@visactor/vchart';\nimport { wordCloud3d } from './theme';\n\nexport class WordCloud3dSeries<\n T extends IWordCloud3dSeriesSpec = IWordCloud3dSeriesSpec\n> extends BaseWordCloudSeries<T> {\n static readonly type: string = SeriesType3dEnum.wordCloud3d;\n type = SeriesType3dEnum.wordCloud3d;\n static readonly builtInTheme = { wordCloud3d };\n\n protected _wordCloudTransformOption() {\n return {\n ...super._wordCloudTransformOption(),\n postProjection: this._spec.postProjection ?? 'StereographicProjection',\n depth_3d: this._spec.depth_3d\n };\n }\n\n protected _wordCloudShapeTransformOption() {\n return {\n ...super._wordCloudShapeTransformOption(),\n postProjection: this._spec.postProjection ?? 'StereographicProjection',\n depth_3d: this._spec.depth_3d\n };\n }\n\n initMark(): void {\n this._wordMark = this._createMark(\n BaseWordCloudSeries.mark.word,\n {\n groupKey: this._seriesField,\n isSeriesMark: true\n },\n {\n support3d: true\n }\n ) as ITextMark;\n }\n\n initMarkStyle() {\n super.initMarkStyle();\n const wordMark = this._wordMark;\n if (wordMark) {\n this.setMarkStyle(\n wordMark,\n {\n z: (datum: Datum) => datum.z ?? 0\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initAnimation() {\n const padding = this._padding ?? {};\n if (this._wordMark) {\n this._wordMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('wordCloud3d')?.(() => {\n const stage = this.getCompiler().getStage();\n\n const width = stage.width - padding.left || 0 - padding.right || 0;\n const height = stage.height - padding.top || 0 - padding.bottom || 0;\n const r = Math.max(width, height) / 2;\n return {\n center: { x: r, y: r, z: this._spec.depth_3d ?? r },\n r\n };\n }),\n userAnimationConfig(SeriesMarkNameEnum.word, this._spec, this._markAttributeContext)\n )\n );\n }\n }\n}\n\nexport const registerWordCloud3dSeries = () => {\n registerTextMark();\n registerWordCloud3dAnimation();\n Factory.registerSeries(WordCloud3dSeries.type, WordCloud3dSeries);\n};\n\nexport const registerWordCloudShape3dSeries = () => {\n registerWordCloud3dSeries();\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/charts/word-cloud-3d/theme.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAA4B;IAClD,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC;QACV,KAAK,EAAE;YACL,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,YAAY;SAC3B;KACF;CACF,CAAC","file":"theme.js","sourcesContent":["import type { IWordCloud3dSeriesTheme } from './interface';\n\nexport const wordCloud3d: IWordCloud3dSeriesTheme = {\n word: {\n padding: 1,\n style: {\n textAlign: 'center',\n textBaseline: 'alphabetic'\n }\n }\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AbstractComponent } from '@visactor/vrender-components';
|
|
2
|
-
import { BarLinkAttrs } from './type';
|
|
2
|
+
import type { BarLinkAttrs } from './type';
|
|
3
3
|
export declare class BarLinkComponent extends AbstractComponent<Required<BarLinkAttrs>> {
|
|
4
4
|
name: string;
|
|
5
5
|
protected render(): void;
|
|
@@ -2,7 +2,7 @@ import { AbstractComponent, Segment } from "@visactor/vrender-components";
|
|
|
2
2
|
|
|
3
3
|
import { cloneDeep, isEmpty } from "@visactor/vutils";
|
|
4
4
|
|
|
5
|
-
import { Factory } from "@visactor/
|
|
5
|
+
import { Factory } from "@visactor/vchart";
|
|
6
6
|
|
|
7
7
|
import { createArea, createText } from "@visactor/vrender-core";
|
|
8
8
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["components/bar-link/bar-link.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"sources":["../src/components/bar-link/bar-link.ts"],"names":[],"mappings":"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","file":"bar-link.js","sourcesContent":["/**\n * @description 堆叠柱系列的连接线组件\n * @author zhangweixing\n */\nimport { AbstractComponent, Segment } from '@visactor/vrender-components';\nimport { cloneDeep, isEmpty } from '@visactor/vutils';\nimport { Factory } from '@visactor/vchart';\nimport { type IGraphic, type ILineGraphicAttribute, createArea, createText } from '@visactor/vrender-core';\nimport { STACK_FIELD_END, STACK_FIELD_START } from '@visactor/vchart';\nimport type { BarLinkAttrs } from './type';\nimport { BAR_LINK } from './constant';\n\nexport class BarLinkComponent extends AbstractComponent<Required<BarLinkAttrs>> {\n name = BAR_LINK;\n\n protected render() {\n const { data, linkStyle, areaStyle, styleMap, label, linkType = 'total' } = this.attribute as BarLinkAttrs;\n if (isEmpty(data)) {\n return;\n }\n this.removeAllChild();\n data.forEach((datum, index) => {\n const { linePoints, areaPoints, id = index, color, data: curData } = datum;\n\n if (areaPoints && styleMap?.[`area-${id}`]?.visible !== false) {\n // 先绘制面\n const area = createArea({\n points: areaPoints,\n fillOpacity: 0.3,\n fill: color,\n zIndex: 0,\n ...areaStyle,\n ...styleMap?.[`area-${id}`]\n });\n area.name = 'bar-link-area';\n area.id = `area-${id}`;\n this.add(area);\n }\n\n if (\n linePoints &&\n styleMap?.[`line-${id}`]?.visible !== false &&\n (linkStyle?.lineStyle as any)?.lineWidth !== 0 &&\n styleMap?.[`line-${id}`]?.lineWidth !== 0\n ) {\n // 再绘制点\n const { startSymbol = {}, endSymbol = {}, lineStyle } = linkStyle || {};\n\n const startSymbolAttrs = cloneDeep(startSymbol);\n const endSymbolAttrs = cloneDeep(endSymbol);\n if (styleMap?.[`line-${id}`] && styleMap[`line-${id}`].stroke) {\n (startSymbolAttrs as any).style = {\n ...(startSymbolAttrs as any).style,\n color: styleMap[`line-${id}`].stroke\n };\n (endSymbolAttrs as any).style = {\n ...(endSymbolAttrs as any).style,\n color: styleMap[`line-${id}`].stroke\n };\n }\n\n if (!(startSymbolAttrs as any).symbolType && !(startSymbolAttrs as any).originSymbolType) {\n (startSymbolAttrs as any).originSymbolType = 'solidArrow';\n }\n if (!(endSymbolAttrs as any).symbolType && !(endSymbolAttrs as any).originSymbolType) {\n (endSymbolAttrs as any).originSymbolType = 'solidArrow';\n }\n const line = new Segment({\n points: linePoints,\n startSymbol: {\n size: 8,\n ...startSymbolAttrs\n },\n endSymbol: {\n size: 8,\n ...endSymbolAttrs\n },\n lineStyle: {\n lineDash: [3, 3],\n lineWidth: 1,\n stroke: '#000',\n ...lineStyle,\n ...styleMap?.[`line-${id}`]\n } as ILineGraphicAttribute,\n pickable: true,\n childrenPickable: false,\n zIndex: 1\n });\n line.name = 'bar-link-line';\n line.id = `line-${id}`;\n this.add(line as unknown as IGraphic);\n }\n\n if (label?.visible && styleMap?.[`label-${id}`]?.visible !== false) {\n const { style, formatMethod } = label;\n\n const [startData, endData] = curData;\n\n let startValue = startData[STACK_FIELD_END];\n let endValue = endData[STACK_FIELD_END];\n if (linkType === 'value') {\n startValue = startData[STACK_FIELD_END] - startData[STACK_FIELD_START];\n endValue = endData[STACK_FIELD_END] - endData[STACK_FIELD_START];\n }\n\n const value = endValue - startValue;\n const percentage = ((endValue - startValue) / startValue) * 100;\n\n const text = createText({\n x: (linePoints[0].x + linePoints[1].x) * 0.5,\n y: (linePoints[0].y + linePoints[1].y) * 0.5,\n text: formatMethod ? (formatMethod(value, percentage, curData) as string) : `${value} ${percentage}`,\n fontSize: 14,\n fill: '#000',\n stroke: '#fff',\n lineWidth: 1,\n textAlign: 'center',\n textBaseline: 'middle',\n background: '#fff',\n zIndex: 2,\n ...style,\n ...styleMap?.[`label-${id}`]\n });\n text.name = 'bar-link-label';\n text.id = `label-${id}`;\n this.add(text);\n }\n });\n }\n}\n\nexport const registerBarLink = () => {\n Factory.registerGraphicComponent(\n BAR_LINK,\n (attrs: Required<BarLinkAttrs>) => new BarLinkComponent(attrs) as unknown as IGraphic\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["components/bar-link/constant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC","file":"constant.js","sourcesContent":["export const BAR_LINK = 'barLink';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/bar-link/constant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC","file":"constant.js","sourcesContent":["export const BAR_LINK = 'barLink';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["components/bar-link/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/D,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC/D,cAAc,YAAY,CAAC","file":"index.js","sourcesContent":["export { BarLinkComponent, registerBarLink } from './bar-link';\nexport * from './type';\nexport { getBarLinkConfig, appendBarLinkConfig } from './util';\nexport * from './constant';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/bar-link/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/D,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC/D,cAAc,YAAY,CAAC","file":"index.js","sourcesContent":["export { BarLinkComponent, registerBarLink } from './bar-link';\nexport * from './type';\nexport { getBarLinkConfig, appendBarLinkConfig } from './util';\nexport * from './constant';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["components/bar-link/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n IAreaGraphicAttribute,\n IGroupGraphicAttribute,\n ILineGraphicAttribute,\n ITextGraphicAttribute\n} from '@visactor/vrender-core';\nimport type { SegmentAttributes } from '@visactor/vrender-components';\nimport type { Dict, IPointLike } from '@visactor/vutils';\n\nexport type Point = {\n x: number;\n y: number;\n};\n\nexport type BarLinkDatum = {\n /**\n * 用于绘制的面积的坐标点\n */\n areaPoints: [IPointLike, IPointLike];\n /**\n * 用于绘制线的坐标点\n */\n linePoints: [IPointLike, IPointLike];\n\n /**\n * 唯一标识,如果不声明,则默认使用数据索引\n */\n id?: string;\n color?: string;\n /**\n * 点携带的图形数据\n */\n data: [Dict<any>, Dict<any>];\n};\n\nexport interface BarLinkAttrs extends IGroupGraphicAttribute {\n data: BarLinkDatum[];\n /**\n * 连接类型\n * 1. 'total' 累计值进行连接\n * 2. 'value' 本身值连接\n */\n linkType?: 'total' | 'value';\n /**\n * 是否填充\n */\n doFill?: boolean;\n linkStyle?: Pick<SegmentAttributes, 'startSymbol' | 'endSymbol' | 'lineStyle'>;\n areaStyle?: IAreaGraphicAttribute;\n /**\n * 用于配置各个线的样式,key 对应线的 id,主要用于连接线的编辑场景\n * 1. 删除:{ visible: false }\n * 2. 样式编辑:{ stroke: 'red' }\n */\n styleMap?: Record<string, ILineGraphicAttribute>;\n label?: {\n visible?: boolean;\n style?: ITextGraphicAttribute;\n formatMethod?: (value: number, percent: number, data: [any, any]) => (string | number) | (string | number)[];\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/bar-link/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n IAreaGraphicAttribute,\n IGroupGraphicAttribute,\n ILineGraphicAttribute,\n ITextGraphicAttribute\n} from '@visactor/vrender-core';\nimport type { SegmentAttributes } from '@visactor/vrender-components';\nimport type { Dict, IPointLike } from '@visactor/vutils';\n\nexport type Point = {\n x: number;\n y: number;\n};\n\nexport type BarLinkDatum = {\n /**\n * 用于绘制的面积的坐标点\n */\n areaPoints: [IPointLike, IPointLike];\n /**\n * 用于绘制线的坐标点\n */\n linePoints: [IPointLike, IPointLike];\n\n /**\n * 唯一标识,如果不声明,则默认使用数据索引\n */\n id?: string;\n color?: string;\n /**\n * 点携带的图形数据\n */\n data: [Dict<any>, Dict<any>];\n};\n\nexport interface BarLinkAttrs extends IGroupGraphicAttribute {\n data: BarLinkDatum[];\n /**\n * 连接类型\n * 1. 'total' 累计值进行连接\n * 2. 'value' 本身值连接\n */\n linkType?: 'total' | 'value';\n /**\n * 是否填充\n */\n doFill?: boolean;\n linkStyle?: Pick<SegmentAttributes, 'startSymbol' | 'endSymbol' | 'lineStyle'>;\n areaStyle?: IAreaGraphicAttribute;\n /**\n * 用于配置各个线的样式,key 对应线的 id,主要用于连接线的编辑场景\n * 1. 删除:{ visible: false }\n * 2. 样式编辑:{ stroke: 'red' }\n */\n styleMap?: Record<string, ILineGraphicAttribute>;\n label?: {\n visible?: boolean;\n style?: ITextGraphicAttribute;\n formatMethod?: (value: number, percent: number, data: [any, any]) => (string | number) | (string | number)[];\n };\n}\n"]}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type { IElement } from '@visactor/vgrammar-core';
|
|
2
1
|
import type { Dict } from '@visactor/vutils';
|
|
3
2
|
import type { BarLinkAttrs, BarLinkDatum } from './type';
|
|
4
|
-
import type { ISpec } from '@visactor/vchart';
|
|
5
|
-
export declare function groupBarsByFields(elements:
|
|
6
|
-
export declare function getLinkData(currentElement:
|
|
3
|
+
import type { IMarkGraphic, ISpec } from '@visactor/vchart';
|
|
4
|
+
export declare function groupBarsByFields(elements: IMarkGraphic[], groupFields: string[]): Dict<IMarkGraphic[]>;
|
|
5
|
+
export declare function getLinkData(currentElement: IMarkGraphic, nextElement: IMarkGraphic, config: {
|
|
7
6
|
isHorizontal: boolean;
|
|
8
7
|
isXAxisInverse: boolean;
|
|
9
8
|
isYAxisInverse: boolean;
|
|
@@ -8,24 +8,23 @@ var __rest = this && this.__rest || function(s, e) {
|
|
|
8
8
|
return t;
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
import { STACK_FIELD_END } from "@visactor/vchart";
|
|
11
|
+
import { getDatumOfGraphic, STACK_FIELD_END } from "@visactor/vchart";
|
|
12
12
|
|
|
13
13
|
import { array } from "@visactor/vutils";
|
|
14
14
|
|
|
15
15
|
import { BAR_LINK } from "./constant";
|
|
16
16
|
|
|
17
17
|
export function groupBarsByFields(elements, groupFields) {
|
|
18
|
-
var _a;
|
|
19
18
|
const result = {};
|
|
20
19
|
for (let i = 0; i < elements.length; i++) {
|
|
21
|
-
const item = elements[i], itemData =
|
|
20
|
+
const item = elements[i], itemData = getDatumOfGraphic(item), groupKey = groupFields.map((field => itemData[field])).join("-");
|
|
22
21
|
result[groupKey] || (result[groupKey] = []), result[groupKey].push(item);
|
|
23
22
|
}
|
|
24
23
|
return result;
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
export function getLinkData(currentElement, nextElement, config) {
|
|
28
|
-
const {isHorizontal: isHorizontal, isXAxisInverse: isXAxisInverse, isYAxisInverse: isYAxisInverse, linkType: linkType, doFill: doFill, regionStartX: regionStartX, regionStartY: regionStartY} = config,
|
|
27
|
+
const {isHorizontal: isHorizontal, isXAxisInverse: isXAxisInverse, isYAxisInverse: isYAxisInverse, linkType: linkType, doFill: doFill, regionStartX: regionStartX, regionStartY: regionStartY} = config, currentBarBounds = currentElement.AABBBounds, nextBarBounds = nextElement.AABBBounds;
|
|
29
28
|
let linePoints, areaPoints;
|
|
30
29
|
return isHorizontal ? (linePoints = [ {
|
|
31
30
|
x: (currentBarBounds.x1 + currentBarBounds.x2) / 2 + regionStartX,
|
|
@@ -98,8 +97,8 @@ export function getLinkData(currentElement, nextElement, config) {
|
|
|
98
97
|
} ]))), {
|
|
99
98
|
areaPoints: areaPoints,
|
|
100
99
|
linePoints: linePoints,
|
|
101
|
-
data: [ currentElement
|
|
102
|
-
color:
|
|
100
|
+
data: [ getDatumOfGraphic(currentElement), getDatumOfGraphic(nextElement) ],
|
|
101
|
+
color: currentElement.attribute.fill
|
|
103
102
|
};
|
|
104
103
|
}
|
|
105
104
|
|
|
@@ -118,20 +117,20 @@ export function getBarLinkConfig(style = {}, extraStyle) {
|
|
|
118
117
|
if (barSeriesArr.length) {
|
|
119
118
|
const groupFields = barSeriesArr[0].getGroupFields(), allBarElements = [];
|
|
120
119
|
barSeriesArr.forEach((barSeries => {
|
|
121
|
-
var _a
|
|
122
|
-
(null === (
|
|
120
|
+
var _a;
|
|
121
|
+
(null === (_a = barSeries.getMarkInName("bar")) || void 0 === _a ? void 0 : _a.getGraphics()).forEach((barElement => {
|
|
123
122
|
allBarElements.push(barElement);
|
|
124
123
|
}));
|
|
125
124
|
}));
|
|
126
125
|
const groupData = groupBarsByFields(allBarElements, groupFields);
|
|
127
126
|
Object.values(groupData).forEach((groupedValues => {
|
|
128
|
-
groupedValues.sort(((prev, curr) => prev
|
|
127
|
+
groupedValues.sort(((prev, curr) => getDatumOfGraphic(prev)[STACK_FIELD_END] - getDatumOfGraphic(curr)[STACK_FIELD_END]));
|
|
129
128
|
}));
|
|
130
129
|
const barSeries = barSeriesArr[0], isHorizontal = "horizontal" === barSeries.direction, isYAxisInverse = barSeries.getYAxisHelper().isInverse(), isXAxisInverse = barSeries.getXAxisHelper().isInverse(), groupValues = Object.values(groupData);
|
|
131
130
|
if (groupValues.length) if (isHorizontal) {
|
|
132
|
-
groupValues[0][0].
|
|
131
|
+
groupValues[0][0].AABBBounds.y1 < groupValues[groupValues.length - 1][0].AABBBounds.y1 && groupValues.reverse();
|
|
133
132
|
} else {
|
|
134
|
-
groupValues[0][0].
|
|
133
|
+
groupValues[0][0].AABBBounds.x1 > groupValues[groupValues.length - 1][0].AABBBounds.x1 && groupValues.reverse();
|
|
135
134
|
}
|
|
136
135
|
for (let index = 0; index < groupValues.length - 1; index++) {
|
|
137
136
|
const currentValues = groupValues[index], nextValues = groupValues[index + 1];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["components/bar-link/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { IElement } from '@visactor/vgrammar-core';\nimport type { Dict, IPointLike } from '@visactor/vutils';\nimport type { BarLinkAttrs, BarLinkDatum } from './type';\nimport type { ICartesianSeries, ISpec } from '@visactor/vchart';\nimport { STACK_FIELD_END } from '@visactor/vchart';\nimport { array } from '@visactor/vutils';\nimport { BAR_LINK } from './constant';\n\nexport function groupBarsByFields(elements: IElement[], groupFields: string[]) {\n const result: Dict<IElement[]> = {};\n for (let i = 0; i < elements.length; i++) {\n const item = elements[i];\n const itemData = item.data?.[0];\n const groupKey = groupFields.map(field => itemData[field]).join('-');\n if (!result[groupKey]) {\n result[groupKey] = [];\n }\n result[groupKey].push(item);\n }\n return result;\n}\n\nexport function getLinkData(\n currentElement: IElement,\n nextElement: IElement,\n config: {\n isHorizontal: boolean;\n isXAxisInverse: boolean;\n isYAxisInverse: boolean;\n linkType: string;\n doFill: boolean;\n regionStartX: number;\n regionStartY: number;\n }\n): BarLinkDatum {\n const { isHorizontal, isXAxisInverse, isYAxisInverse, linkType, doFill, regionStartX, regionStartY } = config;\n const currentBarGraphic = currentElement.getGraphicItem();\n const nextBarGraphic = nextElement.getGraphicItem();\n const currentBarBounds = currentBarGraphic.AABBBounds;\n const nextBarBounds = nextBarGraphic.AABBBounds;\n\n let linePoints: [IPointLike, IPointLike];\n let areaPoints: [IPointLike, IPointLike];\n\n if (isHorizontal) {\n linePoints = [\n {\n x: (currentBarBounds.x1 + currentBarBounds.x2) / 2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: (nextBarBounds.x1 + nextBarBounds.x2) / 2 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n if (isXAxisInverse) {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x1 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x1 + regionStartX,\n x1: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n x1: nextBarBounds.x2 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n } else {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x2 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n x1: currentBarBounds.x1 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x2 + regionStartX,\n x1: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n }\n } else {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: (currentBarBounds.y1 + currentBarBounds.y2) / 2 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: (nextBarBounds.y1 + nextBarBounds.y2) / 2 + regionStartY\n }\n ];\n\n if (isYAxisInverse) {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y2 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y2 + regionStartY,\n y1: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY,\n y1: nextBarBounds.y1 + regionStartY\n }\n ];\n }\n } else {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y1 + regionStartY\n }\n ];\n }\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY,\n y1: currentBarBounds.y2 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y1 + regionStartY,\n y1: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n }\n }\n\n return {\n // points,\n areaPoints,\n linePoints,\n data: [currentElement.data[0], nextElement.data[0]],\n color: currentBarGraphic.attribute.fill as string\n };\n}\n\nexport function getBarLinkConfig(\n style: Pick<BarLinkAttrs, 'areaStyle' | 'label' | 'linkStyle' | 'styleMap' | 'doFill' | 'linkType'> = {},\n extraStyle?: any\n) {\n const { linkType = 'total', doFill, ...rest } = style;\n return {\n type: 'component',\n componentType: BAR_LINK,\n zIndex: 500, // 需要处于 region 上层\n interactive: false,\n style: {\n data: (datum: any, context: any) => {\n const { vchart } = context;\n const regions = vchart.getChart().getAllRegions();\n const linkLineData: BarLinkDatum[] = [];\n regions.forEach((region: any) => {\n // 获取所有 bar 系列\n const barSeriesArr = region\n .getSeries()\n .filter((s: ICartesianSeries) => s.type === 'bar') as ICartesianSeries[];\n const { x: regionStartX, y: regionStartY } = region.getLayoutStartPoint();\n if (barSeriesArr.length) {\n const groupFields = barSeriesArr[0].getGroupFields();\n const allBarElements: IElement[] = [];\n barSeriesArr.forEach(barSeries => {\n const barGraphicElements = barSeries.getMarkInName('bar')?.getProduct()?.elements;\n barGraphicElements.forEach(barElement => {\n allBarElements.push(barElement);\n });\n });\n // 按照 xField/yField 进行分组\n const groupData = groupBarsByFields(allBarElements, groupFields);\n\n // 对同组内的图形进行排序\n Object.values(groupData).forEach((groupedValues: IElement[]) => {\n groupedValues.sort((prev: IElement, curr: IElement) => {\n return prev.data[0][STACK_FIELD_END] - curr.data[0][STACK_FIELD_END];\n });\n });\n\n const barSeries = barSeriesArr[0];\n const isHorizontal = barSeries.direction === 'horizontal';\n const isYAxisInverse = barSeries.getYAxisHelper().isInverse();\n const isXAxisInverse = barSeries.getXAxisHelper().isInverse();\n\n const groupValues: IElement[][] = Object.values(groupData);\n\n // 根据每组图形:\n // 1. 水平,每组图形的 y1 进行由小到大排序,保证图形顺序\n // 2. 垂直,每组图形的 x1 进行由小到大排序,保证图形顺序\n if (groupValues.length) {\n if (isHorizontal) {\n const firstElementPosY = groupValues[0][0].getGraphicItem().AABBBounds.y1;\n const lastElementPosY = groupValues[groupValues.length - 1][0].getGraphicItem().AABBBounds.y1;\n if (firstElementPosY < lastElementPosY) {\n groupValues.reverse();\n }\n } else {\n const firstElementPosX = groupValues[0][0].getGraphicItem().AABBBounds.x1;\n const lastElementPosX = groupValues[groupValues.length - 1][0].getGraphicItem().AABBBounds.x1;\n if (firstElementPosX > lastElementPosX) {\n groupValues.reverse();\n }\n }\n }\n\n for (let index = 0; index < groupValues.length - 1; index++) {\n const currentValues: IElement[] = groupValues[index];\n const nextValues: IElement[] = groupValues[index + 1];\n\n currentValues.forEach((element, elementIndex) => {\n const nextElement = nextValues[elementIndex] ?? nextValues[nextValues.length - 1];\n\n const linkData = getLinkData(element, nextElement, {\n isHorizontal,\n isXAxisInverse,\n isYAxisInverse,\n doFill,\n linkType,\n regionStartX,\n regionStartY\n });\n\n linkLineData.push(linkData);\n });\n\n if (currentValues.length < nextValues.length) {\n // 如果当前组的个数小于下一个组的个数,用当前组的最后一个元素去链接下一组剩余的图形\n // 使用当前组的最后一个元素去链接下一组剩余的图形\n const lastElementOfCurrentElement = currentValues[currentValues.length - 1];\n for (let i = currentValues.length; i < nextValues.length; i++) {\n const nextElement = nextValues[i];\n\n const linkData = getLinkData(lastElementOfCurrentElement, nextElement, {\n isHorizontal,\n isXAxisInverse,\n isYAxisInverse,\n doFill,\n linkType,\n regionStartX,\n regionStartY\n });\n\n linkLineData.push(linkData);\n }\n }\n }\n }\n });\n\n return linkLineData;\n },\n linkType,\n ...rest,\n ...extraStyle\n }\n };\n}\n\nexport function appendBarLinkConfig(\n rawSpec: ISpec,\n barLinkSpec?: Pick<BarLinkAttrs, 'areaStyle' | 'label' | 'linkStyle' | 'styleMap' | 'doFill' | 'linkType'>\n) {\n // 判断 editorSpec 中是否有 barLink,有则添加 customMark\n (rawSpec as any).customMark = array((rawSpec as any).customMark).filter((obj: any) => obj.componentType !== BAR_LINK);\n (rawSpec as any).customMark.push(getBarLinkConfig(barLinkSpec));\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/bar-link/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { Dict, IPointLike } from '@visactor/vutils';\nimport type { BarLinkAttrs, BarLinkDatum } from './type';\nimport type { Datum, ICartesianSeries, IMarkGraphic, ISpec } from '@visactor/vchart';\nimport { getDatumOfGraphic, STACK_FIELD_END } from '@visactor/vchart';\nimport { array } from '@visactor/vutils';\nimport { BAR_LINK } from './constant';\n\nexport function groupBarsByFields(elements: IMarkGraphic[], groupFields: string[]) {\n const result: Dict<IMarkGraphic[]> = {};\n for (let i = 0; i < elements.length; i++) {\n const item = elements[i];\n const itemData = getDatumOfGraphic(item) as Datum;\n const groupKey = groupFields.map(field => itemData[field]).join('-');\n if (!result[groupKey]) {\n result[groupKey] = [];\n }\n result[groupKey].push(item);\n }\n return result;\n}\n\nexport function getLinkData(\n currentElement: IMarkGraphic,\n nextElement: IMarkGraphic,\n config: {\n isHorizontal: boolean;\n isXAxisInverse: boolean;\n isYAxisInverse: boolean;\n linkType: string;\n doFill: boolean;\n regionStartX: number;\n regionStartY: number;\n }\n): BarLinkDatum {\n const { isHorizontal, isXAxisInverse, isYAxisInverse, linkType, doFill, regionStartX, regionStartY } = config;\n\n const currentBarBounds = currentElement.AABBBounds;\n const nextBarBounds = nextElement.AABBBounds;\n\n let linePoints: [IPointLike, IPointLike];\n let areaPoints: [IPointLike, IPointLike];\n\n if (isHorizontal) {\n linePoints = [\n {\n x: (currentBarBounds.x1 + currentBarBounds.x2) / 2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: (nextBarBounds.x1 + nextBarBounds.x2) / 2 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n if (isXAxisInverse) {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x1 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x1 + regionStartX,\n x1: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n x1: nextBarBounds.x2 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n } else {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x2 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n x1: currentBarBounds.x1 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x2 + regionStartX,\n x1: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n }\n } else {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: (currentBarBounds.y1 + currentBarBounds.y2) / 2 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: (nextBarBounds.y1 + nextBarBounds.y2) / 2 + regionStartY\n }\n ];\n\n if (isYAxisInverse) {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y2 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y2 + regionStartY,\n y1: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y2 + regionStartY,\n y1: nextBarBounds.y1 + regionStartY\n }\n ];\n }\n } else {\n if (linkType === 'total') {\n linePoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y1 + regionStartY\n }\n ];\n }\n if (doFill) {\n areaPoints = [\n {\n x: currentBarBounds.x2 + regionStartX,\n y: currentBarBounds.y1 + regionStartY,\n y1: currentBarBounds.y2 + regionStartY\n },\n {\n x: nextBarBounds.x1 + regionStartX,\n y: nextBarBounds.y1 + regionStartY,\n y1: nextBarBounds.y2 + regionStartY\n }\n ];\n }\n }\n }\n\n return {\n // points,\n areaPoints,\n linePoints,\n data: [getDatumOfGraphic(currentElement) as Datum, getDatumOfGraphic(nextElement) as Datum],\n color: currentElement.attribute.fill as string\n };\n}\n\nexport function getBarLinkConfig(\n style: Pick<BarLinkAttrs, 'areaStyle' | 'label' | 'linkStyle' | 'styleMap' | 'doFill' | 'linkType'> = {},\n extraStyle?: any\n) {\n const { linkType = 'total', doFill, ...rest } = style;\n return {\n type: 'component',\n componentType: BAR_LINK,\n zIndex: 500, // 需要处于 region 上层\n interactive: false,\n style: {\n data: (datum: any, context: any) => {\n const { vchart } = context;\n const regions = vchart.getChart().getAllRegions();\n const linkLineData: BarLinkDatum[] = [];\n regions.forEach((region: any) => {\n // 获取所有 bar 系列\n const barSeriesArr = region\n .getSeries()\n .filter((s: ICartesianSeries) => s.type === 'bar') as ICartesianSeries[];\n const { x: regionStartX, y: regionStartY } = region.getLayoutStartPoint();\n if (barSeriesArr.length) {\n const groupFields = barSeriesArr[0].getGroupFields();\n const allBarElements: IMarkGraphic[] = [];\n barSeriesArr.forEach(barSeries => {\n const barGraphicElements = barSeries.getMarkInName('bar')?.getGraphics();\n\n barGraphicElements.forEach(barElement => {\n allBarElements.push(barElement);\n });\n });\n // 按照 xField/yField 进行分组\n const groupData = groupBarsByFields(allBarElements, groupFields);\n\n // 对同组内的图形进行排序\n Object.values(groupData).forEach((groupedValues: IMarkGraphic[]) => {\n groupedValues.sort((prev: IMarkGraphic, curr: IMarkGraphic) => {\n return (\n (getDatumOfGraphic(prev) as Datum)[STACK_FIELD_END] -\n (getDatumOfGraphic(curr) as Datum)[STACK_FIELD_END]\n );\n });\n });\n\n const barSeries = barSeriesArr[0];\n const isHorizontal = barSeries.direction === 'horizontal';\n const isYAxisInverse = barSeries.getYAxisHelper().isInverse();\n const isXAxisInverse = barSeries.getXAxisHelper().isInverse();\n\n const groupValues: IMarkGraphic[][] = Object.values(groupData);\n\n // 根据每组图形:\n // 1. 水平,每组图形的 y1 进行由小到大排序,保证图形顺序\n // 2. 垂直,每组图形的 x1 进行由小到大排序,保证图形顺序\n if (groupValues.length) {\n if (isHorizontal) {\n const firstElementPosY = groupValues[0][0].AABBBounds.y1;\n const lastElementPosY = groupValues[groupValues.length - 1][0].AABBBounds.y1;\n if (firstElementPosY < lastElementPosY) {\n groupValues.reverse();\n }\n } else {\n const firstElementPosX = groupValues[0][0].AABBBounds.x1;\n const lastElementPosX = groupValues[groupValues.length - 1][0].AABBBounds.x1;\n if (firstElementPosX > lastElementPosX) {\n groupValues.reverse();\n }\n }\n }\n\n for (let index = 0; index < groupValues.length - 1; index++) {\n const currentValues: IMarkGraphic[] = groupValues[index];\n const nextValues: IMarkGraphic[] = groupValues[index + 1];\n\n currentValues.forEach((element, elementIndex) => {\n const nextElement = nextValues[elementIndex] ?? nextValues[nextValues.length - 1];\n\n const linkData = getLinkData(element, nextElement, {\n isHorizontal,\n isXAxisInverse,\n isYAxisInverse,\n doFill,\n linkType,\n regionStartX,\n regionStartY\n });\n\n linkLineData.push(linkData);\n });\n\n if (currentValues.length < nextValues.length) {\n // 如果当前组的个数小于下一个组的个数,用当前组的最后一个元素去链接下一组剩余的图形\n // 使用当前组的最后一个元素去链接下一组剩余的图形\n const lastElementOfCurrentElement = currentValues[currentValues.length - 1];\n for (let i = currentValues.length; i < nextValues.length; i++) {\n const nextElement = nextValues[i];\n\n const linkData = getLinkData(lastElementOfCurrentElement, nextElement, {\n isHorizontal,\n isXAxisInverse,\n isYAxisInverse,\n doFill,\n linkType,\n regionStartX,\n regionStartY\n });\n\n linkLineData.push(linkData);\n }\n }\n }\n }\n });\n\n return linkLineData;\n },\n linkType,\n ...rest,\n ...extraStyle\n }\n };\n}\n\nexport function appendBarLinkConfig(\n rawSpec: ISpec,\n barLinkSpec?: Pick<BarLinkAttrs, 'areaStyle' | 'label' | 'linkStyle' | 'styleMap' | 'doFill' | 'linkType'>\n) {\n // 判断 editorSpec 中是否有 barLink,有则添加 customMark\n (rawSpec as any).customMark = array((rawSpec as any).customMark).filter((obj: any) => obj.componentType !== BAR_LINK);\n (rawSpec as any).customMark.push(getBarLinkConfig(barLinkSpec));\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/map-label/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC","file":"index.js","sourcesContent":["export * from './map-label';\nexport * from './type';\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Feature } from '@visactor/vutils';
|
|
2
|
+
import type { IRect, IOrientType, IPoint } from '@visactor/vchart';
|
|
3
|
+
type IBound = {
|
|
4
|
+
x1: number;
|
|
5
|
+
x2: number;
|
|
6
|
+
y1: number;
|
|
7
|
+
y2: number;
|
|
8
|
+
};
|
|
9
|
+
export interface IPairInfo {
|
|
10
|
+
rect: IRect;
|
|
11
|
+
point: IPoint;
|
|
12
|
+
pointCoord?: IPoint;
|
|
13
|
+
anchors?: IOrientType[];
|
|
14
|
+
offset?: number;
|
|
15
|
+
index: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function bound(rect: IRect): IBound;
|
|
18
|
+
export declare function layoutByPosition(pairs: IPairInfo[]): IRect[];
|
|
19
|
+
export declare function layoutOuter(pairs: IPairInfo[], features: Feature[], dataToPosition: (coord: number[]) => IPoint | null): IRect[];
|
|
20
|
+
export declare function layoutOuter2(pairs: IPairInfo[], features: Feature[], dataToPosition: (coord: number[]) => IPoint | null): IRect[];
|
|
21
|
+
export declare function placeRectByOrient(rect: IRect, position: IOrientType, offset?: number): IRect;
|
|
22
|
+
export declare function candidatesByOrient(positions: IOrientType[], anchor: IPoint, rect: Pick<IRect, 'width' | 'height'>, offset?: number): IPoint[];
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { isPointInPolygon, destination, getAABBFromPoints } from "@visactor/vutils";
|
|
2
|
+
|
|
3
|
+
function overlap(a, b, sep = 0) {
|
|
4
|
+
return sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function bound(rect) {
|
|
8
|
+
return {
|
|
9
|
+
x1: rect.x,
|
|
10
|
+
x2: rect.x + rect.width,
|
|
11
|
+
y1: rect.y,
|
|
12
|
+
y2: rect.y + rect.height
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function toRect(bound) {
|
|
17
|
+
return {
|
|
18
|
+
x: bound.x1,
|
|
19
|
+
y: bound.y1,
|
|
20
|
+
width: bound.x2 - bound.x1,
|
|
21
|
+
height: bound.y2 - bound.y1
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function layoutByPosition(pairs) {
|
|
26
|
+
var _a;
|
|
27
|
+
if (!pairs || 0 === pairs.length) return [];
|
|
28
|
+
if (1 === pairs.length) return [ pairs[0].rect ];
|
|
29
|
+
const _pairs = pairs.map((pair => {
|
|
30
|
+
var _a;
|
|
31
|
+
return Object.assign(Object.assign({}, pair), {
|
|
32
|
+
bound: bound(pair.rect),
|
|
33
|
+
anchorCandidates: candidatesByOrient(null !== (_a = pair.anchors) && void 0 !== _a ? _a : [], pair.point, pair.rect, pair.offset)
|
|
34
|
+
});
|
|
35
|
+
})), resultBound = [];
|
|
36
|
+
resultBound.push(_pairs[0].bound);
|
|
37
|
+
for (let i = 1; i <= _pairs.length - 1; i++) {
|
|
38
|
+
const curPair = _pairs[i], curBound = curPair.bound;
|
|
39
|
+
let isOverlap = resultBound.some((r => overlap(r, curBound)));
|
|
40
|
+
if (curPair.anchorCandidates) if (isOverlap && (null === (_a = curPair.anchorCandidates) || void 0 === _a ? void 0 : _a.length) > 0) {
|
|
41
|
+
for (let j = 0; j < curPair.anchorCandidates.length; j++) {
|
|
42
|
+
const anchor = curPair.anchorCandidates[j], newBound = {
|
|
43
|
+
x1: anchor.x,
|
|
44
|
+
y1: anchor.y,
|
|
45
|
+
x2: anchor.x + curBound.x2 - curBound.x1,
|
|
46
|
+
y2: anchor.y + curBound.y2 - curBound.y1,
|
|
47
|
+
anchor: anchor
|
|
48
|
+
};
|
|
49
|
+
if (!resultBound.some((r => overlap(r, newBound)))) {
|
|
50
|
+
resultBound.push(newBound), isOverlap = !1;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
isOverlap && resultBound.push(curPair.bound);
|
|
55
|
+
} else resultBound.push(curPair.bound);
|
|
56
|
+
}
|
|
57
|
+
return resultBound.map((bound => toRect(bound)));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function layoutOuter(pairs, features, dataToPosition) {
|
|
61
|
+
const _points = pairs.map((rect => rect.pointCoord)), {x1: x1, x2: x2, y1: y1, y2: y2} = getAABBFromPoints(_points), centerPosition = dataToPosition([ (x1 + x2) / 2, (y1 + y2) / 2 ]);
|
|
62
|
+
if (!centerPosition) return [];
|
|
63
|
+
return layoutByPosition(pairs.map((pair => {
|
|
64
|
+
const rect = pair.rect, targetPoint = isPointWithinFeatures(features, pair.pointCoord) ? dataToPosition(nearestPoint(features, [ pair.pointCoord.x, pair.pointCoord.y ], uniformDegree(lineDegree(pair.point, centerPosition)))) : pair.point;
|
|
65
|
+
targetPoint && (rect.x = targetPoint.x, rect.y = targetPoint.y);
|
|
66
|
+
const degree = uniformDegree(lineDegree(pair.point, centerPosition));
|
|
67
|
+
let position;
|
|
68
|
+
const anchors = [];
|
|
69
|
+
return degree >= -45 && degree < 45 ? (position = "top", anchors.push("left", "right")) : degree >= 45 && degree < 135 ? position = "right" : degree >= -135 && degree < -45 ? (position = "left",
|
|
70
|
+
anchors.push("left")) : (position = "bottom", anchors.push("left", "right")), pair.anchors = anchors,
|
|
71
|
+
pair.offset = 20, pair.rect = placeRectByOrient(pair.rect, position, 0), pair;
|
|
72
|
+
})));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export function layoutOuter2(pairs, features, dataToPosition) {
|
|
76
|
+
let x = 0, y = 0;
|
|
77
|
+
for (let i = 0; i < pairs.length; i++) x += pairs[i].pointCoord.x, y += pairs[i].pointCoord.y;
|
|
78
|
+
x /= pairs.length, y /= pairs.length;
|
|
79
|
+
const centerPosition = dataToPosition([ x, y ]);
|
|
80
|
+
if (!centerPosition) return [];
|
|
81
|
+
const count = pairs.length;
|
|
82
|
+
pairs.sort(((a, b) => lineDegree(centerPosition, a.point) - lineDegree(centerPosition, b.point)));
|
|
83
|
+
return layoutByPosition(pairs.map(((pair, index) => {
|
|
84
|
+
let degree = 360 / count * index;
|
|
85
|
+
degree = uniformDegree((degree + lineDegree(centerPosition, pair.point)) / 2);
|
|
86
|
+
const targetPoint = isPointWithinFeatures(features, pair.pointCoord) ? dataToPosition(nearestPoint(features, [ pair.pointCoord.x, pair.pointCoord.y ], degree)) : pair.point;
|
|
87
|
+
let position;
|
|
88
|
+
targetPoint && (pair.rect.x = targetPoint.x, pair.rect.y = targetPoint.y);
|
|
89
|
+
const anchors = [];
|
|
90
|
+
return degree >= -45 && degree < 45 ? (position = "top", anchors.push("left", "right")) : degree >= 45 && degree < 135 ? position = "right" : degree >= -135 && degree < -45 ? (position = "left",
|
|
91
|
+
anchors.push("left")) : (position = "bottom", anchors.push("left", "right")), pair.anchors = anchors,
|
|
92
|
+
pair.offset = 20, pair.rect = placeRectByOrient(pair.rect, position, 0), pair;
|
|
93
|
+
})).sort(((a, b) => a.index - b.index)));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function uniformDegree(degree) {
|
|
97
|
+
return degree > 180 ? degree - 360 : degree;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function lineDegree(start, end) {
|
|
101
|
+
return 180 * Math.atan2(start.y - end.y, start.x - end.x) / Math.PI + 90;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function nearestPoint(features, origin, bearing, distance = 200) {
|
|
105
|
+
const count = 5621 / distance;
|
|
106
|
+
let curOrigin = origin;
|
|
107
|
+
for (let i = 1; i <= count; i++) {
|
|
108
|
+
const dest = destination(curOrigin, distance, bearing);
|
|
109
|
+
if (!isPointWithinFeatures(features, dest)) return [ dest.x, dest.y ];
|
|
110
|
+
curOrigin = [ dest.x, dest.y ];
|
|
111
|
+
}
|
|
112
|
+
return origin;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function isPointWithinFeatures(features, p) {
|
|
116
|
+
for (let i = 0; i < features.length; i++) {
|
|
117
|
+
if (isPointInPolygon(p, features[i])) return !0;
|
|
118
|
+
}
|
|
119
|
+
return !1;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export function placeRectByOrient(rect, position, offset = 0) {
|
|
123
|
+
const result = Object.assign({}, rect);
|
|
124
|
+
return "top" === position ? (result.x -= rect.width / 2, result.y -= offset + rect.height / 2) : "bottom" === position ? (result.x -= rect.width / 2,
|
|
125
|
+
result.y += offset - rect.height / 2) : "left" === position ? (result.x -= offset + rect.width,
|
|
126
|
+
result.y -= rect.height / 2) : "right" === position && (result.x += offset, result.y -= rect.height / 2),
|
|
127
|
+
result;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export function candidatesByOrient(positions, anchor, rect, offset = 0) {
|
|
131
|
+
const candidates = [];
|
|
132
|
+
return positions.forEach((p => {
|
|
133
|
+
const {x: x, y: y} = placeRectByOrient(Object.assign(Object.assign({}, anchor), {
|
|
134
|
+
width: rect.width,
|
|
135
|
+
height: rect.height
|
|
136
|
+
}), p, offset);
|
|
137
|
+
candidates.push({
|
|
138
|
+
x: x,
|
|
139
|
+
y: y
|
|
140
|
+
});
|
|
141
|
+
})), candidates;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/map-label/layout.ts"],"names":[],"mappings":"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","file":"layout.js","sourcesContent":["import type { Feature } from '@visactor/vutils';\nimport { isPointInPolygon, destination, getAABBFromPoints } from '@visactor/vutils';\nimport type { IRect, IOrientType, IPoint } from '@visactor/vchart';\n\ntype IBound = {\n x1: number;\n x2: number;\n y1: number;\n y2: number;\n};\nexport interface IPairInfo {\n /** 矩形信息 */\n rect: IRect;\n /** 对应点的画布坐标 */\n point: IPoint;\n /** 对应点的经纬度坐标 */\n pointCoord?: IPoint;\n /** 基于锚点的可放置位置 */\n anchors?: IOrientType[];\n /** 距离锚点的位置偏移量 */\n offset?: number;\n /** 原始顺序 */\n index: number;\n}\n\nfunction overlap<T extends IBound>(a: T, b: T, sep = 0) {\n return sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2);\n}\n\nexport function bound(rect: IRect): IBound {\n return {\n x1: rect.x,\n x2: rect.x + rect.width,\n y1: rect.y,\n y2: rect.y + rect.height\n };\n}\n\nfunction toRect(bound: IBound): IRect {\n return {\n x: bound.x1,\n y: bound.y1,\n width: bound.x2 - bound.x1,\n height: bound.y2 - bound.y1\n };\n}\n\n/**\n * 根据可选位置进行躲避布局\n * @param pairs\n * @returns\n */\nexport function layoutByPosition(pairs: IPairInfo[]): IRect[] {\n if (!pairs || pairs.length === 0) {\n return [];\n }\n\n // 只有一个无需布局\n if (pairs.length === 1) {\n return [pairs[0].rect];\n }\n\n const _pairs = pairs.map(pair => {\n return {\n ...pair,\n bound: bound(pair.rect),\n anchorCandidates: candidatesByOrient(pair.anchors ?? [], pair.point!, pair.rect, pair.offset)\n };\n });\n\n const resultBound: IBound[] = [];\n // 默认布局第一个\n resultBound.push(_pairs[0].bound);\n\n for (let i = 1; i <= _pairs.length - 1; i++) {\n const curPair = _pairs[i];\n const curBound = curPair.bound;\n // 遍历检测\n let isOverlap = resultBound.some(r => overlap(r, curBound));\n if (!curPair.anchorCandidates) {\n continue;\n }\n if (isOverlap && curPair.anchorCandidates?.length > 0) {\n for (let j = 0; j < curPair.anchorCandidates.length; j++) {\n const anchor = curPair.anchorCandidates[j];\n const newBound = {\n x1: anchor.x,\n y1: anchor.y,\n x2: anchor.x + curBound.x2 - curBound.x1,\n y2: anchor.y + curBound.y2 - curBound.y1,\n anchor\n };\n if (!resultBound.some(r => overlap(r, newBound))) {\n resultBound.push(newBound);\n isOverlap = false;\n break;\n }\n }\n if (isOverlap) {\n // 所有候选位置都放不下\n resultBound.push(curPair.bound);\n }\n } else {\n resultBound.push(curPair.bound);\n }\n }\n\n return resultBound.map(bound => toRect(bound));\n}\n\nexport function layoutOuter(\n pairs: IPairInfo[],\n features: Feature[],\n dataToPosition: (coord: number[]) => IPoint | null\n): IRect[] {\n // 1. 计算包围圆\n const _points = pairs.map(rect => rect.pointCoord);\n const { x1, x2, y1, y2 } = getAABBFromPoints(_points);\n const geoCenter = [(x1 + x2) / 2, (y1 + y2) / 2];\n const centerPosition = dataToPosition(geoCenter);\n\n if (!centerPosition) {\n return [];\n }\n\n // 2. 遍历每个rect\n // anchor与圆心的交点方向,尝试寻找不在地图区域内部的新锚点\n const result = pairs.map(pair => {\n const rect = pair.rect;\n const targetPoint = !isPointWithinFeatures(features, pair.pointCoord!)\n ? pair.point\n : dataToPosition(\n nearestPoint(\n features,\n [pair.pointCoord!.x, pair.pointCoord!.y],\n uniformDegree(lineDegree(pair.point!, centerPosition))\n )\n );\n\n if (targetPoint) {\n rect.x = targetPoint.x;\n rect.y = targetPoint.y;\n }\n // 3. 根据finalAnchor在包围圆上的位置,调整rect的位置\n // 将圆根据圆心角划分为4个区域,对应不同的position\n\n const degree = uniformDegree(lineDegree(pair.point!, centerPosition));\n\n let position: IOrientType;\n const anchors: IOrientType[] = [];\n if (degree >= -45 && degree < 45) {\n position = 'top';\n anchors.push('left', 'right');\n } else if (degree >= 45 && degree < 135) {\n position = 'right';\n } else if (degree >= -135 && degree < -45) {\n position = 'left';\n anchors.push('left');\n } else {\n position = 'bottom';\n anchors.push('left', 'right');\n }\n pair.anchors = anchors;\n pair.offset = 20;\n pair.rect = placeRectByOrient(pair.rect, position, 0);\n return pair;\n });\n\n return layoutByPosition(result);\n}\n\nexport function layoutOuter2(\n pairs: IPairInfo[],\n features: Feature[],\n dataToPosition: (coord: number[]) => IPoint | null\n): IRect[] {\n // 1. 计算几何中心\n let x = 0;\n let y = 0;\n for (let i = 0; i < pairs.length; i++) {\n x += pairs[i].pointCoord.x;\n y += pairs[i].pointCoord.y;\n }\n x /= pairs.length;\n y /= pairs.length;\n const centerPosition = dataToPosition([x, y]);\n if (!centerPosition) {\n return [];\n }\n\n const count = pairs.length;\n\n // 2. 按照圆心角排序\n pairs.sort((a, b) => {\n return lineDegree(centerPosition, a.point) - lineDegree(centerPosition, b.point);\n });\n\n const result = pairs.map((pair, index) => {\n let degree = (360 / count) * index;\n const _degree = lineDegree(centerPosition, pair.point);\n degree = uniformDegree((degree + _degree) / 2);\n const targetPoint = !isPointWithinFeatures(features, pair.pointCoord)\n ? pair.point\n : dataToPosition(nearestPoint(features, [pair.pointCoord.x, pair.pointCoord.y], degree));\n if (targetPoint) {\n pair.rect.x = targetPoint.x;\n pair.rect.y = targetPoint.y;\n }\n // 3. 根据finalAnchor在包围圆上的位置,调整rect的位置\n // 将圆根据圆心角划分为4个区域,对应不同的position\n let position: IOrientType;\n const anchors: IOrientType[] = [];\n if (degree >= -45 && degree < 45) {\n position = 'top';\n anchors.push('left', 'right');\n } else if (degree >= 45 && degree < 135) {\n position = 'right';\n } else if (degree >= -135 && degree < -45) {\n position = 'left';\n anchors.push('left');\n } else {\n position = 'bottom';\n anchors.push('left', 'right');\n }\n\n pair.anchors = anchors;\n pair.offset = 20;\n pair.rect = placeRectByOrient(pair.rect, position, 0);\n return pair;\n });\n\n return layoutByPosition(result.sort((a, b) => a.index - b.index));\n}\n\nfunction uniformDegree(degree: number) {\n return degree > 180 ? degree - 360 : degree;\n}\n\nfunction lineDegree(start: IPoint, end: IPoint) {\n return (Math.atan2(start.y - end.y, start.x - end.x) * 180) / Math.PI + 90;\n}\n\nfunction nearestPoint(features: Feature[], origin: number[], bearing: number, distance = 200) {\n const count = 5621 / distance;\n let curOrigin = origin;\n for (let i = 1; i <= count; i++) {\n const dest = destination(curOrigin as unknown as IPoint, distance, bearing);\n if (!isPointWithinFeatures(features, dest)) {\n return [dest.x, dest.y];\n }\n curOrigin = [dest.x, dest.y];\n }\n return origin;\n}\n\nfunction isPointWithinFeatures(features: Feature[], p: IPoint) {\n for (let i = 0; i < features.length; i++) {\n const inside = isPointInPolygon(p, features[i] as any);\n if (inside) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * 以rect左上角为锚点的,根据position位置调整rect布局。\n * @param rect\n * @param position 在锚点的四周位置,'top' | 'bottom' | 'left' | 'right'\n * @param offset rect与锚点间的距离\n * @returns\n */\nexport function placeRectByOrient(rect: IRect, position: IOrientType, offset = 0) {\n const result: IRect = { ...rect };\n if (position === 'top') {\n result.x -= rect.width / 2;\n result.y -= offset + rect.height / 2;\n } else if (position === 'bottom') {\n result.x -= rect.width / 2;\n result.y += offset - rect.height / 2;\n } else if (position === 'left') {\n result.x -= offset + rect.width;\n result.y -= rect.height / 2;\n } else if (position === 'right') {\n result.x += offset;\n result.y -= rect.height / 2;\n }\n return result;\n}\n\nexport function candidatesByOrient(\n positions: IOrientType[],\n anchor: IPoint,\n rect: Pick<IRect, 'width' | 'height'>,\n offset = 0\n) {\n const candidates: IPoint[] = [];\n positions.forEach((p: IOrientType) => {\n const { x, y } = placeRectByOrient({ ...anchor, width: rect.width, height: rect.height }, p, offset);\n candidates.push({ x, y });\n });\n return candidates;\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BaseComponentSpecTransformer } from '@visactor/vchart';
|
|
2
|
+
import { IMapLabelSpec, IMapLabelStyleSpec } from './type';
|
|
3
|
+
export declare class MapLabelSpecTransformer<T extends IMapLabelSpec = IMapLabelSpec, K extends IMapLabelStyleSpec = IMapLabelStyleSpec> extends BaseComponentSpecTransformer<T, K> {
|
|
4
|
+
protected _getDefaultSpecFromChart(): Partial<T>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseComponentSpecTransformer } from "@visactor/vchart";
|
|
2
|
+
|
|
3
|
+
import { mapLabel } from "./theme";
|
|
4
|
+
|
|
5
|
+
export class MapLabelSpecTransformer extends BaseComponentSpecTransformer {
|
|
6
|
+
_getDefaultSpecFromChart() {
|
|
7
|
+
return mapLabel;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=map-label-transformer.js.map
|