@visactor/vchart 1.12.0-alpha.4 → 1.12.0-alpha.5
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/es5/index.js +1 -1
- package/build/index.js +7465 -7766
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/base/base-chart.d.ts +0 -1
- package/cjs/chart/base/base-chart.js +3 -4
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/cartesian/cartesian-transformer.d.ts +0 -4
- package/cjs/chart/cartesian/cartesian-transformer.js +10 -25
- package/cjs/chart/cartesian/cartesian-transformer.js.map +1 -1
- package/cjs/chart/index.d.ts +3 -5
- package/cjs/chart/index.js +2 -16
- package/cjs/chart/index.js.map +1 -1
- package/cjs/chart/interface/type.d.ts +1 -2
- package/cjs/chart/interface/type.js +1 -2
- package/cjs/chart/interface/type.js.map +1 -1
- package/cjs/chart/stack.d.ts +1 -11
- package/cjs/chart/stack.js +4 -5
- package/cjs/chart/stack.js.map +1 -1
- package/cjs/chart/util.js +2 -1
- package/cjs/chart/util.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/label/interface.d.ts +1 -2
- package/cjs/component/label/interface.js.map +1 -1
- package/cjs/component/label/label.js +5 -8
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/label/util.d.ts +0 -9
- package/cjs/component/label/util.js +8 -35
- package/cjs/component/label/util.js.map +1 -1
- package/cjs/component/marker/base-marker.d.ts +3 -4
- package/cjs/component/marker/base-marker.js +45 -6
- package/cjs/component/marker/base-marker.js.map +1 -1
- package/cjs/component/marker/interface.d.ts +3 -3
- package/cjs/component/marker/interface.js.map +1 -1
- package/cjs/component/marker/mark-area/cartesian-mark-area.d.ts +2 -2
- package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
- package/cjs/component/marker/mark-area/interface/spec.d.ts +2 -3
- package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-area/polar-mark-area.d.ts +2 -2
- package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
- package/cjs/component/marker/mark-line/cartesian-mark-line.d.ts +2 -2
- package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
- package/cjs/component/marker/mark-line/interface/spec.d.ts +5 -5
- package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-line/polar-mark-line.d.ts +2 -2
- package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
- package/cjs/component/marker/mark-point/cartesian-mark-point.d.ts +2 -2
- package/cjs/component/marker/mark-point/cartesian-mark-point.js +1 -1
- package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
- package/cjs/component/marker/mark-point/geo-mark-point.d.ts +1 -2
- package/cjs/component/marker/mark-point/geo-mark-point.js.map +1 -1
- package/cjs/component/marker/mark-point/interface/spec.d.ts +3 -4
- package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-point/polar-mark-point.d.ts +1 -2
- package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
- package/cjs/component/marker/utils.d.ts +3 -2
- package/cjs/component/marker/utils.js +14 -16
- package/cjs/component/marker/utils.js.map +1 -1
- package/cjs/constant/index.d.ts +0 -5
- package/cjs/constant/index.js +2 -6
- package/cjs/constant/index.js.map +1 -1
- package/cjs/core/index.d.ts +2 -1
- package/cjs/core/index.js +2 -2
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/vchart.d.ts +1 -0
- package/cjs/core/vchart.js +34 -28
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/transforms/aggregation.d.ts +3 -8
- package/cjs/data/transforms/aggregation.js +2 -62
- package/cjs/data/transforms/aggregation.js.map +1 -1
- package/cjs/data/transforms/stack-split.js +2 -2
- package/cjs/data/transforms/stack-split.js.map +1 -1
- package/cjs/index-wx.d.ts +0 -1
- package/cjs/index-wx.js +1 -1
- package/cjs/index-wx.js.map +1 -1
- package/cjs/model/interface.d.ts +1 -0
- package/cjs/model/interface.js.map +1 -1
- package/cjs/series/base/base-series.js +13 -12
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/interface/common.d.ts +0 -2
- package/cjs/series/interface/common.js.map +1 -1
- package/cjs/series/interface/series.d.ts +1 -3
- package/cjs/series/interface/series.js.map +1 -1
- package/cjs/series/interface/theme.d.ts +0 -2
- package/cjs/series/interface/theme.js +1 -2
- package/cjs/series/interface/theme.js.map +1 -1
- package/cjs/series/interface/type.d.ts +1 -2
- package/cjs/series/interface/type.js +1 -1
- package/cjs/series/interface/type.js.map +1 -1
- package/cjs/series/polar/animation.js +6 -6
- package/cjs/series/polar/animation.js.map +1 -1
- package/cjs/series/progress/linear/linear.d.ts +3 -1
- package/cjs/series/progress/linear/linear.js +61 -46
- package/cjs/series/progress/linear/linear.js.map +1 -1
- package/cjs/series/sankey/interface.d.ts +4 -5
- package/cjs/series/sankey/interface.js.map +1 -1
- package/cjs/series/sankey/sankey.d.ts +2 -7
- package/cjs/series/sankey/sankey.js +151 -47
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/waterfall/waterfall-transformer.js +1 -1
- package/cjs/series/waterfall/waterfall-transformer.js.map +1 -1
- package/cjs/series/waterfall/waterfall.d.ts +1 -0
- package/cjs/series/waterfall/waterfall.js +13 -13
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/theme/builtin/common/series/index.js +2 -3
- package/cjs/theme/builtin/common/series/index.js.map +1 -1
- package/cjs/theme/builtin/common/series/pie.js +0 -1
- package/cjs/theme/builtin/common/series/pie.js.map +1 -1
- package/cjs/theme/builtin/common/series/pie3d.js +0 -1
- package/cjs/theme/builtin/common/series/pie3d.js.map +1 -1
- package/cjs/util/data.d.ts +1 -24
- package/cjs/util/data.js +17 -88
- package/cjs/util/data.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +0 -1
- package/esm/chart/base/base-chart.js +3 -4
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/cartesian/cartesian-transformer.d.ts +0 -4
- package/esm/chart/cartesian/cartesian-transformer.js +10 -25
- package/esm/chart/cartesian/cartesian-transformer.js.map +1 -1
- package/esm/chart/index.d.ts +3 -5
- package/esm/chart/index.js +2 -4
- package/esm/chart/index.js.map +1 -1
- package/esm/chart/interface/type.d.ts +1 -2
- package/esm/chart/interface/type.js +1 -2
- package/esm/chart/interface/type.js.map +1 -1
- package/esm/chart/stack.d.ts +1 -11
- package/esm/chart/stack.js +4 -5
- package/esm/chart/stack.js.map +1 -1
- package/esm/chart/util.js +2 -1
- package/esm/chart/util.js.map +1 -1
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/label/interface.d.ts +1 -2
- package/esm/component/label/interface.js.map +1 -1
- package/esm/component/label/label.js +5 -9
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/label/util.d.ts +0 -9
- package/esm/component/label/util.js +5 -34
- package/esm/component/label/util.js.map +1 -1
- package/esm/component/marker/base-marker.d.ts +3 -4
- package/esm/component/marker/base-marker.js +39 -6
- package/esm/component/marker/base-marker.js.map +1 -1
- package/esm/component/marker/interface.d.ts +3 -3
- package/esm/component/marker/interface.js.map +1 -1
- package/esm/component/marker/mark-area/cartesian-mark-area.d.ts +2 -2
- package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
- package/esm/component/marker/mark-area/interface/spec.d.ts +2 -3
- package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-area/polar-mark-area.d.ts +2 -2
- package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
- package/esm/component/marker/mark-line/cartesian-mark-line.d.ts +2 -2
- package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
- package/esm/component/marker/mark-line/interface/spec.d.ts +5 -5
- package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-line/polar-mark-line.d.ts +2 -2
- package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
- package/esm/component/marker/mark-point/cartesian-mark-point.d.ts +2 -2
- package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
- package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
- package/esm/component/marker/mark-point/geo-mark-point.d.ts +1 -2
- package/esm/component/marker/mark-point/geo-mark-point.js.map +1 -1
- package/esm/component/marker/mark-point/interface/spec.d.ts +3 -4
- package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-point/polar-mark-point.d.ts +1 -2
- package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
- package/esm/component/marker/utils.d.ts +3 -2
- package/esm/component/marker/utils.js +14 -16
- package/esm/component/marker/utils.js.map +1 -1
- package/esm/constant/index.d.ts +0 -5
- package/esm/constant/index.js +0 -10
- package/esm/constant/index.js.map +1 -1
- package/esm/core/index.d.ts +2 -1
- package/esm/core/index.js +3 -1
- package/esm/core/index.js.map +1 -1
- package/esm/core/vchart.d.ts +1 -0
- package/esm/core/vchart.js +34 -28
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/transforms/aggregation.d.ts +3 -8
- package/esm/data/transforms/aggregation.js +2 -60
- package/esm/data/transforms/aggregation.js.map +1 -1
- package/esm/data/transforms/stack-split.js +2 -2
- package/esm/data/transforms/stack-split.js.map +1 -1
- package/esm/index-wx.d.ts +0 -1
- package/esm/index-wx.js +0 -2
- package/esm/index-wx.js.map +1 -1
- package/esm/model/interface.d.ts +1 -0
- package/esm/model/interface.js.map +1 -1
- package/esm/series/base/base-series.js +12 -11
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/interface/common.d.ts +0 -2
- package/esm/series/interface/common.js.map +1 -1
- package/esm/series/interface/series.d.ts +1 -3
- package/esm/series/interface/series.js.map +1 -1
- package/esm/series/interface/theme.d.ts +0 -2
- package/esm/series/interface/theme.js +1 -2
- package/esm/series/interface/theme.js.map +1 -1
- package/esm/series/interface/type.d.ts +1 -2
- package/esm/series/interface/type.js +1 -1
- package/esm/series/interface/type.js.map +1 -1
- package/esm/series/polar/animation.js +5 -6
- package/esm/series/polar/animation.js.map +1 -1
- package/esm/series/progress/linear/linear.d.ts +3 -1
- package/esm/series/progress/linear/linear.js +62 -46
- package/esm/series/progress/linear/linear.js.map +1 -1
- package/esm/series/sankey/interface.d.ts +4 -5
- package/esm/series/sankey/interface.js.map +1 -1
- package/esm/series/sankey/sankey.d.ts +2 -7
- package/esm/series/sankey/sankey.js +147 -49
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/waterfall/waterfall-transformer.js +1 -1
- package/esm/series/waterfall/waterfall-transformer.js.map +1 -1
- package/esm/series/waterfall/waterfall.d.ts +1 -0
- package/esm/series/waterfall/waterfall.js +12 -12
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/theme/builtin/common/series/index.js +1 -4
- package/esm/theme/builtin/common/series/index.js.map +1 -1
- package/esm/theme/builtin/common/series/pie.js +0 -1
- package/esm/theme/builtin/common/series/pie.js.map +1 -1
- package/esm/theme/builtin/common/series/pie3d.js +0 -1
- package/esm/theme/builtin/common/series/pie3d.js.map +1 -1
- package/esm/util/data.d.ts +1 -24
- package/esm/util/data.js +17 -86
- package/esm/util/data.js.map +1 -1
- package/package.json +4 -4
- package/cjs/chart/mosaic/index.d.ts +0 -3
- package/cjs/chart/mosaic/index.js +0 -22
- package/cjs/chart/mosaic/index.js.map +0 -1
- package/cjs/chart/mosaic/interface.d.ts +0 -7
- package/cjs/chart/mosaic/interface.js +0 -6
- package/cjs/chart/mosaic/interface.js.map +0 -1
- package/cjs/chart/mosaic/mosaic-transformer.d.ts +0 -9
- package/cjs/chart/mosaic/mosaic-transformer.js +0 -43
- package/cjs/chart/mosaic/mosaic-transformer.js.map +0 -1
- package/cjs/chart/mosaic/mosaic.d.ts +0 -20
- package/cjs/chart/mosaic/mosaic.js +0 -39
- package/cjs/chart/mosaic/mosaic.js.map +0 -1
- package/cjs/series/mosaic/interface.d.ts +0 -16
- package/cjs/series/mosaic/interface.js +0 -6
- package/cjs/series/mosaic/interface.js.map +0 -1
- package/cjs/series/mosaic/mosaic.d.ts +0 -16
- package/cjs/series/mosaic/mosaic.js +0 -69
- package/cjs/series/mosaic/mosaic.js.map +0 -1
- package/cjs/series/sankey/sankey-transformer.d.ts +0 -5
- package/cjs/series/sankey/sankey-transformer.js +0 -16
- package/cjs/series/sankey/sankey-transformer.js.map +0 -1
- package/cjs/theme/builtin/common/series/mosaic.d.ts +0 -2
- package/cjs/theme/builtin/common/series/mosaic.js +0 -27
- package/cjs/theme/builtin/common/series/mosaic.js.map +0 -1
- package/esm/chart/mosaic/index.d.ts +0 -3
- package/esm/chart/mosaic/index.js +0 -6
- package/esm/chart/mosaic/index.js.map +0 -1
- package/esm/chart/mosaic/interface.d.ts +0 -7
- package/esm/chart/mosaic/interface.js +0 -2
- package/esm/chart/mosaic/interface.js.map +0 -1
- package/esm/chart/mosaic/mosaic-transformer.d.ts +0 -9
- package/esm/chart/mosaic/mosaic-transformer.js +0 -37
- package/esm/chart/mosaic/mosaic-transformer.js.map +0 -1
- package/esm/chart/mosaic/mosaic.d.ts +0 -20
- package/esm/chart/mosaic/mosaic.js +0 -41
- package/esm/chart/mosaic/mosaic.js.map +0 -1
- package/esm/series/mosaic/interface.d.ts +0 -16
- package/esm/series/mosaic/interface.js +0 -2
- package/esm/series/mosaic/interface.js.map +0 -1
- package/esm/series/mosaic/mosaic.d.ts +0 -16
- package/esm/series/mosaic/mosaic.js +0 -78
- package/esm/series/mosaic/mosaic.js.map +0 -1
- package/esm/series/sankey/sankey-transformer.d.ts +0 -5
- package/esm/series/sankey/sankey-transformer.js +0 -8
- package/esm/series/sankey/sankey-transformer.js.map +0 -1
- package/esm/theme/builtin/common/series/mosaic.d.ts +0 -2
- package/esm/theme/builtin/common/series/mosaic.js +0 -23
- package/esm/theme/builtin/common/series/mosaic.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/theme/builtin/common/series/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/theme/builtin/common/series/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,KAAK;IACL,GAAG;IACH,KAAK;IACL,GAAG;IACH,KAAK;IACL,GAAG;IACH,IAAI;IACJ,SAAS;IACT,WAAW;IACX,MAAM;IACN,QAAQ;IACR,cAAc;IACd,gBAAgB;IAChB,SAAS;IACT,KAAK;IACL,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,WAAW;IACX,aAAa;IACb,OAAO;IACP,MAAM;IACN,IAAI;IACJ,OAAO;IACP,WAAW;IACX,MAAM;IACN,IAAI;CACL,CAAC","file":"index.js","sourcesContent":["import type { ISeriesTheme } from '../../../../series/interface';\nimport { area } from './area';\nimport { bar } from './bar';\nimport { bar3d } from './bar3d';\nimport { circularProgress } from './circular-progress';\nimport { dot } from './dot';\nimport { funnel } from './funnel';\nimport { funnel3d } from './funnel3d';\nimport { gauge } from './gauge';\nimport { gaugePointer } from './gauge-pointer';\nimport { line } from './line';\nimport { linearProgress } from './linear-progress';\nimport { link } from './link';\nimport { map } from './map';\nimport { pie } from './pie';\nimport { pie3d } from './pie3d';\nimport { radar } from './radar';\nimport { scatter } from './scatter';\nimport { waterfall } from './waterfall';\nimport { wordCloud } from './word-cloud';\nimport { wordCloud3d } from './word-cloud3d';\nimport { treemap } from './treemap';\nimport { sunburst } from './sunburst';\nimport { rangeColumn } from './rangeColumn';\nimport { circlePacking } from './circle-packing';\nimport { heatmap } from './heatmap';\nimport { sankey } from './sankey';\nimport { rose } from './rose';\nimport { boxPlot } from './box-plot';\nimport { correlation } from './correlation';\nimport { liquid } from './liquid';\nimport { venn } from './venn';\n\nexport const series: ISeriesTheme = {\n scatter,\n line,\n area,\n bar,\n bar3d,\n pie,\n pie3d,\n map,\n radar,\n dot,\n link,\n wordCloud,\n wordCloud3d,\n funnel,\n funnel3d,\n linearProgress,\n circularProgress,\n waterfall,\n gauge,\n gaugePointer,\n treemap,\n sunburst,\n rangeColumn,\n circlePacking,\n heatmap,\n sankey,\n rose,\n boxPlot,\n correlation,\n liquid,\n venn\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/theme/builtin/common/series/pie.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,GAAG,GAAoB;IAClC,WAAW,EAAE,GAAG;IAChB,GAAG,EAAE;QACH,KAAK,EAAE;YACL,WAAW,EAAE,CAAC;SACf;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;QACd,
|
|
1
|
+
{"version":3,"sources":["../src/theme/builtin/common/series/pie.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,GAAG,GAAoB;IAClC,WAAW,EAAE,GAAG;IAChB,GAAG,EAAE;QACH,KAAK,EAAE;YACL,WAAW,EAAE,CAAC;SACf;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE;YACL,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,EAAE;YACnD,WAAW,EAAE,CAAC;SACf;KACF;IACD,UAAU,EAAE;QACV,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;SACb;KACF;CACF,CAAC","file":"pie.js","sourcesContent":["import type { IPieSeriesTheme } from '../../../../series/pie/interface';\n\nexport const pie: IPieSeriesTheme = {\n outerRadius: 0.6,\n pie: {\n style: {\n fillOpacity: 1\n }\n },\n label: {\n visible: false,\n position: 'outside',\n style: {\n fontWeight: 'normal',\n stroke: { type: 'palette', key: 'backgroundColor' },\n fillOpacity: 1\n }\n },\n innerLabel: {\n style: {\n lineWidth: 2\n }\n }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/theme/builtin/common/series/pie3d.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAsB;IACtC,WAAW,EAAE,GAAG;IAChB,KAAK,EAAE;QACL,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,CAAC;SACf;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;QACd,
|
|
1
|
+
{"version":3,"sources":["../src/theme/builtin/common/series/pie3d.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAsB;IACtC,WAAW,EAAE,GAAG;IAChB,KAAK,EAAE;QACL,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,CAAC;SACf;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,SAAS;KACpB;CACF,CAAC","file":"pie3d.js","sourcesContent":["import type { IPie3dSeriesTheme } from '../../../../series/pie/interface';\n\nexport const pie3d: IPie3dSeriesTheme = {\n outerRadius: 0.6,\n pie3d: {\n style: {\n height: 10,\n fillOpacity: 1\n }\n },\n label: {\n visible: false,\n position: 'outside'\n }\n};\n"]}
|
package/esm/util/data.d.ts
CHANGED
|
@@ -14,7 +14,6 @@ export declare function mergeFields(targetFields: {
|
|
|
14
14
|
}[];
|
|
15
15
|
export declare function getFieldAlias(dataView: DataView, field: string): any;
|
|
16
16
|
export interface IStackCacheNode {
|
|
17
|
-
groupField?: string;
|
|
18
17
|
values: any[];
|
|
19
18
|
series: {
|
|
20
19
|
s: ISeries;
|
|
@@ -29,11 +28,8 @@ export interface IStackCacheNode {
|
|
|
29
28
|
[key: string]: IStackCacheNode;
|
|
30
29
|
};
|
|
31
30
|
key: string;
|
|
32
|
-
total?: number;
|
|
33
31
|
}
|
|
34
32
|
export interface IStackCacheRoot {
|
|
35
|
-
groupField?: string;
|
|
36
|
-
total?: number;
|
|
37
33
|
nodes: {
|
|
38
34
|
[key: string]: IStackCacheNode;
|
|
39
35
|
};
|
|
@@ -55,25 +51,6 @@ export declare function sortStackValueGroup(stackValueGroup: {
|
|
|
55
51
|
[key: string]: IStackCacheNode;
|
|
56
52
|
};
|
|
57
53
|
export declare function stackTotal(stackData: IStackCacheNode, valueField: string): void;
|
|
58
|
-
export interface IMosaicData {
|
|
59
|
-
groupField?: string;
|
|
60
|
-
groupValue?: string;
|
|
61
|
-
value?: number;
|
|
62
|
-
end?: number;
|
|
63
|
-
start?: number;
|
|
64
|
-
startPercent?: number;
|
|
65
|
-
endPercent?: number;
|
|
66
|
-
}
|
|
67
|
-
export declare function stackMosaicTotal(stackData: IStackCacheNode, valueField: string): void;
|
|
68
|
-
export declare function stackMosaic(s: ISeries, stackCache: IStackCacheNode, mosaicData?: IMosaicData[]): void;
|
|
69
54
|
export declare function stackOffsetSilhouette(stackCache: IStackCacheNode): void;
|
|
70
|
-
export declare function stack(stackCache: IStackCacheNode, stackInverse: boolean, hasPercent?: boolean
|
|
71
|
-
key: string;
|
|
72
|
-
start: string;
|
|
73
|
-
end: string;
|
|
74
|
-
startPercent: string;
|
|
75
|
-
endPercent: string;
|
|
76
|
-
min?: string;
|
|
77
|
-
max?: string;
|
|
78
|
-
}): void;
|
|
55
|
+
export declare function stack(stackCache: IStackCacheNode, stackInverse: boolean, hasPercent?: boolean): void;
|
|
79
56
|
export declare function stackGroup(s: ISeries, stackData: ISeriesStackDataMeta, stackCache: IStackCacheNode, valueField: string, setInitialValue: boolean, stackSortCache: IStackSortCache, stackKey?: string): void;
|
package/esm/util/data.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { STACK_FIELD_END, STACK_FIELD_START_PERCENT, STACK_FIELD_END_PERCENT, STACK_FIELD_END_OffsetSilhouette, STACK_FIELD_START_OffsetSilhouette, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_PERCENT, STACK_FIELD_TOTAL_TOP, STACK_FIELD_START, STACK_FIELD_KEY
|
|
1
|
+
import { STACK_FIELD_END, STACK_FIELD_START_PERCENT, STACK_FIELD_END_PERCENT, STACK_FIELD_END_OffsetSilhouette, STACK_FIELD_START_OffsetSilhouette, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_PERCENT, STACK_FIELD_TOTAL_TOP, STACK_FIELD_START, STACK_FIELD_KEY } from "../constant";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { toValidNumber } from "./type";
|
|
4
4
|
|
|
5
5
|
import { max, sum } from "./math";
|
|
6
6
|
|
|
@@ -42,7 +42,6 @@ export function getRegionStackGroup(region, setInitialValue, filter) {
|
|
|
42
42
|
var _a;
|
|
43
43
|
const stackData = s.getStackData(), stackValue = s.getStackValue(), stackValueField = s.getStackValueField(), filterEnable = !filter || filter(s);
|
|
44
44
|
stackData && stackValueField && filterEnable && (stackValueGroup[stackValue] = null !== (_a = stackValueGroup[stackValue]) && void 0 !== _a ? _a : {
|
|
45
|
-
groupField: stackData.groupField,
|
|
46
45
|
nodes: {}
|
|
47
46
|
}, stackGroup(s, stackData, stackValueGroup[stackValue], stackValueField, setInitialValue, stackSortCache));
|
|
48
47
|
})), stackSort ? sortStackValueGroup(stackValueGroup, stackSortCache) : stackValueGroup;
|
|
@@ -59,67 +58,13 @@ export function stackTotal(stackData, valueField) {
|
|
|
59
58
|
if ("values" in stackData && stackData.values.length) {
|
|
60
59
|
const total = sum(stackData.values, valueField), percent = max(stackData.values, STACK_FIELD_END_PERCENT);
|
|
61
60
|
stackData.values.forEach((v => {
|
|
62
|
-
v[STACK_FIELD_TOTAL] = total, v[STACK_FIELD_TOTAL_PERCENT] = percent;
|
|
61
|
+
v[STACK_FIELD_TOTAL] = total, v[STACK_FIELD_TOTAL_PERCENT] = percent, delete v[STACK_FIELD_TOTAL_TOP];
|
|
63
62
|
}));
|
|
63
|
+
const maxNode = stackData.values.reduce(((max, current) => current[STACK_FIELD_END] > max[STACK_FIELD_END] ? current : max));
|
|
64
|
+
maxNode[STACK_FIELD_TOTAL_TOP] = !0;
|
|
64
65
|
} else for (const key in stackData.nodes) stackTotal(stackData.nodes[key], valueField);
|
|
65
66
|
}
|
|
66
67
|
|
|
67
|
-
export function stackMosaicTotal(stackData, valueField) {
|
|
68
|
-
var _a, _b;
|
|
69
|
-
if ("values" in stackData && stackData.values.length) isValid(null === (_a = stackData.values[0]) || void 0 === _a ? void 0 : _a[STACK_FIELD_TOTAL]) ? stackData.total = null === (_b = stackData.values[0]) || void 0 === _b ? void 0 : _b[STACK_FIELD_TOTAL] : stackData.total = sum(stackData.values, valueField); else {
|
|
70
|
-
for (const key in stackData.nodes) stackMosaicTotal(stackData.nodes[key], valueField);
|
|
71
|
-
stackData.nodes && (stackData.total = sum(Object.keys(stackData.nodes).map((key => stackData.nodes[key])), "total"));
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export function stackMosaic(s, stackCache, mosaicData) {
|
|
76
|
-
var _a;
|
|
77
|
-
if (stackCache.groupField && stackCache.nodes) {
|
|
78
|
-
const groupValues = (null === (_a = s.getRawDataStatisticsByField(stackCache.groupField, !1)) || void 0 === _a ? void 0 : _a.values) || [], mosaicStackData = {
|
|
79
|
-
key: `${stackCache.groupField}`,
|
|
80
|
-
values: groupValues.map((group => {
|
|
81
|
-
const groupValues = stackCache.nodes[group];
|
|
82
|
-
return {
|
|
83
|
-
groupValue: group,
|
|
84
|
-
value: groupValues.total,
|
|
85
|
-
end: groupValues.total
|
|
86
|
-
};
|
|
87
|
-
}))
|
|
88
|
-
};
|
|
89
|
-
stack(mosaicStackData, !1, !0, !1, {
|
|
90
|
-
key: "groupField",
|
|
91
|
-
start: "start",
|
|
92
|
-
end: "end",
|
|
93
|
-
startPercent: "startPercent",
|
|
94
|
-
endPercent: "endPercent"
|
|
95
|
-
}), mosaicStackData.values.forEach((stackValue => {
|
|
96
|
-
stackCache.nodes[stackValue.groupValue].mosaicData = stackValue;
|
|
97
|
-
}));
|
|
98
|
-
} else if ("values" in stackCache && stackCache.values.length && mosaicData && mosaicData.length) {
|
|
99
|
-
const len = mosaicData.length;
|
|
100
|
-
let catStartPercent = 0, catEndPercent = 1, valueStartPercent = 0, valueEndPercent = 1;
|
|
101
|
-
for (let i = 0; i < len; i++) if (i % 2 == 0) {
|
|
102
|
-
const catDelta = catEndPercent - catStartPercent;
|
|
103
|
-
catEndPercent = catStartPercent + mosaicData[i].endPercent * catDelta, catStartPercent += mosaicData[i].startPercent * catDelta;
|
|
104
|
-
} else {
|
|
105
|
-
const valueDelta = valueEndPercent - valueStartPercent;
|
|
106
|
-
valueEndPercent = valueStartPercent + mosaicData[i].endPercent * valueDelta, valueStartPercent += mosaicData[i].startPercent * valueDelta;
|
|
107
|
-
}
|
|
108
|
-
len % 2 == 0 ? stackCache.values.forEach((v => {
|
|
109
|
-
const delta = catEndPercent - catStartPercent;
|
|
110
|
-
v[MOSAIC_CAT_END_PERCENT] = catStartPercent + delta * v[STACK_FIELD_END_PERCENT],
|
|
111
|
-
v[MOSAIC_CAT_START_PERCENT] = catStartPercent + delta * v[STACK_FIELD_START_PERCENT],
|
|
112
|
-
v[MOSAIC_VALUE_END_PERCENT] = valueEndPercent, v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent;
|
|
113
|
-
})) : stackCache.values.forEach((v => {
|
|
114
|
-
const delta = valueEndPercent - valueStartPercent;
|
|
115
|
-
v[MOSAIC_VALUE_END_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_END_PERCENT],
|
|
116
|
-
v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_START_PERCENT],
|
|
117
|
-
v[MOSAIC_CAT_END_PERCENT] = catEndPercent, v[MOSAIC_CAT_START_PERCENT] = catStartPercent;
|
|
118
|
-
}));
|
|
119
|
-
}
|
|
120
|
-
for (const key in stackCache.nodes) stackMosaic(s, stackCache.nodes[key], stackCache.nodes[key].mosaicData ? mosaicData ? [ ...mosaicData, stackCache.nodes[key].mosaicData ] : [ stackCache.nodes[key].mosaicData ] : null);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
68
|
export function stackOffsetSilhouette(stackCache) {
|
|
124
69
|
if (!stackCache.values.length) return;
|
|
125
70
|
const centerValue = stackCache.values[stackCache.values.length - 1][STACK_FIELD_END] / 2;
|
|
@@ -127,41 +72,28 @@ export function stackOffsetSilhouette(stackCache) {
|
|
|
127
72
|
stackCache.values[j][STACK_FIELD_END_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_END] - centerValue;
|
|
128
73
|
}
|
|
129
74
|
|
|
130
|
-
export function stack(stackCache, stackInverse, hasPercent
|
|
131
|
-
key: STACK_FIELD_KEY,
|
|
132
|
-
start: STACK_FIELD_START,
|
|
133
|
-
end: STACK_FIELD_END,
|
|
134
|
-
startPercent: STACK_FIELD_START_PERCENT,
|
|
135
|
-
endPercent: STACK_FIELD_END_PERCENT,
|
|
136
|
-
max: STACK_FIELD_TOTAL_TOP,
|
|
137
|
-
min: STACK_FIELD_TOTAL_BOTTOM
|
|
138
|
-
}) {
|
|
139
|
-
const hasMinField = hasMinMax && isValid(fields.min), hasMaxField = hasMinMax && isValid(fields.max);
|
|
75
|
+
export function stack(stackCache, stackInverse, hasPercent) {
|
|
140
76
|
if (stackCache.values.length > 0) {
|
|
141
|
-
let positiveStart = 0, negativeStart = 0, sign = 1, value = 0
|
|
77
|
+
let positiveStart = 0, negativeStart = 0, sign = 1, value = 0;
|
|
142
78
|
const maxLength = stackCache.values.length;
|
|
143
79
|
for (let index = 0; index < maxLength; index++) {
|
|
144
80
|
const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];
|
|
145
|
-
value = v[
|
|
146
|
-
v[
|
|
147
|
-
v[
|
|
148
|
-
(!maxNode || v[fields.end] > maxNode[fields.end]) && (maxNode = v)), hasMinField && (delete v[fields.min],
|
|
149
|
-
(!minNode || v[fields.start] < minNode[fields.start]) && (minNode = v));
|
|
81
|
+
value = v[STACK_FIELD_END], value >= 0 ? (v[STACK_FIELD_START] = positiveStart,
|
|
82
|
+
positiveStart += v[STACK_FIELD_END], v[STACK_FIELD_END] = positiveStart) : (v[STACK_FIELD_START] = negativeStart,
|
|
83
|
+
negativeStart += v[STACK_FIELD_END], v[STACK_FIELD_END] = negativeStart), v[STACK_FIELD_KEY] = stackCache.key;
|
|
150
84
|
}
|
|
151
|
-
if (
|
|
152
|
-
hasPercent) for (let index = 0; index < maxLength; index++) {
|
|
85
|
+
if (hasPercent) for (let index = 0; index < maxLength; index++) {
|
|
153
86
|
const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];
|
|
154
|
-
value = v[
|
|
87
|
+
value = v[STACK_FIELD_END];
|
|
155
88
|
const denominator = value >= 0 ? positiveStart : negativeStart;
|
|
156
|
-
sign = value >= 0 ? 1 : -1, v[
|
|
157
|
-
v[
|
|
89
|
+
sign = value >= 0 ? 1 : -1, v[STACK_FIELD_START_PERCENT] = 0 === denominator ? 0 : Math.min(1, v[STACK_FIELD_START] / denominator) * sign,
|
|
90
|
+
v[STACK_FIELD_END_PERCENT] = 0 === denominator ? 0 : Math.min(1, v[STACK_FIELD_END] / denominator) * sign;
|
|
158
91
|
}
|
|
159
92
|
}
|
|
160
|
-
for (const key in stackCache.nodes) stack(stackCache.nodes[key], stackInverse, hasPercent
|
|
93
|
+
for (const key in stackCache.nodes) stack(stackCache.nodes[key], stackInverse, hasPercent);
|
|
161
94
|
}
|
|
162
95
|
|
|
163
96
|
export function stackGroup(s, stackData, stackCache, valueField, setInitialValue, stackSortCache, stackKey) {
|
|
164
|
-
var _a;
|
|
165
97
|
if ("values" in stackData) if (setInitialValue && stackData.values.forEach((v => v[STACK_FIELD_END] = toValidNumber(v[valueField]))),
|
|
166
98
|
stackCache.series.push({
|
|
167
99
|
s: s,
|
|
@@ -177,14 +109,13 @@ export function stackGroup(s, stackData, stackCache, valueField, setInitialValue
|
|
|
177
109
|
}));
|
|
178
110
|
} else stackCache.values.push(...stackData.values); else for (const key in stackData.nodes) {
|
|
179
111
|
const newStackKey = stackKey ? `${stackKey}_${key}` : key;
|
|
180
|
-
stackCache.nodes[key]
|
|
112
|
+
!stackCache.nodes[key] && (stackCache.nodes[key] = {
|
|
181
113
|
values: [],
|
|
182
114
|
series: [],
|
|
183
115
|
nodes: {},
|
|
184
116
|
sortDatums: [],
|
|
185
117
|
key: newStackKey
|
|
186
|
-
},
|
|
187
|
-
stackGroup(s, stackData.nodes[key], stackCache.nodes[key], valueField, setInitialValue, stackSortCache, newStackKey);
|
|
118
|
+
}), stackGroup(s, stackData.nodes[key], stackCache.nodes[key], valueField, setInitialValue, stackSortCache, newStackKey);
|
|
188
119
|
}
|
|
189
120
|
}
|
|
190
121
|
//# sourceMappingURL=data.js.map
|
package/esm/util/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/util/data.ts"],"names":[],"mappings":"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","file":"data.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { StatisticOperations } from '../data/transforms/dimension-statistics';\nimport {\n STACK_FIELD_END,\n STACK_FIELD_START_PERCENT,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_END_OffsetSilhouette,\n STACK_FIELD_START_OffsetSilhouette,\n STACK_FIELD_TOTAL,\n STACK_FIELD_TOTAL_PERCENT,\n STACK_FIELD_TOTAL_TOP,\n STACK_FIELD_START,\n STACK_FIELD_KEY,\n STACK_FIELD_TOTAL_BOTTOM,\n MOSAIC_CAT_START_PERCENT,\n MOSAIC_CAT_END_PERCENT,\n MOSAIC_VALUE_START_PERCENT,\n MOSAIC_VALUE_END_PERCENT\n} from '../constant';\nimport { isValid, toValidNumber } from './type';\nimport { max, sum } from './math';\nimport type { ISeries, ISeriesStackDataMeta } from '../series/interface';\nimport type { IRegion } from '../region/interface';\n\nexport function mergeFields(\n targetFields: {\n key: string;\n operations: StatisticOperations;\n }[],\n mergeFields: {\n key: string;\n operations: StatisticOperations;\n }[]\n): {\n key: string;\n operations: StatisticOperations;\n}[] {\n for (let i = 0; i < mergeFields.length; i++) {\n const element = mergeFields[i];\n const _target = findFields(targetFields, element.key);\n if (!_target) {\n targetFields.push(element);\n } else {\n _target.operations = [...new Set(_target.operations.concat(element.operations))];\n }\n }\n return targetFields;\n}\n\nfunction findFields(\n list: {\n key: string;\n operations: StatisticOperations;\n }[],\n fieldKey: string\n) {\n return list.find(i => i.key === fieldKey);\n}\n\n// 如果不存在别名就返回 field\nexport function getFieldAlias(dataView: DataView, field: string) {\n if (!dataView) {\n return field ?? null;\n }\n const fields = dataView.getFields();\n if (!fields) {\n return field ?? null;\n }\n if (!fields[field]) {\n return field ?? null;\n }\n return fields[field].alias ?? field;\n}\n\nexport interface IStackCacheNode {\n groupField?: string;\n values: any[];\n series: {\n s: ISeries;\n values: any[];\n }[];\n sortDatums: {\n datum: any;\n index: number;\n series: ISeries;\n }[];\n nodes: {\n [key: string]: IStackCacheNode;\n };\n key: string;\n total?: number;\n}\nexport interface IStackCacheRoot {\n groupField?: string;\n total?: number;\n nodes: {\n [key: string]: IStackCacheNode;\n };\n}\n\nexport interface IStackSortCache {\n [key: string]: {\n lastIndex: number;\n sort: { [key: string]: number };\n };\n}\n\nexport function getRegionStackGroup(region: IRegion, setInitialValue: boolean, filter?: (s: any) => boolean) {\n const stackSort = region.getStackSort();\n\n const stackValueGroup: { [key: string]: IStackCacheRoot } = {};\n // 堆积排序 {维度key: { lastIndex: 0, sort:{[值]: 值序号}}}\n let stackSortCache: IStackSortCache = null;\n // 如果有排序\n if (stackSort) {\n // 先遍历系列,得到基于 seriesField 的排序信息\n // 这里性能消耗应该很小\n stackSortCache = {};\n region.getSeries().forEach(s => {\n // 拿到系列的 seriesField 做排序准备\n const seriesField = s.getSeriesField();\n if (seriesField) {\n const fieldInfo = s.getRawDataStatisticsByField(seriesField);\n if (fieldInfo.values) {\n if (!stackSortCache[seriesField]) {\n stackSortCache[seriesField] = { lastIndex: 0, sort: {} };\n }\n fieldInfo.values.forEach((v, i) => {\n if (!(v in stackSortCache[seriesField].sort)) {\n stackSortCache[seriesField].sort[v] = stackSortCache[seriesField].lastIndex;\n stackSortCache[seriesField].lastIndex++;\n }\n });\n }\n }\n });\n }\n\n region.getSeries().forEach(s => {\n const stackData = s.getStackData();\n const stackValue = s.getStackValue();\n const stackValueField = s.getStackValueField();\n const filterEnable = filter ? filter(s) : true;\n if (stackData && stackValueField && filterEnable) {\n stackValueGroup[stackValue] = stackValueGroup[stackValue] ?? {\n groupField: stackData.groupField,\n nodes: {}\n };\n\n stackGroup(\n s,\n stackData,\n stackValueGroup[stackValue] as IStackCacheNode,\n stackValueField,\n setInitialValue,\n stackSortCache\n );\n }\n });\n return stackSort\n ? sortStackValueGroup(stackValueGroup as { [key: string]: IStackCacheNode }, stackSortCache)\n : stackValueGroup;\n}\n\n// 排序\nexport function sortStackValueGroup(\n stackValueGroup: { [key: string]: IStackCacheNode },\n stackSortCache: IStackSortCache\n) {\n for (const key in stackValueGroup) {\n if (stackValueGroup[key].sortDatums?.length) {\n stackValueGroup[key].sortDatums.sort((a, b) => a.index - b.index);\n stackValueGroup[key].values = stackValueGroup[key].sortDatums.map(sd => sd.datum);\n } else {\n sortStackValueGroup(stackValueGroup[key].nodes, stackSortCache);\n }\n }\n return stackValueGroup;\n}\n\nexport function stackTotal(stackData: IStackCacheNode, valueField: string) {\n if ('values' in stackData && stackData.values.length) {\n const total = sum(stackData.values, valueField);\n const percent = max(stackData.values, STACK_FIELD_END_PERCENT);\n\n stackData.values.forEach(v => {\n v[STACK_FIELD_TOTAL] = total;\n v[STACK_FIELD_TOTAL_PERCENT] = percent;\n });\n\n return;\n }\n for (const key in stackData.nodes) {\n stackTotal(stackData.nodes[key], valueField);\n }\n return;\n}\n\nexport interface IMosaicData {\n groupField?: string;\n groupValue?: string;\n value?: number;\n end?: number;\n start?: number;\n startPercent?: number;\n endPercent?: number;\n}\n\nexport function stackMosaicTotal(stackData: IStackCacheNode, valueField: string) {\n if ('values' in stackData && stackData.values.length) {\n if (isValid(stackData.values[0]?.[STACK_FIELD_TOTAL])) {\n stackData.total = stackData.values[0]?.[STACK_FIELD_TOTAL];\n } else {\n stackData.total = sum(stackData.values, valueField);\n }\n return;\n }\n for (const key in stackData.nodes) {\n stackMosaicTotal(stackData.nodes[key], valueField);\n }\n\n if (stackData.nodes) {\n stackData.total = sum(\n Object.keys(stackData.nodes).map(key => stackData.nodes[key]),\n 'total'\n );\n }\n\n return;\n}\n\nexport function stackMosaic(s: ISeries, stackCache: IStackCacheNode, mosaicData?: IMosaicData[]) {\n if (stackCache.groupField && stackCache.nodes) {\n const groupValues = s.getRawDataStatisticsByField(stackCache.groupField, false)?.values || [];\n const mosaicStackData = {\n key: `${stackCache.groupField}`,\n values: groupValues.map(group => {\n const groupValues = stackCache.nodes[group];\n\n return {\n groupValue: group,\n value: groupValues.total,\n end: groupValues.total\n };\n })\n };\n\n stack(mosaicStackData as IStackCacheNode, false, true, false, {\n key: 'groupField',\n start: 'start',\n end: 'end',\n startPercent: 'startPercent',\n endPercent: 'endPercent'\n });\n\n mosaicStackData.values.forEach(stackValue => {\n (stackCache.nodes[stackValue.groupValue] as any).mosaicData = stackValue;\n });\n } else if ('values' in stackCache && stackCache.values.length && mosaicData && mosaicData.length) {\n const len = mosaicData.length;\n let catStartPercent = 0;\n let catEndPercent = 1;\n let valueStartPercent = 0;\n let valueEndPercent = 1;\n\n for (let i = 0; i < len; i++) {\n if (i % 2 === 0) {\n const catDelta = catEndPercent - catStartPercent;\n\n catEndPercent = catStartPercent + mosaicData[i].endPercent * catDelta;\n catStartPercent = catStartPercent + mosaicData[i].startPercent * catDelta;\n } else {\n const valueDelta = valueEndPercent - valueStartPercent;\n\n valueEndPercent = valueStartPercent + mosaicData[i].endPercent * valueDelta;\n valueStartPercent = valueStartPercent + mosaicData[i].startPercent * valueDelta;\n }\n }\n\n if (len % 2 === 0) {\n stackCache.values.forEach(v => {\n const delta = catEndPercent - catStartPercent;\n v[MOSAIC_CAT_END_PERCENT] = catStartPercent + delta * v[STACK_FIELD_END_PERCENT];\n v[MOSAIC_CAT_START_PERCENT] = catStartPercent + delta * v[STACK_FIELD_START_PERCENT];\n v[MOSAIC_VALUE_END_PERCENT] = valueEndPercent;\n v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent;\n });\n } else {\n stackCache.values.forEach(v => {\n const delta = valueEndPercent - valueStartPercent;\n v[MOSAIC_VALUE_END_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_END_PERCENT];\n v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_START_PERCENT];\n v[MOSAIC_CAT_END_PERCENT] = catEndPercent;\n v[MOSAIC_CAT_START_PERCENT] = catStartPercent;\n });\n }\n }\n\n for (const key in stackCache.nodes) {\n stackMosaic(\n s,\n stackCache.nodes[key],\n (stackCache.nodes[key] as any).mosaicData\n ? mosaicData\n ? [...mosaicData, (stackCache.nodes[key] as any).mosaicData]\n : [(stackCache.nodes[key] as any).mosaicData]\n : null\n );\n }\n}\n\nexport function stackOffsetSilhouette(stackCache: IStackCacheNode) {\n if (!stackCache.values.length) {\n return;\n }\n const centerValue = stackCache.values[stackCache.values.length - 1][STACK_FIELD_END] / 2;\n for (let j = 0; j < stackCache.values.length; j++) {\n stackCache.values[j][STACK_FIELD_START_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_START] - centerValue;\n stackCache.values[j][STACK_FIELD_END_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_END] - centerValue;\n }\n}\n\nexport function stack(\n stackCache: IStackCacheNode,\n stackInverse: boolean,\n hasPercent?: boolean,\n hasMinMax?: boolean,\n fields: {\n key: string;\n start: string;\n end: string;\n startPercent: string;\n endPercent: string;\n min?: string;\n max?: string;\n } = {\n key: STACK_FIELD_KEY,\n start: STACK_FIELD_START,\n end: STACK_FIELD_END,\n startPercent: STACK_FIELD_START_PERCENT,\n endPercent: STACK_FIELD_END_PERCENT,\n max: STACK_FIELD_TOTAL_TOP,\n min: STACK_FIELD_TOTAL_BOTTOM\n }\n) {\n const hasMinField = hasMinMax && isValid(fields.min);\n const hasMaxField = hasMinMax && isValid(fields.max);\n\n if (stackCache.values.length > 0) {\n // 设置一个小数以保证 log 计算不会报错\n let positiveStart = 0;\n let negativeStart = 0;\n // temp\n let sign = 1;\n let value = 0;\n let minNode: any = null;\n let maxNode: any = null;\n\n // stack\n const maxLength = stackCache.values.length;\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[fields.end];\n if (value >= 0) {\n v[fields.start] = positiveStart;\n positiveStart += v[fields.end];\n v[fields.end] = positiveStart;\n } else {\n v[fields.start] = negativeStart;\n negativeStart += v[fields.end];\n v[fields.end] = negativeStart;\n }\n v[fields.key] = stackCache.key;\n\n if (hasMaxField) {\n delete v[fields.max];\n if (!maxNode || v[fields.end] > maxNode[fields.end]) {\n maxNode = v;\n }\n }\n if (hasMinField) {\n delete v[fields.min];\n if (!minNode || v[fields.start] < minNode[fields.start]) {\n minNode = v;\n }\n }\n }\n\n hasMaxField && maxNode && (maxNode[fields.max] = true);\n hasMinField && minNode && (minNode[fields.min] = true);\n\n if (hasPercent) {\n // normalize\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[fields.end];\n const denominator = value >= 0 ? positiveStart : negativeStart;\n sign = value >= 0 ? 1 : -1;\n v[fields.startPercent] = denominator === 0 ? 0 : Math.min(1, v[fields.start] / denominator) * sign;\n v[fields.endPercent] = denominator === 0 ? 0 : Math.min(1, v[fields.end] / denominator) * sign;\n }\n }\n }\n\n for (const key in stackCache.nodes) {\n stack(stackCache.nodes[key], stackInverse, hasPercent, hasMinMax, fields);\n }\n}\n\nexport function stackGroup(\n s: ISeries,\n stackData: ISeriesStackDataMeta,\n stackCache: IStackCacheNode,\n valueField: string,\n setInitialValue: boolean,\n stackSortCache: IStackSortCache,\n stackKey?: string\n) {\n if ('values' in stackData) {\n setInitialValue && stackData.values.forEach(v => (v[STACK_FIELD_END] = toValidNumber(v[valueField])));\n stackCache.series.push({ s: s, values: stackData.values });\n // 如果有排序\n if (stackSortCache) {\n // 系列的 seriesField\n const seriesField = s.getSeriesField();\n stackData.values.forEach(d => {\n stackCache.sortDatums.push({\n series: s,\n datum: d,\n index: seriesField ? stackSortCache[seriesField].sort[d[seriesField]] : 0\n });\n });\n } else {\n // 如果没有排序,直接生成 values 数组\n stackCache.values.push(...stackData.values);\n }\n return;\n }\n for (const key in stackData.nodes) {\n const newStackKey = stackKey ? `${stackKey}_${key}` : key;\n\n if (!stackCache.nodes[key]) {\n stackCache.nodes[key] = {\n values: [],\n series: [],\n nodes: {},\n sortDatums: [],\n key: newStackKey\n };\n\n if (isValid(stackData.nodes[key]?.groupField)) {\n stackCache.nodes[key].groupField = stackData.nodes[key].groupField;\n }\n }\n\n stackGroup(\n s,\n stackData.nodes[key],\n stackCache.nodes[key],\n valueField,\n setInitialValue,\n stackSortCache,\n newStackKey\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/util/data.ts"],"names":[],"mappings":"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","file":"data.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { StatisticOperations } from '../data/transforms/dimension-statistics';\nimport {\n STACK_FIELD_END,\n STACK_FIELD_START_PERCENT,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_END_OffsetSilhouette,\n STACK_FIELD_START_OffsetSilhouette,\n STACK_FIELD_TOTAL,\n STACK_FIELD_TOTAL_PERCENT,\n STACK_FIELD_TOTAL_TOP,\n STACK_FIELD_START,\n STACK_FIELD_KEY\n} from '../constant';\nimport { toValidNumber } from './type';\nimport { max, sum } from './math';\nimport type { ISeries, ISeriesStackDataMeta } from '../series/interface';\nimport type { IRegion } from '../region/interface';\n\nexport function mergeFields(\n targetFields: {\n key: string;\n operations: StatisticOperations;\n }[],\n mergeFields: {\n key: string;\n operations: StatisticOperations;\n }[]\n): {\n key: string;\n operations: StatisticOperations;\n}[] {\n for (let i = 0; i < mergeFields.length; i++) {\n const element = mergeFields[i];\n const _target = findFields(targetFields, element.key);\n if (!_target) {\n targetFields.push(element);\n } else {\n _target.operations = [...new Set(_target.operations.concat(element.operations))];\n }\n }\n return targetFields;\n}\n\nfunction findFields(\n list: {\n key: string;\n operations: StatisticOperations;\n }[],\n fieldKey: string\n) {\n return list.find(i => i.key === fieldKey);\n}\n\n// 如果不存在别名就返回 field\nexport function getFieldAlias(dataView: DataView, field: string) {\n if (!dataView) {\n return field ?? null;\n }\n const fields = dataView.getFields();\n if (!fields) {\n return field ?? null;\n }\n if (!fields[field]) {\n return field ?? null;\n }\n return fields[field].alias ?? field;\n}\n\nexport interface IStackCacheNode {\n values: any[];\n series: {\n s: ISeries;\n values: any[];\n }[];\n sortDatums: {\n datum: any;\n index: number;\n series: ISeries;\n }[];\n nodes: {\n [key: string]: IStackCacheNode;\n };\n key: string;\n}\nexport interface IStackCacheRoot {\n nodes: {\n [key: string]: IStackCacheNode;\n };\n}\n\nexport interface IStackSortCache {\n [key: string]: {\n lastIndex: number;\n sort: { [key: string]: number };\n };\n}\n\nexport function getRegionStackGroup(region: IRegion, setInitialValue: boolean, filter?: (s: any) => boolean) {\n const stackSort = region.getStackSort();\n\n const stackValueGroup: { [key: string]: IStackCacheRoot } = {};\n // 堆积排序 {维度key: { lastIndex: 0, sort:{[值]: 值序号}}}\n let stackSortCache: IStackSortCache = null;\n // 如果有排序\n if (stackSort) {\n // 先遍历系列,得到基于 seriesField 的排序信息\n // 这里性能消耗应该很小\n stackSortCache = {};\n region.getSeries().forEach(s => {\n // 拿到系列的 seriesField 做排序准备\n const seriesField = s.getSeriesField();\n if (seriesField) {\n const fieldInfo = s.getRawDataStatisticsByField(seriesField);\n if (fieldInfo.values) {\n if (!stackSortCache[seriesField]) {\n stackSortCache[seriesField] = { lastIndex: 0, sort: {} };\n }\n fieldInfo.values.forEach((v, i) => {\n if (!(v in stackSortCache[seriesField].sort)) {\n stackSortCache[seriesField].sort[v] = stackSortCache[seriesField].lastIndex;\n stackSortCache[seriesField].lastIndex++;\n }\n });\n }\n }\n });\n }\n\n region.getSeries().forEach(s => {\n const stackData = s.getStackData();\n const stackValue = s.getStackValue();\n const stackValueField = s.getStackValueField();\n const filterEnable = filter ? filter(s) : true;\n if (stackData && stackValueField && filterEnable) {\n stackValueGroup[stackValue] = stackValueGroup[stackValue] ?? {\n nodes: {}\n };\n\n stackGroup(\n s,\n stackData,\n stackValueGroup[stackValue] as IStackCacheNode,\n stackValueField,\n setInitialValue,\n stackSortCache\n );\n }\n });\n return stackSort\n ? sortStackValueGroup(stackValueGroup as { [key: string]: IStackCacheNode }, stackSortCache)\n : stackValueGroup;\n}\n\n// 排序\nexport function sortStackValueGroup(\n stackValueGroup: { [key: string]: IStackCacheNode },\n stackSortCache: IStackSortCache\n) {\n for (const key in stackValueGroup) {\n if (stackValueGroup[key].sortDatums?.length) {\n stackValueGroup[key].sortDatums.sort((a, b) => a.index - b.index);\n stackValueGroup[key].values = stackValueGroup[key].sortDatums.map(sd => sd.datum);\n } else {\n sortStackValueGroup(stackValueGroup[key].nodes, stackSortCache);\n }\n }\n return stackValueGroup;\n}\n\nexport function stackTotal(stackData: IStackCacheNode, valueField: string) {\n if ('values' in stackData && stackData.values.length) {\n const total = sum(stackData.values, valueField);\n const percent = max(stackData.values, STACK_FIELD_END_PERCENT);\n stackData.values.forEach(v => {\n v[STACK_FIELD_TOTAL] = total;\n v[STACK_FIELD_TOTAL_PERCENT] = percent;\n delete v[STACK_FIELD_TOTAL_TOP];\n });\n const maxNode = stackData.values.reduce((max, current) => {\n return current[STACK_FIELD_END] > max[STACK_FIELD_END] ? current : max;\n });\n maxNode[STACK_FIELD_TOTAL_TOP] = true;\n return;\n }\n for (const key in stackData.nodes) {\n stackTotal(stackData.nodes[key], valueField);\n }\n}\n\nexport function stackOffsetSilhouette(stackCache: IStackCacheNode) {\n if (!stackCache.values.length) {\n return;\n }\n const centerValue = stackCache.values[stackCache.values.length - 1][STACK_FIELD_END] / 2;\n for (let j = 0; j < stackCache.values.length; j++) {\n stackCache.values[j][STACK_FIELD_START_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_START] - centerValue;\n stackCache.values[j][STACK_FIELD_END_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_END] - centerValue;\n }\n}\n\nexport function stack(stackCache: IStackCacheNode, stackInverse: boolean, hasPercent?: boolean) {\n if (stackCache.values.length > 0) {\n // 设置一个小数以保证 log 计算不会报错\n let positiveStart = 0;\n let negativeStart = 0;\n // temp\n let sign = 1;\n let value = 0;\n\n // stack\n const maxLength = stackCache.values.length;\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[STACK_FIELD_END];\n if (value >= 0) {\n v[STACK_FIELD_START] = positiveStart;\n positiveStart += v[STACK_FIELD_END];\n v[STACK_FIELD_END] = positiveStart;\n } else {\n v[STACK_FIELD_START] = negativeStart;\n negativeStart += v[STACK_FIELD_END];\n v[STACK_FIELD_END] = negativeStart;\n }\n v[STACK_FIELD_KEY] = stackCache.key;\n }\n if (hasPercent) {\n // normalize\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[STACK_FIELD_END];\n const denominator = value >= 0 ? positiveStart : negativeStart;\n sign = value >= 0 ? 1 : -1;\n v[STACK_FIELD_START_PERCENT] = denominator === 0 ? 0 : Math.min(1, v[STACK_FIELD_START] / denominator) * sign;\n v[STACK_FIELD_END_PERCENT] = denominator === 0 ? 0 : Math.min(1, v[STACK_FIELD_END] / denominator) * sign;\n }\n }\n }\n\n for (const key in stackCache.nodes) {\n stack(stackCache.nodes[key], stackInverse, hasPercent);\n }\n}\n\nexport function stackGroup(\n s: ISeries,\n stackData: ISeriesStackDataMeta,\n stackCache: IStackCacheNode,\n valueField: string,\n setInitialValue: boolean,\n stackSortCache: IStackSortCache,\n stackKey?: string\n) {\n if ('values' in stackData) {\n setInitialValue && stackData.values.forEach(v => (v[STACK_FIELD_END] = toValidNumber(v[valueField])));\n stackCache.series.push({ s: s, values: stackData.values });\n // 如果有排序\n if (stackSortCache) {\n // 系列的 seriesField\n const seriesField = s.getSeriesField();\n stackData.values.forEach(d => {\n stackCache.sortDatums.push({\n series: s,\n datum: d,\n index: seriesField ? stackSortCache[seriesField].sort[d[seriesField]] : 0\n });\n });\n } else {\n // 如果没有排序,直接生成 values 数组\n stackCache.values.push(...stackData.values);\n }\n return;\n }\n for (const key in stackData.nodes) {\n const newStackKey = stackKey ? `${stackKey}_${key}` : key;\n !stackCache.nodes[key] &&\n (stackCache.nodes[key] = {\n values: [],\n series: [],\n nodes: {},\n sortDatums: [],\n key: newStackKey\n });\n stackGroup(\n s,\n stackData.nodes[key],\n stackCache.nodes[key],\n valueField,\n setInitialValue,\n stackSortCache,\n newStackKey\n );\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vchart",
|
|
3
|
-
"version": "1.12.0-alpha.
|
|
3
|
+
"version": "1.12.0-alpha.5",
|
|
4
4
|
"description": "charts lib based @visactor/VGrammar",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "esm/index.js",
|
|
@@ -82,9 +82,9 @@
|
|
|
82
82
|
"rimraf": "3.0.2",
|
|
83
83
|
"cross-env": "^7.0.3",
|
|
84
84
|
"@internal/typescript-json-schema": "0.0.1",
|
|
85
|
+
"@internal/bundler": "0.0.1",
|
|
85
86
|
"@internal/eslint-config": "0.0.1",
|
|
86
|
-
"@internal/ts-config": "0.0.1"
|
|
87
|
-
"@internal/bundler": "0.0.1"
|
|
87
|
+
"@internal/ts-config": "0.0.1"
|
|
88
88
|
},
|
|
89
89
|
"dependencies": {
|
|
90
90
|
"@visactor/vutils": "~0.18.10",
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"@visactor/vgrammar-sankey": "0.13.14",
|
|
102
102
|
"@visactor/vgrammar-venn": "0.13.14",
|
|
103
103
|
"@visactor/vgrammar-util": "0.13.14",
|
|
104
|
-
"@visactor/vutils-extension": "1.12.0-alpha.
|
|
104
|
+
"@visactor/vutils-extension": "1.12.0-alpha.5"
|
|
105
105
|
},
|
|
106
106
|
"publishConfig": {
|
|
107
107
|
"access": "public",
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
4
|
-
void 0 === k2 && (k2 = k);
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
|
|
7
|
-
enumerable: !0,
|
|
8
|
-
get: function() {
|
|
9
|
-
return m[k];
|
|
10
|
-
}
|
|
11
|
-
}), Object.defineProperty(o, k2, desc);
|
|
12
|
-
} : function(o, m, k, k2) {
|
|
13
|
-
void 0 === k2 && (k2 = k), o[k2] = m[k];
|
|
14
|
-
}), __exportStar = this && this.__exportStar || function(m, exports) {
|
|
15
|
-
for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
Object.defineProperty(exports, "__esModule", {
|
|
19
|
-
value: !0
|
|
20
|
-
}), __exportStar(require("./mosaic"), exports), __exportStar(require("./interface"), exports),
|
|
21
|
-
__exportStar(require("./mosaic-transformer"), exports);
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart/mosaic/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,uDAAqC","file":"index.js","sourcesContent":["export * from './mosaic';\nexport * from './interface';\nexport * from './mosaic-transformer';\n"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { IChartExtendsSeriesSpec } from '../../typings/spec/common';
|
|
2
|
-
import type { ICartesianChartSpec } from '../cartesian/interface';
|
|
3
|
-
import type { IMosaicSeriesSpec } from '../../series/mosaic/interface';
|
|
4
|
-
export interface IMosaicChartSpec extends ICartesianChartSpec, IChartExtendsSeriesSpec<IMosaicSeriesSpec> {
|
|
5
|
-
type: 'mosaic';
|
|
6
|
-
series?: IMosaicSeriesSpec[];
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart/mosaic/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IChartExtendsSeriesSpec } from '../../typings/spec/common';\nimport type { ICartesianChartSpec } from '../cartesian/interface';\nimport type { IMosaicSeriesSpec } from '../../series/mosaic/interface';\n\nexport interface IMosaicChartSpec extends ICartesianChartSpec, IChartExtendsSeriesSpec<IMosaicSeriesSpec> {\n /** 图表类型配置 */\n type: 'mosaic';\n /** 系列配置 */\n series?: IMosaicSeriesSpec[];\n}\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ICartesianAxisSpec } from '../../component/axis/cartesian/interface/spec';
|
|
2
|
-
import { CartesianChartSpecTransformer } from '../cartesian';
|
|
3
|
-
import type { IMosaicChartSpec } from './interface';
|
|
4
|
-
export declare class MosaicChartSpecTransformer<T extends IMosaicChartSpec = IMosaicChartSpec> extends CartesianChartSpecTransformer<T> {
|
|
5
|
-
protected _getDefaultSeriesSpec(spec: T): any;
|
|
6
|
-
transformSpec(spec: T): void;
|
|
7
|
-
protected _setDefaultXAxisSpec(spec: T): ICartesianAxisSpec;
|
|
8
|
-
protected _setDefaultYAxisSpec(spec: T): ICartesianAxisSpec;
|
|
9
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: !0
|
|
5
|
-
}), exports.MosaicChartSpecTransformer = void 0;
|
|
6
|
-
|
|
7
|
-
const cartesian_1 = require("../cartesian"), util_1 = require("../util");
|
|
8
|
-
|
|
9
|
-
class MosaicChartSpecTransformer extends cartesian_1.CartesianChartSpecTransformer {
|
|
10
|
-
_getDefaultSeriesSpec(spec) {
|
|
11
|
-
const series = Object.assign(Object.assign({}, super._getDefaultSeriesSpec(spec)), {
|
|
12
|
-
barWidth: spec.barWidth,
|
|
13
|
-
barMaxWidth: spec.barMaxWidth,
|
|
14
|
-
barMinWidth: spec.barMinWidth,
|
|
15
|
-
barGapInGroup: spec.barGapInGroup,
|
|
16
|
-
barBackground: spec.barBackground,
|
|
17
|
-
barMinHeight: spec.barMinHeight,
|
|
18
|
-
stackCornerRadius: spec.stackCornerRadius
|
|
19
|
-
});
|
|
20
|
-
return series.bar = spec.bar, series;
|
|
21
|
-
}
|
|
22
|
-
transformSpec(spec) {
|
|
23
|
-
super.transformSpec(spec), (0, util_1.setDefaultCrosshairForCartesianChart)(spec);
|
|
24
|
-
}
|
|
25
|
-
_setDefaultXAxisSpec(spec) {
|
|
26
|
-
return {
|
|
27
|
-
orient: "bottom",
|
|
28
|
-
type: "linear",
|
|
29
|
-
label: {
|
|
30
|
-
visible: !1
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
_setDefaultYAxisSpec(spec) {
|
|
35
|
-
return {
|
|
36
|
-
orient: "left",
|
|
37
|
-
type: "linear"
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
exports.MosaicChartSpecTransformer = MosaicChartSpecTransformer;
|
|
43
|
-
//# sourceMappingURL=mosaic-transformer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart/mosaic/mosaic-transformer.ts"],"names":[],"mappings":";;;AACA,4CAA6D;AAC7D,kCAA+D;AAG/D,MAAa,0BAEX,SAAQ,yCAAgC;IAC9B,qBAAqB,CAAC,IAAO;QACrC,MAAM,MAAM,mCACP,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KACpC,QAAQ,EAAG,IAAyB,CAAC,QAAQ,EAC7C,WAAW,EAAG,IAAyB,CAAC,WAAW,EACnD,WAAW,EAAG,IAAyB,CAAC,WAAW,EACnD,aAAa,EAAG,IAAyB,CAAC,aAAa,EACvD,aAAa,EAAG,IAAyB,CAAC,aAAa,EACvD,YAAY,EAAG,IAAyB,CAAC,YAAY,EACrD,iBAAiB,EAAG,IAAyB,CAAC,iBAAiB,GAChE,CAAC;QACF,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAEtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,IAAO;QACnB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAA,2CAAoC,EAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAES,oBAAoB,CAAC,IAAO;QACpC,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK;aACf;SACoB,CAAC;IAC1B,CAAC;IAES,oBAAoB,CAAC,IAAO;QACpC,OAAO;YACL,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,QAAQ;SACO,CAAC;IAC1B,CAAC;CACF;AAxCD,gEAwCC","file":"mosaic-transformer.js","sourcesContent":["import type { ICartesianAxisSpec } from '../../component/axis/cartesian/interface/spec';\nimport { CartesianChartSpecTransformer } from '../cartesian';\nimport { setDefaultCrosshairForCartesianChart } from '../util';\nimport type { IMosaicChartSpec } from './interface';\n\nexport class MosaicChartSpecTransformer<\n T extends IMosaicChartSpec = IMosaicChartSpec\n> extends CartesianChartSpecTransformer<T> {\n protected _getDefaultSeriesSpec(spec: T): any {\n const series: any = {\n ...super._getDefaultSeriesSpec(spec),\n barWidth: (spec as IMosaicChartSpec).barWidth,\n barMaxWidth: (spec as IMosaicChartSpec).barMaxWidth,\n barMinWidth: (spec as IMosaicChartSpec).barMinWidth,\n barGapInGroup: (spec as IMosaicChartSpec).barGapInGroup,\n barBackground: (spec as IMosaicChartSpec).barBackground,\n barMinHeight: (spec as IMosaicChartSpec).barMinHeight,\n stackCornerRadius: (spec as IMosaicChartSpec).stackCornerRadius\n };\n series.bar = spec.bar;\n\n return series;\n }\n\n transformSpec(spec: T): void {\n super.transformSpec(spec);\n setDefaultCrosshairForCartesianChart(spec);\n }\n\n protected _setDefaultXAxisSpec(spec: T): ICartesianAxisSpec {\n return {\n orient: 'bottom',\n type: 'linear',\n label: {\n visible: false\n }\n } as ICartesianAxisSpec;\n }\n\n protected _setDefaultYAxisSpec(spec: T): ICartesianAxisSpec {\n return {\n orient: 'left',\n type: 'linear'\n } as ICartesianAxisSpec;\n }\n}\n"]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { IMosaicChartSpec } from './interface';
|
|
2
|
-
import { MosaicChartSpecTransformer } from './mosaic-transformer';
|
|
3
|
-
import { BaseChart } from '../base';
|
|
4
|
-
import type { IRegion } from '../../region';
|
|
5
|
-
import type { IStackCacheRoot } from '../../util/data';
|
|
6
|
-
export declare class MosaicChart<T extends IMosaicChartSpec = IMosaicChartSpec> extends BaseChart<T> {
|
|
7
|
-
static readonly type: string;
|
|
8
|
-
static readonly seriesType: string;
|
|
9
|
-
static readonly transformerConstructor: typeof MosaicChartSpecTransformer;
|
|
10
|
-
readonly transformerConstructor: typeof MosaicChartSpecTransformer;
|
|
11
|
-
readonly type: string;
|
|
12
|
-
readonly seriesType: string;
|
|
13
|
-
protected _canStack: boolean;
|
|
14
|
-
afterCompile(): void;
|
|
15
|
-
protected _initStack(): void;
|
|
16
|
-
handleAfterStackRegion: (region: IRegion, stackValueGroup: {
|
|
17
|
-
[key: string]: IStackCacheRoot;
|
|
18
|
-
}) => void;
|
|
19
|
-
}
|
|
20
|
-
export declare const registerMosaicChart: () => void;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: !0
|
|
5
|
-
}), exports.registerMosaicChart = exports.MosaicChart = void 0;
|
|
6
|
-
|
|
7
|
-
const type_1 = require("../../series/interface/type"), factory_1 = require("../../core/factory"), mosaic_transformer_1 = require("./mosaic-transformer"), base_1 = require("../base"), mosaic_1 = require("../../series/mosaic/mosaic"), stack_1 = require("../stack"), data_1 = require("../../util/data");
|
|
8
|
-
|
|
9
|
-
class MosaicChart extends base_1.BaseChart {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments), this.transformerConstructor = mosaic_transformer_1.MosaicChartSpecTransformer,
|
|
12
|
-
this.type = "mosaic", this.seriesType = type_1.SeriesTypeEnum.mosaic, this._canStack = !0,
|
|
13
|
-
this.handleAfterStackRegion = (region, stackValueGroup) => {
|
|
14
|
-
region.getSeries().forEach((s => {
|
|
15
|
-
const stackData = s.getStackData(), stackValue = s.getStackValue(), stackValueField = s.getStackValueField();
|
|
16
|
-
stackData && stackValueField && ((0, data_1.stackMosaicTotal)(stackValueGroup[stackValue], stackValueField),
|
|
17
|
-
(0, data_1.stackMosaic)(s, stackValueGroup[stackValue]));
|
|
18
|
-
}));
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
afterCompile() {
|
|
22
|
-
super.afterCompile();
|
|
23
|
-
}
|
|
24
|
-
_initStack() {
|
|
25
|
-
this._stack = new stack_1.Stack(this, {
|
|
26
|
-
afterStackRegion: this.handleAfterStackRegion
|
|
27
|
-
}), this._stack.init();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
exports.MosaicChart = MosaicChart, MosaicChart.type = "mosaic", MosaicChart.seriesType = type_1.SeriesTypeEnum.mosaic,
|
|
32
|
-
MosaicChart.transformerConstructor = mosaic_transformer_1.MosaicChartSpecTransformer;
|
|
33
|
-
|
|
34
|
-
const registerMosaicChart = () => {
|
|
35
|
-
(0, mosaic_1.registerMosaicSeries)(), factory_1.Factory.registerChart(MosaicChart.type, MosaicChart);
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
exports.registerMosaicChart = registerMosaicChart;
|
|
39
|
-
//# sourceMappingURL=mosaic.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart/mosaic/mosaic.ts"],"names":[],"mappings":";;;AACA,sDAA6D;AAE7D,gDAA6C;AAC7C,6DAAkE;AAClE,kCAAoC;AACpC,uDAAkE;AAClE,oCAAiC;AAGjC,0CAAgE;AAEhE,MAAa,WAA2D,SAAQ,gBAAY;IAA5F;;QAIW,2BAAsB,GAAG,+CAA0B,CAAC;QACpD,SAAI,YAAgC;QACpC,eAAU,GAAW,qBAAc,CAAC,MAAM,CAAC;QAC1C,cAAS,GAAY,IAAI,CAAC;QAapC,2BAAsB,GAAG,CAAC,MAAe,EAAE,eAAmD,EAAE,EAAE;YAChG,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;gBACnC,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;gBACrC,MAAM,eAAe,GAAG,CAAC,CAAC,kBAAkB,EAAE,CAAC;gBAE/C,IAAI,SAAS,IAAI,eAAe,EAAE;oBAChC,IAAA,uBAAgB,EAAC,eAAe,CAAC,UAAU,CAAoB,EAAE,eAAe,CAAC,CAAC;oBAClF,IAAA,kBAAW,EAAC,CAAC,EAAE,eAAe,CAAC,UAAU,CAAoB,CAAC,CAAC;iBAChE;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAvBC,YAAY;QACV,KAAK,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC;IAES,UAAU;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,aAAK,CAAC,IAAI,EAAE;YAC5B,gBAAgB,EAAE,IAAI,CAAC,sBAAsB;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;;AAlBH,kCAgCC;AA/BiB,gBAAI,YAAgC;AACpC,sBAAU,GAAW,qBAAc,CAAC,MAAM,CAAC;AAC3C,kCAAsB,GAAG,+CAA0B,CAAC;AA+B/D,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,IAAA,6BAAoB,GAAE,CAAC;IACvB,iBAAO,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACvD,CAAC,CAAC;AAHW,QAAA,mBAAmB,uBAG9B","file":"mosaic.js","sourcesContent":["import { ChartTypeEnum } from '../interface/type';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport type { IMosaicChartSpec } from './interface';\nimport { Factory } from '../../core/factory';\nimport { MosaicChartSpecTransformer } from './mosaic-transformer';\nimport { BaseChart } from '../base';\nimport { registerMosaicSeries } from '../../series/mosaic/mosaic';\nimport { Stack } from '../stack';\nimport type { IRegion } from '../../region';\nimport type { IStackCacheNode, IStackCacheRoot } from '../../util/data';\nimport { stackMosaic, stackMosaicTotal } from '../../util/data';\n\nexport class MosaicChart<T extends IMosaicChartSpec = IMosaicChartSpec> extends BaseChart<T> {\n static readonly type: string = ChartTypeEnum.mosaic;\n static readonly seriesType: string = SeriesTypeEnum.mosaic;\n static readonly transformerConstructor = MosaicChartSpecTransformer;\n readonly transformerConstructor = MosaicChartSpecTransformer;\n readonly type: string = ChartTypeEnum.mosaic;\n readonly seriesType: string = SeriesTypeEnum.mosaic;\n protected _canStack: boolean = true;\n\n afterCompile() {\n super.afterCompile();\n }\n\n protected _initStack() {\n this._stack = new Stack(this, {\n afterStackRegion: this.handleAfterStackRegion\n });\n this._stack.init();\n }\n\n handleAfterStackRegion = (region: IRegion, stackValueGroup: { [key: string]: IStackCacheRoot }) => {\n region.getSeries().forEach(s => {\n const stackData = s.getStackData();\n const stackValue = s.getStackValue();\n const stackValueField = s.getStackValueField(); // yField\n\n if (stackData && stackValueField) {\n stackMosaicTotal(stackValueGroup[stackValue] as IStackCacheNode, stackValueField);\n stackMosaic(s, stackValueGroup[stackValue] as IStackCacheNode);\n }\n });\n };\n}\n\nexport const registerMosaicChart = () => {\n registerMosaicSeries();\n Factory.registerChart(MosaicChart.type, MosaicChart);\n};\n"]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { Functional } from '@visactor/vrender-components';
|
|
2
|
-
import type { ILabelSpec, IMultiLabelSpec } from '../../component/label/interface';
|
|
3
|
-
import type { IBarSeriesSpec, IBarSeriesTheme } from '../bar/interface';
|
|
4
|
-
import type { SeriesMarkNameEnum } from '../interface/type';
|
|
5
|
-
export interface IMosaicSeriesSpec extends Omit<IBarSeriesSpec, 'type' | 'label'> {
|
|
6
|
-
type: 'mosaic';
|
|
7
|
-
[SeriesMarkNameEnum.label]?: IMultiLabelSpec<Omit<ILabelSpec, 'position'> & {
|
|
8
|
-
filterByGroup?: {
|
|
9
|
-
field: string;
|
|
10
|
-
type?: 'min' | 'max';
|
|
11
|
-
filter?: (d: any) => boolean;
|
|
12
|
-
};
|
|
13
|
-
position?: Functional<'outside' | 'top' | 'bottom' | 'left' | 'right' | 'inside' | 'inside-top' | 'inside-bottom' | 'inside-right' | 'inside-left' | 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'>;
|
|
14
|
-
}>;
|
|
15
|
-
}
|
|
16
|
-
export type IMosaicSeriesTheme = IBarSeriesTheme;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/mosaic/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { Functional } from '@visactor/vrender-components';\nimport type { ILabelSpec, IMultiLabelSpec } from '../../component/label/interface';\nimport type { IBarSeriesSpec, IBarSeriesTheme } from '../bar/interface';\nimport type { SeriesMarkNameEnum } from '../interface/type';\n\nexport interface IMosaicSeriesSpec extends Omit<IBarSeriesSpec, 'type' | 'label'> {\n /** 系列类型 */\n type: 'mosaic';\n [SeriesMarkNameEnum.label]?: IMultiLabelSpec<\n Omit<ILabelSpec, 'position'> & {\n filterByGroup?: {\n field: string;\n type?: 'min' | 'max';\n filter?: (d: any) => boolean;\n };\n\n /**\n * 标签位置\n * @since 1.6.0\n * 支持'top-right' | 'top-left'| 'bottom-right' | 'bottom-left',以及函数形式配置\n * */\n position?: Functional<\n | 'outside'\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'inside'\n | 'inside-top'\n | 'inside-bottom'\n | 'inside-right'\n | 'inside-left'\n | 'top-right'\n | 'top-left'\n | 'bottom-right'\n | 'bottom-left'\n >;\n }\n >;\n}\n\nexport type IMosaicSeriesTheme = IBarSeriesTheme;\n"]}
|